• Nem Talált Eredményt

Algoritmuselmélet 2-3 fák Katona Gyula Y.

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Algoritmuselmélet 2-3 fák Katona Gyula Y."

Copied!
6
0
0

Teljes szövegt

(1)

Algoritmuselmélet

2-3 fák

Katona Gyula Y.

Számítástudományi és Információelméleti Tanszék Budapesti M ˝uszaki és Gazdaságtudományi Egyetem

8. el ˝oadás

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. el ˝oadás 1 / 12

2-3-fák

Ez is fa, de a binárisnál bonyolultabb: egy nem-levél csúcsnak 2 vagy 3 fia lehet.

A 2-3-fa egy (lefelé) irányított gyökeres fa, melyre:

A rekordok a fa leveleiben helyezkednek el, a kulcs értéke szerint balról jobbra növekv ˝o sorrendben. Egy levél egy rekordot

tartalmaz.

Minden bels ˝o (azaz nem levél) csúcsból 2 vagy 3 él megy lefelé;

ennek megfelel ˝oen a bels ˝o csúcsok egy, illetve két s ∈ U kulcsot tartalmaznak. A bels ˝o csúcsok szerkezete tehát kétféle lehet. Az egyik típus így ábrázolható: m1 s1 m2 s2 m3

Itt m1,m2,m3 mutatók a csúcs részfáira, s1, s2 pedig U-beli kulcsok, melyekre s1 < s2. Az m1 által mutatott részfa minden kulcsa kisebb, mint s1, az m2 részfájában s1 a legkisebb kulcs, és

(2)

Példa 2-3-fára

10 3

1 3 6 10 11 13 14 16 20 22 25

13 14 20 25

6 11 22

16

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. el ˝oadás 3 / 12

2-3-fa tulajdonságai

Tétel

Ha a fának m szintje van, akkor a levelek száma legalább 2m−1.

Megfordítva, ha |S| = n (itt S ⊆ U a fában tárolt kulcsok halmaza; |S|

megegyezik a tárolt rekordok számával), akkor m ≤ log2n +1.

Bizonyítás.

Minden bels ˝o csúcsnak legalább 2 fia van =⇒

az i-edik szinten legalább 2i−1 csúcs van (1 ≤ i ≤ m). =⇒ 2m−1 ≤ n =⇒ m− 1 ≤ log2n. √

(3)

2-3-fa tulajdonságai

Tétel

Ha a fának m szintje van, akkor a levelek száma legfeljebb 3m−1. Megfordítva, m ≥ log3n + 1.

Bizonyítás.

Minden bels ˝o csúcsnak legfeljebb 3 fia van =⇒

az i-edik szinten legfeljebb 3i−1 csúcs van (1 ≤ i ≤ m). =⇒ n ≤ 3m−1 =⇒ m− 1 ≥ log3n. √

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. el ˝oadás 5 / 12

Keresés 2-3-fában

10 3

6 10 11 14 16 20 22 25

1 3

14 20 25

6 11 22

16

13

13 10

3

6 10 11 14 16 20 22 25

1 3

14 20 25

6 11 22

16

13

13 13

10 3

6 10 11 14 16 20 22 25

1 3

14 20 25

6 11 22

16

13

13 13

10 3

6 10 11 14 16 20 22 25

1 3

14 20 25

6 11 22

16

13

13 13

(4)

BESZÚR 2-3-fába

11 13 14 13 14 6 11

16

11 13 14 13 14 6 11

12 16

11 13 14 13 14 6 11

12 16

11 13 14 13 14 6 11

12 16

13 14 6 11

16

14

11 12 12

13 14 14 6

11 12 12

16

13 11

Ha a gyökeret is „vágni” kell =⇒ új gyökér, n ˝o a fa magassága.

Lépésszám: O(m), minden szinten legfeljebb 1 „vágás”.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. el ˝oadás 7 / 12

TÖRÖL 2-3-fából

Legyen x a legalsó bels ˝o csúcs a keres ˝o út mentén.

Ha x-nek három fia van =⇒ √ Ha x-nek csak két fia van:

I ha x (valamelyik) szomszédos testvérének 3 fia van = egyet átteszünk x alá;

I ha x egyik szomszédos testvérének sincs három fia

=„összevonunk” két kettes csúcsot.

Ez is „felgy ˝ur ˝uzhet”. =⇒ Lépésszám: O(m)

(5)

B-fák

R. Bayer, E. McCreight, 1972 A 2-3-fa általánosítása.

Nagy méret ˝u adatbázisok, küls ˝o táron lev ˝o adatok feldolgozására használják. Több szabvány tartalmazza valamilyen változatát.

Probléma

Nem az összhasonlítás id ˝oigényes, hanem az adatok kiolvasása, de sokszor egy adat kiolvasásához amúgy is kiolvasunk több más adatot, egy lapot.

=⇒ A fa csúcsai legyenek lapok, a költség a lapelérések száma.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. el ˝oadás 9 / 12

B-fa definíciója

Egy m-edrend ˝u B-fa, röviden Bm-fa egy gyökeres, (lefelé) irányított fa, melyre érvényesek az alábbiaknak:

a) A gyökér foka legalább 2, kivéve esetleg, ha a fa legfeljebb kétszintes.

b) Minden más bels ˝o csúcsnak legalább dm2e fia van.

c) A levelek a gyökért ˝ol egyforma messze vannak.

d) Egy csúcsnak legfeljebb m fia lehet.

d) A tárolni kívánt rekordok itt is a fa leveleiben vannak; egy levélben a lapmérett ˝ol és a rekordhossztól függ ˝oen több rekord is lehet, növekv ˝oen rendezett láncolt listában.

(6)

A B -fa szintszáma

Tegyük fel, hogy egy B-fának n levele és k szintje van, és keressünk összefüggést e két paraméter között.

A kicsi fáktól eltekintve a gyökérnek legalább két fia van, a többi bels ˝o csúcsnak pedig legalább dm2e.

=⇒ n ≥ 2dm2ek−2, =⇒ logdm

2e n

2 +2 ≥ k k ≤ log2n − 1

log2dm2e +2.

Minden m ˝uvelet lépésszáma: ∼ loglog2n−1

2dm2e = Θ

logn

logm

, azaz a konstans szorzó kicsi, ha m nagy.

m viszont nem lehet túl nagy, hiszen a bels ˝o csúcsoknak egy lapon el kell férniük.

Például: Például, ha m = 32, n = 220 (itt n az alsó szint lapjainak száma), akkor k ≤ 194 +2 < 7. Egy rekord keresése tehát legfeljebb 6 lap elérését igényli.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. el ˝oadás 11 / 12

A piros-fekete fa és a B-fa kapcsolata

A piros-fekete fa olyan B4-fa, aminek a bels ˝o csúcsaiban tároljuk az elemeket.

13 8

1 6 11

17

15 22 25 27

A piros csúcsokat összevonjuk apjukkal, az így összevont csúcsoknak 2, 3 vagy 4 gyereke van.

Ezért a mélység csak a fekete csúcsokkal n ˝o. =⇒ Mivel a fekete magasság állandó, minden levél azonos szinten lesz.

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

The thermal decomposition of ammonium hydroxodisulphitoferriate(III), (diammonium catena- {bis( 2 -sulfito-O,O)- 2 -hydroxo-}ferrate(III) monohydrate), (NH 4 ) 2 [Fe(SO 3 )

b) a rendelkezésre álló engedélyek száma a közérdekeken alapuló kényszerítő okok miatt korlátozott, vagy.. A tagállamoknak biztosítaniuk kell, hogy azok a

Different 3D mesoporous oxide materials (SiO 2 – KIT-6, MCF-17, SBA-15, Co 3 O 4 , MnO 2 , Fe 2 O 3 , NiO, CeO 2 ) prepared by the soft and hard template (replica)

Hátha nem szükséges pontos megoldás, elég az optimumtól nem túl messze lev ˝o is, ha az polinom id ˝oben kiszámolható.. Közelítés additív konstanssal: OPT − c ≤ APPR ≤

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet = ⇒ egy legalább s súlyú feszít ˝ofát kapunk. A módszer legfeljebb 2-szer akkora utat ad, mint

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet = ⇒ egy legalább s súlyú feszít ˝ofát kapunk.. A módszer legfeljebb 2-szer akkora utat ad, mint

Az órán tanult becslésekkel adj közelítést az el˝oz˝o feladatban szerepl˝o kvantáló torzítására és entrópiájára.. A kezdeti 1/2 és 3/2 kvantálási szintekb˝ol kiindulva

8 Minden v csúcsra igaz, hogy az összes v -b ˝ol levélbe vezet ˝o úton ugyanannyi fekete csúcs van.. Katona