• Keine Ergebnisse gefunden

VL-13: Polynomielle Reduktionen (Berechenbarkeit und Komplexit¨at, WS 2018) Gerhard Woeginger

N/A
N/A
Protected

Academic year: 2022

Aktie "VL-13: Polynomielle Reduktionen (Berechenbarkeit und Komplexit¨at, WS 2018) Gerhard Woeginger"

Copied!
70
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

VL-13: Polynomielle Reduktionen

(Berechenbarkeit und Komplexit¨ at, WS 2018) Gerhard Woeginger

WS 2018, RWTH

(2)

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)

(3)

Wiederholung

(4)

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}

(5)

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

(6)

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?

(7)

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

(8)

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?

(9)

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.

(10)

Vorlesung VL-13

Polynomielle Reduktionen

L¨osung finden versus L¨osbarkeit entscheiden Optimieren versus L¨osbarkeit entscheiden Die Komplexit¨atsklasse EXPTIME Polynomielle Reduktionen

(11)

L¨ osung finden versus

L¨ osbarkeit entscheiden

(12)

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

(13)

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)

(14)

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ϕ

(15)

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ϕ

(16)

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.

(17)

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.

(18)

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.

(19)

Optimieren versus

L¨ osbarkeit entscheiden

(20)

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

(21)

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)≥γ?

(22)

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)≥γ?

(23)

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?

(24)

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?

(25)

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(π)≤γ?

(26)

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).

(27)

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).

(28)

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

(29)

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

(30)

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.

(31)

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

(32)

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

(33)

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

(34)

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

(35)

Die Komplexit¨ atsklasse EXPTIME

(36)

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:2n, 2n, 3n, n!, nn. Aber nicht:22n

Wie verhalten sich die KlassenPundNP zuEXPTIME?

(37)

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:2n, 2n, 3n, n!, nn. Aber nicht:22n

Wie verhalten sich die KlassenPundNP zuEXPTIME?

(38)

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|)

(39)

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|)

(40)

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|)

(41)

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|)

(42)

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?

(43)

Polynomielle Reduktionen

(44)

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

(45)

Polynomielle Reduktionen (1)

Definition

Es seienL1 undL2 zwei Sprachen ¨uber einem AlphabetΣ.

Dann istL1polynomiell reduzierbar aufL2(mit der NotationL1pL2), wenn eine polynomiellberechenbare Funktionf: Σ→Σexistiert, so dass f¨ur allex∈Σgilt: x∈L1 ⇔ f(x)∈L2.

{0,1} {0,1}

L2

L1

f

(46)

Polynomielle Reduktionen (2)

Satz

FallsL1pL2 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|)

(47)

Polynomielle Reduktionen (2)

Satz

FallsL1pL2 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|)

(48)

Polynomielle Reduktionen (3)

Algorithmus A1f¨urL1

x

Reduktion Algorithmus A2 f¨urL2

x∈L1 f(x) f(x)∈L2

(49)

Beispiel zu Reduktionen:

COLORING ≤ p SAT

(50)

COLORING ≤

p

SAT

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

(51)

COLORING ≤

p

SAT: 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)

(52)

COLORING ≤

p

SAT: 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)

(53)

COLORING ≤

p

SAT: 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)

(54)

COLORING ≤

p

SAT: 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ϕ

(55)

COLORING ≤

p

SAT: 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ϕ

(56)

COLORING ≤

p

SAT: 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ϕ

(57)

COLORING ≤

p

SAT: 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ϕ

(58)

COLORING ≤

p

SAT: 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ϕ

(59)

COLORING ≤

p

SAT: 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

(60)

COLORING ≤

p

SAT: 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

(61)

COLORING ≤

p

SAT: 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

(62)

COLORING ≤

p

SAT: 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

(63)

COLORING ≤

p

SAT: 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.

(64)

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.

(65)

Ubung: Ex-Cover ¨ ≤

p

SAT

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

(66)

Nicht-Beispiel zu Reduktionen:

Vertex Cover ≤ p SAT

(67)

Vertex Cover ≤

p

SAT

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

(68)

Vertex Cover ≤

p

SAT: 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 ←!!!#!!&!!!!!!!

(69)

Vertex Cover ≤

p

SAT: 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 ←!!!#!!&!!!!!!!

(70)

Vertex Cover ≤

p

SAT: 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 ←!!!#!!&!!!!!!!

Referenzen

ÄHNLICHE DOKUMENTE

Die Inhalte der Register sind nat¨ urliche Zahlen, die beliebig gross werden k¨ onnen.. in den ersten paar Registern

Ein schneller Algorithmus f¨ ur das Entscheidungsproblem liefert (durch wiederholte Anwendung) oft auch einen schnellen Algorithmus zum Berechnen eines expliziten L¨

Wir werden zeigen, dass SAT, CLIQUE, Ham-Cycle, PARTITION, Rucksack und viele weitere Probleme NP-vollst¨ andig sind.. Unter der Annahme P 6= NP (Standardannahme) besitzt also

Wir werden zeigen, dass SAT, CLIQUE, Ham-Cycle, PARTITION, Rucksack und viele weitere Probleme NP-vollst¨ andig sind.. Unter der Annahme P 6= NP (Standardannahme) besitzt also

Auch wenn eine Aufgabe als Entscheidungsfrage formuliert wird, gibt es f¨ ur ein einfaches Ja oder Nein keine Punkte. Allgemein: Punkte werden bei der Klausur haupts¨ achlich f¨

Die in den Registern gespeicherten Zahlen repr¨ asentieren Zust¨ ande, Zeichen und Bandpositionen.. Zust¨ ande und Zeichen haben eine konstante

Statt der RAM kann man in der Definition von polynomieller Laufzeit und von polynomiellen Algorithmen genauso gut die TM verwenden: RAM und TM simulieren einander ja mit

Aus einem polynomiellen Algorithmus A f¨ urs Entscheidungsproblem konstruieren wir zuerst einen polynomiellen Algorithmus B, der den optimalen Zielfunktionswert bestimmt (Phase 1),.