AVL fák.

Slides:



Advertisements
Hasonló előadás
AVL fák.
Advertisements

FOL függvényjelekkel Zsebibaba anyja A 2 harmadik hatványa a oszlopában az első blokk Ezek is nevek, de nem in- konstansok Azért, mert összetettek Predikátum:
Visszatérő űrkabin és a súrlódás Szabó Dávid, 9.c.
A kifizetési kérelem összeállítása TÁMOP-3.2.9/B-08 Audiovizuális emlékgyűjtés.
1 Az összeférhetőség javítása Vázlat l Bevezetés A összeférhetőség javítása, kompatibilizálás  kémiai módszerek  fizikai kompatibilizálás Keverékkészítés.
Származtatott termékek és reálopciók Dr. Bóta Gábor Pénzügyek Tanszék.
Gazdaságstatisztika, 2015 RÉSZEKRE BONTOTT SOKASÁG VIZSGÁLATA Gazdaságstatisztika október 20.
1 Az önértékelés mint projekt 6. előadás 1 2 Az előadás tartalmi elemei  A projekt fogalma  A projektek elemei  A projekt szervezete  Projektfázisok.
A villamosenergia–ipari sportmozgalom eredményei és aktuális kérdései - A szociális partnerek együttműködése az iparági sportmozgalomban EVDSZ II. Taggyűlés.
Gyógy- és Strandfürdők Uszodatervezés. Kialakítás Szabadtéri – elsősorban sportolási (úszás, úszásoktatás) – másodsorban fürdési, napozási igények.
Kockázat és megbízhatóság
Gazdasági informatika - bevezető
Palotás József elnök Felnőttképzési Szakértők Országos Egyesülete
HÁZASSÁGI PEREK február 27. Jogász szak, nappali
Pénztárgépek beszerzésének támogatása 2016
Nemzeti Erőforrás Minisztérium Oktatásért Felelős Államtitkárság
A szerkezetátalakítási programban bekövetkezett változások
2. előadás Viszonyszámok
Adatbázis normalizálás
WE PROVIDE SOLUTIONS.
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
Becslés gyakorlat november 3.
A FELÜGYELŐBIZOTTSÁG BESZÁMOLÓJA A VSZT
Kockázat és megbízhatóság
Kockázat és megbízhatóság
Mesterséges intelligencia
A Hazug paradoxona Minden krétai hazudik. (Mondta egy krétai.)
Boros Péterné SZEF Alelnök SZEF AKADÉMIA Vezetője
Vörös-Gubicza Zsanett képzési referens MKIK
Algoritmusok és Adatszerkezetek I.
Rendszerező összefoglalás
A mozgási elektromágneses indukció
Munka és Energia Műszaki fizika alapjai Dr. Giczi Ferenc
Számításelmélet 1.
V. Optimális portfóliók
Kijelentéslogikai igazság (tautológia):
Portia ládikái (ld. A velencei kalmár)
Pontrendszerek mechanikája
Gázok és folyadékok áramlása
Egy test forgómozgást végez, ha minden pontja ugyanazon pont, vagy egyenes körül kering. Például az óriáskerék kabinjai nem forgómozgást végeznek, mert.
Algebrai specifikációk
INFOÉRA 2006 Véletlenszámok
Elektrosztatikus festés (szinterezés)
Szerkezetek Dinamikája
Számításelmélet 4.
Szabályozott és képes termékek/szolgáltatások, folyamatok, rendszerek
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
KÉPZÉSSEL A MUNKAERŐ-HIÁNY ELLEN?
Tilk Bence Konzulens: Dr. Horváth Gábor
Bipoláris technológia Mizsei János Hodossy Sándor BME-EET
Compliance és Corporate Governance
iOT eszközök által rögzített adatok feldolgozása, megjelenítése
Új pályainformációs eszközök - filmek
Minimális feszítőfák Definíció: Egy irányítatlan gráf feszítőfája a gráfnak az a részgráfja, amely fagráf és tartalmazza a gráf összes cúcspontját. Definíció:
Az Európai Unió földrajzi vonatkozásai
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
Algoritmusok és Adatszerkezetek I.
Binomiális fák elmélete
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
SQL jogosultság-kezelés
Állandó és Változó Nyomású tágulási tartályok és méretezésük
Az impulzus tétel alkalmazása (A sekélyvízi hullám terjedése)
A geometriai transzformációk
Mesterséges intelligencia
Generali Alapkezelő beszámolója Gyöngyház Nyugdíjpénztár részére
Algoritmusok.
A (bináris) kupac adatstruktúra
Szabálytalanságkezelés
Előadás másolata:

AVL fák

AVL fák Az első kiegyensúlyozott fa algoritmus AVL fa AVL fa Kitalálói: Adelson-Velskii és Landis (1962) Tulajdonságok Bináris rendezőfa A bal és jobb részfák magassága legfeljebb 1-gyel különbözik A részfák AVL fák AVL fa AVL fa

Jelölje m(f) az f bináris fa magasságát (szintjeinek számát), ha x az f fa egy csúcsa; ekkor m(x) jelöli az x-gyökerű részfa magasságát. Definíció (AVL-tulajdonság): Egy bináris keresőfa AVL-fa, ha minden x csúcsára teljesül, hogy |m(bal[x]) - m(jobb[x]) |  1

Mekkora a k - szintű AVL-fa minimális csúcsszáma? S1 = 1 S2 = 2 S3 = 4 S4 = 7

Mekkora a k - szintű AVL-fa minimális csúcsszáma?

Összefüggés az AVL-fa pontszáma és magassága között: n adattal felépíthető fa minimális magassága?  majdnem teljes bináris fa n adattal felépíthető fa maximális magassága? ugyanez a kérdés: az adott h szintszámú AVL-fák közül mennyi a minimális pontszám? A h szintszámú minimális csúcsszámú AVL-fa gyökerének egyik részfája h - 1, a másik h - 2 szintű; az eredeti fa minimalitása miatt pedig mindkét részfa minimális csúcsszámú.

h h-2 h-1  rekurzió: Sh = 1 + Sh-1 + Sh-2

AVL fák - magasság Tétel: Bizonyítás: Sh = Fh+3-1 Egy h magasságú AVL fának legalább Fh+3+1 csúcsa van Bizonyítás: Legyen Sh a legkisebb h magasságú AVL fa mérete Nyilván, S0 = 1 és S1 = 2 valamint Sh = Sh-1 + Sh-2 + 1 Indukcióval .. Sh = Fh+3-1 („3-mal eltolt Fibonacci”) (Fh+2-1+Fh+1-1 +1=Fh+3-1)

AVL fák - magasság A Fibonacci számokra igaz:

nSh h nem mehet az optimális fölé 44%- kal többel

AVL fák – újrakiegyensúlyozás beszúrásnál A beszúrás elrontja az AVL tulajdonságot 4 eset 1 és 4 tükörképek 2 és 3 tükörképek Egy új attribútumot vezetünk be: kiegyensúlyozási tényező -1 : bal részfa magasabb 1-gyel 0 : egyforma magasak a részfák +1: jobb részfa magasabb 1-gyel 1 2 3 4

AVL fák – újrakiegyensúlyozás beszúrásnál A. A (++,+) szabály: Az új levél a  részfába került. A beszúrás előtt a fa magassága h+2 volt. + x ++ x y + h y    h h h   h  h+1 beszúrás  < x<  < y< 

AVL fák – újrakiegyensúlyozás beszúrásnál A. A (++,+) szabály: Az új levél a  részfába került. A beszúrás előtt a fa magassága h+2 volt. Forgatás: ++ x y + y x h    h+1 h    h h h+1 A forgatás után ismét h+2 a magasság. Ezért feljebb, a befoglaló fában (ha van), változatlanul érvényes az AVL tulajdonság, nem kell feljebb menni ellenőrizni.  < x<  < y<  Ennek a tükörképe a (--,-) szabály! (1. eset)

AVL fák – újrakiegyensúlyozás beszúrásnál Példa: ++ 15 + 10 20 - 18 3 25 - 22 30 17 21 ezt szúrtuk be

AVL fák – újrakiegyensúlyozás beszúrásnál Példa: 20 15 25 10 18 22 30 21 3 17

AVL fák – újrakiegyensúlyozás beszúrásnál B. A (++,-) szabály: Az új levél a z alatti  vagy  részfába került. A beszúrás előtt a z csúcs alatti fák egyformák: + x ++ x h  y h -  y z z  h  h   h-1 h-1   h h-1 h-1 h  < x<  < z <  < y <  A beszúrás után az egyik részfa magassága h lett, a másik maradt h-1.

AVL fák – újrakiegyensúlyozás beszúrásnál B. A (++,-) szabály: Dupla forgatás kell: először jobbra: ++ x ++ x h -   + z y z  0 v.+ y h-1 v. h  h    h  h v. h-1 h h-1 h-1 h  < x<  < z <  < y < 

AVL fák – újrakiegyensúlyozás beszúrásnál azután balra: z x  z x y      y  

AVL fák – újrakiegyensúlyozás beszúrásnál B. A (++,-) szabály: A beszúrás előtt az x gyökerű fa magassága h+2 volt. A forgatás után ismét h+2 a magasság. Ezért feljebb, a befoglaló fában (ha van), változatlanul érvényes az AVL tulajdonság, nem kell feljebb menni ellenőrizni. Végül tehát: z x y     Ennek a tükörképe a (--,+) szabály!  < x<  < z <  < y <  továbbra is igaz

AVL fák – újrakiegyensúlyozás beszúrásnál Összefoglalva: A beszúrás után az új levéltől felfelé haladva a gyökér felé újra számoljuk a csúcsok címkéit ezen az útvonalon. Ha egy x csúcs címkéje ++ vagy –-lesz, akkor az x gyökerű (rész)fa (esetleg dupla) forgatásával helyreállítható az AVL tulajdonság. Műveletigény: O(1) Tétel. Legyen S egy n csúcsból álló AVL-fa. BESZÚR(s; S) után legfeljebb egy (esetleg dupla) forgatással helyreállítható az AVL-tulajdonság. A beszúrás költsége ezzel együtt is O(log n). Bizonyítás: az előzőekből következik

AVL fák – újrakiegyensúlyozás törlésnél A. A (++,+) szabály: A törlés az  részfában történt. Ennek a magassága h+1 volt és h lett. Az x gyökerű fa magassága h+3-ról h+2-re csökkent. Forgatás: ++ x y + y x h    h+1 h    h h h+1 A forgatás után h+2 a magasság. Ezért feljebb, a befoglaló fában (ha van), nem biztos, hogy változatlanul érvényes az AVL tulajdonság, feljebb kell menni ellenőrizni, amíg a gyökérig nem jutunk.  < x<  < y< 

AVL fák – újrakiegyensúlyozás törlésnél B. A (++,-) szabály: A törlés az  részfában történt. Ennek a magassága h+1 volt és h lett. Az x gyökerű fa magassága h+3-ról h+2-re csökkent. A törlés előtt a z csúcs alatt fa: ++ x h -  z y   h h z  h   h h dupla forgatás  < x<  < z <  < y < 

AVL fák – újrakiegyensúlyozás törlésnél B. A (++,-) szabály: A forgatás után h+2 a magasság. Ezért feljebb, a befoglaló fában (ha van), nem biztos, hogy változatlanul érvényes az AVL tulajdonság, feljebb kell menni ellenőrizni, amíg a gyökérig nem jutunk. Végül tehát: z x y      < x<  < z <  < y <  továbbra is igaz

AVL fák – újrakiegyensúlyozás törlésnél Összefoglalva: Mivel az x gyökerű fa magassága csökkent a forgatással, ezért feljebb is, ha van befoglaló fa, elromolhatott az AVL tulajdonság. A törlés után a törölt elem szülőjétől kezdve felfelé haladva a gyökér felé újra számoljuk a csúcsok címkéit ezen az útvonalon. Ha egy x csúcs címkéje ++ vagy –- lesz, akkor az x gyökerű (rész)fa (esetleg dupla) forgatásával helyreállítjuk annak AVL tulajdonságát. Ha x nem a gyökér, akkor feljebb kell lépni és folytatni kell az ellenőrzést. Szélsőséges esetben az adott útvonal minden pontjában forgatni kell! Tétel: Az n pontú AVL-fából való törlés után legfeljebb 1,44 log2 n (sima vagy dupla) forgatás helyreállítja az AVL-tulajdonságot. Bizonyítás: az előzőekből következik.

Összefoglalás AVL fák Az első dinamikusan kiegyensúlyozott fák A magasság az optimális 44%-án belül Újrakiegyensúlyozás forgatásokkal O(log n)

További kiegyensúlyozott fák Az AVL-tulajdonság csak egy a lehetséges kiegyensúlyozottsági feltételek közül. Általánosítása: Definíció: HB[k]-fák: (C. C. Foster, 1973) Legyen k ≥ 1 egy egész szám. Egy bináris keresőfa HB[k]-fa, ha minden x csúcsára teljesül, hogy |m(bal(x)) −m(jobb(x))| ≤ k. ⇒HB[1]-fák→AVL-fák

Súlyra kiegyensúlyozott fák A részfák súlya legyen a csúcsszámuk: s(f). Definíció. Egy bináris keresőfát súlyra kiegyensúlyozott fának (röviden SK-fának) nevezünk, ha minden x belső csúcsára teljesül, hogy Tétel. Egy n csúcsú SK-fa mélysége ≤ 2 log2 n + 1. Bizonyítás: s(x) > s(y)+s(z) > s(y)+(√2−1)s(y) = √2s(y) x y z

Legyenek x1, x2, . . . , xk egy k-hosszúságú gyökértől levélig menő út csúcsai. n = s(x1) > √2s(x2) > (√2)2s(x3) > · · ·> (√2)k−1s(xk) = (√2)k−1 = 2(k−1)/2  OK