VL-13: Polynomielle Reduktionen
(Berechenbarkeit und Komplexit¨ at, WS 2018) Gerhard Woeginger
WS 2018, RWTH
Organisatorisches
N¨achste Vorlesungen:
Donnerstag, Dezember 20, 12:30–14:00 Uhr, Aula Donnerstag, Januar 11, 12:30–14:00 Uhr, Aula Keine Vorlesung:Freitag, Dezember 21
Webseite:
http://algo.rwth-aachen.de/Lehre/WS1819/BuK.php (−→ Arbeitsheft zur Berechenbarkeit)
Wiederholung
Wdh.: Nichtdeterministische Turingmaschine (NTM)
0 1 1 0 1 1 0 0 1 1 0 1 0 · · ·
· · ·
δ 0 1 B
q0 {(q0,B,R),(q1,B,R)} {reject} {reject}
q1 {reject} {(q1,B,R),(q2,B,R)} {reject}
q2 {reject} {reject} {accept}
Wdh.: P und NP
Komplexit¨atsklassen P und NP
Pist die Klasse aller Entscheidungsprobleme, f¨ur die es einen polynomiellen Algorithmus gibt.
NPist die Klasse aller Entscheidungsprobleme, die durch eine NTMM erkannt werden,
deren Worst Case LaufzeittM(n)polynomiell beschr¨ankt ist.
Satz (Zertifikat Charakterisierung von NP) Eine SpracheL⊆Σ∗liegt genau dann in NP,
wenn es einen polynomiellen (deterministischen) AlgorithmusV und ein Polynomp mit der folgenden Eigenschaft gibt:
x ∈L ⇐⇒ ∃y ∈ {0,1}∗, |y| ≤p(|x|) : V akzeptierty#x
Wdh.: Probleme in NP
Problem: Satisfiability (SAT)
Eingabe:Eine Boole’sche Formelϕin CNF ¨uber einer Boole’schen VariablenmengeX ={x1, . . . ,xn}
Frage:Existiert eine Wahrheitsbelegung vonX, die ϕerf¨ullt?
Problem: CLIQUE
Eingabe:Ein ungerichteter GraphG = (V,E); eine Zahlk Frage:Enth¨altG eine Clique mit≥k Knoten?
Problem: Hamiltonkreis (Ham-Cycle)
Eingabe:Ein ungerichteter GraphG = (V,E) Frage:BesitztG einen Hamiltonkreis?
Wdh.: Postsches Correspondenzproblem / ¨ Ubung
Definition (Postsches Correspondenzproblem, PCP) Eine Instanz des PCP besteht aus einer endlichen Menge
K = x1
y1
, . . . ,
xk yk
.
Die Frage ist, ob es eine (nicht-leere) correspondierende Folgehi1, . . . ,ini gibt, sodassxi1xi2. . .xin =yi1yi2. . .yin.
Satz (???) PCP∈NP Beweis:
Zertifikat = correspondierende Folgehi1, . . . ,ini Verifizierer ¨uberpr¨uft obxi1xi2. . .xin =yi1yi2. . .yin
Wdh.: Die grosse offene Frage der Informatik
P=NP ?
Falls die L¨osung eines Problems einfach zu ¨uberpr¨ufen ist, ist es dann auch immer einfach, die L¨osung zu entdecken?
Wdh.: Die Komplexit¨ atslandschaft
NP
P
Graph- zusammenhang Primes
SAT
Clique Ind-Set VC
Ham-Cycle TSP Partition
Subset-Sum
Ex-Cover
Warnung: Dieser Abbildung liegt die AnnahmeP6=NP zu Grunde.
Vorlesung VL-13
Polynomielle Reduktionen
L¨osung finden versus L¨osbarkeit entscheiden Optimieren versus L¨osbarkeit entscheiden Die Komplexit¨atsklasse EXPTIME Polynomielle Reduktionen
L¨ osung finden versus
L¨ osbarkeit entscheiden
L¨ osung finden vs L¨ osbarkeit entscheiden
Ein beliebiges Entscheidungsproblem in NP Eingabe:Ein diskretes ObjektX.
Frage:Existiert f¨ur dieses ObjektX eine L¨osungY? Dilemma:
Das Entscheidungsproblem besch¨aftigt sich nur mit der Frage, obeine derartige L¨osungY existiert
Aber eigentlich will man das L¨osungsobjektY auch genau bestimmen, und dann damit arbeiten
Ausweg:
Ein schneller Algorithmus f¨ur das Entscheidungsproblem liefert (durch wiederholte Anwendung) oft auch einen schnellen Algorithmus zum Berechnen eines expliziten L¨osungsobjekts
Beispiel: SAT (1)
Problem: Satisfiability (SAT)
Eingabe:Boole’sche Formelϕin CNF ¨uberX ={x1, . . . ,xn} Frage:Existiert eine Wahrheitsbelegung vonX, die ϕerf¨ullt?
Wenn wir in ϕeine Variablex :=1setzen,
so werden alle Klauseln mit Literalx dadurch erf¨ullt und in allen Klauseln mit Literal ¯x f¨allt dieses Literal einfach weg.
Wir erhalten wir eine k¨urzere CNF-Formelϕ[x=1].
Analog erhalten wir mitx :=0die CNF-Formel ϕ[x =0].
Beispiel
F¨ur ϕ = (x∨y∨z)∧(¬x∨ ¬y∨ ¬z)∧(¬y∨z)∧(u∨z) gilt ϕ[y =1] = (¬x∨ ¬z)∧(z)∧(u∨z)
und ϕ[z=0] = (x∨y)∧(¬y)∧(u)
Beispiel: SAT (2)
Wir betrachten SAT Instanzen mitnVariablen undm Klauseln.
Satz
Angenommen, AlgorithmusAentscheidet SAT Instanzen inT(n,m)Zeit.
Dann gibt es einen AlgorithmusB, der f¨ur erf¨ullbare SAT Instanzen inn·T(n,m)Zeit eine erf¨ullende Wahrheitsbelegung konstruiert.
Beweis:
Wir fixieren der Reihe nach die Wahrheitswerte vonx1,x2, . . . ,xn. FOR i =1,2, . . . ,n DO
Wennϕ[xi =1]erf¨ullbar, so setzexi :=1und ϕ:=ϕ[xi =1] Andernfalls setzexi :=0undϕ:=ϕ[xi =0]
Am Ende ergeben die fixierten Wahrheitswerte vonx1,x2, . . . ,xn eine erf¨ullende Wahrheitsbelegung f¨urϕ
Beispiel: SAT (2)
Wir betrachten SAT Instanzen mitnVariablen undm Klauseln.
Satz
Angenommen, AlgorithmusAentscheidet SAT Instanzen inT(n,m)Zeit.
Dann gibt es einen AlgorithmusB, der f¨ur erf¨ullbare SAT Instanzen inn·T(n,m)Zeit eine erf¨ullende Wahrheitsbelegung konstruiert.
Beweis:
Wir fixieren der Reihe nach die Wahrheitswerte vonx1,x2, . . . ,xn. FOR i =1,2, . . . ,n DO
Wennϕ[xi =1] erf¨ullbar, so setzexi :=1und ϕ:=ϕ[xi =1]
Andernfalls setzexi :=0und ϕ:=ϕ[xi =0]
Am Ende ergeben die fixierten Wahrheitswerte vonx1,x2, . . . ,xn eine erf¨ullende Wahrheitsbelegung f¨urϕ
Beispiel: CLIQUE
Problem: CLIQUE
Eingabe:Ein ungerichteter GraphG = (V,E); eine Zahlk Frage:Enth¨altG eine Clique mit≥k Knoten?
Wenn wir aus G einen Knotenv und alle zuv inzidenten Kanten wegstreichen, so erhalten wir den kleineren GraphenG−v FallsG−v einek-Clique enth¨alt, so istv irrelevant
FallsG−v aber keinek-Clique enth¨alt, so muss die Nachbarschaft N[v]des Knotenv inG −v eine(k−1)-Clique enthalten
Satz
Angenommen, AlgorithmusAentscheidet CLIQUE inT(n)Zeit. Dann gibt es einen AlgorithmusB, der f¨ur JA-Instanzen
inn·T(n)Zeit einek-Clique konstruiert.
Beispiel: CLIQUE
Problem: CLIQUE
Eingabe:Ein ungerichteter GraphG = (V,E); eine Zahlk Frage:Enth¨altG eine Clique mit≥k Knoten?
Wenn wir aus G einen Knotenv und alle zuv inzidenten Kanten wegstreichen, so erhalten wir den kleineren GraphenG−v FallsG−v einek-Clique enth¨alt, so istv irrelevant
FallsG−v aber keinek-Clique enth¨alt, so muss die Nachbarschaft N[v]des Knotenv inG −v eine(k−1)-Clique enthalten
Satz
Angenommen, AlgorithmusAentscheidet CLIQUE inT(n)Zeit.
Dann gibt es einen AlgorithmusB, der f¨ur JA-Instanzen inn·T(n)Zeit einek-Clique konstruiert.
Beispiel: Hamiltonkreis
Problem: Hamiltonkreis (Ham-Cycle)
Eingabe:Ein ungerichteter GraphG = (V,E) Frage:BesitztG einen Hamiltonkreis?
Wenn wir aus G eine Kantee wegstreichen, so erhalten wir den kleineren GraphenG −e
FallsG−e einen Hamiltonkreis enth¨alt, so iste irrelevant FallsG−e keinen Hamiltonkreis enth¨alt, so iste nicht irrelevant
Satz
Angenommen, AlgorithmusAentscheidet Ham-Cycle inT(n)Zeit.
Dann gibt es einen AlgorithmusB, der f¨ur JA-Instanzen in|E| ·T(n)Zeit einen Hamiltonkreis konstruiert.
Optimieren versus
L¨ osbarkeit entscheiden
Optimieren vs L¨ osbarkeit entscheiden
Definition: Optimierungsproblem
Die Eingabe eines Optimierungsproblems spezifiziert (implizit oder explizit) eine MengeLvon zul¨assigen L¨osungen zusammen mit einer Zielfunktionf :L →N, die Kosten, Gewicht, oder Profit misst.
Das Ziel ist es, eine optimale L¨osung inL zu berechnen.
In Minimierungsproblemen sollen die Kosten minimiert werden, und in Maximierungsproblemen soll der Profit maximiert werden.
Dilemma:
Die Klassen P und NP enthalten keine Optimierungsprobleme, sondern nur Entscheidungsprobleme
Ausweg:
Optimierungsprobleme k¨onnen in“sehr ¨ahnliche”
Entscheidungsprobleme umformuliert werden
Beispiel: Rucksackproblem
Beim Rucksackproblem (Knapsack problem, KP) sind nObjekte mit Gewichten w1, . . . ,wn und Profitenp1, . . . ,pngegeben
Ausserdem ist eine Gewichtsschrankebgegeben
Wir suchen eine TeilmengeK der Objekte, die in einen Rucksack mit Gewichtsschranke bpasst und die den Gesamtprofit maximiert Problem: Rucksack / Knapsack (KP)
Eingabe:Nat¨urliche Zahlenw1, . . . ,wn,p1, . . . ,pn, und b Zul¨assige L¨osung:MengeK⊆ {1, . . . ,n}mitw(K) :=P
i∈Kwi≤b Ziel:Maximierep(K) :=P
i∈Kpi
Entscheidungsproblem:
Die Eingabe enth¨alt zus¨atzlich eine Schrankeγf¨ur den Profit Frage: Existiert eine zul¨assige L¨osungK mitp(K)≥γ?
Beispiel: Rucksackproblem
Beim Rucksackproblem (Knapsack problem, KP) sind nObjekte mit Gewichten w1, . . . ,wn und Profitenp1, . . . ,pngegeben
Ausserdem ist eine Gewichtsschrankebgegeben
Wir suchen eine TeilmengeK der Objekte, die in einen Rucksack mit Gewichtsschranke bpasst und die den Gesamtprofit maximiert Problem: Rucksack / Knapsack (KP)
Eingabe:Nat¨urliche Zahlenw1, . . . ,wn,p1, . . . ,pn, und b Zul¨assige L¨osung:MengeK⊆ {1, . . . ,n}mitw(K) :=P
i∈Kwi≤b Ziel:Maximierep(K) :=P
i∈Kpi
Entscheidungsproblem:
Die Eingabe enth¨alt zus¨atzlich eine Schrankeγ f¨ur den Profit Frage: Existiert eine zul¨assige L¨osungK mitp(K)≥γ?
Beispiel: Bin Packing
Beim Bin Packing sollennObjekte mit Gewichtenw1, . . . ,wn auf eine m¨oglichst kleine Anzahl von Kisten mit Gewichtslimitbverteilt werden.
Problem: Bin Packing (BPP)
Eingabe:Nat¨urliche Zahlenbundw1, . . . ,wn∈ {1, . . . ,b}
Zul¨assige L¨osung:Zahlk ∈Nund Funktionf :{1, . . . ,n} → {1, . . . ,k} sodass∀i ∈ {1, . . . ,k}: X
j∈f−1(i)
wj ≤b Ziel:Minimierek (= Anzahl der Kisten)
Entscheidungsproblem:
Die Eingabe enth¨alt zus¨atzlich eine Schrankeγ Frage: Existiert eine zul¨assige L¨osung mit ≤γ Kisten?
Beispiel: Bin Packing
Beim Bin Packing sollennObjekte mit Gewichtenw1, . . . ,wn auf eine m¨oglichst kleine Anzahl von Kisten mit Gewichtslimitbverteilt werden.
Problem: Bin Packing (BPP)
Eingabe:Nat¨urliche Zahlenbundw1, . . . ,wn∈ {1, . . . ,b}
Zul¨assige L¨osung:Zahlk ∈Nund Funktionf :{1, . . . ,n} → {1, . . . ,k} sodass∀i ∈ {1, . . . ,k}: X
j∈f−1(i)
wj ≤b
Ziel:Minimierek (= Anzahl der Kisten) Entscheidungsproblem:
Die Eingabe enth¨alt zus¨atzlich eine Schrankeγ Frage: Existiert eine zul¨assige L¨osung mit ≤γ Kisten?
Beispiel: Travelling Salesman
Beim Travelling Salesman Problem sind St¨adte1, . . . ,ngegeben, zusammen mit Distanzen d(i,j)f¨ur1≤i 6=j≤n
Gesucht ist eine m¨oglichst kurze Rundreise (Hamiltonkreis; Tour) durch alle St¨adte
Problem: Travelling Salesman (TSP)
Eingabe:Nat¨urliche Zahlend(i,j)f¨ur1≤i 6=j ≤n Zul¨assige L¨osung:Permutationπ von1, . . . ,n Ziel:Minimiered(π) :=
n−1
X
i=1
d(π(i), π(i +1)) +d(π(n), π(1))
Entscheidungsproblem:
Die Eingabe enth¨alt zus¨atzlich eine Schrankeγ
Frage: Existiert eine zul¨assige L¨osung mit L¨anged(π)≤γ?
Optimieren vs Entscheiden
F¨ur ein Optimierungsproblem mit einer MengeLvon zul¨assigen L¨osungen und einer Gewichtsfunktionf :L →Ndefinieren wir das entsprechende Entscheidungsproblem:
Eingabe:Wie im Optimierungsproblem; plus Schrankeγ∈N Frage:Existiert eine zul¨assige L¨osungx∈ L
mit f(x)≥γ (f¨ur Maximierungsprobleme) respektive mit f(x)≤γ (f¨ur Minimierungsprobleme)?
Mit Hilfe eines Algorithmus, der das Optimierungsproblem l¨ost, kann man immer das entsprechende Entscheidungsproblem l¨osen. (Wie?)
Mit Hilfe eines Algorithmus, der das Entscheidungsproblem l¨ost, kann man den optimalen Zielfunktionswert bestimmen
(und oft auch die dazugeh¨orende optimale L¨osung finden).
Optimieren vs Entscheiden
F¨ur ein Optimierungsproblem mit einer MengeLvon zul¨assigen L¨osungen und einer Gewichtsfunktionf :L →Ndefinieren wir das entsprechende Entscheidungsproblem:
Eingabe:Wie im Optimierungsproblem; plus Schrankeγ∈N Frage:Existiert eine zul¨assige L¨osungx∈ L
mit f(x)≥γ (f¨ur Maximierungsprobleme) respektive mit f(x)≤γ (f¨ur Minimierungsprobleme)?
Mit Hilfe eines Algorithmus, der das Optimierungsproblem l¨ost, kann man immer das entsprechende Entscheidungsproblem l¨osen.
(Wie?)
Mit Hilfe eines Algorithmus, der das Entscheidungsproblem l¨ost, kann man den optimalen Zielfunktionswert bestimmen
(und oft auch die dazugeh¨orende optimale L¨osung finden).
Beispiel: Rucksackproblem (1)
Eingabe: Nat¨urliche Zahlenw1, . . . ,wn, p1, . . . ,pn; b; γ Zul¨assig: Menge K⊆ {1, . . . ,n} mitw(K)≤b
Optimierung:BerechneK mit maximalemp(K) Entscheidung:ExistiertK mitp(K)≥γ?
Satz
Wenn das Entscheidungsproblem f¨urKPin polynomieller Zeit l¨osbar ist, so ist auch das Optimierungsproblem f¨urKP in polynomieller Zeit l¨osbar. Beweis: Aus polynomiellem AlgorithmusAf¨urs Entscheidungsproblem
konstruieren wir zuerst einen polynomiellen Algorithmus B, der den optimalen Zielfunktionswertbestimmt
und dann einen polynomiellen AlgorithmusC, der dieoptimale zul¨assige L¨osungbestimmt
Beispiel: Rucksackproblem (1)
Eingabe: Nat¨urliche Zahlenw1, . . . ,wn, p1, . . . ,pn; b; γ Zul¨assig: Menge K⊆ {1, . . . ,n} mitw(K)≤b
Optimierung:BerechneK mit maximalemp(K) Entscheidung:ExistiertK mitp(K)≥γ?
Satz
Wenn das Entscheidungsproblem f¨urKPin polynomieller Zeit l¨osbar ist, so ist auch das Optimierungsproblem f¨urKP in polynomieller Zeit l¨osbar.
Beweis: Aus polynomiellem AlgorithmusAf¨urs Entscheidungsproblem konstruieren wir zuerst einen polynomiellen Algorithmus B, der den optimalen Zielfunktionswertbestimmt
und dann einen polynomiellen AlgorithmusC, der dieoptimale zul¨assige L¨osungbestimmt
Beispiel: Rucksackproblem (2)
AlgorithmusB f¨ur (Phase 1)
Wir f¨uhren eineBin¨are Suchemit den folgenden Parametern durch:
Der minimale Profit ist 0.
Der maximale Profit ist P:=
n
X
i=1
pi.
Wir finden den optimalen Zielfunktionswert durch Bin¨are Suche ¨uber dem Wertebereich {0, . . . ,P}.
In jeder Iteration verwenden wir den polynomiellen AlgorithmusA (f¨ur das Entscheidungsproblem), der uns sagt in welcher Richtung wir weitersuchen m¨ussen
Die Anzahl der Iterationen der Bin¨arsuche istdlog(P+1)e.
Beispiel: Rucksackproblem (3)
Untersuchung der Eingabel¨ange:
Die Kodierungsl¨ange einer Zahla∈Nistκ(a) :=dlog(a+1)e.
Die Logarithmusfunktion ist sub-additiv:
F¨ur allea,b∈Ngiltκ(a+b)≤κ(a) +κ(b).
Die Eingabel¨angeL des Rucksackproblems betr¨agt mindestens
n
X
i=1
κ(pi) ≥ κ
n
X
i=1
pi
!
= κ(P) = dlog(P+1)e
Algorithmus B besteht ausdlog(P+1)e ≤LAufrufen des polynomiellen Algorithmus A
Also ist die Gesamtlaufzeit von Algorithmus B polynomiell in der Eingabel¨ange des Rucksackproblems beschr¨ankt
Beispiel: Rucksackproblem (3)
Untersuchung der Eingabel¨ange:
Die Kodierungsl¨ange einer Zahla∈Nistκ(a) :=dlog(a+1)e.
Die Logarithmusfunktion ist sub-additiv:
F¨ur allea,b∈Ngiltκ(a+b)≤κ(a) +κ(b).
Die Eingabel¨angeL des Rucksackproblems betr¨agt mindestens
n
X
i=1
κ(pi) ≥ κ
n
X
i=1
pi
!
= κ(P) = dlog(P+1)e
Algorithmus B besteht ausdlog(P+1)e ≤LAufrufen des polynomiellen Algorithmus A
Also ist die Gesamtlaufzeit von Algorithmus B polynomiell in der Eingabel¨ange des Rucksackproblems beschr¨ankt
Beispiel: Rucksackproblem (3)
Untersuchung der Eingabel¨ange:
Die Kodierungsl¨ange einer Zahla∈Nistκ(a) :=dlog(a+1)e.
Die Logarithmusfunktion ist sub-additiv:
F¨ur allea,b∈Ngiltκ(a+b)≤κ(a) +κ(b).
Die Eingabel¨angeL des Rucksackproblems betr¨agt mindestens
n
X
i=1
κ(pi) ≥ κ
n
X
i=1
pi
!
= κ(P) = dlog(P+1)e
Algorithmus B besteht ausdlog(P+1)e ≤LAufrufen des polynomiellen Algorithmus A
Also ist die Gesamtlaufzeit von Algorithmus B polynomiell in der Eingabel¨ange des Rucksackproblems beschr¨ankt
Beispiel: Rucksackproblem (4)
Aus AlgorithmusB konstruieren wir nun noch den AlgorithmusC, der die optimale zul¨assige L¨osung bestimmt:
AlgorithmusC 1 K :={1, . . . ,n};
2 opt:=B(K);
3 FORi :=1 TOndo
4 IFB(K\ {i}) =opt THENK :=K\ {i}; ENDIF;
5 ENDFOR;
6 OUTPUT K
Algorithmus C besteht im wesentlichen ausn+1Aufrufen des polynomiellen Algorithmus B
Also ist die Gesamtlaufzeit von Algorithmus C polynomiell in der Eingabel¨ange des Rucksackproblems beschr¨ankt
Die Komplexit¨ atsklasse EXPTIME
EXPTIME (1): Definition
Definition: Komplexit¨atsklasse EXPTIME
EXPTIMEist die Klasse aller Entscheidungsprobleme,
die durch eine DTM M entschieden werden, deren Worst Case Laufzeit durch 2q(n) mit einem Polynomq beschr¨ankt ist, Laufzeit-Beispiele:2√n, 2n, 3n, n!, nn. Aber nicht:22n
Wie verhalten sich die KlassenPundNP zuEXPTIME?
EXPTIME (1): Definition
Definition: Komplexit¨atsklasse EXPTIME
EXPTIMEist die Klasse aller Entscheidungsprobleme,
die durch eine DTM M entschieden werden, deren Worst Case Laufzeit durch 2q(n) mit einem Polynomq beschr¨ankt ist, Laufzeit-Beispiele:2√n, 2n, 3n, n!, nn. Aber nicht:22n
Wie verhalten sich die KlassenPundNP zuEXPTIME?
EXPTIME (2): NP ⊆ EXPTIME
Satz
NP⊆EXPTIME
Es seiL∈NP
Dann gibt es ein Polynom pund einen polynomiellen AlgorithmusV x ∈L ⇐⇒ ∃y ∈ {0,1}∗, |y| ≤p(|x|) : V akzeptierty#x Wir enumerieren alle Kandidateny ∈ {0,1}∗mit|y| ≤p(|x|) Wir testen jeden Kandidaten mit dem VerifiziererV
Wir akzeptieren, fallsV einen der Kandidaten akzeptiert Anzahl der Kandidaten≈ 2p(|x|)
Zeit pro Kandidat ≈polynomiell in|x|plus|y|
⇒ Gesamtzeit ≈ poly(|x|)·2p(|x|)
EXPTIME (2): NP ⊆ EXPTIME
Satz
NP⊆EXPTIME
Es seiL∈NP
Dann gibt es ein Polynom pund einen polynomiellen AlgorithmusV x ∈L ⇐⇒ ∃y ∈ {0,1}∗, |y| ≤p(|x|) : V akzeptierty#x
Wir enumerieren alle Kandidateny ∈ {0,1}∗mit|y| ≤p(|x|) Wir testen jeden Kandidaten mit dem VerifiziererV
Wir akzeptieren, fallsV einen der Kandidaten akzeptiert Anzahl der Kandidaten≈ 2p(|x|)
Zeit pro Kandidat ≈polynomiell in|x|plus|y|
⇒ Gesamtzeit ≈ poly(|x|)·2p(|x|)
EXPTIME (2): NP ⊆ EXPTIME
Satz
NP⊆EXPTIME
Es seiL∈NP
Dann gibt es ein Polynom pund einen polynomiellen AlgorithmusV x ∈L ⇐⇒ ∃y ∈ {0,1}∗, |y| ≤p(|x|) : V akzeptierty#x Wir enumerieren alle Kandidateny ∈ {0,1}∗mit|y| ≤p(|x|) Wir testen jeden Kandidaten mit dem VerifiziererV
Wir akzeptieren, fallsV einen der Kandidaten akzeptiert
Anzahl der Kandidaten≈ 2p(|x|)
Zeit pro Kandidat ≈polynomiell in|x|plus|y|
⇒ Gesamtzeit ≈ poly(|x|)·2p(|x|)
EXPTIME (2): NP ⊆ EXPTIME
Satz
NP⊆EXPTIME
Es seiL∈NP
Dann gibt es ein Polynom pund einen polynomiellen AlgorithmusV x ∈L ⇐⇒ ∃y ∈ {0,1}∗, |y| ≤p(|x|) : V akzeptierty#x Wir enumerieren alle Kandidateny ∈ {0,1}∗mit|y| ≤p(|x|) Wir testen jeden Kandidaten mit dem VerifiziererV
Wir akzeptieren, fallsV einen der Kandidaten akzeptiert Anzahl der Kandidaten≈ 2p(|x|)
Zeit pro Kandidat ≈polynomiell in|x|plus|y|
⇒ Gesamtzeit ≈ poly(|x|)·2p(|x|)
EXPTIME (3): Zwei Beispiele
Problem: Satisfiability (SAT)
Eingabe:Eine Boole’sche Formelϕin CNF ¨uber der Boole’schen VariablenmengeX ={x1, . . . ,xn}
Frage:Existiert eine Wahrheitsbelegung vonX, die ϕerf¨ullt?
Problem: Hamiltonkreis (HAM-CYCLE)
Eingabe:Ein ungerichteter GraphG = (V,E)mit|V|=n Frage:BesitztG einen Hamiltonkreis?
Frage:
Welche (exponentielle) Zeitkomplexit¨at ergibt sich aus dem vorangehenden Beweis f¨ur die Probleme SAT und HAM-CYCLE?
Polynomielle Reduktionen
Zur Erinnerung: Eine alte Seite aus Vorlesung VL-06
Definition
Es seienL1 undL2 zwei Sprachen ¨uber einem AlphabetΣ.
Dann istL1aufL2reduzierbar(mit der NotationL1≤L2), wenn eine berechenbare Funktionf: Σ∗→Σ∗ existiert, so dass f¨ur allex∈Σ∗gilt: x∈L1 ⇔ f(x)∈L2.
{0,1}∗ {0,1}∗
L2
L1
f
Polynomielle Reduktionen (1)
Definition
Es seienL1 undL2 zwei Sprachen ¨uber einem AlphabetΣ.
Dann istL1polynomiell reduzierbar aufL2(mit der NotationL1≤pL2), wenn eine polynomiellberechenbare Funktionf: Σ∗→Σ∗existiert, so dass f¨ur allex∈Σ∗gilt: x∈L1 ⇔ f(x)∈L2.
{0,1}∗ {0,1}∗
L2
L1
f
Polynomielle Reduktionen (2)
Satz
FallsL1≤pL2 und fallsL2∈P, so giltL1∈P.
Beweis:
Die Reduktionf hat die polynomielle Laufzeitschrankep(·) Der AlgorithmusA2 entscheidetL2mit einer polynomiellen Laufzeitschrankeq(·)
Wir konstruieren einen AlgorithmusA1, derL1 entscheidet: Schritt 1: Berechnef(x)
Schritt 2: Simuliere AlgorithmusA2 auff(x)
Schritt 3: Akzeptierex, genau dann wennA2 akzeptiert Schritt 1 hat Laufzeitp(|x|)und
Schritt 2 hat Laufzeitq(|f(x)|) ≤ q(p(|x|) +|x|)
Polynomielle Reduktionen (2)
Satz
FallsL1≤pL2 und fallsL2∈P, so giltL1∈P.
Beweis:
Die Reduktionf hat die polynomielle Laufzeitschrankep(·) Der AlgorithmusA2 entscheidetL2mit einer polynomiellen Laufzeitschrankeq(·)
Wir konstruieren einen AlgorithmusA1, derL1 entscheidet:
Schritt 1: Berechnef(x)
Schritt 2: Simuliere AlgorithmusA2 auff(x)
Schritt 3: Akzeptierex, genau dann wennA2 akzeptiert Schritt 1 hat Laufzeitp(|x|)und
Schritt 2 hat Laufzeitq(|f(x)|) ≤ q(p(|x|) +|x|)
Polynomielle Reduktionen (3)
Algorithmus A1f¨urL1
x
Reduktion Algorithmus A2 f¨urL2
x∈L1 f(x) f(x)∈L2
Beispiel zu Reduktionen:
COLORING ≤ p SAT
COLORING ≤
pSAT
Problem: Knotenf¨arbung / COLORING
Eingabe:Ein ungerichteter GraphG = (V,E); eine Zahlk ∈N Frage:Gibt es eine F¨arbungc:V → {1, . . . ,k}der Knoten
mitk Farben, sodass benachbarte Knoten verschiedene Farben erhalten? ∀e={u,v} ∈E : c(u)6=c(v)?
Problem: Satisfiability (SAT)
Eingabe:Boole’sche Formelϕin CNF ¨uber der Variablenmenge X Frage:Existiert eine Wahrheitsbelegung vonX, die ϕerf¨ullt?
Satz
COLORING≤p SAT
COLORING ≤
pSAT: Die Reduktion
Die Boole’schen Variablen
F¨ur jeden Knoten v ∈V und f¨ur jede Farbei ∈ {1, . . . ,k} f¨uhren wir eine Boole’sche Variablexvi ein.
Die Klauseln
F¨ur jeden Knoten v ∈V
verwenden wir die Klausel (xv1+xv2+. . .+xvk) F¨ur jede Kante{u,v} ∈E und jede Farbei ∈ {1, . . . ,k}
verwenden wir die Klausel (¯xui + ¯xvi) Anzahl der Variablen =k|V| Anzahl der Klauseln = |V|+k|E|
Gesamtl¨ange der Formel =k|V|+2k|E| ∈ O(k|V|2)
COLORING ≤
pSAT: Die Reduktion
Die Boole’schen Variablen
F¨ur jeden Knoten v ∈V und f¨ur jede Farbei ∈ {1, . . . ,k} f¨uhren wir eine Boole’sche Variablexvi ein.
Die Klauseln
F¨ur jeden Knoten v ∈V
verwenden wir die Klausel (xv1+xv2+. . .+xvk) F¨ur jede Kante{u,v} ∈E und jede Farbei ∈ {1, . . . ,k}
verwenden wir die Klausel (¯xui + ¯xvi)
Anzahl der Variablen =k|V| Anzahl der Klauseln = |V|+k|E|
Gesamtl¨ange der Formel =k|V|+2k|E| ∈ O(k|V|2)
COLORING ≤
pSAT: Die Reduktion
Die Boole’schen Variablen
F¨ur jeden Knoten v ∈V und f¨ur jede Farbei ∈ {1, . . . ,k} f¨uhren wir eine Boole’sche Variablexvi ein.
Die Klauseln
F¨ur jeden Knoten v ∈V
verwenden wir die Klausel (xv1+xv2+. . .+xvk) F¨ur jede Kante{u,v} ∈E und jede Farbei ∈ {1, . . . ,k}
verwenden wir die Klausel (¯xui + ¯xvi) Anzahl der Variablen =k|V| Anzahl der Klauseln = |V|+k|E|
Gesamtl¨ange der Formel =k|V|+2k|E| ∈ O(k|V|2)
COLORING ≤
pSAT: Korrektheit (1)
GraphG hatk-F¨arbung ⇒ Formelϕist erf¨ullbar
Es seic einek-F¨arbung f¨urG
F¨ur jeden Knoten v mitc(v) =i setzen wirxvi =1. Alle anderen Variablen setzen wir auf0.
F¨ur jeden Knoten v ∈V ist(xv1+xv2+. . .+xvk)erf¨ullt F¨ur{u,v} ∈E undi ∈ {1, . . . ,k}ist(¯xui + ¯xvi)erf¨ullt (Andernfalls h¨atten beide Knotenu undv die selbe Farbe i.) Ergo: Diese Wahrheitsbelegung erf¨ullt die Formelϕ
COLORING ≤
pSAT: Korrektheit (1)
GraphG hatk-F¨arbung ⇒ Formelϕist erf¨ullbar
Es seic einek-F¨arbung f¨urG
F¨ur jeden Knoten v mitc(v) =i setzen wirxvi =1. Alle anderen Variablen setzen wir auf0.
F¨ur jeden Knoten v ∈V ist(xv1+xv2+. . .+xvk)erf¨ullt F¨ur{u,v} ∈E undi ∈ {1, . . . ,k}ist(¯xui + ¯xvi)erf¨ullt (Andernfalls h¨atten beide Knotenu undv die selbe Farbe i.) Ergo: Diese Wahrheitsbelegung erf¨ullt die Formelϕ
COLORING ≤
pSAT: Korrektheit (1)
GraphG hatk-F¨arbung ⇒ Formelϕist erf¨ullbar
Es seic einek-F¨arbung f¨urG
F¨ur jeden Knoten v mitc(v) =i setzen wirxvi =1.
Alle anderen Variablen setzen wir auf0.
F¨ur jeden Knoten v ∈V ist(xv1+xv2+. . .+xvk)erf¨ullt F¨ur{u,v} ∈E undi ∈ {1, . . . ,k}ist(¯xui + ¯xvi)erf¨ullt (Andernfalls h¨atten beide Knotenu undv die selbe Farbe i.) Ergo: Diese Wahrheitsbelegung erf¨ullt die Formelϕ
COLORING ≤
pSAT: Korrektheit (1)
GraphG hatk-F¨arbung ⇒ Formelϕist erf¨ullbar
Es seic einek-F¨arbung f¨urG
F¨ur jeden Knoten v mitc(v) =i setzen wirxvi =1.
Alle anderen Variablen setzen wir auf0.
F¨ur jeden Knoten v∈V ist(xv1+xv2+. . .+xvk)erf¨ullt F¨ur{u,v} ∈E undi ∈ {1, . . . ,k}ist(¯xui + ¯xvi)erf¨ullt (Andernfalls h¨atten beide Knotenu undv die selbe Farbe i.)
Ergo: Diese Wahrheitsbelegung erf¨ullt die Formelϕ
COLORING ≤
pSAT: Korrektheit (1)
GraphG hatk-F¨arbung ⇒ Formelϕist erf¨ullbar
Es seic einek-F¨arbung f¨urG
F¨ur jeden Knoten v mitc(v) =i setzen wirxvi =1.
Alle anderen Variablen setzen wir auf0.
F¨ur jeden Knoten v∈V ist(xv1+xv2+. . .+xvk)erf¨ullt F¨ur{u,v} ∈E undi ∈ {1, . . . ,k}ist(¯xui + ¯xvi)erf¨ullt (Andernfalls h¨atten beide Knotenu undv die selbe Farbe i.) Ergo: Diese Wahrheitsbelegung erf¨ullt die Formelϕ
COLORING ≤
pSAT: Korrektheit (2)
Formelϕist erf¨ullbar ⇒ GraphG hatk-F¨arbung
Wir betrachten eine beliebige erf¨ullende Belegung f¨urϕ
Wegen der Klausel (xv1+xv2+. . .+xvk)gibt es f¨ur jeden Knotenv mindestens eine Farbe i mitxvi =1
F¨ur jeden Knoten w¨ahlen wir eine beliebige derartige Farbe aus Wir behaupten:c(u)6=c(v)gilt f¨ur jede Kante{u,v} ∈E Beweis: Falls c(u) =c(v) =i, dann giltxui =xvi =1. Dann w¨are aber die Klausel(¯xui + ¯xvi)verletzt
COLORING ≤
pSAT: Korrektheit (2)
Formelϕist erf¨ullbar ⇒ GraphG hatk-F¨arbung
Wir betrachten eine beliebige erf¨ullende Belegung f¨urϕ
Wegen der Klausel (xv1+xv2+. . .+xvk)gibt es f¨ur jeden Knotenv mindestens eine Farbe i mitxvi =1
F¨ur jeden Knoten w¨ahlen wir eine beliebige derartige Farbe aus Wir behaupten:c(u)6=c(v)gilt f¨ur jede Kante{u,v} ∈E Beweis: Falls c(u) =c(v) =i, dann giltxui =xvi =1. Dann w¨are aber die Klausel(¯xui + ¯xvi)verletzt
COLORING ≤
pSAT: Korrektheit (2)
Formelϕist erf¨ullbar ⇒ GraphG hatk-F¨arbung
Wir betrachten eine beliebige erf¨ullende Belegung f¨urϕ
Wegen der Klausel (xv1+xv2+. . .+xvk)gibt es f¨ur jeden Knotenv mindestens eine Farbe i mitxvi =1
F¨ur jeden Knoten w¨ahlen wir eine beliebige derartige Farbe aus
Wir behaupten:c(u)6=c(v)gilt f¨ur jede Kante{u,v} ∈E Beweis: Falls c(u) =c(v) =i, dann giltxui =xvi =1. Dann w¨are aber die Klausel(¯xui + ¯xvi)verletzt
COLORING ≤
pSAT: Korrektheit (2)
Formelϕist erf¨ullbar ⇒ GraphG hatk-F¨arbung
Wir betrachten eine beliebige erf¨ullende Belegung f¨urϕ
Wegen der Klausel (xv1+xv2+. . .+xvk)gibt es f¨ur jeden Knotenv mindestens eine Farbe i mitxvi =1
F¨ur jeden Knoten w¨ahlen wir eine beliebige derartige Farbe aus Wir behaupten:c(u)6=c(v)gilt f¨ur jede Kante{u,v} ∈E Beweis: Falls c(u) =c(v) =i, dann giltxui =xvi =1. Dann w¨are aber die Klausel(¯xui + ¯xvi)verletzt
COLORING ≤
pSAT: Konsequenzen
Aus unserer ReduktionCOLORING≤p SATfolgt:
Folgerung
Wenn SAT einen polynomiellen Algorithmus hat,
so hat auch COLORING einen polynomiellen Algorithmus.
Folgerung (logisch ¨aquivalent)
Wenn COLORING keinen polynomiellen Algorithmus hat, so hat auch SAT keinen polynomiellen Algorithmus.
Die Komplexit¨ atslandschaft
NP
P
Graph- zusammenhang Primes
SAT
Clique Ind-Set VC
Ex-Cover
Ham-Cycle TSP Partition
Subset-Sum Rucksack
BPP Coloring
Warnung: Dieser Abbildung liegt die AnnahmeP6=NP zu Grunde.
Ubung: Ex-Cover ¨ ≤
pSAT
Problem: Exact Cover (Ex-Cover)
Eingabe:Eine endliche MengeX; TeilmengenS1, . . . ,Sm vonX Frage:Existiert eine IndexmengeI ⊆ {1, . . . ,m},
sodass die MengenSi mit i ∈I eine Partition vonX bilden?
Ubung¨
Zeigen Sie: Ex-Cover≤p SAT
Nicht-Beispiel zu Reduktionen:
Vertex Cover ≤ p SAT
Vertex Cover ≤
pSAT
Problem: Vertex Cover (VC)
Eingabe:Ein ungerichteter GraphG = (V,E); eine Zahlk ∈N Frage:Enth¨altG ein Vertex Cover mit≤k Knoten?
Vertex CoverS⊆V enth¨alt mindestens einen Endpunkt von jeder Kante Problem: Satisfiability (SAT)
Eingabe:Boole’sche Formelϕin CNF ¨uber der Variablenmenge X Frage:Existiert eine Wahrheitsbelegung vonX, die ϕerf¨ullt?
Satz (???)
Vertex Cover≤p SAT
Vertex Cover ≤
pSAT: Die Reduktion (???)
Die Boole’schen Variablen F¨ur jeden Knoten v ∈V
f¨uhren wir eine Boole’sche Variablexv ein.
Die Klauseln
F¨ur jede Kante{u,v} ∈E
verwenden wir die Klausel (xu+xv) F¨ur jede (k+1)-elementige TeilmengeS⊆V
verwenden wir die Klausel _
v∈S
¯ xv
Anzahl der Variablen =|V| Anzahl der Klauseln≈|V|k
Gesamtl¨ange der Formel≈k|V|k ←!!!#!!&!!!!!!!
Vertex Cover ≤
pSAT: Die Reduktion (???)
Die Boole’schen Variablen F¨ur jeden Knoten v ∈V
f¨uhren wir eine Boole’sche Variablexv ein.
Die Klauseln
F¨ur jede Kante{u,v} ∈E
verwenden wir die Klausel (xu+xv) F¨ur jede (k+1)-elementige TeilmengeS⊆V
verwenden wir die Klausel _
v∈S
¯ xv
Anzahl der Variablen =|V| Anzahl der Klauseln≈|V|k
Gesamtl¨ange der Formel≈k|V|k ←!!!#!!&!!!!!!!
Vertex Cover ≤
pSAT: Die Reduktion (???)
Die Boole’schen Variablen F¨ur jeden Knoten v ∈V
f¨uhren wir eine Boole’sche Variablexv ein.
Die Klauseln
F¨ur jede Kante{u,v} ∈E
verwenden wir die Klausel (xu+xv) F¨ur jede (k+1)-elementige TeilmengeS⊆V
verwenden wir die Klausel _
v∈S
¯ xv
Anzahl der Variablen =|V| Anzahl der Klauseln≈|V|k
Gesamtl¨ange der Formel≈k|V|k ←!!!#!!&!!!!!!!