320 likes | 451 Views
Die Klasse NP. Verifizieren versus Berechnen TSP : Eingabe (G, c, k); entscheide, ob es im gewichteten Graphen (G, c) eine Rundreise der Länge · k gibt. Berechnen (Finden) einer solchen Rundreise scheint sehr schwierig zu sein.
E N D
Die Klasse NP • Verifizieren versus Berechnen • TSP: Eingabe (G, c, k); entscheide, ob es im • gewichteten Graphen (G, c) eine Rundreise der • Länge · k gibt. • Berechnen (Finden) einer solchen Rundreise scheint • sehr schwierig zu sein. • Aber: Für eine gegebene Rundreise verifizieren, ob ihr • Gewicht · k ist, ist einfach!
Die Klasse NP • Rucksackproblem: (RS) • Gegeben sind n Objekte 1, …, n. Objekt i hat Gewicht gi und • Wert wi, G={g1, … , gn}, W={w1,…,wn} , • Gewichtsschranke (Rucksackgröße) g • Optimierungsproblem: • Suche S µ {1,…,n} so, dass i 2 S gi· g gilt und i 2 S wi maximal wird. • Entscheidungsproblem: • RSent = {<G,W,g,w> | Es gibt S µ {1,…,n} mit i 2 S gi· g und i 2 S wi¸ w} • scheint schwierig zu entscheiden zu sein. • Aber: Für gegebenes S µ {1,…,n} zu verifizieren, dass • S eine Lösung liefert, ist sehr einfach.
Verifizierer • Ein Verifizierer für RSent ist eine TM, die bei Eingabe G, W, g, w, S entscheidet, ob S µ {1,…,n} ist und S eine Lösung für G, W, g, w ist, d.h. ob i 2 S gi· g und i 2 S wi¸ w gilt. • Ein Verifizierer für TSP ist eine TM die bei Eingabe • G, c, k, R entscheidet, ob R eine Rundreise in G und • c(R) · k ist. • Allgemein: • Ein Verifizierer V für eine Sprache L ist eine TM mit • L = {w| es gibt Wort c, so dass V die Eingabe • (w, c) akzeptiert} • c ist das Zertifikat oder der Zeuge für „w 2 L“
Polynomielle Verifizierer • V ist polynomieller Verifizierer für L, wenn es k gibt, so dass • für jedes w 2 L ein c, |c| · |w|k existiert und V die Eingabe • (w,c) in Zeit poly(|w|) akzeptiert. • L ist polynomiell verifizierbar, falls es einen polynomiellen Verifizierer für L gibt. • Satz: Es gibt polynomielle Verifizierer für TSP, RSent , • ZUSAMMENGESETZT. • Def: NP = {L | es gibt polynomiellen Verifizierer für L}
Über NP • P µ NP • - Offenes Problem: P NP?
NTM‘s • Rechnung einer NTM……… • Beobachtung: NTM kann bei fester Eingabe w 2* • viele verschiedene Rechnungen durchführen. • Wann akzeptiert sie w?? • Falls 99 % der Rechnungen akzeptiert sind • randomisierte (probabilistische) Algorithmen • Falls mindestens eine Rechnung akzeptiert • Nichtdeterminismus.
Rechnungen einer NTM Berechnungsbaum einer NTM bei Eingabe w
NP und nichtdeterministische TMs • Satz: Es gibt polynomiellen Verifizierer für L genau dann, wenn es eine polynomiell zeitbeschränkte NTM für L gibt. • Satz: NP = [k ¸ 0 NTIME (nk) • „NP ist die Klasse aller Sprachen, die von NTMs in • polynomieller Zeit akzeptiert werden können.“
Über NP • Satz: NP µ EXP • Genauer: Jede t(n) zeitbeschränkte NTM kann durch eine 2O(t(n)) zeitbeschränkte DTM simuliert werden.
Das Erfüllbarkeitsproblem (Satifiability, SAT) • Eine Boole’sche Variable x kann Werte 0 und 1 (falsch und wahr) annehmen. • Eine Boole’sche Formel ist eine Verknüpfung von Boole’schen Variablen durch Boole’sche Operatoren, z.B. AND ( Æ ) , OR ( Ç ), NOT ( : ). • Beispiel: = (:x Ç y) Æ (x Ç :z ) ist eine • Boole’sche Formel mit Variablen x, y, z. • ist erfüllbar, falls es eine Belegung der Variablen mit Werten 0, 1 gibt, die wahr macht. • Beispiel: ist erfüllbar, z. b. durch x=1, y=1, z=0.
Das Erfüllbarkeitsproblem (Satifiability, SAT) • SAT = { <> | ist erfüllbare Boole‘sche Formel} • Bem: SAT 2 NP
Konjunktive Normalform (KNF) • Literal: Variable oder negierte Variable • Klausel: Disjunktion K von Literalen, • K= y1Ç … Ç ym, yi Literale • Formel in Konjunktiver Normalform (KNF): Konjunktion von Klauseln, • = K1Æ … Æ Kl , Ki Klauseln • k-SAT Formel: Formel in KNF, in der jede Klausel aus k Literalen besteht. • k-SAT= { <> | ist erfüllbare Boole‘sche • k- SAT Formel}
k-SAT • k-SAT= { <> | ist erfüllbare Boole‘sche k-SAT • Formel} • Bem: k-SAT 2 NP für jedes k. • Satz : 2-SAT 2 P
CLIQUE • Eine k-Clique in einem Graphen G ist ein • vollständiger Teilgraph von G mit k Knoten. • CLIQUE = { <G,k> | G ist ein Graph der eine • k-Clique enthält} • Bem: CLIQUE 2 NP.
Polynomielle Reduktion • Sei A µ1*, B µ2*. • A heißt polynomiell reduzierbar auf B, • falls es eine in polynomieller Zeit berechenbare • Funktion f: 1* ! 2* gibt, so dass für alle x 2 1* gilt: • x 2 A , f(x) 2 B . • Wir schreiben: A ·p B • Lemma: • A ·p B und B 2 P ) A 2 P • A ·p B und B ·p C ) A ·p C (Transitivität)
Polynomielle Reduktionen • Satz: 3-SAT ist polynomiell auf CLIQUE reduzierbar, d.h. 3-SAT ·p CLIQUE. • Was ist zu tun? • Beschreibe eine in polynomieller Zeit berechenbare • Funktion f, die zu einer 3-SAT Formel einen • Graphen G und eine Zahl k berechnet, so dass gilt: • Ist genau dann erfüllbar, wenn G eine k-Clique enthält.
NP-Vollständigkeit • Def. : L heißt NP-vollständig, falls gilt: • L 2 NP • Für jedes A 2 NP gilt A ·p L • Satz: Ist L NP-vollständig und L 2 P, so ist P = NP. • Korollar: Falls NP P gilt, dann sind alle NP-vollständigen Sprachen in NP \ P, also insbesondere nicht in P.
NP-vollständige Probleme • Wir werden durch Masterreduktionen zeigen: • SAT und 3-SAT sind NP-vollständig. • Da wir schon gezeigt haben: • CLIQUE 2 NP und • 3-SAT ·p CLIQUE, • folgt : • CLIQUE ist NP-vollständig.
Die NP-Vollständigkeit des Erfüllbarkeitsproblems • Satz von Cook/Levin: • SAT ist NP-vollständig. • Zu zeigen: • SAT 2 NP (haben wir schon gezeigt) • Für jedes L 2 NP gilt: L ·p SAT
Die Reduktion • Sei L 2 NP, M=(Q, , , ) eine NTM, die L in Zeit • t(n) entscheidet, für ein Polynom t. • Aufgabe: Beschreibe eine in polynomieller Zeit berechenbare Funktion f, • die bei Eingabe w 2 * eine Boole‘sche Formel berechnet, so, dass gilt: • M akzeptiert w , ist erfüllbar
Der Beweis • Idee: • Berechne aus Eingabe w, |w|=n, eine Formel , • so dass erfüllende Belegungen für zu akzeptierenden Rechnungen von M gestartet mit w korrespondieren. • Sei T=t(n)
Beweis • Variablen von und ihre Bedeutung. • di,a,t: „Nach Schritt t steht in Zelle i der Buchstabe a“ • hi,t : „Nach Schritt t steht der Kopf auf Zelle i“ • sq,t : „Nach Schritt t ist M in Zustand q“ • Vt = {di,a,t : a 2 , 0 · i · T} [ {hi,t : 0 · i · T} • [ {sq,t : q 2 Q} • V = V1[ V2[ … [ VT
Beweis • Teilformeln von : • Konfigt (Vt) : wird wahr genau für die Belegungen von Vt , die eine Konfiguration beschreiben. • Ü (Vt , Vt+1) : wird wahr genau für die Belegungen von Vt[ Vt+1, die Konfigurationen K und K´ beschreiben mit K ` K´ . • S(V1) : wird genau für die Belegung von V1 wahr, die q0 w beschreibt. • A(VT) : wird genau für Belegungen von VT wahr, die akzeptierende Endkonfigurationen beschreiben.
Beweis • w 2 L , M akzeptiert w , • M gestartetmit w hat akzeptierende Rechnung • , • Es gibt Belegung für V, die • =S(V1) Æ (Konf(V2) Æ … Æ Konf(VT) ) Æ Ü (V1 , V2 ) Æ … Æ Ü (VT-1 , VT) Æ A(VT) wahr macht. Reduktionsfunktion: berechnet zu w obige Formel .
Beweis • hat O(T²) =O(t(n)²) Variablen, und Länge O(T³) = O(t(n)³). ) hat polynomielle Länge Es ist einfach, in Zeit poly(n) aus w zu berechnen.
Weitere NP-vollständige Probleme • Eine Knotenüberdeckung in einem Graph G = (V,E) ist eine • Menge U µ V mit für alle e 2 E. • KNOTENÜBERDECKUNG • := {<G, K>, G enthält Knotenüberdeckung der Größe k} • KNOTENÜBERDECKUNG 2 NP • CLIQUE ·p KNOTENÜBERDECKUNG • Aufgabe: Gebe eine in polynomieller Zeit berechenbare • Funktion an, die zu jedem <G,k> ein (G‘, k‘) • berechnet, so dass gilt: • G‘ enthält Knotenüberdeckung • G enthält k-Clique der Größe k‘
Weitere NP-vollständige Probleme • SUBSETSUM • SUBSETSUM 2 NP • 3-SAT ·p SUBSETSUM • Aufgabe: Gebe einen in polynomieller Zeit berechenbare Funktion an, • die zu jeder 3-SAT Formel eine Menge und • ein berechnet, so dass gilt:
Weitere NP-vollständige Probleme • RUCKSACK: {<G, W, g, w> | es existiert S µ {1, …, n} • mit i 2 S gi· g und i 2 S wi¸ w} • - RUCKSACK 2 NP • - SUBSETSUM ·p RUCKSACK
Weitere NP-vollständige Probleme • Ein Hamiltonkreis in einem Graphen S ist ein Kreis • in S, der jeden Knoten berührt. • HAMILTONKREIS := {<G>, G enthält Hamiltonkreis} • TSP:= {<G, k>, G ist vollständiger Graph mit • Kantengewichten so dass G • einen Hamiltonkreis mit Gesamtlänge ·k enthält}