Polynomialzeithierarchie

Aus testwiki
Version vom 28. Dezember 2024, 15:00 Uhr von imported>Rosenfalter (Kommasetzung)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Die Polynomialzeithierarchie (PH, auch: polynomielle Hierarchie) 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.

Definition

Bildliche Darstellung der Polynomialzeithierarchie. Die Pfeile bezeichnen Eingliederung.

Die Polynomialzeithierarchie besteht aus den Familien (Δi)i1, (Σi)i1 und (Πi)i1 von Komplexitätsklassen. Die Klassen Δi, Σi und Πi bilden das i-te Level der Hierarchie. Für Level 0 gilt, dass alle drei Klassen identisch mit der Klasse P (der in Polynomialzeit lösbaren Probleme) sind, d. h. Δ0P=Σ0P=Π0P=P. Für Level 1 gilt, dass Δ1P=P, Σ1P=NP, und Π1P=coNP. Die Komplexitätsklassen in der Polynomialzeithierarchie können auf verschiedene äquivalente Arten definiert werden.

Definition mit Orakel-Turingmaschinen

Eine Orakel-Turingmaschine ist eine Erweiterung einer Turingmaschine. Eine Turingmaschine mit Orakel A (wobei A eine Sprache ist) kann mit einem einzelnen Berechnungsschritt entscheiden, ob ein Wort w zu A gehört oder nicht.

Symbolisch wird eine solche Konstruktion wie folgt dargestellt:

  • BA bedeutet, dass eine Turingmaschine M mit L(M)=B ein Orakel A befragt.

Mit Blick auf Komplexitätsklassen ergibt sich die folgende Notation:

  • PNP (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.

Die Komplexitätsklassen der Polynomialzeithierarchie sind wie folgt definiert:

Für Level 0 gilt:

Δ0P:=Σ0P:=Π0P:=P,

Die weiteren Klassen der Hierarchie sind induktiv definiert. Dazu werden Orakel-Turingmaschinen, die als Orakel eine Komplexitätsklasse des vorherigen Levels der Hierarchie nutzen, verwendet:

Δi+1P:=PΣiP
Σi+1P:=NPΠiP
Πi+1P:=coNPΣiP

Es gilt also insbesondere Σ1P=NP, Π1P=coNP, und Δ2P=PNP.

In der Literatur findet sich für ΣiP häufig die alternative Definition Σi+1P:=NPΣiP.[1] Da sich jedes ΣiP-Orakel durch Negation der Ausgabe in ein ΠiP-Orakel überführen lässt (und umgekehrt), ist diese Definition zur oben gewählten äquivalent.

Definition mit Alternierenden Turingmaschinen

Alternierende Turingmaschinen sind eine Erweiterung von nicht-deterministischen Turingmaschinen, bei der die Zustände der Maschine in existentielle und universelle Zustände unterschieden werden. Eine Berechnung die von einem existentiellen Zustand ausgeht akzeptiert die Eingabe wenn mindestens eine der möglichen Berechnungen akzeptiert und eine Berechnung die von einem universellen Zustand ausgeht akzeptiert nur wenn alle möglichen Berechnungen akzeptieren.

Die Polynomialzeithierarchie kann mit Hilfe von Alternierenden Turingmaschinen wie folgt definiert werden.

  • Die Klasse ΣiP enthält die Sprachen, die von einer alternierende Turingmaschine in Polynomialzeit entschieden werden können, sodass der Initialzustand existentiell ist und auf jedem möglichen Berechnungspfad nur i1 mal zwischen den beiden Quantifizierungen der Zustände gewechselt wird.
  • Die Klasse ΠiP enthält die Sprachen, die von einer alternierende Turingmaschine in Polynomialzeit entschieden werden können, sodass der Initialzustand universell ist und auf jedem möglichen Berechnungspfad nur i1 mal zwischen den beiden Quantifizierungen der Zustände gewechselt wird.

Definition mit Alternierenden Quantoren und Relationen

Diese Definition bedient sich einer mehrstelligen Relation über Bitvektoren, die in Polynomialzeit entschieden werden kann, und alternierender Quantifizierung über diese Bitvektoren. Für jedes Level der Hierarchie wird eine weitere Quantorenalternierung hinzugefügt. Die formale Definition der Komplexitätsklassen ist wie folgt.

Eine Sprache L ist in der Komplexitätsklasse ΣiP, wenn sie mittels

  • einer Turingmaschine M, die in Polynomialzeit arbeitet und
  • eines Polynoms q

wie folgt charakterisiert werden kann

xLu1{0,1}q(|x|)u2{0,1}q(|x|)Qiui{0,1}q(|x|)M(x,u1,,ui)=1,

wobei Qi für gerade Indizes ein Allquantor und für ungerade Indizes ein Existenzquantor ist.

Die Klasse ΠiP besteht aus den Sprachen, deren Komplementsprache in ΣiP ist, d. h. ΠiP=coΣiP.

Eigenschaften

Die Vereinigung aller Klassen der Polynomzeithierarchie PH bildet eine Teilmenge von PSPACE:

  • PH:=i=0ΔiP=i=0ΣiP=i=0ΠiPPSPACE

Es wird allgemein vermutet, dass diese Inklusion echt ist und dass die polynomielle Hierarchie unendlich viele voneinander verschiedene Stufen besitzt, d. h., dass in:ΣiPΣi+1P gilt. Falls aber in Wirklichkeit PH=PSPACE gilt, liegen PSPACE-vollständige Probleme wie TQBF bereits in einem ΣnP und die polynomielle Hierarchie kollabiert, d. h. es gibt ein n mit:

in:ΔiP=ΔnP (Analog auch für Σi und Πi)

Im Falle der Gleichheit von P und NP kollabiert die Polynomialzeithierarchie vollständig, d. h. alle ΣnP und ΠnP wären gleich P. Allgemein gilt:

  • Falls für ein k0 gilt: ΣkP=Σk+1P, so gilt für alle i>k: ΣkP=ΣiP

In der deskriptiven Komplexitätstheorie beschreibt die Prädikatenlogik zweiter Stufe die Polynomialzeithierarchie.

Literatur

Einzelnachweise