• Keine Ergebnisse gefunden

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
72
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

VL-13: Polynomielle Reduktionen

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

WS 2019, RWTH

(2)

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

(3)

Wiederholung

(4)

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

(5)

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

(6)

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

(7)

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?

(8)

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.

(9)

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?

(10)

Vorlesung VL-13

Polynomielle Reduktionen

Die Komplexit¨atsklasse EXPTIME

L¨osung finden versus L¨osbarkeit entscheiden Optimieren versus L¨osbarkeit entscheiden Polynomielle Reduktionen

(11)

Die Komplexit¨ atsklasse EXPTIME

(12)

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

Frage:Wie verhalten sich die KlassenPund NPzuEXPTIME?

(13)

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

Frage:Wie verhalten sich die KlassenPund NPzuEXPTIME?

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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?

(19)

L¨ osung finden versus

L¨ osbarkeit entscheiden

(20)

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

(21)

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)

(22)

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ϕ

(23)

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ϕ

(24)

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.

(25)

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.

(26)

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.

(27)

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.

(28)

Optimieren versus

L¨ osbarkeit entscheiden

(29)

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

(30)

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

(31)

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

(32)

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 ≤γ?

(33)

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 ≤γ?

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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.

(40)

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.

(41)

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.

(42)

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

(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 istL1 polynomiellreduzierbar 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 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|)

(47)

Polynomielle Reduktionen (2)

Satz

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

(48)

Polynomielle Reduktionen (3)

Algorithmus A1f¨urL1

x

Reduktion Algorithmus A2f¨urL2

x ∈L1 Y/N f(x) f(x)∈L2

Y/N

(49)

Beispiel zu Reduktionen:

COLORING ≤ p SAT

(50)

COLORING ≤

p

SAT

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

(51)

Beispiel: Knotenf¨ arbung von Graphen

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

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

(63)

Ubung: Ex-Cover ¨ ≤

p

SAT

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

(64)

Beispiel zu Reduktionen:

Vertex Cover ≤ p SAT

(65)

Vertex Cover ≤

p

SAT

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

(66)

Vertex Cover ≤

p

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

(67)

Vertex Cover ≤

p

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

(68)

Vertex Cover ≤

p

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

(69)

Vertex Cover ≤

p

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

(70)

Vertex Cover ≤

p

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

(71)

Vertex Cover ≤

p

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

(72)

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.

Referenzen

ÄHNLICHE DOKUMENTE

L¨ osung lautet wieder: Probiere alle M¨ oglichkeiten durch Nachteil lautet wieder: Extrem langsamer Algorithmus.. Beispiel 2:

Auch dieses Problem kann dadurch gel¨ ost werden, dass man einfach alle M¨ oglichkeiten durchprobiert. Und auch dieser Algorithmus ist

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

heute oder morgen oder in ferner Zukunft) um festzustellen, ob ein gegebenes Java Programm einer nicht-trivialen Spezifikation entspricht. Analoge Konsequenzen gelten f¨ ur alle

A number of mathematical concepts are named after him: Kleene hierarchy, Kleene algebra, the Kleene star (Kleene closure), Kleene’s recursion theorem, and the Kleene fixpoint

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