VL-13: Polynomielle Reduktionen
(Berechenbarkeit und Komplexit¨ at, WS 2019) Gerhard Woeginger
WS 2019, RWTH
Organisatorisches
N¨achste Vorlesungen:
Freitag, Dezember 13, 12:30–14:00, Audimax Mittwoch, Dezember 18, 10:30–12:00, Aula
Webseite:
https://algo.rwth-aachen.de/Lehre/WS1920/BuK/BuK.py
Wiederholung
Wdh.: Non-deterministische Turingmaschine (NTM)
Definition: Akzeptanzverhalten der NTM Eine NTMM akzeptiert die Eingabex∈Σ∗,
falls esmindestenseinen Rechenweg vonM gibt,
der in eine Konfiguration mit akzeptierendem Zustand f¨uhrt.
q00011
q0011
q1011 reject q111
q011 reject
q11
q21 reject q1
q2 accept reject
Wdh.: P und NP
Komplexit¨atsklassen P und NP
Pist die Klasse aller Entscheidungsprobleme, die durch eine TMM erkannt werden,
deren Worst Case LaufzeittM(n)polynomiell beschr¨ankt ist.
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 polynomiellendeterministischen AlgorithmusV und ein Polynomp mit der folgenden Eigenschaft gibt:
x ∈L ⇐⇒ ∃y ∈ {0,1}∗, |y| ≤p(|x|) : V akzeptierty#x
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, sodass xi1xi2. . .xin =yi1yi2. . .yin gilt.
Ein zweifelhafter Satz PCP∈NP
Ein zweifelhafter Beweis:
Zertifikat = correspondierende Folgehi1, . . . ,ini Verifizierer ¨uberpr¨uft, obxi1xi2. . .xin =yi1yi2. . .yin gilt
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 Zahl k Frage:Enth¨altG eine Clique mit≥k Knoten?
Problem: Hamiltonkreis (Ham-Cycle)
Eingabe:Ein ungerichteter GraphG = (V,E) Frage:BesitztG einen Hamiltonkreis?
Wdh.: Die Komplexit¨ atslandschaft
NP
P
Graph- zusammenhang Primzahl
SAT
Clique Ind-Set VC
Ham-Cycle TSP Partition
Subset-Sum
Ex-Cover
Warnung: Dieser Abbildung liegt die AnnahmeP6=NP zu Grunde.
Wdh.: Die grosse offene Frage der Informatik
P=NP ?
Falls die L¨osung eines Problems einfach zu¨uberpr¨ufenist,
ist es dann auch immer einfach, die L¨osung selbst zuentdecken?
Vorlesung VL-13
Polynomielle Reduktionen
Die Komplexit¨atsklasse EXPTIME
L¨osung finden versus L¨osbarkeit entscheiden Optimieren versus L¨osbarkeit entscheiden Polynomielle Reduktionen
Die Komplexit¨ atsklasse EXPTIME
EXPTIME: Definition
Definition: Komplexit¨atsklasse EXPTIME
EXPTIMEist die Klasse aller Entscheidungsprobleme,
die durch eine (deterministische) TMM entschieden werden, deren Worst Case Laufzeit durch2q(n) mit einem Polynomqbeschr¨ankt ist,
Laufzeit-Beispiele: 2√n, 2n, 3n, n·2n, n!, nn Aber nicht: 22n und nnn
Frage:Wie verhalten sich die KlassenPund NPzuEXPTIME?
EXPTIME: Definition
Definition: Komplexit¨atsklasse EXPTIME
EXPTIMEist die Klasse aller Entscheidungsprobleme,
die durch eine (deterministische) TMM entschieden werden, deren Worst Case Laufzeit durch2q(n) mit einem Polynomqbeschr¨ankt ist,
Laufzeit-Beispiele: 2√n, 2n, 3n, n·2n, n!, nn Aber nicht: 22n und nnn
Frage:Wie verhalten sich die KlassenPund NPzuEXPTIME?
EXPTIME: 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 einzelnen Kandidaten mit dem VerifiziererV. Wir akzeptieren, fallsV einen der Kandidaten akzeptiert. Anzahl der Kandidaten≈ 2p(|x|)
Zeit pro Kandidat ≈polynomiell in|x|+|y| Ergo: Gesamtzeit≈ poly(|x|)·2p(|x|)
EXPTIME: 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 einzelnen Kandidaten mit dem VerifiziererV. Wir akzeptieren, fallsV einen der Kandidaten akzeptiert. Anzahl der Kandidaten≈ 2p(|x|)
Zeit pro Kandidat ≈polynomiell in|x|+|y| Ergo: Gesamtzeit≈ poly(|x|)·2p(|x|)
EXPTIME: 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 einzelnen Kandidaten mit dem VerifiziererV. Wir akzeptieren, fallsV einen der Kandidaten akzeptiert.
Anzahl der Kandidaten≈ 2p(|x|)
Zeit pro Kandidat ≈polynomiell in|x|+|y| Ergo: Gesamtzeit≈ poly(|x|)·2p(|x|)
EXPTIME: 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 einzelnen Kandidaten mit dem VerifiziererV. Wir akzeptieren, fallsV einen der Kandidaten akzeptiert.
Anzahl der Kandidaten≈ 2p(|x|)
Zeit pro Kandidat ≈polynomiell in|x|+|y|
Ergo: Gesamtzeit≈ poly(|x|)·2p(|x|)
EXPTIME: 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?
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 ein L¨osungsobjektY? Dilemma:
Das Entscheidungsproblem besch¨aftigt sich nur mit der Frage, ob ein derartiges L¨osungsobjektY existiert.
Aber eigentlich will man das L¨osungsobjektY auch genau bestimmen, und dann damit weiter 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¨urerf¨ullbareSAT 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, 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¨urerf¨ullbareSAT 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, 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 Zahl k 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 keinek-Clique enth¨alt, so mussv im Graphen bleiben
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 Zahl k 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 keinek-Clique enth¨alt, so mussv im Graphen bleiben
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 musse bleiben
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.
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 musse bleiben
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 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:
InMinimierungsproblemen sollen die Kostenminimiertwerden.
InMaximierungsproblemen soll der Profitmaximiertwerden.
Dilemma:
Die Klassen P und NP enthalten keine Optimierungsprobleme, sondern nur Entscheidungsprobleme
Ausweg:
Jedes Optimierungsproblem kann in ein “sehr ¨ahnliches”
Entscheidungsproblem umformuliert werden
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:Minimiere d(π) :=
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(π)≤γ?
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:Minimiere d(π) :=
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(π)≤γ?
Beispiel: Bin Packing
Beim Bin Packing sollennObjekte1, . . . ,nmit Gewichtenw1, . . . ,wn auf m¨oglichst wenige Kisten mit GewichtslimitB verteilt werden.
Problem: Bin Packing (BPP)
Eingabe:Eine ganze ZahlB und Zahlenw1, . . . ,wn∈ {1, . . . ,B}
Zul¨assige L¨osung:Partition von 1, . . . ,nin TeilmengenT1, . . . ,Tk, sodassw(Tj)≤B f¨ur alle1≤j≤k gilt.
Ziel:Minimiere die Anzahl k der Teilmengen.
Entscheidungsproblem:
Die Eingabe enth¨alt zus¨atzlich eine Schrankeγf¨ur die Anzahl der Kisten.
Frage: Existiert eine zul¨assige L¨osungT1, . . . ,Tk mitk ≤γ?
Beispiel: Bin Packing
Beim Bin Packing sollennObjekte1, . . . ,nmit Gewichtenw1, . . . ,wn auf m¨oglichst wenige Kisten mit GewichtslimitB verteilt werden.
Problem: Bin Packing (BPP)
Eingabe:Eine ganze ZahlB und Zahlenw1, . . . ,wn∈ {1, . . . ,B}
Zul¨assige L¨osung:Partition von 1, . . . ,nin TeilmengenT1, . . . ,Tk, sodassw(Tj)≤B f¨ur alle1≤j≤k gilt.
Ziel:Minimiere die Anzahl k der Teilmengen.
Entscheidungsproblem:
Die Eingabe enth¨alt zus¨atzlich eine Schrankeγ f¨ur die Anzahl der Kisten.
Frage: Existiert eine zul¨assige L¨osungT1, . . . ,Tk mitk ≤γ?
Beispiel: Knapsack
Beim Knapsack Problem (KP; Rucksackproblem) sindnObjekte mit Gewichten w1, . . . ,wn und Profitenp1, . . . ,pngegeben
Ausserdem ist eine Gewichtsschrankew gegeben
Wir suchen eine TeilmengeK der Objekte, die in einen Rucksack mit Gewichtsschranke w passt und die den Gesamtprofit maximiert Problem: Knapsack (KP)
Eingabe:Nat¨urliche Zahlenw1, . . . ,wn, p1, . . . ,pn, undb Zul¨assige L¨osung:MengeK⊆ {1, . . . ,n}mitw(K) :=P
i∈Kwi≤w Ziel:Maximiere p(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)≥γ?
Allgemein: Optimieren vs Entscheiden
F¨ur ein Optimierungsproblem mit einer MengeLvon zul¨assigen L¨osungen und einer Kostenfunktionf :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).
Allgemein: Optimieren vs Entscheiden
F¨ur ein Optimierungsproblem mit einer MengeLvon zul¨assigen L¨osungen und einer Kostenfunktionf :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: Knapsack (1)
Eingabe: Nat¨urliche Zahlenw1, . . . ,wn, p1, . . . ,pn; w; γ Zul¨assig: Menge K⊆ {1, . . . ,n} mitw(K)≤w
Optimierung:Berechne zul¨assigesK mit maximalemp(K) Entscheidung:Existiert zul¨assiges K mitp(K)≥γ?
Satz
Wenn Knapsack-Entscheidung inT(|I|)Zeit l¨osbar ist, so ist Knapsack-Optimierung inpoly(|I|)·T(|I|)Zeit l¨osbar.
Beweis: Aus einem schnellen AlgorithmusAf¨urs Entscheidungsproblem konstruieren wir zuerst einen schnellen AlgorithmusB,
der den optimalen Zielfunktionswertbestimmt und dann einen schnellen Algorithmus C, der eineoptimale zul¨assige L¨osungbestimmt
Beispiel: Knapsack (1)
Eingabe: Nat¨urliche Zahlenw1, . . . ,wn, p1, . . . ,pn; w; γ Zul¨assig: Menge K⊆ {1, . . . ,n} mitw(K)≤w
Optimierung:Berechne zul¨assigesK mit maximalemp(K) Entscheidung:Existiert zul¨assiges K mitp(K)≥γ?
Satz
Wenn Knapsack-Entscheidung inT(|I|)Zeit l¨osbar ist, so ist Knapsack-Optimierung inpoly(|I|)·T(|I|)Zeit l¨osbar.
Beweis: Aus einem schnellen AlgorithmusAf¨urs Entscheidungsproblem konstruieren wir zuerst einen schnellen AlgorithmusB,
der den optimalen Zielfunktionswertbestimmt und dann einen schnellen Algorithmus C, der eineoptimale zul¨assige L¨osungbestimmt
Beispiel: Knapsack (2)
AlgorithmusB f¨ur (Phase 1)
Wir f¨uhren eineBin¨are Suchemit den folgenden Parametern durch:
Der minimal m¨ogliche Profit ist0.
Der maximal m¨ogliche Profit istP:=
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 mitteilt, in welcher H¨alfte des verbleibenden Wertebereichs wir weitersuchen m¨ussen
Die Anzahl der Iterationen der Bin¨arsuche istdlog(P+1)e.
Beispiel: Knapsack (3)
Algorithmus B besteht aus≤ dlog(P+1)eAufrufen von AlgorithmusAin der bin¨aren Suche.
Also ist die Gesamtlaufzeit von Algorithmus B durch dlog(P+1)e ·T(|I|)beschr¨ankt.
Die Eingabel¨ange|I| der Knapsack-InstanzI betr¨agt
|I| ≥
n
X
i=1
log(pi+1) = log(
n
Y
i=1
(pi+1))
≥ log(
n
X
i=1
(pi+1)) ≈ log(P+1)
Die Gesamtlaufzeit von AlgorithmusB ist durch|I| ·T(|I|)beschr¨ankt.
Beispiel: Knapsack (3)
Algorithmus B besteht aus≤ dlog(P+1)eAufrufen von AlgorithmusAin der bin¨aren Suche.
Also ist die Gesamtlaufzeit von Algorithmus B durch dlog(P+1)e ·T(|I|)beschr¨ankt.
Die Eingabel¨ange|I|der Knapsack-Instanz I betr¨agt
|I| ≥
n
X
i=1
log(pi+1) = log(
n
Y
i=1
(pi+1))
≥ log(
n
X
i=1
(pi+1)) ≈ log(P+1)
Die Gesamtlaufzeit von AlgorithmusB ist durch|I| ·T(|I|)beschr¨ankt.
Beispiel: Knapsack (4)
Aus AlgorithmusB konstruieren wir nun noch den AlgorithmusC, der die optimale zul¨assige L¨osung bestimmt:
AlgorithmusC
1 K:= –1,...,n˝;
2 opt:= Algo˙B(K);
3 for i:= 1 to n do
4 if Algo˙B(K-–i˝)==opt then K:= K-–i˝;
5 return K
Algorithmus C besteht im wesentlichen ausn+1Aufrufen des polynomiellen Algorithmus B
Also ist die Gesamtlaufzeit von Algorithmus C durchn· |I| ·T(|I|) und folglich durchpoly(|I|)·T(|I|)beschr¨ankt
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 istL1 polynomiellreduzierbar 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 eine polynomielle Laufzeitschrankep(·) Ein 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 eine polynomielle Laufzeitschrankep(·) Ein 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 A2f¨urL2
x ∈L1 Y/N f(x) f(x)∈L2
Y/N
Beispiel zu Reduktionen:
COLORING ≤ p SAT
COLORING ≤
pSAT
Problem: Knotenf¨arbung / COLORING
Eingabe:Ein ungerichteter GraphG = (V,E); eine Zahl k∈N Frage:Gibt es eine F¨arbung c: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 VariablenmengeX Frage:Existiert eine Wahrheitsbelegung vonX, dieϕerf¨ullt?
Satz
COLORING≤p SAT
Beispiel: Knotenf¨ arbung von Graphen
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 (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 1
Wenn SAT einen polynomiellen Algorithmus hat,
so hat auch COLORING einen polynomiellen Algorithmus.
Folgerung 2 (logisch ¨aquivalent zu Folgerung 1)
Wenn COLORING keinen polynomiellen Algorithmus hat, so hat auch SAT keinen polynomiellen Algorithmus.
Ubung: Ex-Cover ¨ ≤
pSAT
Problem: Exact Cover (Ex-Cover)
Eingabe:Eine endliche MengeX; TeilmengenS1, . . . ,Sm von X Frage:Existiert eine IndexmengeI ⊆ {1, . . . ,m},
sodass die MengenSi mit i ∈I eine Partition vonX bilden?
Ubung¨
Zeigen Sie: Ex-Cover≤p SAT
Beispiel zu Reduktionen:
Vertex Cover ≤ p SAT
Vertex Cover ≤
pSAT
Problem: Vertex Cover (VC)
Eingabe:Ein ungerichteter GraphG = (V,E); eine Zahl k∈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 VariablenmengeX Frage:Existiert eine Wahrheitsbelegung vonX, dieϕerf¨ullt?
Satz
Vertex Cover≤p SAT
Vertex Cover ≤
pSAT: Eine zweifelhafte Reduktion
Die Boole’schen Variablen F¨ur jeden Knoten v ∈V
f¨uhren wir eine Boole’sche Variablexv ein.
(Variablexv ist TRUE)⇐⇒(Knotenv ist im Vertex Cover)
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+1 (??????????)
Vertex Cover ≤
pSAT: Eine zweifelhafte Reduktion
Die Boole’schen Variablen F¨ur jeden Knoten v ∈V
f¨uhren wir eine Boole’sche Variablexv ein.
(Variablexv ist TRUE)⇐⇒(Knotenv ist im Vertex Cover) 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+1 (??????????)
Vertex Cover ≤
pSAT: Eine zweifelhafte Reduktion
Die Boole’schen Variablen F¨ur jeden Knoten v ∈V
f¨uhren wir eine Boole’sche Variablexv ein.
(Variablexv ist TRUE)⇐⇒(Knotenv ist im Vertex Cover) 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+1 (??????????)
Vertex Cover ≤
pSAT: Eine korrekte Reduktion
Die Boole’schen Variablen
F¨ur jeden Knoten v ∈V und f¨ur jede Zahli ∈ {1,2, . . . ,k}
f¨uhren wir eine Boole’sche Variablexvi ein.
(Variablexvi ist TRUE)⇐⇒(v ist deri-te Knoten im Vertex Cover)
Die Klauseln
F¨ur jede Kante{u,v} ∈E
verwenden wir die Klausel ( _
1≤i≤k
xui ∨ _
1≤i≤k
xvi)
F¨ur jede Zahl i ∈ {1,2, . . . ,k}und je zwei Knotenu,v∈V mitu6=v verwenden wir die Klausel (¯xvi + ¯xui)
Anzahl der Variablen =k|V| Anzahl der Klauseln≈|E|+k|V|2
Vertex Cover ≤
pSAT: Eine korrekte Reduktion
Die Boole’schen Variablen
F¨ur jeden Knoten v ∈V und f¨ur jede Zahli ∈ {1,2, . . . ,k}
f¨uhren wir eine Boole’sche Variablexvi ein.
(Variablexvi ist TRUE)⇐⇒(v ist deri-te Knoten im Vertex Cover) Die Klauseln
F¨ur jede Kante{u,v} ∈E
verwenden wir die Klausel ( _
1≤i≤k
xui ∨ _
1≤i≤k
xvi)
F¨ur jede Zahl i ∈ {1,2, . . . ,k}und je zwei Knotenu,v∈V mitu6=v verwenden wir die Klausel (¯xvi + ¯xui)
Anzahl der Variablen =k|V| Anzahl der Klauseln≈|E|+k|V|2
Vertex Cover ≤
pSAT: Eine korrekte Reduktion
Die Boole’schen Variablen
F¨ur jeden Knoten v ∈V und f¨ur jede Zahli ∈ {1,2, . . . ,k}
f¨uhren wir eine Boole’sche Variablexvi ein.
(Variablexvi ist TRUE)⇐⇒(v ist deri-te Knoten im Vertex Cover) Die Klauseln
F¨ur jede Kante{u,v} ∈E
verwenden wir die Klausel ( _
1≤i≤k
xui ∨ _
1≤i≤k
xvi)
F¨ur jede Zahl i ∈ {1,2, . . . ,k}und je zwei Knotenu,v∈V mitu6=v verwenden wir die Klausel (¯xvi + ¯xui)
Anzahl der Variablen =k|V| Anzahl der Klauseln≈|E|+k|V|2
Die Komplexit¨ atslandschaft
NP
P
Graph- zusammenhang Primzahl
SAT
Clique Ind-Set VC
Ex-Cover
Ham-Cycle TSP Partition
Subset-Sum Knapsack
BPP Coloring
Warnung: Dieser Abbildung liegt die AnnahmeP6=NP zu Grunde.