Potentialfunktionmethode

Aus testwiki
Version vom 17. September 2017, 17:29 Uhr von imported>Crazy1880 (Veraltetes HTML (LintError))
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Vorlage:Weiterleitungshinweis

In der Komplexitätstheorie wird die Potential- bzw. Potentialfunktionmethode verwendet, um die amortisierte Zeit- und Speicherkomplexität von Datenstrukturen zu messen. Dabei wird die Komplexität über eine Sequenz von Operationen berechnet, was die Kosten von seltenen, aber teuren Operationen auf die Sequenz von Operationen verteilt und damit glättet[1].

Ziel dabei ist es, jeder Operation auf der betrachteten Datenstruktur einen mittleren Kostenwert zuzuweisen, um über diese die erwartete Laufzeit einer beliebigen Folge von Operationen nach oben abzuschätzen. Im Unterschied zur Bankkonto-Methode werden die Kosten ai einer Operation Opi nicht im Voraus festgesetzt, sondern hergeleitet. Hierzu wird eine Potentialfunktion Φ:Di eingeführt. Diese ordnet jedem inneren Zustand Di der Datenstruktur ihr Potential zu. Seien ci nun die maximalen realen Kosten der Operation Opi, so ergibt sich der amortisierte Aufwand ai als:

Vorlage:Center

Gilt nun, dass das Potential des Initialzustandes D0 für alle Operationen Opi einer beliebigen Operationenfolge nie unterschritten wird:

Vorlage:Center

Dann ist die Summe der realen Kosten nie höher als die der amortisierten Kosten:

Vorlage:Center

Existiert nun beispielsweise eine Konstante C, welche die obere Grenze der amortisierten Kosten jeder Operation angibt:

Vorlage:Center

So können die Gesamtkosten der Operationenfolge mit n Operationen mit:

Vorlage:Center

angegeben werden.

Literatur

Quellen

  1. Kurt Mehlhorn, Peter Sanders: Algorithms and Data Structures, 2008 Springer-Verlag Berlin Heidelberg, Kapitel 3.3.1 The Potential or Bank Account Method for Amortized Analysis, S. 72–74