14 Amortisierte Kosten bei (2,4)

Werbung
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
Herunterladen