14 Amortisierte Kosten bei (2,4)-Bäumen Mithilfe der Amortisierungsanalyse ermittelt man die nötige durchschnittliche Zeit über alle Operationen im schlimmsten Fall. Damit kann gezeigt werden, dass man auch mit z.B. relativ teuren Umstrukturierungsoperationen (hier Spalten, Stehlen und Verschmelzen) die Gesamtlaufzeit verbessern kann, wenn die übrigen Funktionen (Einfügen, Entfernen, Suchen) dank dieser Umstrukturierungen weniger Zeit benötigen1 . 14.1 Denitionen Orientiert am Begri Amortisierung deniert man eine Balance b(k) für Knoten und entsprechend ein Konto b(T) für den gesamten Baum2 . Die Balance b für einen Knoten k ist folgendermaÿen deniert: 1 2 3 α(k) = 4 5 −1 0 1 b(k) = 0 −1 Der Kontostand eines Baums T ist deniert als die Summe der Balancen aller inneren Knoten: b(T ) = X b(k) Folgende Variablen werden im Lauf der Analyse verwendet: i j m S V D Anzahl der Einfügeoperationen Anzahl der Löschoperationen Anzahl aller Operationen: m=i+j Anzahl der Spaltungen Anzahl der Verschmelzungen Anzahl der Stehlvorgänge Satz (1): D≤j Beweis: Stehloperationen können nur bei Löschvorgängen auftreten und dann höchsten einmal. Satz (2): S+V ≤m+ i−j 2 1 In der Analyse wird SUCHEN nicht berücksichtigt, da es keine Strukturänderung des Baums zur Folge hat (keine Kontostandsänderung). 2 Zur Dierenzierung zu den Binärbäumen wird hier T als Bezeichnung für den (2,4)-Baum verwendet. 1 Der 2.Satz wird mithilfe des Kontostandes und den Beobachtungen 1-4 bewiesen (siehe weiter unten). Falls Satz(1) und Satz(2) richtig sind, dann kann man zeigen, das alle Spalt-, Verschmelz- und Stehloperationen zusammen nur linear mit den Einfüge- und Löschoperationen (m = j + i) anwachsen. S+V +D ≤m+ 14.1.1 2i + 2j + i − j + 2j 3i + 3j 3 i−j +j = = = m = O(m) 2 2 2 2 minimaler, maximaler Kontostand b(T ) Beobachtung 1: Ein (2,4)-Baum T mit n Blätter ist stets begrenzt in seinem Kontostand durch: n 0 ≤ b(T ) ≤ 14.1.2 2 Einfügen, Entfernen Beobachtung 2: Sei T 0 aus einem (2,4)-Baum T durch EINFÜGEN oder ENTFERNEN eines Blattes enstanden, dann gilt: b(T 0 ) ≥ b(T ) − 1 14.1.3 Spalten Beobachtung 3: Sei T 0 aus einem Baum T durch SPALTEN enstanden, dann gilt: b(T 0 ) ≥ b(T ) + 1 14.1.4 Stehlen und Verschmelzen Beobachtung 4a: Sei T 0 aus einem Baum T durch STEHLEN enstanden, dann gilt: b(T 0 ) ≥ b(T ) Beobachtung 4b: Sei T 0 aus einem Baum T durch VERSCHMELZEN enstanden, dann gilt: b(T 0 ) ≥ b(T ) + 1 14.2 Abrechnung Man nimmt an, dass ingesamt m = i + j Operationen auf einen anfangs leeren (2,4)-Baum ausgeführt werden3 . Der Anfangskontostand ist b(T0 ) = 0, während der Endkontostand maximal b(Tm ) = m2 = i−j 2 (Beobachtung 1) sein kann. (Kontostand erniedrigt sich) geschehen nur durch ENTFERNEN oder EINFÜGEN von Blättern - (Beobachtung 2 →≤ m). Abbuchungen 3 Es wird vorausgesetzt, dass mehr Elemente eingefügt als entfernt werden i > j . 2 (Kontostand erhöht sich) geschehen nur durch SPALTEN (Beobachtung 3→≥ 1) , VERSCHMELZEN (Beobachtung 4b →≥ 1) oder STEHLEN (Beobachtung 4a →≥ 0). Einzahlungen Die Kontoabrechnung schaut dann folgendermaÿen aus: Anfangszustand - Abbuchungen + Einzahlungen = Endzustand und damit erhält man den Beweis zu Satz (2) 0 − m + (S + V ) ≤ 3 i−j 2