NP-vollst. u. NP-äquiv. Probleme 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. 235
Bisher bewiesen (vgl. Folie 189) Partition p BP SAT = p 3-SAT p p IS = p Clique = p VC DHC = p HC = p TSP 2,,sym NP-vollständig 2-SAT P (Übungen) 236
Folgerung Die Optimierungsvarianten von IS, Clique, VC und TSP sind NP-äquivalent. 237
Rucksackprobleme [K6.3] Subset Sum Problem (SSS) Eingabe: Zahlen a 1,...,a n, G. Frage: Gibt es eine Menge I {1,...,n}, so dass i I a i = G? Satz K6.3.1: SSS ist NP-vollständig. Beweis: 1. SSS NP. 2. Reduktion von 3-SAT. Reduktion mit verbundenen Komponenten 238
3. Angabe der Funktion f. Eingabe für 3-SAT: Variablen x 1,...,x n, Klauseln C 1,...,C m. Zahlen der SSS-Eingabe: - n+m Ziffern in Dezimaldarstellung. - Für jede Variable x i zwei Zahlen a i und b i : C 1 C 2... C j... C m... x i... a i 1 0 0 0 1 0 0 b i 1 0 0 0 1 0 0 x 1 x 2 falls C j x i enthält falls C j x i enthält x n 239
Für jede Variable x i : C 1 C 2... C j... C m... x i... a i 1 0 0 0 1 0 0 b i 1 0 0 0 1 0 0 Für jede Klausel C j : d j C 1 C 2... C j... C m 0 0 0 1 0 0 0 0 0 0 0 0 e j 0 0 0 1 0 0 0 0 0 0 0 0 Summe G: G C 1 3 x 1 x 1 x 1 x 2 x 2 x 2... x i... x n x n C 2... C j... C m... x i... 3 3 3 3 3 1 1 1 1 1 1 x n 240
C 1 x 4 b 1 1 1 1 a 2 1 1 a 3 1 1 1 1 a 4 1 1 1 1 1 1 1 2 3 2 1 1 1 d 1 e 1 1 e 2 d 4 1 3 C 2 3 C 3 3 C 4 3 x 1 1 x 2 1 x 3 1 1 C 1 = x 1 x 2 x 3, C 2 = x 1 x 2 x 4, C 3 = x 1 x 3 x 4, C 4 = x 2 x 3 x 4. 241
Korrektheit : Sei z=(z 1,...,z n ) erfüllende Belegung. Wähle die Zahl a i, falls z i =1, b i, falls z i =0. Summe für Variablenstellen stimmt. Da z erfüllend, sind in jedem C j 1, 2 oder 3 Literale erfüllt. 1 erfülltes Literal: Wähle d j und e j. 2 erfüllte Literale: Wähle d j. Summe für die Klauselstellen stimmt. 242
Korrektheit : Sei Auswahl der Zahlen mit Summe G gegeben. Falls a i gewählt: z i =1. Falls b i gewählt: z i =0. Behauptung: Dies ist erfüllende Belegung. a i und b i können nicht beide gewählt sein. Für jede Klausel C j muss mindestens eine 1 von einem a i oder b i kommen Zugehöriges Literal erfüllt. 243
Spezialfälle/Restriktionen Allgemein gilt: Sei A NP, sei B NP-vollständig und ein Spezialfall von A. Dann ist auch A NPvollständig. Beweis: Es ist B p A: 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. 244
Rucksackproblem Knapsack (KP) Eingabe: n Objekte mit Nutzenwerten a 1,...,a n und Gewichten g 1,...,g n, Gesamtgewicht G, Nutzenschranke B. Frage: Gibt es eine Auswahl der Objekte mit Nutzen mindestens B und Gesamtgewicht höchstens G? KP*: Spezialfall mit G=B und a i =g i. 245
Folgerung K6.3.2: KP und KP* sind NP-vollständig. Beweis: KP* und SSS sind äquivalent. KP ist Verallgemeinerung von KP*. Restriktion 246
Partition Zur Erinnerung: Eingabe: Natürliche Zahlen a 1,...,a n. Frage: Gibt es I {1,...,n} mit Folgerung K6.3.2: Partition ist NP-vollständig. Problem: Partition ist ein Spezialfall von SSS. Verkehrte Richtung für Restriktion. 247
Beweis Reduktion SSS p Partition: Sei X=(a 1,...,a n,g) Eingabe für SSS. Sei S*=a 1 +... + a n. Konstruiere Partition-Eingabe: Y=(a 1,..., a n, a n+1 =2S* G, a n+2 =S*+G) erzwingende Komponenten Beob: a 1 +... + a n + a n+1 + a n+2 = 4S*. 248
X=(a 1,...,a n,g) Korrektheit: Y=(a 1,..., a n, a n+1 =2S* G, a n+2 =S*+G) : Sei I Lösung von X, also i I a i =G: Dann ist I {n+1} Lösung von Y. : Sei J Lösung für Y. Falls n+1 J, vertausche J und J={1,...,n+2} J. Dann ist J {n+1} eine Lösung für X. 249
Aufteilung u. Lastverteilung [K6.4] Wir haben bereits gezeigt: Partition p BP. Folgerung K6.4.1: BP ist NP-vollständig. BP Eingabe: n Objekte mit Größen a 1,...,a n, Kistengröße b, Zahl k. Aufgabe: Genügen k Kisten der Größe b, um alle Objekte zu verpacken? 250
Sequencing with Intervals (SWI) Eingabe: A={a 1,...,a n } Menge v. Aufgaben mit l(a): Bearbeitungsdauer von Aufgabe a, length r(a): frühester Bearbeitungszeitpunkt von a, d(a): Deadline für a release time Frage: Können die Aufgaben von einem Prozessor so bearbeitet werden, dass keine Aufgabe unterbrochen wird und alle Bedingungen eingehalten werden? 251
Satz K6.4.2: SWI ist NP-vollständig. Beweis: 1. SWI NP klar. 2. Reduktion Partition p SWI 3. Eingabe f. Partition: X=(s 1,...,s n ). Sei S = s 1 +... +s n, ist o.b.d.a. gerade Zahl. Erzeuge n+1 Aufgaben a 1,...,a n+1. Für 1 i n: l(a i )=s i, r(a i )=0, d(a i )=S+1, l(a n+1 )=1, r(a n+1 )=S/2, d(a n+1 )=S/2+1. a n+1 0 S/2 S/2+1 S+1 252
Cliquenprobleme [K6.5] Graphisomorphie (GI) Eingabe: Graphen G 1 =(V 1,E 1 ), G 2 =(V 2,E 2 ). Frage: Sind G 1 und G 2 isomorph, d.h., gibt es eine Funktion f : V 1 V 2 mit {v 1,v 2 } E 1 {f(v 1 ),f(v 2 )} E 2? GI NP klar. Für GI kennt man weder einen polyn. Algo., noch einen NP-Vollst.beweis. 253
Teilgraphisomorphie Subgraph Isomorphism (SI) Eingabe: Graphen G 1 =(V 1,E 1 ), G 2 =(V 2,E 2 ). Frage: Gibt es einen Teilgraphen von G 1, der zu G 2 isomorph ist? Teilgraph von G 1 : Knotenmenge V V 1. Kantenmenge: Alle Kanten aus E 1, die zwischen Knoten aus V verlaufen. 254
Satz K6.5.1: SI ist NP-vollständig. Beweis: 1. SI NP klar. 2. Reduktion Clique p SI. 3. Eingabe für Cliquenproblem: (G,k). Sei G 1 =G, G 2 =vollständiger Graph auf k Knoten. 4. G enthält k-clique Restriktion G 1 enthält zu G 2 isomorphen Subgraphen. 255
Graphfärbbarkeit Graph Colorability (GC) Eingabe: Unger. Graph G=(V,E), Zahl k. Frage: Können die Knoten von G mit k Farben gefärbt werden, so dass benachbarte Knoten verschieden gefärbt werden? 256
Bsp: Färben von Landkarten 257
Satz K6.5.2: GC ist NP-vollständig. Beweis: 1. GC NP klar. 2. Reduktion von 3-SAT. 3. Sei 3-SAT-Eingabe mit Variablen x 1,...,x n und Klauseln C 1,...,C m gegeben. Wähle k=3 (3 Farben) 258
Komponenten für Klauseln: v 1 v 2 w v 3 Beob. (für legale 3-Färbungen): 1.Wenn v 1, v 2 und v 3 dieselbe Farbe haben, dann hat auch w diese Farbe. 2.Wenn einer der v-knoten die Farbe 1 hat, kann auch w die Farbe 1 bekommen. 259
x 1 C 1 =x 1 x 2 x n 3 u x 2 x 1 x 2 C 2 w 1 x n x n 2 260
Korrektheit Sei erfüllende Belegung gegeben. x i =0: x i -Knoten bekommt Farbe 2, x i -Knoten bekommt Farbe 1. x i =1: x i -Knoten bekommt Farbe 1, x i -Knoten bekommt Farbe 2. Da die Belegung erfüllend ist, kann jede Klauselkomponente so gefärbt werden, dass w die Farbe 1 bekommt. 261
Korrektheit Sei legale Färbung gegeben. O.B.d.A.: w hat Farbe 1, u hat Farbe 3. Variablenknoten haben Farben 1 und 2. x i -Knoten hat Farbe 1: Belegung x i =1, x i -Knoten hat Farbe 2: Belegung x i =0. Annahme: C j dadurch nicht erfüllt. Alle v-knoten von C j haben Farbe 2 w hat Farbe 2. Widerspruch. 262
Spezialfall: festes k k-gc Eingabe: Graph G Frage: Ist G mit k Farben färbbar? Folgerung K6.5.3: 3-GC ist NP-vollständig. Übungsaufgaben: Zeige, dass 2-GC P. Zeige, dass k-gc für alle k 3 NP-vollständig ist. 263
Zusammenfassung Kompl.theorie Betrachtete Rechnermodelle: Turingmaschinen, Registermaschinen Varianten: deterministisch, randomisiert, nichtdeterministisch Komplexitätstheorie für randomisierte Algorithmen Komplexitätsklassen ZPP, RP, BPP, PP Probability Amplification Nichtdeterminismus als Spezialfall von Randomisierung 264
Zusammenfassung Kompl.theorie Zentrale Begriffe der NP- Vollständigkeitstheorie Turing-Reduktionen und polynomielle Reduktionen NP-vollständige und NP-schwere Probleme Satz von Cook, Vereinfachung von Beweisen der NP-Vollständigkeit Zahlreiche Reduktionen zwischen verschiedenen Problemen 265
Fazit NP-Vollständigkeit Ein Beweis der NP-Vollständigkeit liefert eine starken Hinweis darauf, dass ein Problem keinen polyn. Algo hat. Nutzen Keine Zeit dafür ver(sch)wenden, einen Algo zu suchen, den es wohl nicht gibt. Beweis liefert Hinweise darauf, was an dem Problem schwer ist Überlegen, ob wir das richtige Problem lösen. Fehlgeschlagene Versuche liefern Hinweise auf polynomielle Algos. 266
Fazit NP-Vollständigkeit (Forts.) Reduktionen mit verbundenen Komponenten erlauben es, Beziehungen zwischen nicht verwandten Problemen herzustellen. 3-SAT ist häufig ein Ausgangsproblem für Reduktionen. 267