Potentialfunktionmethode

Potentialmethode ist eine Weiterleitung auf diesen Artikel. Für das numerische Verfahren zur Lösung von Transportproblemen siehe MODI-Methode.

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 a i {\displaystyle a_{i}} einer Operation O p i {\displaystyle Op_{i}} nicht im Voraus festgesetzt, sondern hergeleitet. Hierzu wird eine Potentialfunktion Φ : D i R {\displaystyle \Phi \colon D_{i}\to \mathbb {R} } eingeführt. Diese ordnet jedem inneren Zustand D i {\displaystyle D_{i}} der Datenstruktur ihr Potential zu. Seien c i {\displaystyle c_{i}} nun die maximalen realen Kosten der Operation O p i {\displaystyle Op_{i}} , so ergibt sich der amortisierte Aufwand a i {\displaystyle a_{i}} als:

a i = c i + Φ ( D i ) Φ ( D i 1 ) {\displaystyle a_{i}=c_{i}+\Phi \left(D_{i}\right)-\Phi (D_{i-1})}

Gilt nun, dass das Potential des Initialzustandes D 0 {\displaystyle D_{0}} für alle Operationen O p i {\displaystyle Op_{i}} einer beliebigen Operationenfolge nie unterschritten wird:

i { 1 , , n } : Φ ( D 0 ) Φ ( D i ) {\displaystyle \forall i\in \{1,\dots ,n\}:\Phi (D_{0})\leq \Phi (D_{i})}

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

i = 1 n c i i = 1 n a i {\displaystyle \sum _{i=1}^{n}c_{i}\leq \sum _{i=1}^{n}a_{i}}

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

i { 1 , , n } : a i C {\displaystyle i\in \{1,\dots ,n\}:a_{i}\leq C}

So können die Gesamtkosten der Operationenfolge mit n {\displaystyle n} Operationen mit:

i = 1 n c i n C {\displaystyle \sum _{i=1}^{n}c_{i}\leq n\cdot C}

angegeben werden.

Literatur

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Introduction to Algorithms. 2. Auflage. MIT Press, Cambridge MA 2001, ISBN 0-262-03293-7, S. 412–415. 

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