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. 242 243 Spezialfälle/Restriktionen Rucksackproblem Allgemein gilt: Sei A∈NP, sei B NP-vollständig und ein Spezialfall von A. Dann ist auch A NPvollständig. Knapsack (KP) Eingabe: n Objekte mit Nutzenwerten a1,...,an und Gewichten g1,...,gn, Gesamtgewicht G, Nutzenschranke B. Frage: Gibt es eine Auswahl der Objekte mit Nutzen mindestens B und Gesamtgewicht höchstens G? 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. 244 KP*: Spezialfall mit G=B und ai=gi. 245 Folgerung K6.3.2: KP und KP* sind NP-vollständig. Beweis: KP* und SSS sind äquivalent. KP ist Verallgemeinerung von KP*. Restriktion Partition Zur Erinnerung: Eingabe: Natürliche Zahlen a1,...,an. 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. 246 247 X=(a1,...,an,G) → Y=(a1,..., an, an+1=2S*–G, an+2=S*+G) Beweis Reduktion SSSpPartition: Sei X=(a1,...,an,G) Eingabe für SSS. Sei S*=a1 + ... + an. Konstruiere Partition-Eingabe: Y=(a1,..., an, an+1=2S*–G, an+2=S*+G) Korrektheit: „⇒“: Sei I Lösung von X, also ∑i∈I ai=G: Dann ist I∪{n+1} Lösung von Y. erzwingende Komponenten Beob: a1 + ... + an + an+1 + an+2 = 4S*. 248 „⇐“: 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] Eingabe: A={a1,...,an} Menge v. Aufgaben mit l(a): Bearbeitungsdauer von Aufgabe a, length r(a): frühester Bearbeitungszeitpunkt von a, release time d(a): Deadline für a Wir haben bereits gezeigt: PartitionpBP. Folgerung K6.4.1: BP ist NP-vollständig. BP Eingabe: n Objekte mit Größen a1,...,an, Kistengröße b, Zahl k. Aufgabe: Genügen k Kisten der Größe b, um alle Objekte zu verpacken? Frage: Können die Aufgaben von einem Prozessor so bearbeitet werden, dass keine Aufgabe unterbrochen wird und alle Bedingungen eingehalten werden? 250 Satz K6.4.2: SWI ist NP-vollständig. an+1 S/2 S/2+1 251 Cliquenprobleme [K6.5] Beweis: 1. SWI∈NP klar. 2. Reduktion PartitionpSWI 3. Eingabe f. Partition: X=(s1,...,sn). Sei S = s1+ ... +sn, ist o.B.d.A. gerade Zahl. Erzeuge n+1 Aufgaben a1,...,an+1. Für 1 i n: l(ai)=si, r(ai)=0, d(ai)=S+1, l(an+1)=1, r(an+1)=S/2, d(an+1)=S/2+1. 0 Sequencing with Intervals (SWI) S+1 252 Graphisomorphie (GI) Eingabe: Graphen G1=(V1,E1), G2=(V2,E2). Frage: Sind G1 und G2 isomorph, d.h., gibt es eine Funktion f : V1→ V2 mit {v1,v2}∈E1 ⇔ {f(v1),f(v2)}∈E2? GI∈NP klar. Für GI kennt man weder einen polyn. Algo., noch einen NP-Vollst.beweis. 253 Teilgraphisomorphie Subgraph Isomorphism (SI) Eingabe: Graphen G1=(V1,E1), G2=(V2,E2). Frage: Gibt es einen Teilgraphen von G1, der zu G2 isomorph ist? Teilgraph von G1: • Knotenmenge V´⊆V1. • Kantenmenge: Alle Kanten aus E1, die zwischen Knoten aus V´ verlaufen. Satz K6.5.1: SI ist NP-vollständig. Beweis: 1. SI∈NP klar. Restriktion 2. Reduktion CliquepSI. 3. Eingabe für Cliquenproblem: (G,k). Sei G1=G, G2=vollständiger Graph auf k Knoten. 4. G enthält k-Clique ⇔ G1 enthält zu G2 isomorphen Subgraphen. 254 Graphfärbbarkeit 255 Bsp: Färben von Landkarten 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 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 x1,...,xn und Klauseln C1,....,Cm gegeben. Wähle k=3 (3 Farben) Komponenten für Klauseln: v1 v2 v3 258 x1 u 3 x2 C2 x2 w Beob. (für legale 3-Färbungen): 1.Wenn v1, v2 und v3 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 Korrektheit „⇒“ C1=x1∨ x2∨ xn x1 w Sei erfüllende Belegung gegeben. xi=0: xi-Knoten bekommt Farbe 2, xi-Knoten bekommt Farbe 1. xi=1: xi-Knoten bekommt Farbe 1, xi-Knoten bekommt Farbe 2. 1 xn Da die Belegung erfüllend ist, kann jede Klauselkomponente so gefärbt werden, dass w die Farbe 1 bekommt. xn 2 260 261 Spezialfall: festes k Korrektheit „⇐“ k-GC Eingabe: Graph G Frage: Ist G mit k Farben färbbar? Sei legale Färbung gegeben. O.B.d.A.: w hat Farbe 1, u hat Farbe 3. ⇒ Variablenknoten haben Farben 1 und 2. xi-Knoten hat Farbe 1: Belegung xi=1, xi-Knoten hat Farbe 2: Belegung xi=0. Folgerung K6.5.3: 3-GC ist NP-vollständig. Annahme: Cj dadurch nicht erfüllt. Alle v-Knoten von Cj haben Farbe 2 ⇒ w hat Farbe 2. Widerspruch. Übungsaufgaben: Zeige, dass 2-GC∈P. Zeige, dass k-GC für alle k≥3 NP-vollständig ist. 262 263 Zusammenfassung Kompl.theorie 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 • Zentrale Begriffe der NPVollstä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 264 265 Fazit NP-Vollständigkeit Fazit NP-Vollständigkeit (Forts.) Ein Beweis der NP-Vollständigkeit liefert eine starken Hinweis darauf, dass ein Problem keinen polyn. Algo hat. • Reduktionen mit verbundenen Komponenten erlauben es, Beziehungen zwischen nicht verwandten Problemen herzustellen. • 3-SAT ist häufig ein Ausgangsproblem für Reduktionen. 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 267