Wiederholung SAT ist NP-vollständig Reduktion mit verb

Werbung
Wiederholung
SAT ist NP-vollständig
Satz von Cook: SAT ist NP-vollständig.
2. ∀L∈NP: LpSAT:
Sei L∈NP gegeben.
• Der Satz vereinfacht weitere
NP-Vollständigkeitsbeweise.
• SAT∈NP haben wir schon gezeigt.
Wir wissen nur: Für L gibt es eine TM, die
• p(n) zeitbeschränkt ist,
• stereotyp ist,
• nichtdeterministisch mit Zufallsbits
Z(1),...,Z(p(n)) arbeitet.
220
Reduktion mit verb. Komponenten
221
Codierung
Sei Q={q0,...,qk-1} u. Γ={a1,...,am} mit am=B.
Idee:
• Für jeden Zeitpunkt t∈{0,...,p(n)}
- den Zustand der TM,
- den Bandinhalt und
- das verwendetes Zufallsbit
durch boolesche Variablen codieren.
• Klauseln konstruieren, die nur dann erfüllt
sind, wenn
- alle Rechenschritte korrekt sind
- am Ende akzeptiert wird.
Variablen Q(i,t) mit 0ik-1 und 0tp(n).
Q(i,t)=1 ⇔ Zustand nach t-ten Schritt ist qi.
Variablen S(i,t) mit 1im und 1tp(n).
S(i,t)=1 ⇔ Im t-ten Schritt wird ai gelesen.
Variablen Z(t) mit 1tp(n).
Im t-ten Schritt wird Zufallsbit Z(t) verwendet.
222
223
Bedingungen an akzept. Rechnung
Letzte Konfiguration akzeptierend
1. Letzte Konfiguration ist akzeptierend.
2. Variablen stellen Konfigurationen dar.
3. Beschreibung für Zeitpunkt t ergibt sich
durch Anwendung der Übergangsfunktion
aus Beschreibung für Zeitpunkt t-1.
4. Variablen für t=0 repräsentieren
Anfangskonfiguration.
Klausel:
Hierbei nutzen wir aus, dass die TM in
akzeptierenden Zuständen endlos
weiterrechnet.
224
225
Variablen codieren Konfigurationen
Codierung d. Bed. „genau eine 1“
Zu jedem Zeitpunkt muss gelten:
• TM ist in genau einem Zustand.
→Für jedes t∈{0,…,p(n)} gibt es genau ein i
mit Q(i,t)=1.
• TM liest genau ein Zeichen.
→Für jedes t∈{1,…,p(n)} gibt es genau ein i
mit S(i,t)=1.
Variablen Y1,...,Yn:
• Klausel, die sicherstellt, dass nicht alle
Variablen gleich 0 sind:
Y1∨...∨Yn
• Klauseln, die sicherstellen, dass höchstens
eine Variable gleich 1 ist.
Für jedes {i,j}: Yi∨Yj
→ Insgesamt O(n2) Klauseln.
226
227
Variablen codieren Konfigurationen
Zu jedem Zeitpunkt muss gelten:
• TM ist in genau einem Zustand.
→Für jedes t∈{0,…,p(n)} gibt es genau ein i
mit Q(i,t)=1.
• TM liest genau ein Zeichen.
→Für jedes t∈{1,…,p(n)} gibt es genau ein i
mit S(i,t)=1.
⇒ Für jedes t genügen O(|Q|2) bzw. O(m2)
Klauseln (von Eingabelänge unabh.)
⇒ Insgesamt O(p(n)) Klauseln.
Variablen cod. korrekte Rechnung
• Zustand nach dem t-ten Rechenschritt und
das geschriebene Zeichen hängen ab von
– Zustand nach dem (t-1)-ten Rechenschritt,
also von Q(0,t-1),...,Q(k-1,t-1),
– dem t-ten Zufallsbit, also von Z(t),
– gelesenen Zeichen, also von
S(1,t),...,S(m,t),
• sind also Funktionen in k+m+1 Variablen.
• haben KNF mit 2k+m+1=O(1) Klauseln.
228
229
Welche Var. müssen korrekt sein?
Codierung d.Anfangskonfiguration
Sei N(t) der erste Zeitpunkt nach t, wo auf die
TM auf dieselbe Bandzelle wie in Schritt t
zugreift.
• Zustand nach dem t-ten Schritt:
Q(0,t),...,Q(k-1,t).
• Geschriebener Bandinhalt:
S(1,N(t)),...,S(m,N(t)) (falls N(t)p(n)).
• Zustand ist q0:
Q(0,0)=1, Q(i,0)=0 für alle i≠0.
Jede dieser Variablen kann durch KNF mit
O(1) Klauseln dargestellt werden.
• Auf dem Band steht an Positionen 0,...,n-1
die Eingabe x0,...,xn-1 (und sonst B=am).
t(j): erster Zeitpunkt, wo Pos. j gelesen wird.
Für j∈{0,...,n-1} und xj=ai : S(i,t(j))=1.
Für j∈{-p(n),...,-1,n,...,p(n)}: S(m,t(j))=1.
Alle diese Var. wie angegeben konstantsetzen.
230
231
Zusammenfassung
Korrektheit
• Insgesamt O(p(n)) Klauseln.
• Können in polyn. Zeit berechnet werden:
– Simuliere die Kopfbewegungen der
stereotypen TM, um t(j) und N(t) zu
berechnen.
– Dann können die Klauseln wie angegeben
berechnet werden.
1. Sei x∈L.
Dann gibt es eine akzeptierende Rechnung
der TM und somit eine Variablenbelegung,
die diese codiert.
Diese erfüllt alle Klauseln.
2. Sei eine erfüllende Belegung der Klauseln
bei Eingabe x gegeben.
Dann gibt es eine akzeptierende Rechnung
für x und somit ist x∈L.
Also haben wir LpSAT bewiesen.
232
233
Fazit
Bew. d. NP-Vollst. f. neue Probleme
Der Beweis war zwar lang und kompliziert. Die
Leserin und der Leser sollten aber noch einmal
die Beweisidee herausarbeiten und erst
zufrieden sein, wenn sie mit mir der Meinung
sind, dass die Beweisidee und der
Beweisgang einfach sind.
(Ingo Wegener, S. T51)
Sei ein neues Problem X gegeben.
Rezept:
1. Zeige X∈NP ist (meist einfach).
2. Suche ein geeignetes NP-vollständiges
Problem L für die Reduktion.
234
Literaturtipp: M.R. Garey, D.S. Johnson:
Computers and Intractability, A Guide to
the Theory of NP-Completeness, 1979.
Anhang mit ca. 500 NP-vollst. Problemen
235
Fortsetzung des Rezepts
Zusammenfassung
3. Entwirf eine polyn. berechenbare Funktion f.
4. Beweise, dass f die Red. LpX realisiert:
– x∈L ⇒ f(x)∈X.
– x∉L ⇒ f(x)∉X.
Wenn man keine Reduktion findet:
... vielleicht gibt es einen polyn. Algo für X.
... vielleicht findet man eine Idee für einen
solchen Algo, wenn man erkennt, woran die
Reduktion scheitert.
236
NP-vollst. u. NP-äquiv. Probleme
• Wenn ein NP-vollständiges Problem einen
polyn. Algo hat, haben alle NP-vollständigen
Probleme polyn. Algos und es ist P=NP.
• Wenn man beweisen kann, dass ein NPvollständiges Problem keinen polyn. Algo
hat, gilt dies für alle NP-vollst. Probleme und
es ist P≠NP.
• Es gibt viele praktisch wichtige NP-vollst.
Probleme.
• Da man für keines einen polyn. Algo kennt,
wird vermutet, dass P≠NP ist.
237
Bisher bewiesen (vgl. Folie 191)
Literatur: Kapitel K6.
Ziel:
• Weitere Probleme kennen lernen
(und damit weitere Basisprobleme für eigene
Reduktionen)
• Weitere Beispiele für
NP-Vollständigkeitsbeweise kennen lernen.
2-DM, NF, Meisterschaft ∈ P
Partition p BP
SAT =p 3-SAT
p IS =p Clique =p VC
p
DHC =p HC =p TSP2,∆,sym
NP-vollständig
238
239
Folgerung
Rundreiseprobleme [K6.2]
Die Optimierungsvarianten von IS, Clique, VC
und TSP sind NP-äquivalent.
Hamiltonpfad (HP, DHP)
Eingabe: (un)gerichteter Graph G=(V,E).
Frage: Gibt es in G ein Pfad, der jeden Knoten
genau einmal enthält?
Satz K6.2.1: DHP und HP sind NP-vollständig.
Beweis: Analog z. NP-Vollständigkeitsbeweis
für DHC und HC.
240
241
Spannbäume
Spezialfälle/Restriktionen
Bounded-degree spanning tree (BDST)
Eingabe: Unger. Graph G=(V,E), Zahl k.
Frage: Gibt es in G einen Spannbaum mit
maximalem Grad k?
Allgemein gilt:
Sei A∈NP, sei B NP-vollständig und ein
Spezialfall von A. Dann ist auch A NPvollständig.
Satz: BDST ist NP-vollständig.
Beweis: 1. BDST∈NP.
2. HP ist der Spezialfall k=2.
Hamiltonian Path
Restriktion
242
Beweis: Es ist BpA:
Spezialfall bedeutet: Eine Eingabe für A
entsteht aus einer Eingabe für B durch
Konstantsetzen einiger Teile. Diese Abbildung
ist als Funktion f der Reduktion geeignet.
243
3. Angabe der Funktion f.
Eingabe für 3-SAT: Variablen x1,...,xn,
Klauseln C1,...,Cm.
Zahlen der SSS-Eingabe:
- n+m Ziffern in Dezimaldarstellung.
- Für jede Variable xi zwei Zahlen ai und bi:
Rucksackprobleme [K6.3]
Subset Sum Problem (SSS)
Eingabe: Zahlen a1,...,an, G.
Frage: Gibt es eine Menge I⊆{1,...,n}, so
dass ∑i∈I=G?
ai
bi
Satz K6.3.1: SSS ist NP-vollständig.
Beweis: 1. SSS∈NP.
2. Reduktion von 3-SAT.
C1 C2
... Cm x1 x2
0 0
0 0
... Cj
1
1
...
0
0
xi
1
1
falls Cj xi enthält
Reduktion mit
verbundenen
Komponenten
falls Cj xi enthält
244
Für jede Variable xi:
ai
bi
C1 C2
... Cj
1
1
... Cm x1 x2
0 0
0 0
...
0
0
Für jede Klausel Cj:
dj
ej
C1 C2
1
1
... xn
0 0
0 0
b1
a3
a4
...
xi
... xn
d1
e2
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
C1
a2
... Cm x1 x2
0
C1 C2
3 3
245
... Cj
Summe G:
G
xi
e1
... Cm x1 x2
3 3 1 1
...
1
xi
1
... xn
1 1
246
C2
1
C3
1
C4
x1
1
1
1
1
1
2
3
x2
x3
x4
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
d4
1
3
... Cj
3 3
... xn
0 0
0 0
3
3
3
C1 = x1 ∨ x2 ∨ x3, C2 = x1 ∨ x2 ∨ x4,
C3 = x1 ∨ x3 ∨ x4, C4 = x2 ∨ x3 ∨ x4.
247
Korrektheit
Korrektheit
„⇒“: Sei z=(z1,...,zn) erfüllende Belegung.
Wähle die Zahl ai, falls zi=1,
bi, falls zi=0.
→ Summe für „Variablenstellen“ stimmt.
Da z erfüllend, sind in jedem Cj 1, 2 oder 3
Literale erfüllt.
1 erfülltes Literal: Wähle dj und ej.
2 erfüllte Literale: Wähle dj.
→ Summe für die „Klauselstellen“ stimmt.
„⇐“: Sei Auswahl der Zahlen mit Summe G
gegeben.
Falls ai gewählt: zi=1.
Falls bi gewählt: zi=0.
Behauptung: Dies ist erfüllende Belegung.
• ai und bi können nicht beide gewählt sein.
• Für jede Klausel Cj muss mindestens eine 1
von einem ai oder bi kommen
→ Zugehöriges Literal erfüllt.
248
249
Herunterladen