Martin Ziegler
Komplexitätstheorie
NP -Vollständigkeit
L heißt NP -schwer, falls für jedes A ∈ NP gilt: A
pL.
L heißt NP -vollständig, falls NP -schwer und ∈ NP ist.
Bem: Ist ein L NP -vollständig und L ∈ P , so folgt P = NP
Korollar: Falls NP ≠ P gilt, dann sind alle NP -vollständigen Sprachen in NP \ P , also insbesondere nicht in P .
A heißt polynomiell reduzierbar auf B ( „A
pB” ),
falls es eine in polynomieller Zeit berechenbare totale Funktion f: Σ * → Σ * gibt mit x ∈ A ⇔ f(x) ∈ B ∀ x ∈ Σ *.
Lemma: a) A
pB und B ∈ P ⇒ A ∈ P
b) A
pB und B
pC ⇒ A
pC (Transitivität)
P
NP c NP
(und 1 000 000 $US)
Komplexitätstheorie
Die Master-Reduktion
Satz von Cook-Levin (1971/72) SAT ist NP -vollständig.
Zu zeigen:
• SAT ∈ NP
(schon erledigt)
• Für jedes L ∈ NP gilt:
L
≼≼≼≼pSAT
Martin Ziegler 15
Komplexitätstheorie
Beweisidee
Sei L ∈ NP , N=(Q, Σ , Γ , δ , q
0,F) eine 1-NTM,
die L in Zeit T(n) entscheidet für ein Polynom T.
O.B.d.A.: N macht immer genau T(n) Schritte!
Aufgabe: Beschreibe eine in polynomieller Zeit berechenbare Funktion f, die bei Eingabe w ∈ Σ *
eine Boole‘sche Formel Φ
w=f(w) liefert, so dass gilt:
N akzeptiert w ⇔ Φ
wist erfüllbar
Idee: Konstruiere Formel Φ
so, dass erfüllende Belegungen für
Φzu akzeptierenden Rechnungen von N korrespondieren.
Boole‘sche Variablen von Φ und ihre intuitive Bedeutung:
d
s,a,t: „Nach Schritt t steht in Bandzelle #s das Symbol a“
h
s,t: „Nach Schritt t steht der Kopf auf Zelle #s“
z
q,t: „Nach Schritt t ist N im Zustand q“
∀ L ∈ NP : L ≼ ≼≼ ≼ p SAT
a ∈ Γ , q ∈ Q
s=1..S(|w|), t=0…T(|w|)
Komplexitätstheorie
Beweisskizze
T(n)·S(n)·|Γ| + T(n)·S(n) + |Q|·T(n)
= polynomiell viele Var.en Jede Rechnung von N gestartet mit w kann durch
passende Belegung der Var.en beschrieben werden.
Belegungen können aber auch Unsinn beschreiben.
Ziel: Entwerfe KNF Φ , die genau für diejenigen Belegungen der Variablen wahr wird, die eine akzeptierende Rechnung von N beschreiben.
Konstruiere Formel Φ
wso, dass erfüllende Belegungen für Φ zu akzeptierenden Rechnungen von N korrespondieren.
Boole‘sche Variablen von Φ und ihre intuitive Bedeutung:
ds,a,t: „Nach Schritt t steht in Bandzelle s das Symbol a“
hs,t : „Nach Schritt t steht der Kopf auf Zelle s“
zq,t : „Nach Schritt t ist die Maschine im Zustand q“
a∈Γ, q∈Q s=1..S(|w|) t=0…T(|w|)
Martin Ziegler
Komplexitätstheorie
Teilformeln von Φ
Vt := der Teil der Variablen, die zum Rechenschritt #t gehören
= { ds,a,t : a ∈ Γ, s ≤ S } ∪ { hs,t : s ≤ S } ∪ { zq,t : q ∈ Q } Config(Vt) : wird wahr genau für die Belegungen von Vt ,
die eine Konfiguration beschreiben.
Succ(Vt, Vt+1) : wird wahr genau für die Belegungen von Vt ∪ Vt+1, die Konfigurationen K und K´ beschreiben mit K ⊢ K´ .
Startw(V0) : wird wahr genau für Belegung, die q0w beschreibt.
Akz(VT) wahr für Belegung, die einen akz. Endzustand beschreibt
Konstruiere Formel Φ
wso, dass erfüllende Belegungen für Φ zu akzeptierenden Rechnungen von N korrespondieren.
Boole‘sche Variablen von Φ und ihre intuitive Bedeutung:
ds,a,t: „Nach Schritt t steht in Bandzelle s das Symbol a“
hs,t : „Nach Schritt t steht der Kopf auf Zelle s“
zq,t : „Nach Schritt t ist die Maschine im Zustand q“
a∈Γ, q∈Q s=1..S(|w|) t=0…T(|w|)
Φ
w(V
0,..,V
T) := Config(V
0) ∧ Config(V
1) ∧ … ∧ Config(V
T)
∧ Start
w(V
0) ∧ Succ(V
0,V
1) ∧ … ∧ Succ(V
T-1,V
T) ∧ Akz(V
T)
Komplexitätstheorie
Skizze zum Beweis
Τ
S
► s w
1w
2w
3w
4░ ░ ░ ░ ░ ░ ░
t=1
► … … … … q
accept… … … …
t=2
t=T
Gibt es solch eine Rechnung auf der NTM?
Start(V
1,w)
Akz(V
T)
Gibt es so eine Belegung?
Succ(V
1,V
2) Succ(V
2,V
3)
Succ(V
T-1,V
T)
C o n fig (V
1) ∧ … ∧ C o n fig (V
T)
Martin Ziegler 19
Komplexitätstheorie
Config(V), Start w , Akz
Abkürzung uniq(x
1,…,x
r) := (x
1∨ … ∨ x
r) ∧ ∧i≠j ( ¬ x
i ∨ ¬ x
j)
wahr ⇔ genau ein x
iist wahr , Länge O(r
2).
Config(V) :=
uniq(h
1,…,h
S) ∧ uniq(z
q:q ∈ Q) ∧ ∧s≤S uniq(d
s,a:a ∈ Γ)
hat Länge O(S
2+|Q|
2+S · | Γ |
2) = O(S
2), da NTM N fixiert.
Start
w(V) := h
1∧ z
s∧ d
1,w1
∧ … ∧ d
n,wn
∧ d
n+1,B∧ … ∧ d
S,BAkz(V) := z
q+
wahr für Belegungen, die eine Konfiguration beschreiben V = { d
s,a: a ∈ Γ , s ≤ S } ∪ { h
s: s ≤ S } ∪ { z
q: q ∈ Q } d
s,a: „in Bandzelle #s steht das Symbol a“
h
s: „Kopf steht auf Zelle #s“ z
q: „N ist in Zustand q“
Start
w(V) : wird wahr genau für Belegung, die q
0w beschreibt.
Länge O(S)
Komplexitätstheorie
nicht in KNF!
aber äquivalent umformulierbar
Succ(V t ,V t+1 )
Abkürzungen: „x=y“ ⇔ (x ∨ ¬ y) ∧ ( ¬ x ∨ y)
γ
s,q,a,p,b,L:= „(h
s,t∧ z
q,t∧ d
s,a,t) ⇒ (z
p,t+1∧ d
s,b,t+1∧ h
s-1,t+1)“
γ
s,q,a,p,b,N(V
t,V
t+1) und γ
s,q,a,p,b,R(V
t,V
t+1) analog
wahr genau für die Belegungen, die aufein- anderfolgende Konfigurationen beschreiben
ds,a,t: „Nach Schritt t steht in Bandzelle s das Symbol a“
hs,t : „Nach Schritt t steht der Kopf auf Zelle #s“
a∈Γ, q∈Q s=1..S
„Kopf steht auf Bandzelle #s oder Zelle #s bleibt unverändert“
Succ (V
t,V
t+1) := ∧s≤S ∧
a∈Γ ( h
s,t ∨ „d
s,a,t = d
s,a,t+1“ )
∧ ∧s≤S ∨
(p,b,X)∈δ(q,a) γ
s,q,a,p,b,X(V
t,V
t+1)
Martin Ziegler
Komplexitätstheorie
Jeweils berechenbar aus w in polynom. Zeit
Config(Vt) : wird wahr genau für die Belegungen von Vt , die eine Konfiguration beschreiben.
Succ(Vt, Vt+1) : wird wahr genau für die Belegungen von Vt ∪ Vt+1, die Konfigurationen K und K´ beschreiben mit K ⊢ K´ .
Startw(V0) : wird wahr genau für Belegung, die q0w beschreibt.
Akz(VT) wahr für Belegung, die einen akz. Endzustand beschreibt
Zusammenfassung des Beweises
N akzeptiert w ⇔ Φ w ist erfüllbar
Φ
w(V
0,..,V
T) := Config(V
0) ∧ Config(V
1) ∧ … ∧ Config(V
T)
∧ Start
w(V
0) ∧ Succ(V
0,V
1) ∧ … ∧ Succ(V
T-1,V
T) ∧ Akz(V
T)
Berechenbar in polynom. Zeit und gilt:
Komplexitätstheorie
NP-vollständige Probleme
Def. (Erinnerung): A heißt NP -vollständig, falls A ∈ NP und für jedes L ∈ NP gilt: L ≼≼ ≼ ≼
pA
Cook-Levin: SAT ist NP -vollständig.
Wissen: CLIQUE ≡
pIS ≼ ≼≼ ≼
pSAT ≡
p3SAT ≼≼ ≼ ≼
pIS.
⇒ auch CLIQUE, IS, 3SAT sind NP -vollständig
Lemma. Sei A NP -vollständig und gelte:
• B ∈ NP
• A ≼ ≼≼ ≼
pB
Dann ist auch B ist NP -vollständig. P
NP c
NP
Martin Ziegler 23
Komplexitätstheorie
A NP-vollständig, B ∈ NP und A ≼≼≼≼p B. Dann auch B NP-vollständig.