Vous êtes sur la page 1sur 31

Algoritmalara Giri

DERS 12
Atlama Listeleri
Veri Yaps
Rastgele Araya Yerletirme
Yksek olaslkla" snr
Analiz (zmleme)
Yaz Tura Atma
Prof. Erik D. Demaine
6.046J/18.401J
Atlama Listeleri
Basit Rastgele Dinamik Arama Yaps
William Pugh tarafndan 1989da gelitirildi.
Uygulamas kolay
n elemanl dinamik bir kmeyi, her bir ilem iin O (lg n)
zamanl beklenen ve yksek ihtimalle kurar.
T(n)'nin kuyruk dalmnda sk garanti.
Hemen her zaman O (lg n)
Bir Balantl Liste
En basit veri yapsndan balang:
(sral) balantl liste
Aramalar en kt durumda (n) kadar zaman alr.
Aramalar nasl hzlandrabiliriz?
14 23 34 42 50 59 66 72 79
ki Balantl Liste
ki sral balantl listemiz olduunu dnn.
(Elemanlarn alt kmeleriyle)
Her eleman bir veya iki listede yer alabilir.
Aramalar nasl hzlandrabiliriz?
14 23 34 42 50 59 66 72 79
Metro Gibi ki Balantl Liste
Fikir: Ekspres ve yerel Metro Hatlar
(New York 7. cadde Hatt)
Ekspres hat birka dura birbirine balar.
Yerel hat btn duraklar birbirine balar.
Ana istasyonlar arasn balantlar. (linkler)
14 23 34 42 50 59 66 72 79
14 34 42 72
ki Balantl Listede Arama
SEARCH / ARA (x) :
st balantl listede (L
1
) saa doru ok uzak olana
kadar yryn.
Alt balantl listeye (L
2
) yryn.
L
2
de eleman bulunana veya bulunamayana kadar
yryn.
14 23 34 42 50 59 66 72 79
14 34 42 72
ki Balantl Listede Arama
rnek: SEARCH(59)
ok uzak:
59 < 72
14 23 34 42 50 59 66 72 79
14 34 42 72
ki Balantl Listenin Tasarm
SORU : Hangi dmler L
1
de olmal?
Bir metroda, popler istasyonlar,
Bizi burada en kt durum performans ilgilendiriyor.
En iyi yaklam : L
1
deki dmleri eit mesafede
yerletirin.
Peki, L
1
de ka tane dm olmal?
14 23 34 42 50 59 66 72 79
14 34 42 72
ki Balantl Listenin Analizi
zmlem :
Arama maliyeti kabaca
Terimler eit iken (sabit katlara kadar) azal r.

L
1
+
L
1
L
2
L
1
= n L
2
= n L
1
2
=
14 23 34 42 50 59 66 72 79
14 34 42 72
ki Balantl Listenin Analizi

= , = n
Arama maliyeti kabaca
+ = +
14 23 34 42 50 59 66 72 79
14 42 66
Daha Fazla Balantl Liste

14 23 34 42 50 59 66 72 79
14 42 66
Pekiyi ya, daha fazla sral balantl listemiz olsayd?
2 sral liste
3 sral liste
k sral liste
lg n sral liste
lg n Balantl Liste
14 23 34 42 50 59 66 72 79
14 66
lg n sral listeler ikili aalar gibidir.
(Aslnda seviye balantl B
+
- aalar gibidir.)
14
14
34 50
50
79
79
79
lg n Balantl Listelerinde Arama
RNEK : ARA (72)
14 23 34 42 50 59 66 72 79
14 66
14
14
34 50
50
79
79
79
Atlama Listeleri
14 23 34 42 50 59 66 72 79
14 66
deal Atlama Listesi bu lg n yapsndadr.
Atlama listesi veri yaps, gncellemelerde (ekle/sil) kabaca bu
yapy dzenler.
14
14
34 50
50
79
79
79
ARAYA YERLETR(x)
Herhangi bir x elemann Atlama Listesine eklemek iin:
x in alt listede nereye denk geldiini bulmak iin ARA(x)
yaparz.
Her zaman en alt listede araya yerletirme yaparz.
DEMEZ : En alt liste btn elemanlar kapsar.
stteki listelerden bazlarna araya yerletirme yapabiliriz.
SORU : xi baka hangi listelere eklemeliyiz?
ARAYA YERLE$TR (x)
SORU : xi baka hangi listelerde araya yerletirmeliyiz?
FKR : Yaz-tura atn, eer YAZI gelirse; xi bir st seviyeye
ykseltin ve tekrar yaz-tura atn.
Bir sonraki seviyeye ykselme olasl =
Ortalamada;
-Elemanlarn yars hi seviye atlayamaz.
-Elemanlarn 1/4 1 seviye atlar.
-Elemanlarn 1/8i 2 seviye atlar.
-vs.
Yaklak
olarak
dengeli?
Atlama Listesi rnei
23 34 42 50
EGZERSZ : Gerek bir bozuk para kullanarak, tekrarlanan
eklemelerle bir Atlama Listesi yaratn.
Ufak deiiklik :
zel deerini
her listeye ekleyin.
Ayn algoritma
ile arama
yapabilirsiniz. 34 50
50

Atlama Listeleri
Bo bir yapya (u ieren) yaplan araya yerletirmeler (ve silmeler)
sonucunda oluan yap bir Atlama Listesidir.
AR. YER. (x), rastgele yaz-tura yntemiyle terfi dzeylerini
belirler.
SL(x), xin bulunduu btn listelerden xi siler.
Atlama Listeleri
Bo bir yapya (u ieren) yaplan araya yerletirmeler (ve silmeler)
sonucunda oluan yap bir Atlama Listesidir.
AR. YER.(x), rastgele yaz-tura yntemi ile st seviyeye klar
belirler.
SL(x), xin bulunduu btn listelerden xi siler.
Atlama listeleri ne kadar iyidir? (hz/denge)
SEZGSEL OLARAK : Ortalamada olduka iyi.
DDA : Hemen her zaman gerekten, ama gerekten iyi.
"Yksek Olaslkla" Teoremi
TEOREM : "Yksek Olaslkla", n elemanl bir atlama
listesinde her bir arama O(lg n)ye mal olur.
"Yksek Olaslkla" Teoremi
TEOREM : Yksek olaslkla, n elemanl bir atlama
listesinde her bir arama O(lg n)e mal olur.
Gayri resmi olarak : Eer, herhangi bir 1 iin,
uygun olan ve E olaynn 1 O(1/n

) ihtimali ile
gerekletii bir seim ans varsa, E olay yksek
olaslkla (y.o.) gerekleir.
- Aslnda O(lg n) iindeki sabit, ya baldr.
Resmi olarak : Eer, herhangi bir 1 iin, E

nn en
azndan 1-c

/n

ihtimali ile gereklemesini salayan


uygun sabit seimleri varsa, E

yksek olaslkla
gerekleir.
"Yksek Olaslkla" Teoremi
TEOREM : Yksek olaslkla, n elemanl bir atlama
listesinde her bir arama O(lg n)e mal olur.
Gayri resmi olarak : Eer, herhangi bir 1 iin,
uygun olan ve E olaynn 1 O(1/n

) ihtimali ile
gerekletii bir seim ans varsa, E olay yksek
olaslkla (y.o.) gerekleir.
FKR : y byk seerek (rnein 100), hata
olasln O(1/n

) olduka azaltabiliriz.
Hemen hemen kesinlikle, snrlar, varolan polinomsal
zaman algoritmalarnda kalacaklardr.
Booleun Eitsizlii / Birleik Snr
Hatrlatma :
Booleun Eitsizlii / Birleik Snr
Herhangi bir rastgele olay E
1
, E
2
, , E
k
iin
Yksek olaslkl olaylarda uygulama:
Eer k = n
O(1)
ise ve her E
i
olay yksek olaslkla
oluuyorsa,
zmlemeye Isnma
GEREK : Yksek Olaslkla,
n elemanl bir atlama listesinin O(lg n) dzeyi vardr.
KANIT :
En fazla c lg n dzeyine sahip olmamzdaki hata ihtimali
= Pr {c lg n dzeyinden daha fazla}.
n. Pr { x eleman en az c lg n defa ste kmtr}.
(Booleun eitsizlii ile.)
zmlemeye Isnma
GEREK : Yksek Olaslkla,
n elemanl bir atlama listesinin O(lg n) dzeyi vardr.
KANIT :
En fazla c lg n dzeyine sahip olmamzdaki hata ihtimali
1/n
c-1
Bu olaslk polinomsal olarak kktr,
rnek : en fazla = c-1 iin n

O(lg n) snrndaki sabit cyi uygun bir ekilde seerek, y keyfi


olarak byk yapabiliriz.
Teoremin spat
TEOREM : Yksek olaslkla, n elemanl bir atlama
listesinde her bir arama O(lg n)e mal olur.
AKILLICA FKR : Aramay tersten, yapraktan kke
doru yapmak.
Arama yaprakta (en alttaki dm) balar. (biter)
Her dm ziyaret edilir:
- Eer dm bir ste kmadysa (Tura geldiyse), sola gideriz.
(soldan gelmitik)
- Eer dm bir ste ktysa (Yaz geldiyse), yukar gideriz,
(yukardan gelmitik)
Arama kkte (veya -da) sona erer (balar).
Teoremin spat
TEOREM : Yksek laslkla, n elemanl bir atlama
listesinde her bir arama O(lg n)e mal olur.
AKILLICA FKR : Aramay tersten, yapraktan kke
doru yapmak.
KANIT :
Arama, kke ulaana (veya a) kadar yukar ve sola ilerler.
Yukar hareket says < dzeylerin says
c lg n y.o. ile (nkuram)
=> y.o. ile, hareket says en fazla c lg n kere YAZI
gelmesi iin frlatmamz gereken para saysdr.
Para tma Analizi
DDA:c lg n kere YAZI gelmesi iin gereken para atma says
= (lg n) y.o. ile
KANIT:
Aka (lg n) : en az c lg n
O(lg n)i rnekle kantlayn:
Diyelim ki; 10 c lg n atma yaptk.
En c lg n kere YAZI ne zaman gelir?
(Daha sonra 10un rastgele deerlerine genelleyin.)
Para tma Analizi
DDA:c lg n kere YAZI gelmesi iin gereken para atma says
= (lg n) y.o. ile
KANIT:
Pr {tam olarak c lg n tane YAZI} =
dzey yaz tura yaz
Pr { en fazla c lg n tane YAZI}
tura
dzeylere ar
deer biimi
Para tma Analizi (devam)
Snrlarla ilgili hatrlatma:
iin
Pr {en fazla c lg n YAZI}
Para tma Analizi (devam)
Pr {en fazla c lg n TURA} 1/n

, ( = [9 lg(10e)]c)
ANAHTAR ZELLK: herhangi bir c iin 10ki gibi
10a ayarlayn, rnek, O(lg n) snrnda bir sabit, istenen ya denk
geliyor.
Bu para atma iddiasnn ve teoremin kantn tamamlyor.

Vous aimerez peut-être aussi