NP-vollständige Probleme Dr. Eva Richter 6. Juli 2012 1 / 13
NP-Vollständigkeit Definition Eine Sprache B heißt NP-vollständig, wenn sei zwei Bedingungen erfüllt: (i) B ist in NP (ii) Jedes Problem A in NP ist polynomiell reduzierbar auf B. Definition Seien A, B Σ für Alphabet Σ. FP = def {f : Σ Σ f ist total berechenbar f ist Polynomialzeit-beschränkt} Die Menge A heißt polynomiell reduzierbar auf B, geschrieben als A P B, wenn es eine Funktion f FP gibt, so dass für alle w Σ gilt: w A genau dann, wenn f (w) B. Die Funkton f heißt polynomielle Reduktion von A auf B. 2 / 13
Der Satz von Levin-Cook Wenn man ein NP-vollständiges Problem gefunden hat, ist es einfach, mit Hilfe von polynomieller Reduktion andere daraus abzuleiten. Satz (LEVIN-COOK) SAT ist NP-vollständig Beweisidee: 1 Wir zeigen, dass SAT in NP liegt. 2 Wir zeigen, dass jede Sprache in NP in polynomieller Zeit auf SAT reduzierbar ist. SAT NP: NTM kann in polynomieller Zeit eine Belegung für ϕ raten und akzeptieren, falls diese erfüllend ist. 3 / 13
Beweis des Satzes von Levin-Cook 1 Sei A NP und N A eine polynomielle nichtdeterministische Turingmaschine für A mit Laufzeit O(n k ) für Konstante k. 2 Ein Tableau für N A auf w ist eine n k n k -Tabelle, Zeilen sind Konfigurationen eines Berechnungszweiges von N auf w. Jede Konfiguration beginnt und endet mit. Erste Zeile enthält die Starkonfiguration, jede folgende Zeile ist eine Nachfolgekonfiguration der darüber liegenden. Tableau ist akzeptierend, wenn eine Zeile eine akzeptierende Konfiguration ist. 3 Reduktionsfunktion f konstruiert aus Eingabe w eine Formel ϕ := ϕ cell ϕ start ϕ move ϕ accept 4 Seien Q und Γ die Menge der Zustände und das Bandalphabet von N A. Sei C = Q Γ. Für jedes i, j {1... n k } und c C definieren wir eine Variable x i,j,c. x i,j,c bekommt den Wert 1, wenn cell(i, j) = c. 4 / 13
Jede Belegung gibt jeder Zelle genau einen Eintrag ϕ cell = 1 i,j n k ( ) x i,j,c (x i,j,c x i,j,c ) c C c,c C,c c erster Teil der Formel besagt, dass in jeder Stelle des Tableaus mindestens ein Wert c stehen muss zweiter Teil besagt, dass es niemals zwei verschiedene Einträge c und c in einer Zelle geben kann 5 / 13
Teilformeln 2 und 3 In der ersten Zeile ist eine Startkonfiguration: ϕ start =x 1,1, x 1,2,q0 x 1,3,w1... x 1,n+2,wn x 1,n+3,... x 1,n k 1, x 1,n k, In einer Zeile steht eine akzeptierende Konfiguration: ϕ accept = 1 i,j n k x i,j,qaccept 6 / 13
Nachbarzeilen sind aufeinanderfolgende Konfigurationen Ein 2 3 Fenster heißt legal, wenn es durch Übereinanderschreiben eines Paares von Konfiguration dessen Nachfolgekonfiguration entsprechend der Überführungsfunktion von N A entstehen kann. Beispiele für legale Fenster: Für a, b, c Γ und q 1, q 2 Q gelte δ NA (q 1, a) = {(q 1, b, R)} und δ NA (q 1, b) = {(q 2, c, L), (q 2, a, R)}. a q 1 b q 2 a c a b a b a q 1 b a a q 1 a a q 2 a a b a b a b b b a b q 2 c b b 7 / 13
Nachbarzeilen... II Beispiele für nicht legale Fenster: Für a, b, c Γ und q 1, q 2 Q gelte δ NA (q 1, a) = {(q 1, b, R)} und δ NA (q 1, b) = {(q 2, c, L), (q 2, a, R)}. a b a a a a a q 1 b q 1 a a b q 1 b q 2 b q 2 Fakt: Wenn die oberste Zeile der Tabelle eine Startkonfiguration ist und jedes 2 3-Fenster legal ist, dann ist jede Zeile der Tabelle eine Nachfolgekonfiguration der darüberliegenden. 8 / 13
Weiter mit Teilformel 4 ϕ move = (das (i, j)-fenster ist legal) 1<i n k,1<j<n k Text steht für folgende Formel: (x i,j 1,a1 x i,j,a2 x i,j+1,a3 x i+1,j 1,a4 x i+1,j,a5 x i+1,j+1,a6 ) a 1,...,a 6 ist legal 9 / 13
Komplexität der Reduktion Da jedes Tableau eine n k n k -Tabelle ist, gibt es n 2k Zellen, jede Zelle hat C Variablen, C hängt nur von N ab, aber nicht von der Eingabelänge, die Zahl der Variablen liegt in O(n 2k ). ϕ cell enthält für jede Zelle nur eine feste beschränkte Teilformel, ihre Größe ist in O(n 2k ) ϕ move und ϕ accept enthalten für jede Zelle eine fest beschränkte Teilformel, also sind sie ebenfalls in O(n 2k ) Größe von ϕ ist in O(n 2k ) wegen iterativem Charakter kann ϕ in polynomieller Zeit erzeugt werden 10 / 13
3SAT ist NP-vollständig Für eine gegebene Belegung(als Zertifikat) können wir in polynomieller Zeit überprüfen, ob eine gegebene Formel in 3CNF davon erfüllt wird. modifizieren Beweis von Levin-Cook, sodass direkt eine Formel in 3CNF entsteht fasst man jede der Variablen als Klausel der Länge 1 auf, dann ist ϕ start eine Konjunktion von Klauseln ϕ accept ist eine große Disjunktion, also eine einzelne Klausel ϕ cell ist eine Konjunktion von Teilformeln, von denen jede eine Disjunktion und eine Konjunktion von Disjunktionen enthält; sie ist bereits in konjunktiver Normalform ϕ move wird mit Distributivgesetzen umgewandelt, Größe jeder Teilformel wird signifikant erhöht, verändert die absolute Größe von ϕ move nur um konstanten Faktor, da die Größe jeder Teilformel nur von N A abhängt durch Einführung neuer Variablen Umwandlung von CNF in 3CNF 11 / 13
Weitere NP-vollständige Probleme 1 CLIQUE ist NP-vollständig (durch polynomielle Reduktion von 3SAT auf CLIQUE) 2 VERTEX COVER ist NP-vollständig (durch polynomielle Reduktion von 3SAT ) 3 HAMPATH ist NP-vollständig (durch polynomielle Reduktion von 3SAT ) 12 / 13