Potentialfunktionmethode

aus Wikipedia, der freien Enzyklopädie

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 Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a_i} einer Operation Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle Op_i} nicht im Voraus festgesetzt, sondern hergeleitet. Hierzu wird eine Potentialfunktion eingeführt. Diese ordnet jedem inneren Zustand Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle D_i} der Datenstruktur ihr Potential zu. Seien Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle c_i} nun die maximalen realen Kosten der Operation Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle Op_i} , so ergibt sich der amortisierte Aufwand Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a_i} als:

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a_i = c_i + \Phi\left(D_i\right) - \Phi(D_{i-1})}

Gilt nun, dass das Potential des Initialzustandes Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle D_0} für alle Operationen Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle Op_i} einer beliebigen Operationenfolge nie unterschritten wird:

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

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \sum_{i=1}^n c_i \le \sum_{i=1}^n a_i}

Existiert nun beispielsweise eine Konstante Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle C} , welche die obere Grenze der amortisierten Kosten jeder Operation angibt:

So können die Gesamtkosten der Operationenfolge mit Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle n} Operationen mit:

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \sum_{i=1}^n c_i \le 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