Polynomialzeithierarchie
Die Polynomialzeithierarchie (PH) ist die vermutete Struktur von Komplexitätsklassen zwischen NP und PSPACE. Der Grundgedanke hinter der Polynomialzeithierarchie ist die Frage, ob durch die Hinzunahme von Orakeln, die Leistungsfähigkeit einer Turingmaschine gesteigert werden kann.
Orakel
Orakel sind theoretische Erweiterungen einer Turingmaschine. Sie sind in der Lage, Probleme in konstanter Zeit zu entscheiden. Bildhaft kann man sich ein Orakel als black box vorstellen, die von einer Turingmaschine befragt werden kann. Dadurch ist es möglich, schnellere Turingmaschinen zu konstruieren.
Symbolisch wird eine solche Konstruktion wie folgt dargestellt:
- bedeutet, dass die Maschine zur Entscheidung von Problemen die Maschine als Orakel verwendet.
Mit Blick auf Komplexitätsklassen ergibt sich die folgende Notation:
- (sprich: "P hoch NP") ist die Menge aller Probleme, die sich von einer Turingmaschine entscheiden lassen, die in Abhängigkeit von der Eingabelänge nur polynomiellen Zeitverbrauch aufweist, zur Lösung jedoch ein Orakel benutzen kann, das in der Lage ist, ein Problem aus NP zu entscheiden.
Mathematische Definition
Die Polynomialzeithierarchie wird mit Hilfe der drei Symbole , und definiert.
Für diese Symbole gilt:
wobei P die Menge aller in Polynomialzeit lösbaren Entscheidungsprobleme ist. Für i ≥ 0 definiert man
Eigenschaften
Anders als zunächst vermutet, können sich durch die Polynomialzeithierarchie nicht alle Komplexitätsklassen abbilden lassen. Zwar ist die genaue Struktur der Hierarchie weiterhin unbekannt, jedoch konnte sich bereits folgender Sachverhalt beweisen lassen:
Zudem weiß man, dass im Falle der Gleichheit von P und NP die Polynomialzeithierarchie kollabiert, d.h. es existierte dann ein , so dass gilt:
- (Analog auch für und )
Literatur
- Michael Sipser: "Introduction to the Theory of Computation", 2. Auflage, 2005