Document

Werbung
[Type the document title]
1. Binäre Suchbäume
Geordnete Menge von Suchschlüsseln.
Linkes Kind der kleinere Suchschlüssel.
Rechtes Kind der größere Suchschlüssel.
Baum kann zu einer linearen Liste ausarten.
2. Splay Trees
a. Self adjustment
Nach jeder Operation steht der bearbeitete Knoten in der Wurzel.
Die Tiefe eines Pfads halbiert sich im Schnitt bei Ausführung einer Operation
darauf.
Oft benutzte Knoten sind näher an der Wurzel.
b. Anwendungsbeispiel
Compiler: Ein Splay-Baum würde oft benutzte Variablen nah an der Wurzel
halten und ggf. die Liste von Variablen zu einem Baum formen.
c. Rotationen
I.
Zig / Zag
II.
ZigZig/ZagZag
III.
ZigZag/ZagZig
d. Operationen
I.
Splay/Suche
Beförderung des gesuchten
Knotens in die Wurzel.
II.
Einfügen
Beförderung des Vorgängerknotens in die Wurzel mit Einfügen des
aktuellen Knotens als neue Wurzel.
III.
Lösche
Beförderung des zu löschenden Knotens in die Wurzel und Löschung. Es
entstehen zwei Bäume, hänge dem rechten Baum als rechtes Kind
größtes Element des linken Baums.
1
Projdakov Benjamin
[Type the document title]
3. Amortisierte Analyse
a. Einführung/Potenti al-Methode:
Verrechne tatsächliche Kosten mit Strukturveränderung zu Ausgleichskosten.
๐‘Ž๐‘œ๐‘ = ๐‘ก๐‘œ๐‘ + ๐œ™๐‘›๐‘œ๐‘ค − ๐œ™๐‘๐‘’๐‘“๐‘œ๐‘Ÿ๐‘’
b. Hilfssatz
Bedingt (๐‘Ž, ๐‘ > 0, ๐‘Ž + ๐‘ ≤ ๐‘) Abschätzung der Summe zweier Logarithmen.
√๐‘Ž๐‘ ≤
๐‘Ž+๐‘
2
log 2 ๐‘Ž + log 2 ๐‘ ≤ 2 log 2 ๐‘ − 2
c. Definitionen
Einführung der Komponenten des Modells:
Rang von p: ๐‘Ÿ(๐‘) = log 2 ๐‘ (๐‘)
Potential von b: ๐œ™(๐‘) = ∑๐‘Ÿ(๐‘)
Größe von p : ๐‘ (๐‘) = ∑๐‘ค(๐‘ฅ)
Gewicht von x : ๐‘ค(๐‘ฅ) > 0
d. Zugriffslemma
Jede Splay-Operation hat als amortisierte Laufzeit maximal:
3(๐‘Ÿ(๐‘) − ๐‘Ÿ(๐‘ฅ)) + 1
Ableitung von Regeln aus den Zustandsänderungen.
I.
II.
III.
2
Zig/Zag
ZigZag/ZagZig
ZigZig/ZagZag
Projdakov Benjamin
[Type the document title]
IV.
Splay
Treppensumme von :
= 3
( ( ) ( ))
๐‘Ÿ
๐‘
− ๐‘Ÿ
๐‘ฅ
+ 1
e. Satz 1: Splay-Baum
Amortisiere Laufzeit für Splay-Bäume.
„Für einen anfangs leeren Baum benötigt das Ausführen von m Wörterbuchoperationen mit höchsten N Einfüge-Operationen maximal O(m log N).“
Wörterbuchoperationen brauchen eine konstante Anzahl von Splay-Operationen
+ eine konstante Anzahl Einzeloperationen.
Für diesen Beweis setzen wir alle Gewichte auf 1 .
Laufzeit:
๐‘Ž๐‘ ๐‘๐‘™๐‘Ž๐‘ฆ ∈ ๐‘‚(log(๐‘))
⇒ ๐‘š ๐‘‚๐‘๐‘’๐‘Ÿ๐‘Ž๐‘ก๐‘–๐‘œ๐‘›๐‘’๐‘› ∈ ๐‘‚(m log(๐‘))
f.
Satz 2: Binärer Baum mit Splay
Laufzeit auf Suchbäumen
„Für einen binären Suchbaum mit N Knoten, haben m Suchoperationen (über
Splay) einen Aufwand von maximal O((N + m) log (N) + m).“
Eine Suchoperation besteht aus einer Splay-Operation und Rückgabe des
neuen Wurzelknotens.
3
Projdakov Benjamin
[Type the document title]
Für diesen Beweis setzen wir alle Gewichte auf 1 .
Wir suchen die tatsächlichen Kosten, über:
๐‘ก๐‘œ๐‘ = ๐‘Ž๐‘œ๐‘ + ๐œ™๐‘๐‘’๐‘“๐‘œ๐‘Ÿ๐‘’ − ๐œ™๐‘›๐‘œ๐‘ค
Laufzeit: ∈ ๐‘‚((๐‘š + ๐‘) log 2 ๐‘ + ๐‘š)
4
Projdakov Benjamin
Herunterladen