24 KiB
Komplexitätstheorie – Zusammenfassung
Prof. Dr. Björn Grohmann – Hochschule für Wirtschaft und Recht Berlin
1. True Quantified Boolean Formulas (TQBF)
1.1 Definition
Eine True Quantified Boolean Formula (TQBF) ist eine vollständig quantifizierte Boolesche Formel, d.h. eine Boolesche Formel, in der jede Variable durch einen Existenz- (\exists) oder Allquantor (\forall) gebunden ist. Die Formel hat keinen freien Variablen und evaluiert daher zu einem festen Wahrheitswert (wahr oder falsch).
Beispiel:
\forall x , \exists y , (x \lor y) \land (\neg x \lor \neg y)
Das Entscheidungsproblem TQBF fragt: Ist eine gegebene vollständig quantifizierte Boolesche Formel wahr?
1.2 TQBF ist PSPACE-vollständig
Die Vorlesung zeigt zwei zentrale Aussagen:
1) TQBF ist in PSPACE:
TQBF kann mit polynomiellem Speicher entschieden werden. Die Idee ist, die Formel rekursiv auszuwerten: Für jeden Quantor wird die entsprechende Variable nacheinander auf wahr und falsch gesetzt und rekursiv weitergerechnet. Da die Rekursionstiefe linear in der Anzahl der Variablen ist und jeder Rekursionslevel nur konstanten Zusatzspeicher benötigt, liegt der Gesamtverbrauch in O(n) Speicher.
2) Jede Sprache in PSPACE ist auf TQBF reduzierbar (PSPACE-Härte):
Für ein Wort w und eine Sprache A \in \text{PSPACE} wird eine QBF konstruiert, die genau dann wahr ist, wenn w \in A.
1.3 Die Reduktion im Detail
Grundidee
Man konstruiert eine Formel \phi_{c_1, c_2, t}, die genau dann wahr ist, wenn die Turing-Maschine von der Konfiguration c_1 zur Konfiguration c_2 in höchstens t Schritten gelangen kann. Die gesuchte Formel ist dann \phi_{c_{\text{start}}, c_{\text{accept}}, h} mit h = 2^{O(n^k)}.
Naiver (erster) Ansatz
\phi_{c_1, c_2, t} = \exists m_1 \left[\phi_{c_1, m_1, t/2} \land \phi_{m_1, c_2, t/2}\right]
Hierbei wird eine Zwischenkonfiguration m_1 geraten (existenzquantifiziert), über die der Pfad von c_1 nach c_2 in zwei Hälften aufgeteilt wird. Das Problem: Durch die doppelte Rekursion verdoppelt sich die Formelgröße bei jedem Schritt. Da die Rekursionstiefe O(n^k) beträgt, wird die Formel exponentiell groß – zu groß für einen polynomiellen Speicherverbrauch.
Verbesserter Ansatz (Savitch-ähnlicher Trick)
\phi_{c_1, c_2, t} = \exists m_1 ; \forall (c_3, c_4) \in {(c_1, m_1), (m_1, c_2)} ; \left[\phi_{c_3, c_4, t/2}\right]
Der entscheidende Unterschied: Anstatt die Formel \phi zweimal hinzuschreiben (einmal für (c_1, m_1) und einmal für (m_1, c_2)), wird ein Allquantor verwendet, der über die beiden möglichen Paare (c_3, c_4) iteriert. Damit wird die Formel nur einmal aufgeschrieben.
Technisches Detail: Die Notation \forall x \in {y, z} [\ldots] steht eigentlich für \forall x \left[(x = y \lor x = z) \rightarrow \ldots\right]. In der tatsächlichen Formel muss die Mengenzugehörigkeit durch eine Äquivalenzrelation in Boolescher Logik ausgedrückt werden.
Größenanalyse
- Jeder Rekursionslevel vergrößert die Formel um
O(n^k)(Kodierung der Konfigurationen). - Die Rekursionstiefe beträgt
O(n^k)(da\log h = O(n^k)). - Gesamtgröße der Formel:
O(n^{2k})– polynomiell!
Ergänzung: Dies ist die Kernidee des Beweises von Savitch’s Theorem angewandt auf die PSPACE-Vollständigkeit von TQBF. Der Allquantor erlaubt es, die exponentielle Aufblähung zu vermeiden, indem dieselbe Teilformel für beide Hälften wiederverwendet wird.
2. „Gaming is Hard”, Part II – PSPACE-Härte von Spielen
2.1 Metatheorem 4 (Pressure Plates)
Metatheorem 4: Wenn ein Spiel Türen und Druckplatten enthält und der Avatar einen Ausgang erreichen muss, dann gilt: Wenn jede Tür durch zwei Druckplatten gesteuert werden kann, ist das Spiel PSPACE-hard.
2.2 Level-Aufbau als TQBF-Simulation
Ein Level wird konstruiert, der eine TQBF direkt simuliert:
- Obere Reihe (Quantoren-Gadgets): Abwechselnd
\exists x,\forall y,\exists z,\forall w, …- Der Spieler traversiert diese Gadgets vom Start zum Ende.
- Existenzquantoren (
\exists): Der Spieler wählt einen Pfad (oben = true, unten = false). Die Wahl setzt Druckplatten, die Variablenwerte kodieren. - Allquantoren (
\forall): Der Spieler muss beide Pfade durchlaufen – d.h., das Spiel erzwingt, dass beide Belegungen getestet werden.
- Untere Reihe (Klausel-Gadgets): Eine Reihe von Klauseln, die mit Türen realisiert werden.
- Jede Klausel prüft, ob die aktuelle Variablenbelegung die Klausel erfüllt.
- Die Türen sind durch Druckplatten gesteuert, die von den Quantor-Gadgets gesetzt werden.
Die Gadgets für die einzelnen Komponenten nutzen Druckplatten zur Kodierung von Variablen an bestimmten Positionen. Die Variable x an der Stelle i wird durch die Position des Spielers und der dadurch aktivierten Druckplatten repräsentiert.
2.3 Metatheorem 5 (k-Buttons)
Metatheorem 5: Wenn ein Spiel Türen und $k$-Buttons enthält und der Avatar einen Ausgang erreichen muss, dann gilt: Wenn
k \geq 3, ist das Spiel PSPACE-hard.
2.4 Simulation von Druckplatten durch 3-Buttons
Die Vorlesung zeigt, wie eine Druckplatte mit Hilfe von 3-Buttons simuliert werden kann. Das Gadget besteht aus vier Zuständen (Startkonfiguration und drei Folgezustände), die durch die Interaktion des Spielers mit den Buttons a, b, c, d durchlaufen werden. Die Buttons steuern die Türen über \pm x, \pm a, \pm b, etc., wobei + für „öffnen” und - für „schließen” steht.
Ergänzung: Die Ergebnisse stammen aus dem Bereich der computational complexity of games. Die Arbeit von Viglietta (2014) und Aloupis et al. formalisiert, welche Spielmechaniken welche Komplexitätsklassen induzieren. Viele klassische Videospiele (z.B. generalisierte Versionen von Sokoban, Zelda, Pokemon) sind nachweislich PSPACE-hard.
3. Hierarchy Theorems
3.1 Time- und Space-Constructibility
Time-constructible:
Eine Funktion t: \mathbb{N} \to \mathbb{N} mit t(n) \geq O(n \log n) heißt time-constructible, wenn die Funktion, die den String 1^n auf die Binärdarstellung von t(n) abbildet, in Zeit O(t(n)) berechenbar ist.
Space-constructible:
Eine Funktion f: \mathbb{N} \to \mathbb{N} mit f(n) \geq O(\log n) heißt space-constructible, wenn die Funktion, die den String 1^n auf die Binärdarstellung von f(n) abbildet, in Platz O(f(n)) berechenbar ist.
Ergänzung: Die meisten „natürlichen” Funktionen wie
n,n^2,n \log n,2^nsind sowohl time- als auch space-constructible. Diese Bedingung ist nötig, damit die Maschine „weiß”, wie viel Ressourcen sie zur Verfügung hat, und einen Zähler korrekt setzen kann.
3.2 Space Hierarchy Theorem
Theorem (Space Hierarchy): Für jede space-constructible Funktion
f: \mathbb{N} \to \mathbb{N}existiert eine SpracheA, die inO(f(n))Speicher entscheidbar ist, aber nicht ino(f(n))Speicher.
Beweis (Skizze)
Der Algorithmus D entscheidet eine Sprache A wie folgt:
- Sei
ndie Länge der Eingabew. - Berechne
f(n)mittels Space-Constructibility und markiere genau so viel Band. Falls spätere Stufen mehr Platz benötigen, reject. - Falls
wnicht die Form\langle M \rangle 10^*hat (für eine TMM), reject. - Simuliere
Maufwund zähle die Schritte. Falls der Zähler2^{f(n)}überschreitet, reject. - Falls
Makzeptiert, reject. FallsMablehnt, accept (Diagonalisierung!).
Warum funktioniert das? Angenommen, eine Maschine M entscheidet A mit g(n) Speicher, wobei g(n) \in o(f(n)). Dann gibt es ein n, ab dem D die Maschine M korrekt simulieren kann (der Platz reicht aus). Aber D tut dann das Gegenteil von M – Widerspruch.
Korollare
- Für beliebige reelle Zahlen
0 \leq \epsilon_1 < \epsilon_2:\text{SPACE}(n^{\epsilon_1}) \subsetneq \text{SPACE}(n^{\epsilon_2}). \text{PSPACE} \subsetneq \text{EXPSPACE} = \bigcup_k \text{SPACE}(2^{n^k}).
Ergänzung: Das Space Hierarchy Theorem zeigt, dass mehr Speicher echt mehr Sprachen entscheidbar macht. Die Lücke ist dabei schärfer als beim Time Hierarchy Theorem, da kein logarithmischer Faktor benötigt wird. Dies liegt daran, dass die Simulation einer TM bezüglich des Platzes effizienter ist als bezüglich der Zeit.
3.3 Time Hierarchy Theorem
Theorem (Time Hierarchy): Für jede time-constructible Funktion
t: \mathbb{N} \to \mathbb{N}existiert eine SpracheA, die inO(t(n))Zeit entscheidbar ist, aber nicht in Zeito(t(n) / \log t(n)).
Beweis (Skizze)
Der Algorithmus D ist analog zum Space Hierarchy Theorem aufgebaut:
- Sei
ndie Länge der Eingabew. - Berechne
t(n)mittels Time-Constructibility und speichere den Wert\lfloor t(n) / \log t(n) \rfloorin einem Binärzähler. Dekrementiere diesen Zähler vor jedem Schritt der Stufen 3, 4 und 5. Falls der Zähler 0 erreicht, reject. - Falls
wnicht die Form\langle M \rangle 10^*hat, reject. - Simuliere
Maufw. - Falls
Makzeptiert, reject. FallsMablehnt, accept.
Warum der log-Faktor? Das Counter-Update kostet pro Simulationsschritt jeweils O(\log t(n)), da der Binärzähler \log t(n) Bits hat. Die Gesamtlaufzeit von D beträgt also \lfloor t(n) / \log t(n) \rfloor \cdot O(\log t(n)) = O(t(n)).
Korollare
- Für beliebige reelle Zahlen
1 \leq \epsilon_1 < \epsilon_2:\text{TIME}(n^{\epsilon_1}) \subsetneq \text{TIME}(n^{\epsilon_2}). \text{P} \subsetneq \text{EXPTIME}.
Ergänzung: Die strenge Inklusion
\text{P} \subsetneq \text{EXPTIME}ist eines der wenigen bewiesenen Separationsresultate in der Komplexitätstheorie. Im Gegensatz dazu ist die Frage\text{P} \stackrel{?}{=} \text{NP}nach wie vor offen.
3.4 Warum ist Time-Constructibility notwendig?
Die Voraussetzung der Time-Constructibility ist essentiell, wie das folgende Gap Theorem zeigt. Ohne diese Voraussetzung gibt es „pathologische” Funktionen, für die die Hierarchie zusammenbricht.
4. Gap Theorem (Trakhtenbrot, Borodin)
Theorem (Gap Theorem): Es existiert eine berechenbare Funktion
f, sodass\text{TIME}(f(n)) = \text{TIME}(2^{f(n)}).
Das bedeutet: Es gibt eine Funktion f, bei der eine exponentielle Erhöhung der Zeitschranke keine zusätzlichen Sprachen entscheidbar macht!
Beweis (Skizze)
Sei {M_e} eine Aufzählung aller deterministischen TMs. Wir konstruieren f schrittweise, sodass f in jedem Schritt e folgende Bedingung erfüllt:
\forall x \left(|x| = n \land M_e(x) \downarrow \text{ in } t \text{ Schritten} \implies t \notin (f(n), 2^{f(n)}]\right)
Konstruktion von f(n):
Betrachte die Sequenz k_0 = 0, k_{l+1} = 2^{k_l}. Für alle Berechnungen M_e(x) mit e \leq n (wobei n = |x|), die in t_{e,x} Schritten halten, wähle das kleinste k_l, sodass keines der t_{e,x} im Intervall (k_l, 2^{k_l}] liegt. Setze f(n) = k_l.
Warum existiert ein solches k_l? Da es nur endlich viele Paare (e, x) mit e \leq n und |x| = n gibt, gibt es auch nur endlich viele Haltezeiten t_{e,x}. Die Intervalle (k_l, 2^{k_l}] wachsen schnell genug, um immer eine „Lücke” (gap) zu finden.
Konsequenz: Jede Sprache, die in \text{TIME}(2^{f(n)}) liegt, wird von einer TM entschieden, deren Haltezeit unterhalb von f(n) liegt (nicht im Intervall dazwischen), also liegt sie automatisch auch in \text{TIME}(f(n)).
Ergänzung: Das Gap Theorem zeigt, dass die Hierarchie-Theoreme die Bedingung der Konstruierbarkeit wirklich benötigen. Die Funktion
faus dem Gap Theorem ist typischerweise nicht time-constructible. Es handelt sich um ein fundamentales Resultat der abstrakten Komplexitätstheorie (Blum-Axiome).
5. Speed-Up Theorem (Blum)
Theorem (Speed-Up Theorem, M. Blum): Es existiert eine berechenbare Menge
A, sodass es für jeden Indexe(d.h. jede TMM_e) fürAeinen anderen IndexifürAgibt, sodass:\forall^\infty x ; \left(\Phi_i(x) \leq \log \Phi_e(x)\right)
Dabei ist \Phi_e(x) die Anzahl der Berechnungsschritte von M_e(x) (falls M_e auf x hält), und \forall^\infty x bedeutet „für fast alle $x$” (alle bis auf endlich viele).
Bedeutung: Egal welche TM M_e die Sprache A berechnet – es gibt immer eine exponentiell schnellere TM M_i, die dasselbe tut. Die Sprache A hat also keine optimale Berechnung.
Beweis (Skizze)
Hilfsfolge
Definiere g(x) = 2^x, g^{(1)}(x) = g(x), und g^{(n+1)}(x) = g(g^{(n)}(x)) (iterierte Exponentiation). Für x > e + 1 ist dann h_e(x) = g^{(x-e)}(0) eine abnehmende Familie von Funktionen, d.h. g(h_{e+1}(x)) = h_e(x).
Diagonalisierung
Für jedes x wird A(x) bestimmt, indem für alle e \leq x geprüft wird:
- Ist
enoch nicht markiert („cancelled”)? - Gilt
\Phi_e(x) < h_e(x)?
Für das kleinste solche e definiere A(x) = 1 - M_e(x) und markiere e. (Das ist der Diagonalisierungsschritt: A tut das Gegenteil von M_e.)
Konsequenzen
Damit gilt für jedes e: Falls für unendlich viele x gilt \Phi_e(x) < h_e(x), folgt M_e \neq A. Anders geschrieben:
\forall e \left(M_e = A \implies \forall^\infty x ; h_e(x) \leq \Phi_e(x)\right)
Speed-Up-Eigenschaft
Um A(x) zu berechnen, lässt man für jedes e \leq x die Maschine M_e(x) für h_e(x) Schritte laufen. Mit Hilfe der endlichen Menge F_u = {(e, x, A(x)) : e < u \land e \text{ cancelled at stage } x} genügt es, dies nur für u \leq e \leq x zu tun.
Die Berechnung dauert h_u(x) + \ldots + h_x(x) Schritte. Die Laufzeit für die ersten x Stufen ist von oben beschränkt durch x \cdot (h_u(x) + \ldots + h_x(x)) \leq h_{u-1}(x) (für fast alle x).
Da u beliebig groß gewählt werden kann, gilt:
\forall e ; \exists i \left(M_i = A \land \forall^\infty x ; \Phi_i(x) \leq h_{e+1}(x)\right)
Und damit insgesamt:
\Phi_i(x) \leq h_{e+1}(x) \leq \log h_e(x) \leq \log \Phi_e(x)
Ergänzung: Das Speed-Up Theorem ist ein tiefliegendes Resultat, das zeigt, dass nicht jede berechenbare Sprache eine „schnellste” Berechnung besitzt. Es steht im Kontext der Blum-Axiome der abstrakten Komplexitätstheorie. Die Funktion
h_ewächst dabei so schnell (iterierte Exponentiation), dass der Logarithmus vonh_eimmer noch zuh_{e+1}wird – genau das ermöglicht den exponentiellen Speed-Up.
6. Orakel-Turingmaschinen
Definition
Ein Orakel für eine Sprache A ist ein Gerät, das für jeden String w in einem einzigen Schritt berichten kann, ob w \in A.
Eine Orakel-Turingmaschine M^A ist eine modifizierte TM mit einem speziellen Orakelband: Wann immer M^A einen String auf dieses Band schreibt, erhält sie sofort die Antwort, ob der String in A liegt.
Komplexitätsklassen mit Orakeln
\text{P}^A: Klasse der Sprachen, die von einer polynomialzeit-beschränkten Orakel-TM mit OrakelAentschieden werden können.\text{NP}^A: Analog für nichtdeterministische polynomialzeit-beschränkte Orakel-TMs.
Ergänzung: Orakel-TMs sind ein mächtiges Konzept, um die relative Stärke von Komplexitätsklassen zu untersuchen. Intuitiv simuliert das Orakel ein „Unterprogramm” mit beliebiger Mächtigkeit – die Anfrage kostet nur einen einzigen Schritt, unabhängig davon, wie schwer das Orakel-Problem eigentlich ist.
7. Relativierung
Kernfrage
Kann die Technik der Relativierung (Diagonalisierung über Orakel-TMs) dabei helfen, Komplexitätsklassen zu separieren?
Theorem (Baker, Gill, Solovay, 1975)
- Es existiert ein Orakel
A, sodass\text{P}^A \neq \text{NP}^A.- Es existiert ein Orakel
B, sodass\text{P}^B = \text{NP}^B.
Beweis von Teil 2
Wähle B = \text{TQBF}. Dann gilt:
\text{NP}^{\text{TQBF}} \subseteq \text{NPSPACE} \subseteq \text{PSPACE} \subseteq \text{P}^{\text{TQBF}}
Die letzte Inklusion gilt, weil TQBF PSPACE-vollständig ist – eine polynomialzeit Orakel-TM kann jedes PSPACE-Problem lösen, indem sie das Orakel befragt.
Beweis von Teil 1 (Diagonalisierung)
Wir konstruieren ein Orakel A, sodass die Sprache
L_A = {w \mid \exists x \in A \text{ mit } |x| = |w|}
nicht in \text{P}^A liegt (aber offensichtlich in \text{NP}^A, da man x raten und das Orakel fragen kann).
Konstruktion von A in Schritten:
Sei M_1, M_2, M_3, \ldots die Aufzählung aller polynomialzeit Orakel-TMs.
- Schritt 1: Wähle endlich viele beliebige Strings und füge sie zu
Ahinzu. - Schritt
i: Wählenso groß, dass2^n > p_i(n)(Laufzeitschranke vonM_i) undngrößer als alle bisherigen String-Längen inA.- Simuliere
M_iauf Eingabe1^n. - Falls
M_idas Orakel nachyfragt und der Status vonyfeststeht → antworte gemäß Status. - Falls der Status nicht feststeht → antworte „Nein” und setze
y \notin A. - Falls
M_iakzeptiert → alle verbleibenden Strings der Längenerhalten den Status „nicht in $A$” (Diagonalisierung:1^n \in L_A, aberM_iakzeptiert – Widerspruch zur korrekten Entscheidung). - Falls
M_inicht akzeptiert → wähle einen String der Längen, nach demM_idas Orakel nicht gefragt hat, und füge ihn zuAhinzu (das geht, weil2^n > p_i(n), also hatM_iweniger Strings abgefragt, als es gibt).
- Simuliere
Konsequenz
Da sowohl \text{P}^A \neq \text{NP}^A als auch \text{P}^B = \text{NP}^B möglich ist, kann keine relativierende Beweistechnik die P-vs-NP-Frage klären. Jeder Beweis, der für beliebige Orakel funktioniert, würde zu einem Widerspruch führen.
Ergänzung: Dies war ein bahnbrechendes Ergebnis von Baker, Gill und Solovay (1975), das zeigte, dass Diagonalisierung allein nicht ausreicht, um P ≠ NP zu beweisen. Spätere Arbeiten (Razborov, Rudich: „Natural Proofs”, 1997) zeigten weitere fundamentale Schranken für Beweistechniken.
8. Polynomiale Hierarchie (PH)
8.1 Definition über Quantoren
Für eine Komplexitätsklasse \mathcal{C} definieren wir:
\exists \mathcal{C} = \left{x : \exists^{p(|x|)} y ; \langle x, y \rangle \in B \right}
wobei B \in \mathcal{C} und „$\exists^{p(|x|)} y$” bedeutet: es existiert ein String y der Länge \leq p(|x|).
Analog für den Allquantor: \forall \mathcal{C}.
Beobachtungen:
\exists \text{P} = \text{NP}(die existenzielle Quantifizierung über P ergibt NP)\forall \text{P} = \text{co-NP}(die universelle Quantifizierung über P ergibt co-NP)
8.2 Die Stufen der Hierarchie
Die polynomiale Hierarchie wird induktiv definiert:
| Stufe | \Sigma^p |
\Pi^p |
\Delta^p |
|---|---|---|---|
| 0 | \Sigma^p_0 = \text{P} |
\Pi^p_0 = \text{P} |
|
| 1 | \Sigma^p_1 = \text{NP} |
\Pi^p_1 = \text{co-NP} |
\Delta^p_1 = \text{P} |
| 2 | \Sigma^p_2 = \exists \Pi^p_1 = \text{NP}(\text{co-NP}) |
\Pi^p_2 = \forall \Sigma^p_1 |
\Delta^p_2 = \text{P}(\text{NP}) |
n+1 |
\Sigma^p_{n+1} = \exists \Pi^p_n |
\Pi^p_{n+1} = \forall \Sigma^p_n |
\Delta^p_{n+1} = \text{P}(\Sigma^p_n) |
Die polynomiale Hierarchie ist dann:
\text{PH} = \bigcup_{n \geq 0} \Sigma^p_n
8.3 Äquivalente Charakterisierung
Eine Sprache L ist in \Sigma^p_i genau dann, wenn es eine polynomialzeit-TM M und ein Polynom q gibt, sodass:
x \in L \iff \exists u_1 \in {0,1}^{q(|x|)} ; \forall u_2 \in {0,1}^{q(|x|)} ; \cdots ; Q_i u_i \in {0,1}^{q(|x|)} ; M(x, u_1, \ldots, u_i) = 1
wobei die Quantoren alternieren (\exists, \forall, \exists, \forall, \ldots) und Q_i = \forall falls i gerade, Q_i = \exists falls i ungerade.
Analog für \Pi^p_i mit umgekehrter Quantorenreihenfolge (\forall, \exists, \forall, \exists, \ldots).
8.4 Zusammenhang mit Orakel-Klassen
\Sigma^p_{n+1} = \text{NP}(\Sigma^p_n)
Beweis (Skizze):
- Richtung
\Sigma^p_{n+1} \subseteq \text{NP}(\Sigma^p_n): Per Definition ist jedesS \in \Sigma^p_{n+1} = \exists \Pi^p_n. Es gibt also einS’ \in \Pi^p_nmitS = {x : \exists y \text{ mit } (x,y) \in S’}. Da\Pi^p_n \subseteq \text{NP}(\Sigma^p_n)(und auch= \text{co-}\Sigma^p_{n+1}), liegtSin\text{NP}(\Sigma^p_n). - Richtung
\text{NP}(\Sigma^p_n) \subseteq \Sigma^p_{n+1}: Eine NP-Maschine mit OrakelS’ \in \Sigma^p_nrät zunächst ein Zertifikatyund stellt dann adaptive Orakel-Anfragen. Man kann die Orakel-Antworten mitraten und die Korrektheit der geratenen Antworten durch die Quantorenstruktur von\Sigma^p_nverifizieren.
8.5 Vollständige Probleme
Für jede Stufe i der Hierarchie ist \Sigma_i\text{SAT} ein vollständiges Problem:
\Sigma_i\text{SAT} = \exists u_1 ; \forall u_2 ; \exists \cdots ; Q_i u_i ; \varphi(u_1, u_2, \ldots, u_i) = 1
8.6 Kollaps der Hierarchie
\text{PH} \subseteq \text{PSPACE}(leicht einzusehen, da jede Stufe in PSPACE simulierbar ist).- Falls
\text{PH} = \text{PSPACE}, so kollabiert PH (auf eine endliche Stufe). - Falls es ein vollständiges Problem für PH gibt, so kollabiert PH ebenfalls.
Ergänzung: Die Vermutung, dass PH nicht kollabiert, ist eines der zentralen offenen Probleme der Komplexitätstheorie. Ein Kollaps auf Stufe 0 würde
\text{P} = \text{NP}bedeuten, ein Kollaps auf Stufe 1 würde\text{NP} = \text{co-NP}implizieren. Die meisten Forscher vermuten, dass die Hierarchie unendlich ist – aber ein Beweis fehlt.
Zusammenfassung der wichtigsten Beziehungen
\text{P} \subseteq \text{NP} \subseteq \Sigma^p_2 \subseteq \cdots \subseteq \text{PH} \subseteq \text{PSPACE} \subseteq \text{EXPTIME} \subseteq \text{EXPSPACE}
Bekannte strikte Inklusionen:
\text{P} \subsetneq \text{EXPTIME}(Time Hierarchy Theorem)\text{PSPACE} \subsetneq \text{EXPSPACE}(Space Hierarchy Theorem)\text{NL} \subsetneq \text{PSPACE}(Space Hierarchy Theorem)
Offene Fragen:
\text{P} \stackrel{?}{=} \text{NP}\text{NP} \stackrel{?}{=} \text{co-NP}\text{P} \stackrel{?}{=} \text{PSPACE}- Kollabiert PH?
Übersicht der Schlüsselresultate
| Resultat | Aussage | Technik |
|---|---|---|
| TQBF ist PSPACE-vollständig | Jedes PSPACE-Problem lässt sich als QBF kodieren | Formelkonstruktion mit Allquantor-Trick |
| Space Hierarchy Theorem | Mehr Platz → echt mehr Sprachen | Diagonalisierung |
| Time Hierarchy Theorem | Mehr Zeit → echt mehr Sprachen (mit log-Lücke) | Diagonalisierung + Zähler |
| Gap Theorem | \exists f: \text{TIME}(f(n)) = \text{TIME}(2^{f(n)}) |
Konstruktion von Lücken in Haltezeiten |
| Speed-Up Theorem | \exists A: jede TM kann exponentiell beschleunigt werden |
Diagonalisierung + abnehmende Funktionsfamilie |
| Baker-Gill-Solovay | Relativierung kann P vs NP nicht klären | Orakel-Konstruktion |
| PH-Definition | \Sigma^p_{n+1} = \text{NP}(\Sigma^p_n) |
Quantoren-Alternierung |