Inhalt 1 Einführung 2 Automatentheorie und Formale Sprachen 3 Berechenbarkeitstheorie 4 Komplexitätstheorie Einführung Die Komplexitätsklassen P und NP NP-Vollständigkeit Weitere NP-vollständige Probleme Platzkomplexität Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 254 Schwere Probleme in NP Ziel: Charakterisierung/Identifizierung von schweren“ Problemen in NP ” Idee: Sprache L 0 ist schwerer als L, wenn sich L in poly. Zeit auf L 0 reduzieren lässt Definition 176. Seien L ⊆ Σ∗ und L 0 ⊆ Γ ∗ Sprachen. Eine Reduktion f von L auf L 0 heißt P-Reduktion (oder polynomielle Reduktion, falls f in Polynomialzeit berechenbar ist und w ∈L ⇔ f (w) ∈ L 0 . Falls es eine P-Reduktion von L auf L 0 gibt, heißt L auf L 0 P-reduzierbar (oder polynomiell reduzierbar). Notation: L ≤P L 0 Beobachtung. 1 Falls L ≤P L 0 und L 0 ∈ P, gilt L ∈ P. 2 Falls L ≤P L 0 und L 0 ∈ NP, gilt L ∈ NP. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 255 Das Erfüllbarkeitsproblem – SAT boolesche Variablen: können Werte in {0, 1} annehmen boolesche Operationen: UND (∧), ODER (∨), NICHT (¬), wobei 0∧0=0 0∨0=0 0∧1=0 0∨1=1 1∧0=0 1∨0=1 1∧1=1 1∨1=1 ¬0 = 0 = 1 ¬1 = 1 = 0 Literal: boolesche Variable x oder ihre Negation ¬x (x ) boolesche Formel (aussagenlogische Formel): syntaktisch korrekter Ausdruck, der aus Literalen und ∨, ∧ und ¬ besteht, z.B. φ = (x ∨ y ) ∧ (x ∨ z ) Eine boolesche Formel ist erfüllbar, falls es eine Belegung der Variablen gibt, so dass die Formel 1 ergibt (wahr wird) (z.B. x = 0, y = 1 und z = 0 im Beispiel oben). LSAT = {hφi | φ ist erfüllbare boolesche Formel} Klausel: Literale, die durch ∨ verknüpft sind, z.B. x ∨ y ∨ z Eine boolesche Formel liegt in konjunktiver Normalform (cnf) vor, falls sie aus Klauseln besteht, die durch ∧ verknüpft sind. Eine boolesche Formel liegt in k -konjunktiver Normalform vor, falls sie in konjunktiver Normalform vorliegt und jede Klausel aus genau k Literalen besteht (Beispiel ist eine 2-cnf Formel). Lk-SAT = {hφi | φ ist erfüllbare k -cnf Formel} Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 256 Beispiel: L3-SAT ≤P LCLIQUE Satz 177 (CLIQUE ist schwerer als 3-SAT). L3-SAT ist auf LCLIQUE P-reduzierbar. Beweis: Sei φ eine 3-cnf Formel mit k Klauseln: φ = (a1 ∨ b1 ∨ c1 ) ∧ (a2 ∨ b2 ∨ c2 ) ∧ · · · ∧ (ak ∨ bk ∨ ck ) . Die Reduktion f konstruiert eine Zeichenkette hG, k i, wobei G ein ungerichteter Graph ist. Die Knoten V von G bestehen aus k Klassen von jeweils 3 Knoten V = V1 ∪ . . . ∪Vk und die Klasse Vi entspricht der Klausel ai ∨ bi ∨ ci , wobei die Knoten von Vi mit den Literalen der entsprechenden Klausel markiert werden. Paare innerhalb von einer Klasse Vi sind nicht benachbart. Knoten mit negierter Marke (x` und x` ) sind nicht benachbart. Alle anderen Kanten sind in G vorhanden. Offensichtlich ist f in Polynomialzeit berechenbar. Bleibt zu zeigen, dass φ erfüllbar ist genau dann, wenn G eine k -Clique hat. Sei also φ erfüllbar. In einer erfüllbaren Variablenbelegung ist mindestens ein Literal jeder Klausel wahr“ ” (hat Wert 1). D.h. für alle i = 1, . . . , k gibt es mindestens einen Knoten, u i , der mit einem wahren“ ” Literal markiert ist. Wir behaupten {u1 , . . . , uk } ist eine k -Clique in G. Dies folgt, da für i 6= j die Knoten ui und uj in unterschiedlichen Klassen liegen; da ui und uj mit einem wahren“ Literal markiert sind, können die Markierungen nicht der selben ” Variable in negierter und nicht negierter Form entsprechen. Sei also nun {u1 , . . . , uk } eine k -Clique in G. Dann liegt jeder der Knoten in einer anderen Knotenklasse Vi . Wir definieren nun eine erfüllende Belegung von φ, in dem wir die Variablen so belegen, dass die Literale, die u1 , . . . , uk markieren wahr“ sind. Eine solche Belegung existiert tatsächlich, da {ui , uj } eine ” Kante der Clique ist und somit die Markierungen dieser beiden Knoten nicht von derselben Variablen in negierter und nicht negierter Form sein können. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 257 NP-Vollständigkeit Definition 178. Sei L ⊆ Σ∗ eine Sprache. 1 L heißt NP-schwer, falls L 0 ≤P L für alle L 0 ∈ NP. 2 L heißt NP-vollständig, falls L NP-schwer ist und L ∈ NP. Lemma 179. Falls es eine NP-schwere Sprache L mit L ∈ P gibt, dann gilt P = NP. Beweis: Sei L ∈ P eine NP-schwere Sprache. Dann gilt für alle Sprachen L 0 ∈ NP L 0 ≤P L , und somit L 0 ∈ P. Frage Gibt es überhaupt NP-vollständige Probleme? Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 258 Satz von Cook und Levin Satz 180 (Cook’71 & Levin’73). LSAT ist NP-vollständig. Beweis: 1 LSAT ist in NP: Die folgende Maschine erkennt in polynomieller Zeit, ob eine gegebene Formel φ erfüllbar ist oder nicht. 1 2 3 4 5 INPUT(φ) Scanne Eingabe und ermittle die Anzahl der Variablen in φ Rate nichtdeterministisch eine erfüllende Belegung Teste, ob die geratene Belegung tatsächlich eine Lösung ist IF ja“ THEN OUTPUT(1) ELSE OUTPUT(0) ” Offensichtlich gibt es einen akzeptierenden Berechnungspfad, wenn φ berechenbar ist. Alle Berechnungspfade nach dem Raten sind deterministisch und benötigen O(|hφi|) Rechenschritte. Im Hauptteil des Beweises, müssen wir nun zeigen, dass LSAT NP-schwer ist. Sei also L eine beliebige Sprache in NP über einem Alphabet Σ und M = (Z , Σ, Γ, δ, z0 , , E ) eine akzeptierende polynomielle (möglicherweise nichtdeterministische) 1-Band Turingmaschine, die L erkennt, d.h. T (M) = L. O.B.d.A. sei die Laufzeit von L durch nk beschränkt. Ziel: Für jedes w = (w1 , . . . , wn ) ∈ Σ∗ soll eine Formel φw konstruiert werden, so dass hφw i ∈ LSAT ⇔ w ∈ L, (14) wobei die Konstruktion in Polynomialzeit möglich sein muss . Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 259 Hilfslemma Lemma 181. Für jedes m ∈ N und boolesche Variablen x1 , . . . , xm , gibt es eine boolesche Formel ψ = ψ(x1 , . . . , xm ), so dass ψ genau dann den Wahrheitswert 1 erhält, wenn genau eine der Variablen mit 1 belegt wird. Die Formel hat die Größe O(m2 ). Beweis: Man wähle ψ= m _ i=1 xi ! 0 ∧@ m−1 ^ m ^ i=1 j=i+1 1 x i ∨ x j A . Die erste Teilformel wird genau dann wahr, wenn mindestens eine Variable wahr ist. Die zweite Teilformel wird wahr, wenn es kein Paar von Variablen gibt, in dem beide Variablen wahr sind. Die Größe ist offensichtlich quadratisch in m – der Anzahl der Variablen. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 260 Variablen von φw 2 Konstruktion von φw : Die boolesche Formel φw besteht aus folgenden Variablen: Variable zt,z pt,i bt,i,γ Indizes Bedeutung k t = 0, 1, . . . , n z∈Z t = 0, 1, . . . , nk i = −nk , . . . , nk t = 0, 1, . . . , nk i = −nk , . . . , nk γ∈Γ zt,z = 1 gdw. nach t Schritten ist M in Zustand z pt,i = 1 gdw. nach t Schritten ist M’s Schreib-Lesekopf an i-ter Position bt,i,γ = 1 gdw. nach t Schritten ist γ auf Bandposition i Die Formel φw ist eine Konjugation von Teilformeln R, A, E, U1 und U2 , d.h. φw = R ∧ A ∧ E ∧ U 1 ∧ U 2 . Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 261 Teilformel: Randbedingung Randbedingung Bedeutung: zu jedem Zeitpunkt t gilt: es gibt genau einen Zustand z ∈ Z = {z0 , . . . , z` }, so dass zt,z wahr ist; es gibt genau eine Bandposition i, so dass pt,i wahr ist; für jede Bandposition i gibt es genau ein γ ∈ Γ = {γ1 , . . . , γm }, so dass bt,i,γ wahr ist. k k « n n „ ^ ^ ` ` ´ ` ´ ´ ψ bt,i,γ1 , . . . , bt,i,γm ψ zt,z0 , . . . , zt,z` ∧ ψ pt,−nk , . . . , pt,nk ∧ , R= t=0 i=−nk wobei ψ(. . . ) durch das Hilfslemma gegeben ist. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 262 Teilformeln: Anfangs- und Endbedingung Anfangsbedingung Bedeutung: Startkonfiguration (ε, z0 , w1 . . . wn ) A = z0,z0 ∧ p0,1 ∧ n ^ b0,j,wj ∧ j=1 0 ^ j=−nk k b0,j, ∧ n ^ b0,j, j=n+1 Endbedingung Bedeutung: Endzustand z ∈ E wird erreicht k E= n _ _ zi,z t=1 z∈E Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 263 Teilformeln: Übergangsbedingungen Übergang U1 Bedeutung: Falls zt,z ∧ pt,i ∧ bt,i,γ den aktuellen Zustand beschreibt (wahr ist), dann muss einer der Übergänge gemäß δ wahr sein: k U1 = n ^ ^ k n ^ ^ t=1 z∈Z i=−nk γ∈Γ “ ” _ ¬ zt,z ∧ pt,i ∧ bt,i,γ ∨ wobei y∗ (z 0 ,γ 0 ,y)∈δ(z,γ) “ zt+1,z 0 ∧ pt+1,i+y∗ ∧ bt+1,i,γ 0 ” ! , −1, falls y = L, = 0, falls y = N, 1, falls y = R. Übergang U2 Bedeutung: Bandfelder auf denen der Lese-Schreibkopf nicht steht, dürfen nicht verändert werden. « nk nk ^ ^ ^„ ` ´ U2 = ¬ ¬ pt,i ∧ bt,i,γ ∨ bt+1,i,γ t=1 i=−nk γ∈Γ Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 264 Beweis von Satz 180 – Finale 3 Beweis von (14): ⇒“ ” Sei hφw i ∈ LSAT . Fixiere eine erfüllende Belegung von φw . ⇒ R ist erfüllt ⇒ und für jedes t = 0, 1, . . . , n k und alle z ∈ Z , i = −nk , . . . , nk und γ ∈ Γ beschreiben die Variablenwerte zt,z , pt,i und bt,iγ eine Konfiguration Kt von M ⇒ A ist erfüllt ⇒ K0 = (ε, z0 , w ) ⇒ U1 und U2 sind erfüllt ⇒ Kt `M Kt+1 für alle t = 0, . . . , nk − 1 ⇒ E ist erfüllt ⇒ es existiert s (0 ≤ s ≤ nk ), so dass zs,z = 1 für z ∈ E ⇒ w ∈ T (M) = L. ⇐“ ” Sei w ∈ L. ⇒ es existiert s (0 ≤ s ≤ nk ) und es existieren Konfigurationen K0 , . . . , Ks , so dass (ε, z0 , w ) = K0 `M K1 `M · · · `M Ks , (15) wobei Ks eine Endkonfiguration ist. ⇒ Wenn wir die Variablen von φw entsprechend ihrer Bedeutung belegen, dann gilt: A ist erfüllt wegen K0 ; R, U1 und U2 sind erfüllt, da (15) eine Berechnung von M darstellt; E ist erfüllt, da Ks eine Endkonfiguration ist. ⇒ φw ist erfüllbar⇒ hφw i ∈ LSAT . Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 265 Beweis von Satz 180 – Finale, Teil 2 Die Formel φw kann in polynomieller Zeit gewonnen werden , da: φw direkt aus der Beschreibung von M und w gewonnen werden kann, M eine feste TM ist und konstante Größe unabhängig von |w| = n hat, d.h. |Z | = O(1) und |Γ | = O(1), die Rechenzeit zur Berechnung von φw linear in der Länge von φw plus |w | ist und es gilt: |φw | = |R| + |A| + |E| + |U1 | + |U2 | = O(n3k ) + O(nk ) + O(nk ) + O(n2k ) + O(n2k ) = O(n3k ) . Bemerkung. Um die NP-Vollständigkeit von anderen Sprachen L ∈ NP zu zeigen, reicht es von nun an aus, LSAT auf L zu reduzieren. Beobachtung 182. Falls L NP-vollständig , L 0 ∈ NP und L ≤P L 0 ist, dann ist auch L 0 NP-vollständig. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 266 L3-SAT ist NP-vollständig Satz 183 (3-SAT ist NP-vollständig). L3-SAT ist NP-vollständig. Beweis: Offensichtlich ist L3-SAT ∈ NP, da sich eine geratene“ Lösung für ein 3-cnf Formel ” in polynomieller Zeit überprüfen/verifiziern lässt. Zu zeigen: LSAT ≤P L3-SAT Sei φ eine boolesche Formel. Plan: 1 Zunächst konstruieren wir (in Polynomialzeit) eine cnf-Formel ζ0 , so dass φ ist erfüllbar 2 ⇔ ζ0 ist erfüllbar. Danach wandeln wir ζ0 in eine 3-cnf Formel um, d.h. wir konstruieren (in Polynomialzeit) eine 3-cnf Formel ζ, so dass ζ0 ist erfüllbar Theoretische Informatik 2 (WS 2006/07) ⇔ ζ ist erfüllbar. Komplexitätstheorie / NP-Vollständigkeit 267 Beweis: LSAT ≤P L3-SAT – Konstruktion von ζ0 1 Umwandlungsschritt: Benutze Regeln von De Morgan: ¬(X ∧ Y ) = ¬X ∨ ¬Y , 2 ¬(X ∨ Y ) = ¬X ∧ ¬Y und ¬¬X = X , um eine Formel zu erhalten, in der alle Negationen ausschließlich auf Variablen angewandt werden. ⇒ Sei φ0 das Resultat. rekursiver Umwandlungsschritt: Falls φ0 ein Literal ist, dann ist ζ0 := φ0 . Falls φ0 = φ1 ∧ φ2 , dann wandle φ1 und φ2 rekursiv so um, dass φ1 = C1 ∧ · · · ∧ Ck und φ2 = D1 ∧ · · · ∧ D` , wobei Ci und Dj Klauseln sind, und setze ζ0 = C 1 ∧ · · · ∧ C k ∧ D 1 ∧ · · · ∧ D ` . Falls φ0 = φ1 ∨ φ2 , dann wandle φ1 und φ2 rekursiv so um, dass φ1 = C1 ∧ · · · ∧ Ck und φ2 = D1 ∧ · · · ∧ D` , wobei Ci und Dj Klauseln sind, und setze ζ0 = (y ∨ C1 ) ∧ · · · ∧ (y ∨ Ck ) ∧ (y ∨ D1 ) ∧ · · · ∧ (y ∨ D` ) , mit einer neuen Variable y . In jedem Umwandlungsschritt gilt: φ0 ist erfüllbar gdw. ζ0 erfüllbar ist. In ¬“- und ∧“-Schritten bleibt die Länge der Formel gleich. In einem ∨“-Schritt ” ” ” verlängert sich jede Klausel um bis zu ein Literal. Insgesamt gibt es höchstens |φ0 | = |φ| solche Schritte, d.h. |ζ0 | ≤ m|φ| = O(|φ|2 ). Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / NP-Vollständigkeit 268 Beweis: LSAT ≤P L3-SAT – Konstruktion von ζ Sei ζ0 = C1 ∧ · · · ∧ Cm die cnf-Formel aus dem ersten Umwandlungsschritt, so dass Ci Klauseln sind und φ ist erfüllbar ⇔ ζ0 ist erfüllbar. Falls Ci = xi,1 ∨ · · · ∨ xi,` mit ` > 3 führen wir neue Variablen yi,1 , . . . yi,`−3 ein und definieren Ci0 = (xi,1 ∨ xi,2 ∨ yi,1 ) ∧ (xi,3 ∨ yi,1 ∨ yi,2 ) ∧ (xi,4 ∨ yi,2 ∨ yi,3 ) . . . ∧ (xi,`−2 ∨ yi,`−4 ∨ yi,`−3 ) ∧ (xi,`−1 ∨ xi,` ∨ yi,`−3 ) 0 Beachte: Für jede Belegung von xi,1 , . . . , xi,` für die Ci nicht wahr ist, ist auch Ci nicht wahr, unabhängig von der Belegung von yi,1 , . . . , yi,`−3 . Falls Ci = xi,1 ∨ xi,2 ∨ xi,3 , dann setze Ci0 = Ci . Falls Ci = xi,1 ∨ xi,2 , dann führe eine neue Variable yi ein und setze Ci 0 = (Ci ∨ yi ) ∧ (Ci ∨ yi ). Falls Ci = xi,1 , dann führe eine neue Variable yi ein und setze Ci0 = (xi,1 ∨ yi ∨ yi ) ∧ (xi,1 ∨ yi ∨ yi ). Letztendlich setzen wir ζ = C10 ∧ C20 ∧ · · · ∧ Cm0 . Es gilt: ζ ist eine 3-cnf Formel mit |ζ| ≤ 6|ζ0 | und ζ0 ist erfüllbar Theoretische Informatik 2 (WS 2006/07) ⇔ ζ ist erfüllbar. Komplexitätstheorie / NP-Vollständigkeit 269 Inhalt 1 Einführung 2 Automatentheorie und Formale Sprachen 3 Berechenbarkeitstheorie 4 Komplexitätstheorie Einführung Die Komplexitätsklassen P und NP NP-Vollständigkeit Weitere NP-vollständige Probleme Platzkomplexität Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 270 NP-vollständige Probleme Erinnerung: LSAT ist NP-vollständig Satz von Cook & Levin L3-SAT ist NP-vollständig Satz 183 Ziel: NP-Vollständigkeit anderer Sprachen/Probleme zeigen Plan: P-Reduktionen von L3-SAT auf andere“ Sprachen z.B. da L3-SAT ≤P LCLIQUE ” Korollar 184 (Konsequenz von Satz 177). LCLIQUE ist NP-vollständig. Vereinfachung: Identifiziere Sprachen mit Entscheidungsproblemen: Sprache – LSAT Problem – SAT LSAT = {hφi | φ ist erfüllbare, boolesche Formel} Theoretische Informatik 2 (WS 2006/07) Gegeben: Gefragt: boolesche Formel φ Ist φ erfüllbar? Komplexitätstheorie / Weitere NP-vollständige Probleme 271 SET-COVER Problem: SET-COVER Gegeben: Gefragt: endliche Menge M, Teilmengen T1 , . . . , TkS⊆ M und eine Zahl n ≤ k Gibt es I ⊆ {1, . . . , k } mit |I| = n, so dass i∈I Ti = M? Satz 185. SET-COVER ist NP-vollständig. Beweis: SET-COVER∈ NP ist klar. Wir zeigen 3-SAT≤P SET-COVER. Sei φ = C1 ∧ · · · ∧ Cm eine 3-cnf Formel mit n Variablen. Ziel: Konstruiere SET-COVER-Instanz M, T1 , . . . , Tk , n, so dass φ erfüllbar ⇔ M, T1 , . . . , Tk , n ist ja“-Instanz von SET-COVER. ” Setze M = {1, 2, . . . , m, m + 1, . . . , m + n} und für i ∈ {1, . . . , n} sei Ti = {j | xi kommt in Cj vor} ∪ {m + i} Tn+i = {j | xi kommt in Cj vor} ∪ {m + i} SET-COVER-Instanz: M, T1 , . . . , T2n , n Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 272 φ erfüllbar ⇔ M, T1 , . . . , T2n , n ist ja“-Instanz ” ⇒“: Angenommen x1∗ , . . . , xn∗ ist eine erfüllende Belegung von φ. Setze ” I = {i | xi∗ = 1} ∪ {n + i | xi∗ = 0}. Dann gilt |I| = n und SET-COVER. S i∈I Ti = M. Also ist M, T1 , . . . , T2n , n eine ja“-Instanz von ” ⇐“: Nehme umgekehrt an, dass M, T1 , . . . , T2n , n eine ja“-Instanz ist. Sei S ” ” I ⊆ {1, . . . , 2n} so, dass i∈I Ti = M. Dann gibt es zu jedem j = 1, . . . , n ein i ∈ I mit m + j ∈ Ti . Da m + j nur in Tj und Tn+j enthalten ist, gilt i ∈ {j, n + j} ∩ I. Da |Ti ∩ {m + 1, . . . , m + n}| = 1 für alle i ∈ {1, . . . , 2n} gilt, und |I| = n ist, muss gelten |{j, n + j} ∩ I| = 1. Somit existiert für jedes j = 1, . . . , n genau ein i ∈ I mit m + j ∈ Ti und folgende Definition ist wohldefiniert: 1, falls i ≤ n xi∗ = 0, falls i > n . Dann ist x1∗ , . . . , xn∗ eine erfüllende Belegung von φ. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 273 SUBSET-SUM/RUCKSACK Problem: SUBSET-SUM Gegeben: Gefragt: Satz 186. Multimenge von natürliche Zahlen S und t ∈ N P Gibt es Untermultimenge Y ⊆ S, so dass y ∈Y y = t? SUBSET-SUM ist NP-vollständig. Beweis: Wir zeigten bereits SUBSET-SUM (genauer LSUBSET-SUM ) ist in NP. Wir reduzieren 3-SAT auf SUBSET-SUM. Sei φ = C1 ∧ · · · ∧ Ck eine 3-cnf Formel mit Variablen x1 , . . . , x` . Wir konstruieren eine passende“ SUBSET-SUM-Instanz. ” Die Multimenge S wird aus genau 2` + 2k Elementen y1 , z 1 , y 2 , z 2 , . . . , y ` , z ` und g1 , h1 , g2 , h2 , . . . , gk , hk bestehen. Im Dezimalsystem geschrieben hat jedes Element von S genau ` + k Stellen (inklusive möglicher führender Nullen). Jede der ` + k Stellen wird entweder 0 oder 1 sein, d.h.: yi = yi,1 . . . yi,` yi,`+1 . . . yi,`+k Theoretische Informatik 2 (WS 2006/07) wobei yi,j ∈ {0, 1} . Komplexitätstheorie / Weitere NP-vollständige Probleme 274 Beweis: SUBSET-SUM ist NP-vollständig – Teil 2 Definition von yi und zi : Für i = 1, . . . , ` und j = 1, . . . , `, ` + 1, . . . , ` + k setze 1, falls j = i oder falls j = ` + m und xi kommt in Cm vor yi,j = 0, sonst , 1, falls j = i oder falls j = ` + m und x i kommt in Cm vor zi,j = 0, sonst . Definition von gi und hi : Für i = 1, . . . , k setze . . 0} . gi = hi = 10k −i = 0 . . 0} 1 0 | .{z | .{z `+i−1 Definition von t: Setze k −i t=1 . . 1} 3 . . 3} . | .{z | .{z `-mal k -mal Dies definiert die SUBSET-SUM-Instanz S, t in Abhängigkeit von φ mit S = {y1 , z1 , y2 , z2 , . . . , y` , z` , g1 , h1 , g2 , h2 , . . . , gk , hk } Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 275 Beweis: SUBSET-SUM ist NP-vollständig – Teil 3 Es bleibt zu überprüfen, dass φ ist erfüllbar ⇔ S, t ist eine ja“ Instanz von SUBSET-SUM ” ⇒“: Angenommen x1∗ , . . . , x`∗ erfüllt φ. Dann setzen wir ” Y 0 := {yi | xi∗ = 1} ∪ {zi | xi∗ = 0} . Dadurch erhalten wir: X y = 1 . . . 1 γ1 . . . γ k , | {z } y∈Y 0 `-mal γj = Anzahl wahrer Literale in Cj unter der Belegung x1∗ , . . . , x`∗ . Also hat Y := Y 0 ∪ gj | γj ∈ {1, 2} ∪ hj | γj = 1 die gesuchten Eigenschaften. ⇐“: Sei Y ⊆ S eine Multimenge, die zu t summiert. ” P P Beobachtung: Für alle j = 1, . . . , k + ` gilt: `i=1 (yi,j + zi,j ) + ki=1 (gi,j + hi,j ) ≤ 5 und wir müssen somit keine Überträge betrachten und können jede der ` + k Stellen einzeln analysieren. wobei Um genau eine 1 in den ersten ` Stellen zu erhalten, muss für i = 1, . . . , ` gelten: entweder y i ∈ Y oder zi ∈ Y aber nicht beides. Dementsprechend setzen wir für i = 1, . . . , ` 1, falls yi ∈ Y , ∗ xi = 0, sonst, d.h. hier zi ∈ Y . Tatsächlich ist dies eine erfüllende Belegung von φ, da in jeder der letzten k Stellen (welche den Klauseln entsprechen) der Beitrag“ von gi und hi höchstens 2 sein kann und somit ein Beitrag“ von mindestens 1 ” ” von einem yi oder zi aus Y stammen muss. Sollte dies von yi ∈ Y stammen, dann kommt xi in der der ∗ Stelle entsprechenden Klausel Cj vor und die Klausel ist wahr, da wir xi = 1 gesetzt haben. Die analoge Betrachtung für zi und xi liefert die Behauptung. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 276 Färben von Graphen ungerichteter Graph G = (V , E) f : V → N ist Färbung von G, wenn für alle {v , w } ∈ E gilt: f (v ) 6= f (w ). chromatische Zahl: χ(G) := min |f (V )| | f ist eine Färbung von G 3-COL/3-Färbbarkeit Gegeben: Gefragt: Graph G = (V , E) Ist χ(G) ≤ 3? Satz 187. 3-COL ist NP-vollständig. Beweis: Da eine geratene 3-Färbung in polynomieller Zeit überprüft werden kann, ist 3-COL in NP. Es ist zu zeigen, dass 3-COL NP-schwer ist. Wir zeigen 3-SAT≤P 3-COL. Sei φ = C1 ∧ · · · ∧ Ck eine 3-cnf Formel mit Klauseln Cj = aj ∨ bj ∨ cj , wobei aj , bj und cj Literale der Variablen x1 , . . . , xn sind. Wir definieren einen Graphen G = Gφ der genau dann 3-färbbar ist, wenn φ erfüllbar ist. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 277 Beweis: 3-COL ist NP-vollständig – Literalengraph GL x1 1 x2 x3 xn ··· GL : x1 0 x2 x3 xn Für jede 3-Färbung f von GL gilt: f (xj ) 6= f (x j ); f (xj ) ∈ {f (0), f (1)} und f (x j ) ∈ {f (0), f (1)}; ⇒ f kann als Belegung interpretiert werden Umgekehrt kann auch jede Belegung der Variablen x1 , . . . , xn als 2-Färbung der Knoten x1 , . . . , xn , x 1 , . . . , x n interpretiert werden, welche sich zu einer 3-Färbung von GL erweitern lässt. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 278 Beweis: 3-COL ist NP-vollständig – Klauselgraphen Gj Klauselgraph Gj für Cj = aj ∨ bj ∨ cj ∨-Hilfsgraph/OR-Gadget 1 x y cj aj ∨ b j z Für alle 3-Färbungen f mit f (y) = f (z) gilt: aj bj f (x) = f (y) = f (z). die Knoten aj , bj , cj und 1 in Gj sind dieselben, wie im Literalengraphen GL 3-Färbung f von GL lässt sich genau dann auf GL ∪ Gj erweitern, wenn f (1) = f (aj ) oder f (1) = f (bj ) oder f (1) = f (cj ), d.h. mit der Interpretation f (1) = wahr“ ” entspricht jede 3-Färbung von GL ∪ Gj einer erfüllenden Belegung von Cj . Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 279 Beweis: 3-COL ist NP-vollständig – Finale Wir definieren Gφ = GL ∪ G1 ∪ · · · ∪ Gk , wobei V (Gφ ) = V (GL ) ∪ V (G1 ) ∪ · · · ∪ V (Gk ) und E(Gφ ) = E(GL ) ∪ E(G1 ) ∪ · · · ∪ E(Gk ) . ⇒ |V (Gφ )| = 3 + 2n + 5k und |E(Gφ )| = 3 + 3n + 10k polynomielle Konstruktion Es gilt: φ ist erfüllbar ⇔ Gφ ist 3-färbbar ⇒“ Sei x1∗ , . . . , xn∗ eine erfüllende Belegung, dann lässt sich f : V (Gφ ) → {0, 1, black} ” mit f (1) = 1, f (0) = 0 und f (xi ) = xi∗ für i = 1, . . . , n zu einer 3-Färbung von Gφ erweitern, da für jedes j = 1, . . . , k Cj wahr“ belegt ” wurde und somit entweder f (aj ) = 1 oder f (bj ) = 1 oder f (cj ) = 1 gelten muss. ⇐“ Sei f eine 3-Färbung, dann ist ” 1, falls f (xi ) = f (1) ∗ xi = 0, sonst. eine erfüllende Belegung. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 280 Hamiltonsche Pfade und verwandte Probleme Problem – HAMPATH Gegeben: Gefragt: gerichteter Graph G = (V , A) mit A ⊆ V × V und zwei Knoten s, t ∈ V Gibt es in G einen s-t-Pfad der jeden Knoten aus V genau einmal enth ält? Problem – HAMCYCLE Gegeben: Gefragt: gerichteter Graph G = (V , A) mit A ⊆ V × V Gibt es in G einen gerichteten Kreis der jeden Knoten aus V genau einmal enth ält? Problem – UHAMCYCLE Gegeben: Gefragt: ` ´ ungerichteter Graph G = (V , E ) mit E ⊆ V2 Gibt es in G einen Kreis der jeden Knoten aus V genau einmal enth ält? Problem – TSP/Traveling-Salesman-Prolem/Problem des Handlungsreisenden Gegeben: Gefragt: Interpretation: n × n Matrix M = (mi,j ) ∈ Rn×n und Zahl k ≥0 P Existiert Permutation π : [n] → [n] mit Sπ := mπ(n),π(1) + n−1 i=1 mπ(i),π(i+1) ≤ k ? n Städte, mij – Abstand“ zwischen i und j, π – Rundreise, Sπ – Länge der Rundreise ” Satz 188. 3-SAT ≤P HAMPATH ≤P HAMCYCLE ≤P UHAMCYCLE ≤P TSP. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 281 Beweis: HAMPATH ≤P HAMCYCLE ≤P UHAMCYCLE ≤P TSP HAMPATH ≤P HAMCYCLE Für gegebenen Graphen G = (V , A), s, t, definiere G 0 = (V 0 , A 0 ) mit V 0 := V ∪ {uneu } A 0 := A ∪ {(t, uneu ), (uneu , s)}. und Es gilt: G hat s-t-Hamiltonpfad gdw. G 0 einen Hamiltonkreis enthält HAMCYCLE ≤P UHAMCYCLE ∀u ∈ V u uin uout u0 =⇒ UHAMCYCLE ≤P TSP Für gegebenen Graphen G = (V , E) sei o.B.d.A. V = {1, . . . , n}. Betrachte die TSP Instanz: 1, falls {i, j} ∈ E mit k = n. mi,j := 2, sonst. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 282 Beweis: 3-SAT ≤P HAMPATH Beweis: In Satz 171 zeigten wir bereits, dass HAMPATH (bzw. LHAMPATH ) in NP ist. Es bleibt zu zeigen, dass HAMPATH NP-schwer ist. Wir zeigen 3-SAT≤P HAMPATH. Sei φ = C1 ∧ · · · ∧ Ck eine 3-cnf Formel mit Klauseln Cj = aj ∨ bj ∨ cj , wobei aj , bj und cj Literale der Variablen x1 , . . . , xn sind. Wir definieren einen Graphen G = Gφ mit zwei ausgezeichneten Knoten s und t der genau dann einen hamiltonschen s-t-Pfad besitzt, wenn φ erfüllbar ist. Jede Klausel repräsentieren wir durch einen Knoten Cj (j = 1, . . . , k ) und jede Variable xi (i = 1, . . . , n) repräsentieren wir durch einen Graphen Xi : si xi bi,1 li,1 ri,1 bi,2 ri,2 li,2 ... bi,k li,k ri,k bi,k+1 xi si+1 ⇒ V (Gφ ) = k [ {Cj } ∪ j=1 Theoretische Informatik 2 (WS 2006/07) n+1 [ i=1 {si } ∪ n [ {xi , xi , bi,k+1 } ∪ i=1 n [ k [ {bi,j , li,j , ri,j } i=1 j=1 Komplexitätstheorie / Weitere NP-vollständige Probleme 283 Beweis: 3-SAT ≤P HAMPATH – Klauselgraphen Beachte: Der Knoten si (2 ≤ i ≤ n − 1) kommt sowohl im Graphen Xi−1 , als auch in Xi S vor. D.h. ni=1 Xi ist zusammenhängend. Nun schließen wir die Klauselknoten an“. ” x ist in Cj “: Füge die Kanten (li,j , Cj ) und (Cj , ri,j ) hinzu: ” i bi,j ... li,j ri,j Cj ... x ist in Cj “: Füge die Kanten (ri,j , Cj ) und (Cj , li,j ) hinzu: ” i bi,j ... li,j ri,j Cj ... Das definiert den Graphen Gφ . Da |V (Gφ )| = O(nk), ist die Größe von Gφ polynomiell in der Größe von φ. Darüberhinaus lässt sich Gφ in polynomieller Zeit konstruieren. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 284 Beweis: 3-SAT ≤P HAMPATH – Finale Abschließend zeigen wir: φ ist erfüllbar ⇔ ∃s-t-Hamiltonpfad in Gφ , wobei s = s1 und t = sn+1 ⇒“ Sei x1∗ , . . . , xn∗ eine erfüllende Belegung. Sei s1 = v1 , v2 , . . . , vn+1+3(k +1) = sn+1 S ” der eindeutige Hamiltonpfad in ni=1 Xi für den gilt: αi < β i ⇔ xi∗ = 1 , wobei vαi = xi und vβi = x i seien. S Wir erweitern diesen Hamiltonpfad in ni=1 Xi zu einen Hamiltonpfad in Gφ , indem wir für jede Klausel Cj ein wahres“ Literal aj festhalten und für j = 1, . . . , k den ” Pfad um die Kanten (li,j , Cj ), (Cj , ri,j ), falls aj = xi (ri,j , Cj ), (Cj , li,j ), falls aj = x i erweitern. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 285 Beweis: 3-SAT ≤P HAMPATH – Finale, Teil 2 ⇐“ Angenommen es gibt einen s1 -sn+1 -Hamiltonpfad in Gφ . Wir sagen der Pfad ist normal, falls ” für alle 1 ≤ i < j ≤ n gilt, dass die Knoten aus Xi vor den Knoten aus Xj auf dem Hamiltonpfad besucht werden. D.h. in einem normalen Pfad werden alle Knoten von Xi fast hintereinander besucht, nur die Klauselknoten können sich dazwischenschieben“. Von einem normalen Pfad können wir ” leicht eine erfüllende Belegung von φ ablesen, wir setzen 1, falls xi vor xi auf dem Pfad liegt, xi∗ = 0, sonst. Von der Konstruktion von Xi folgt dann, dass Cj auf dem Pfad zwischen Knoten aus Xi liegt, dann gilt entweder xi , . . . , li,j , Cj , ri,j , . . . , xi ist ein Teilpfad ⇒ xi kommt in Cj vor und xi∗ = 1 ⇒ Cj ist wahr oder umgekehrt xi , . . . , ri,j , Cj , li,j , . . . , xi ist ein Teilpfad ⇒ xi kommt in Cj vor und xi∗ = 0 ⇒ Cj ist wahr. Schließlich bleibt zu zeigen, dass es nur normale s1 -sn+1 -Hamiltonpfade in Gφ gibt. Die einzige Möglichkeit gegen die Normalität zu verstoßen besteht darin, dass wir einen Klauselknoten Cj von y ∈ V (Xi ) aus besuchen und von dort in den Teilgraphen Xi 0 mit i 0 6= i springen“. ” Sei y 0 der Knoten der unmittelbar vor y auf dem Hamiltonpfad liegt und seien z1 und z2 die nächsten“ beiden Knoten hinter“ y zwischen xi und xi auf der von y 0 verschieden Seite. Wir ” ” unterscheiden zwei Fälle. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 286 Beweis: 3-SAT ≤P HAMPATH – Finale, Teil 3 Fall 1 (z1 ∈ {bi,j , bi,j+1 }): D.h. z1 ist ein Pufferknoten. In diesem Fall ist z1 ausschließlich von y und z2 aus erreichbar. Da in einem Hamiltonpfad jeder Knoten genau einmal vorkommt und von x der Knoten Cj besucht wird, kann z1 nur noch von z2 aus besucht, aber dann nicht mehr verlassen werden. Dies widerspricht der Tatsache, dass der Hamiltonpfad in sn+1 6= z1 endet. Fall 2 (z2 ∈ {bi,j , bi,j+1 }): In diesem Fall gilt {y, z1 } = {li,j , ri,j } und z1 ist ausschließlich von y, Cj und z2 aus erreichbar. D.h. nachdem y und Cj auf dem Hamiltonpfad besucht wurden, muss z1 und danach z2 besucht werden, sonst lässt sich wie oben der Pfad nicht mehr zu einem Hamiltonpfad vollenden. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 287 Ganzzahlige lineare Programmierung Problem – IP/Ganzzahlige Programmierung Gegeben: Gefragt: ganzzahlige m × n Matrix A = (ai,j ) ∈ Zm×n und ganzzahliger Vektor b ∈ Zm Existiert ganzzahliger Vektor x ∈ Zn , so dass Ax ≥ b , Interpretation: wobei ≥ komponentenweise zu verstehen ist. Hat ein System linearer Ungleichungen eine ganzzahlige L ösung? Satz 189. 3-SAT≤P IP. Beweis: Seien φ = C1 ∧ · · · ∧ Ck eine 3-cnf Formel und x1 , . . . , xn die Variablen. Die Matrix A hat eine Spalte für jedes Literal xi und xi und wir können Ax ≥ b als eine Menge linearer Ungleichungen in den Literalen ansehen. Für jedes i = 1, . . . , n haben wir die 4 Ungleichungen xi + x i ≥ 1 xi ≥ 0 −xi − xi ≥ −1 xi ≥ 0 Diese 4 Ungleichungen sind genau dann für ganzzahlige xi und xi erfüllt, wenn einer der beiden den Wert 0 und das andere den Wert 1 hat. Für jede Klausel Cj = aj ∨ bj ∨ cj fügen wir dann noch die Ungleichung aj + b j + cj ≥ 1 hinzu. Dann entspricht die Lösung des IP einer erfüllenden Belegung von φ. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 288 Bemerkungen zu IP Bemerkung (IP ist NP-vollständig). Es ist nicht ganz offensichtlich, dass IP in NP ist. Wir können zwar eine Lösung raten, aber a priori ist nicht klar, ob eine solche Lösung polynomiell in der Länge der Eingabe von A und b ist. Mit elementaren Methoden aus der linearen Algebra lässt sich zeigen, dass, wenn eine IP-Instanz eine Lösung hat, dann hat es auch eine deren Codierung polynomiell in der Länge von hA, bi ist und mit dem letzten Satz folgt, IP ist NP-vollständig. Bemerkung (LP ist in P). Beachte: Wenn nicht verlangt wird, dass die Lösung x der IP-Instanz ganzzahlig ist, dann spricht man von einem sogenannten LP/linearen Programm. Für solche Probleme sind polynomielle Algorithmen bekannt. Theoretische Informatik 2 (WS 2006/07) Komplexitätstheorie / Weitere NP-vollständige Probleme 289