mirror of
https://github.com/theoleuthardt/hwr-notes.git
synced 2026-06-06 03:21:07 +00:00
227 lines
No EOL
12 KiB
Markdown
227 lines
No EOL
12 KiB
Markdown
# KO2 – NP-Vollständigkeit, Space Complexity & PSPACE
|
||
**Vorlesung:** Prof. Dr. Björn Grohmann, HWR Berlin
|
||
**Datum:** 25.02.2026
|
||
**Folien:** 72–106
|
||
|
||
---
|
||
## 1. Hamiltonian Circuit Problem
|
||
|
||
Das **Hamiltonian Circuit Problem** fragt für einen ungerichteten Graphen, ob ein Rundweg (Hamiltonkreis) existiert, der **jeden Knoten genau einmal** besucht und zum Ausgangspunkt zurückkehrt.
|
||
|
||
Das Problem ist **NP-vollständig**, und zwar bereits dann, wenn der Graph **planar** (d.h. in der Ebene darstellbar ohne Kantenkreuzungen) und **3-regulär** (jeder Knoten hat genau 3 Nachbarn) ist.
|
||
|
||
### Reduktion von SAT auf Hamiltonian Circuit
|
||
|
||
Die NP-Vollständigkeit wird durch eine Konstruktion gezeigt, die eine aussagenlogische Formel in einen Graphen übersetzt. Der konstruierte Graph besitzt genau dann einen Hamiltonkreis, wenn die zugehörige Formel erfüllbar ist.
|
||
|
||
**Beispielformel:**
|
||
$$F = (x \lor y \lor z) \land (\bar{x} \lor \bar{y} \lor w) \land (y \lor \bar{z} \lor \bar{w})$$
|
||
|
||
**Konstruktionselemente:**
|
||
|
||
- **Variablenpfade:** Der linke Weg steht für „wahr", der rechte Weg für „falsch". Ein XOR-Gadget stellt sicher, dass genau einer der beiden Wege zum Pfad gehört.
|
||
- **Klausel-Gadgets (OR):** Mindestens eines der drei Literale muss „wahr" sein.
|
||
- **Kreuzungs-Gadgets:** Sorgen dafür, dass sich Kanten des Graphen nicht kreuzen (Planarität).
|
||
|
||
---
|
||
## 2. Graph-Gadgets im Detail
|
||
|
||
### Tutte Fragment
|
||
|
||
Ein spezielles planares Graphfragment mit drei Anschlüssen. Es hat die Eigenschaft, dass ein Hamiltonpfad durch das Fragment stets durch **genau einen** der drei Anschlüsse ein- und austritt. Es wird als Symbol mit einem Pfeil in einem Kreis dargestellt. Es gibt genau **6 mögliche Wege** durch das Fragment.
|
||
|
||
### Exclusive-OR (XOR) Gadget
|
||
|
||
Wird aus zwei Tutte-Fragmenten konstruiert. Verbindet zwei Pfade (v→v' und u→u') so, dass ein Hamiltonpfad **genau einen** der beiden Wege nutzen kann, nicht beide. Die zwei möglichen Wege entsprechen den zwei Wahrheitswerten einer Variable.
|
||
|
||
### Kreuzungs-Gadget (Crossing)
|
||
|
||
Ermöglicht es, zwei sich kreuzende Kanten planar darzustellen. Wird aus mehreren XOR-Gadgets zusammengesetzt. Hat vier Anschlüsse und erlaubt vier mögliche Wegkombinationen, die den beiden unabhängigen Durchquerungsrichtungen entsprechen.
|
||
|
||
### OR-Gadget
|
||
|
||
Verbindet zwei Pfade (v→v' und u→u') so, dass **mindestens einer** der beiden Wege durchlaufen werden muss. Es gibt insgesamt 5 mögliche Wege (alle Kombinationen außer „keiner").
|
||
|
||
### Triple-OR-Gadget
|
||
|
||
Erweitert das OR-Gadget auf drei Eingänge (u→u', v→v', w→w'). Mindestens einer der drei Wege muss durchlaufen werden. Wird für 3-SAT-Klauseln mit drei Literalen benötigt.
|
||
|
||
---
|
||
## 3. MINESWEEPER ist NP-vollständig
|
||
|
||
Die NP-Vollständigkeit von Minesweeper wird gezeigt, indem man logische Schaltkreise innerhalb eines Minesweeper-Spielfelds simuliert.
|
||
|
||
### Grundidee
|
||
|
||
In einem Minesweeper-Feld können Zellen entweder Minen enthalten oder nicht. Die Zahlen in aufgedeckten Zellen geben an, wie viele Minen sich in den benachbarten Zellen befinden. Man nutzt Variablen x und x' (Komplement), wobei x=Mine und x'=keine Mine (oder umgekehrt) einer Wahrheitsbelegung entspricht.
|
||
|
||
### Bausteine der Reduktion
|
||
|
||
- **Wire (Draht):** Ein horizontales Muster aus 5 Zeilen, in dem sich x und x' abwechseln. Die Randbedingungen (Zahlen 0 und 1) erzwingen, dass der Wahrheitswert konsistent entlang des Drahtes weitergeleitet wird.
|
||
- **NOT-Gate:** Invertiert den Wahrheitswert eines Drahtes. Nutzt ein Muster mit Zahlen 2, 3 und Pflichtminen (*), sodass aus x am Eingang x' am Ausgang wird.
|
||
- **Phase-Changer:** Besteht aus zwei NOT-Gates hintereinander. Verschiebt die Phase des Signals, ohne den Wahrheitswert zu ändern.
|
||
- **Wire Crossing:** Ermöglicht es, zwei Drähte zu kreuzen, ohne dass ihre Signale interferieren. Wird mit drei XOR-Gates realisiert.
|
||
- **XOR-Gate:** Kann aus AND- und NOT-Gates zusammengebaut werden (Standardkonstruktion: $A \oplus B = (A \land \lnot B) \lor (\lnot A \land B)$, äquivalent mittels NAND-Darstellung).
|
||
- **AND-Gate:** Ein komplexes Muster (Figure 13), das zwei Eingangsdrähte U und V mit einem Ausgangsdraht T verbindet. Enthält feste Minen (*) und variable Zellen, deren Belegung durch die Zahlenbedingungen erzwungen wird.
|
||
|
||
### Gesamtargumentation
|
||
|
||
Da man mit Wires, NOT, AND (und daraus abgeleitet OR, XOR) beliebige Boolesche Schaltkreise bauen kann, lässt sich jede SAT-Instanz als Minesweeper-Konfiguration kodieren. Die Frage „Gibt es eine konsistente Minenbelegung?" entspricht der Frage „Ist die Formel erfüllbar?". Da SAT NP-vollständig ist, ist auch Minesweeper NP-vollständig.
|
||
|
||
---
|
||
|
||
## 4. „Gaming is Hard" – NP-Härte von Videospielen
|
||
|
||
### Metatheorem 1: Location Traversal + Single-Use Paths
|
||
|
||
Jedes Spiel, das **Location Traversal** (bestimmte Punkte müssen erreicht werden) und **Single-Use Paths** (Wege können nur einmal benutzt werden) aufweist, ist **NP-hard**.
|
||
|
||
**Beweisskizze:** Man baut einen Level, der einen planaren, 3-regulären Graphen darstellt. Die Knoten sind die Punkte, die besucht werden müssen. Jede Kante ist ein Single-Use Path. Ein zusätzlicher Endpunkt wird mit dem Startknoten verbunden. Der Level ist genau dann lösbar, wenn ein Hamiltonkreis existiert.
|
||
|
||
### Metatheorem 2: Tokens, Toll Roads, Location Traversal
|
||
|
||
Ein Spiel ist **NP-hard**, wenn eine der folgenden Bedingungen gilt:
|
||
|
||
- **(a)** Das Spiel hat **collectible tokens**, toll roads und location traversal.
|
||
- **(b)** Das Spiel hat **cumulative tokens**, toll roads und location traversal. (Spieler startet mit n+1 tokens.)
|
||
- **(c)** Das Spiel hat collectible cumulative tokens, **toll roads**, und der Avatar muss einen Ausgang erreichen. (2 tokens pro Punkt, jede Kante ist eine toll road, die Kante zwischen Start und Ende ist eine Sequenz von n toll roads.)
|
||
|
||
**Beispiel:** Pac-Man – Power Pills sind tokens, Geisterkorridore sind toll roads.
|
||
|
||
### Metatheorem 3: Keys, Doors, One-Way Paths
|
||
|
||
Ein Spiel ist **NP-hard**, wenn es **doors** und **one-way paths** enthält und eine der folgenden Bedingungen gilt:
|
||
|
||
- **(a)** Collectible keys und location traversal.
|
||
- **(b)** Cumulative keys und location traversal.
|
||
- **(c)** Collectible cumulative keys und der Avatar muss einen Ausgang erreichen.
|
||
|
||
Funktioniert genau wie Metatheorem 2, wobei keys = tokens und doors = toll roads.
|
||
|
||
### Metatheorem 4: Doors + Pressure Plates
|
||
|
||
Wenn ein Spiel **doors** und **pressure plates** (Druckplatten, die Türen öffnen oder schließen) enthält und der Avatar einen Ausgang erreichen muss, dann ist das Spiel **NP-hard** – selbst wenn keine zwei Druckplatten dieselbe Tür steuern.
|
||
|
||
**Konstruktion:** Wie bei MT 1, aber vor dem Ausgang befinden sich n Türen, die jeweils durch eine Druckplatte bei einem der Punkte geöffnet werden müssen. Single-Use Paths werden durch Druckplatten realisiert, die beim zweiten Durchgang den Weg versperren.
|
||
|
||
### Metatheorem 5: Doors + k-Buttons
|
||
|
||
Buttons sind wie Druckplatten, aber der Spieler kann **entscheiden**, ob er den Button drückt. Ein k-Button beeinflusst k Türen gleichzeitig.
|
||
|
||
Wenn ein Spiel **doors** und **k-buttons** enthält und der Avatar einen Ausgang erreichen muss, dann ist das Spiel **NP-hard** für $k \geq 2$.
|
||
|
||
---
|
||
## 5. Übersicht NP-vollständiger Probleme
|
||
|
||
Alle folgenden Probleme sind NP-vollständig und liegen damit in der Schnittmenge von NP und NP-hard:
|
||
|
||
- **SAT** (Erfüllbarkeitsproblem aussagenlogischer Formeln)
|
||
- **Hamiltonkreis**
|
||
- **Traveling Salesman Problem (TSP)**
|
||
- **Knapsack** (Rucksackproblem)
|
||
- **MINESWEEPER**
|
||
- und viele weitere (Karp's Liste mit 21 Problemen)
|
||
|
||
### Karp's Liste (1972)
|
||
|
||
Richard Karp bewies 1972, dass 21 Probleme NP-vollständig sind, ausgehend von SAT. Die Reduktionskette verläuft u.a.:
|
||
|
||
SATISFIABILITY → CLIQUE → NODE COVER → {FEEDBACK NODE SET, FEEDBACK ARC SET, DIRECTED HAMILTON CIRCUIT → UNDIRECTED HAMILTON CIRCUIT}
|
||
|
||
SATISFIABILITY → 0-1 INTEGER PROGRAMMING → SET PACKING → SET COVERING
|
||
|
||
SATISFIABILITY WITH AT MOST 3 LITERALS PER CLAUSE → CHROMATIC NUMBER → {EXACT COVER → {3-DIMENSIONAL MATCHING, KNAPSACK → {SEQUENCING, PARTITION → MAX CUT}}, HITTING SET, STEINER TREE, CLIQUE COVER}
|
||
|
||
---
|
||
## 6. Space Complexity
|
||
|
||
### Definition
|
||
|
||
Die **Speicherkomplexität (Space Complexity)** einer deterministischen Turingmaschine M ist die Funktion $f: \mathbb{N} \to \mathbb{N}$, wobei $f(n)$ die **maximale Anzahl an Bandzellen** ist, die M auf irgendeiner Eingabe der Länge n besucht.
|
||
|
||
Für eine **nichtdeterministische** Turingmaschine ist $f(n)$ die maximale Anzahl an Bandzellen, die M auf **irgendeinem Berechnungspfad** für eine Eingabe der Länge n besucht.
|
||
|
||
**Anmerkung:** In der Literatur wird manchmal angenommen, dass die TM ein separates Eingabe- und Arbeitsband besitzt und nur die Zellen auf dem Arbeitsband gezählt werden.
|
||
|
||
### Speicherkomplexitätsklassen
|
||
|
||
$$\text{SPACE}(f(n)) = {L \mid L \text{ wird von einer det. TM in } O(f(n)) \text{ Speicher entschieden}}$$
|
||
|
||
$$\text{NSPACE}(f(n)) = {L \mid L \text{ wird von einer nichtdet. TM in } O(f(n)) \text{ Speicher entschieden}}$$
|
||
|
||
---
|
||
## 7. Savitch's Theorem
|
||
|
||
**Satz (Savitch):** Für jede Funktion $f: \mathbb{N} \to \mathbb{R}^+$ mit $f(n) \geq n$ gilt:
|
||
|
||
$$\text{NSPACE}(f(n)) \subseteq \text{SPACE}(f^2(n))$$
|
||
|
||
Der Satz gilt auch für $f(n) \geq \log(n)$.
|
||
|
||
### Beweisskizze
|
||
|
||
Gegeben eine nichtdeterministische TM N, die Sprache A mit Speicher $f(n)$ entscheidet, konstruieren wir eine deterministische TM M, die A in $O(f(n)^2)$ Speicher entscheidet:
|
||
|
||
**Kernidee – CANYIELD-Prozedur:**
|
||
CANYIELD$(c_1, c_2, t)$ entscheidet, ob Konfiguration $c_2$ von Konfiguration $c_1$ in $t$ Schritten erreicht werden kann.
|
||
|
||
- **Basisfall** ($t=1$): Prüfe direkt, ob $c_1 = c_2$ oder ob $c_1$ in einem Schritt zu $c_2$ führt.
|
||
- **Rekursion** ($t > 1$): Für jede mögliche Zwischenkonfiguration $c_m$: Prüfe CANYIELD$(c_1, c_m, t/2)$ und CANYIELD$(c_m, c_2, t/2)$.
|
||
|
||
**Speicheranalyse:**
|
||
|
||
- Jede Rekursionsebene benötigt $O(f(n))$ Speicher (für die Zwischenkonfiguration).
|
||
- Die Rekursionstiefe beträgt $O(\log t)$, wobei $t \leq 2^{d \cdot f(n)}$ für eine Konstante d.
|
||
- Gesamtspeicher: $O(f(n)) \cdot O(\log t) = O(f(n)) \cdot O(f(n)) = O(f(n)^2)$.
|
||
|
||
Da $f(n)$ zu Beginn nicht bekannt ist, testet M nacheinander $f(n) = 1, 2, 3, \ldots$
|
||
|
||
---
|
||
## 8. PSPACE
|
||
|
||
### Definition
|
||
|
||
**PSPACE** ist die Klasse aller Sprachen, die von einer deterministischen Turingmaschine in **polynomiellem Speicher** entschieden werden können:
|
||
|
||
$$\text{PSPACE} = \bigcup_k \text{SPACE}(n^k)$$
|
||
|
||
### Beziehung zwischen Zeit- und Speicherkomplexität
|
||
|
||
$$P \subseteq NP \subseteq PSPACE = NPSPACE \subseteq EXPTIME = \bigcup_k \text{TIME}(2^{n^k})$$
|
||
|
||
Die Gleichheit $\text{PSPACE} = \text{NPSPACE}$ folgt aus Savitch's Theorem (quadratischer Blow-up bei der Speicherkomplexität ist polynomiell).
|
||
|
||
---
|
||
## 9. PSPACE-Vollständigkeit
|
||
|
||
### Definition
|
||
|
||
Eine Sprache B ist **PSPACE-complete**, wenn:
|
||
|
||
1. $B \in \text{PSPACE}$
|
||
2. Jedes $A \in \text{PSPACE}$ ist in polynomieller Zeit auf B reduzierbar.
|
||
|
||
Erfüllt B nur Bedingung 2, heißt B **PSPACE-hard**.
|
||
|
||
### TQBF ist PSPACE-vollständig
|
||
|
||
$$TQBF = {\langle \phi \rangle \mid \phi \text{ ist eine wahre, voll quantifizierte Boolesche Formel}}$$
|
||
|
||
**Theorem:** TQBF ist PSPACE-complete.
|
||
|
||
Eine voll quantifizierte Boolesche Formel hat die Form $\forall x_1 \exists x_2 \forall x_3 \ldots \phi(x_1, x_2, x_3, \ldots)$, wobei alle Variablen gebunden sind. TQBF fragt, ob eine solche Formel wahr ist.
|
||
|
||
TQBF verallgemeinert SAT: Während SAT nur Existenzquantoren hat ($\exists x_1 \exists x_2 \ldots$: „Gibt es eine erfüllende Belegung?"), erlaubt TQBF auch Allquantoren. Diese Erweiterung macht das Problem härter – von NP-vollständig zu PSPACE-vollständig.
|
||
|
||
---
|
||
## Zusammenfassung der Komplexitätsklassen
|
||
|
||
|Klasse|Beschreibung|Beispiel|
|
||
|---|---|---|
|
||
|**P**|Deterministisch in polynomieller Zeit lösbar|Sortieren, kürzeste Wege|
|
||
|**NP**|Nichtdeterministisch in polynomieller Zeit lösbar (Lösung in Polynomialzeit verifizierbar)|SAT, Hamiltonkreis, TSP, Knapsack, Minesweeper|
|
||
|**PSPACE**|Deterministisch in polynomiellem Speicher lösbar|TQBF|
|
||
|**EXPTIME**|Deterministisch in exponentieller Zeit lösbar|Generalisiertes Schach|
|
||
|**NP-hard**|Mindestens so schwer wie jedes Problem in NP|Alle NP-vollständigen Probleme + weitere|
|
||
|**NP-vollständig**|In NP und NP-hard|SAT, Hamiltonkreis, TSP, Knapsack, Minesweeper|
|
||
|**PSPACE-vollständig**|In PSPACE und PSPACE-hard|TQBF| |