Amortisierte Analyse: Buchhaltermethode Fibonacci Heaps Amortisierte Analyse: Buchhaltermethode
Fibonacci Heaps Priority Queue Operationen Fib. Heap Bin. Heap Insert O(1) O(log n) ExtractMin O(log n) O(log n) DecreaseKey O(1) O(log n)
Buchhaltermethode Den Operationen werden verschiedene Kosten zugeordnet (Amortisierte Kosten) müssen nicht mit den Realen Kosten übereinstimmen Objekte der Datenstruktur haben Konten auf denen Guthaben gutgeschrieben werden kann
Buchhaltermethode Vergleich zwischen Amort. Kosten und tatsächlichen Kosten Wenn Amort. Kosten höher sind kann der Überschuss an Objekten als Guthaben zugeordnet werden sonst können Op. mit dem Guthaben bezahlt werden Gesamt Guthaben darf nie negativ werden!!!
Anwendung: Vorüberlegung ExtractMin hängt von der Anzahl der Verschmelzungsoperationen (worst case: O(n)) von der Maximalen Anzahl der Kinder (beschränkt durch O(log n) nach nach Lemma F3 Kap. 1.1. der Vorlesung) DecreaseKey hängt von der Anzahl der Trennungsoperationen ab. ( worst case: O(n)) Insert O(1)
Anwendung: Idee Gebe jedem Wurzelknoten 1$ um alle Verschmelzoperationen von ExtractMin zu bezahlen Jeder Markierter Knoten erhält 2$ 1$ zum abtrennen 1$, da Markierte Knoten später Wurzelknoten werden
Analyse: Insert Kosten insert konstant 1$ für Wurzelknoten 1$ Insert = O(1) + O(1) = O (1)
Analyse: DecreaseKey Kosten DecreaseKey konstant 1$ für markierten Knoten 2$ neuer Wurzelknoten 1$ 1$ * #Trennungen (Wird vom Guthaben bezahlt) decreaseKey = O(1)+2*O(1)+O(1) = O(1)
Analyse: ExtractMin Kosten Konstant 1$ Markierung der Kinder 1$ * MaxKinder(n) 1$ * #Verschmelzungen (Wird vom Guthaben bezahlt) ExtractMin = O(1)+O(1)*maxKinder(n) = O(1)+O(1)*O(log n) (wegen Lem. F3) = O(log n)