• Keine Ergebnisse gefunden

VL-16: NP-vollst¨andige Zahlprobleme (Berechenbarkeit und Komplexit¨at, WS 2019) Gerhard Woeginger

N/A
N/A
Protected

Academic year: 2022

Aktie "VL-16: NP-vollst¨andige Zahlprobleme (Berechenbarkeit und Komplexit¨at, WS 2019) Gerhard Woeginger"

Copied!
67
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

VL-16: NP-vollst¨ andige Zahlprobleme

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

WS 2019, RWTH

(2)

Organisatorisches

N¨achste Vorlesung:

Mittwoch, Januar 22, 10:30–12:00 Uhr, Aula

Webseite:

https://algo.rwth-aachen.de/Lehre/WS1920/BuK/BuK.py

(3)

Wdh.: NP-schwer & NP-vollst¨ andig

Definition

Ein ProblemL istNP-schwer, falls ∀L∈NP: L≤pL

Ein ProblemL istNP-vollst¨andig, fallsL∈NPundListNP-schwer.

Satz

WennLNP-vollst¨andig ist, dann gilt: L∈P ⇒ P=NP Unter der AnnahmeP6=NP (Standardannahme) besitzt also kein NP-vollst¨andiges Problem einen polynomiellen Algorithmus.

(4)

Wdh.: Kochrezept f¨ ur NP-Vollst¨ andigkeitsbeweise

Kochrezept:

1. Man zeigeL∈NP.

2. Man w¨ahle eine NP-vollst¨andige SpracheL.

3. (Reduktionsabbildung): Man konstruiere eine Funktion f, die Instanzen von Lauf Instanzen vonL abbildet.

4. (Polynomielle Zeit):Man zeige, dass f in polynomieller Zeit berechnet werden kann.

5. (Korrektheit): Man beweise, dassf tats¨achlich eine Reduktion ist.

F¨urx ∈ {0,1}gilt x∈Lgenau dann, wennf(x)∈L.

(5)

Wdh.: Die Komplexit¨ atslandschaft

NP

P

Graph- zusammenhang Primzahl

SAT

Clique Ind-Set VC

Ex-Cover

Ham-Cycle TSP Partition

Subset-Sum Knapsack

BPP Coloring 3-SAT

Warnung: Dieser Abbildung liegt die AnnahmeP6=NP zu Grunde.

(6)

Wdh.: Landkarte mit Karp’s 20 Reduktionen

SAT INTEGER

PROG 3-SAT

COLORING

CLIQUE COVER

EXACT COVER 3-DIM

MATCHING

STEINER TREE

HITTING SET

SUBSET-SUM

PARTITION JOB MAX-CUT

SET COVER FEEDBACK

ARC SET

FEEDBACK VERTEX

SET DIRECTED

HAM-CYCLE

HAM CYCLE

VERTEX COVER INDEP

SET

CLIQUE

(7)

Vorlesung VL-16

Einige NP-vollst¨ andige Zahlprobleme

NP-Vollst¨andigkeit von SUBSET-SUM NP-Vollst¨andigkeit von PARTITION

NP-Vollst¨andigkeit von Bin Packing und Knapsack Pseudo-polynomielle Zeit

Starke NP-Schwere

Das THREE-PARTITION Problem

(8)

NP-Vollst¨ andigkeit von

SUBSET-SUM

(9)

SUBSET-SUM: Definition

Problem: SUBSET-SUM

Eingabe:Positive ganze Zahlena1, . . . ,an; eine ganze Zahlb Frage:Existiert eine IndexmengeI ⊆ {1, . . . ,n}mitP

i∈Iai=b?

Beispiel: Eingabe f¨ur SUBSET-SUM

Zahlen 1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192 und Zielsumme b=9999

Satz

SUBSET-SUM ist NP-vollst¨andig.

(10)

SUBSET-SUM: Definition

Problem: SUBSET-SUM

Eingabe:Positive ganze Zahlena1, . . . ,an; eine ganze Zahlb Frage:Existiert eine IndexmengeI ⊆ {1, . . . ,n}mitP

i∈Iai=b?

Beispiel: Eingabe f¨ur SUBSET-SUM

Zahlen 1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192 und Zielsumme b=9999

Satz

SUBSET-SUM ist NP-vollst¨andig.

(11)

SUBSET-SUM: Reduktion

Satz

SUBSET-SUM ist NP-vollst¨andig.

Beweis:

SUBSET-SUM liegt in NP

Wir zeigen 3-SAT≤p SUBSET-SUM

Die Boole’sche Formel ϕin 3-CNF sei eine Instanz von3-SAT Die Formel hat Klauselnc1, . . . ,cm mit den Variablenx1, . . . ,xn

In der Reduktion arbeiten wir mit Dezimalzahlen mit jeweilsn+mZiffern.

Diek-te Ziffer einer Zahlz bezeichnen wir dabei mitz(k).

(12)

Reduktion (1): Var-Zahlen

Wir definieren:

S+(i) = {j ∈ {1, . . . ,m} | Klauselcj enth¨alt Literalxi} S(i) = {j ∈ {1, . . . ,m} | Klauselcj enth¨alt Literal¯xi}

F¨ur jede Boolesche Variablexi mit1≤i ≤nerzeugen wir zwei entsprechende Var-Zahlenai+undai mit den folgenden Ziffern:

a+i (i) =1 und f¨ur allej ∈S+(i) : ai+(n+j) =1 ai (i) =1 und f¨ur allej ∈S(i) : ai(n+j) =1

Alle anderen Ziffern in diesen Dezimaldarstellungen sind 0.

(13)

Reduktion (1): Var-Zahlen

Wir definieren:

S+(i) = {j ∈ {1, . . . ,m} | Klauselcj enth¨alt Literalxi} S(i) = {j ∈ {1, . . . ,m} | Klauselcj enth¨alt Literal¯xi}

F¨ur jede Boolesche Variablexi mit1≤i ≤nerzeugen wir zwei entsprechende Var-Zahlenai+undaimit den folgenden Ziffern:

a+i (i) =1 und f¨ur allej ∈S+(i) : ai+(n+j) =1 ai (i) =1 und f¨ur allej ∈S(i) : ai(n+j) =1

Alle anderen Ziffern in diesen Dezimaldarstellungen sind 0.

(14)

Reduktion: Beispiel

Als Beispiel betrachten wir die Formel (x1∨x2∨x3)∧(x2∨x¯3∨x¯4)

Die folgenden Var-Zahlen werden erzeugt:

a+1 = 100010 a1 = 100000 a+2 = 010011 a2 = 010000 a+3 = 001010 a3 = 001001 a+ = 000100

(15)

Reduktion (2): Dummy-Zahlen

Wir definieren f¨ur jede Klauselcj zwei entsprechende Dummy-Zahlen dj unddj0.

Dummy-Zahlen haben nur an der Ziffernposition n+j eine Ziffer 1;

alle anderen Ziffern sind 0.

Fortsetzung des Beispiels

Wir betrachten wieder die Formel (x1∨x2∨x3)∧(x2∨x¯3∨x¯4)

Die Dummy-Zahlen f¨ur die beiden Klauseln lauten dann:

d1 = 000010 d10 = 000010 d2 = 000001 d20 = 000001

(16)

Reduktion (3): Zielsumme

DieZielsummeb definieren wir folgendermassen:

b(k) =1f¨ur1≤k ≤n,

b(k) =3f¨urn+1≤k ≤n+m.

Abschluss des Beispiels

Wir betrachten wieder die Formel (x1∨x2∨x3)∧(x2∨x¯3∨x¯4) Die Zielsumme lautet dann:

b = 111133

(17)

Reduktion: Illustration

M¨ogliche Zahlwerte f¨ur eine Formel mitn Variablen undmKlauseln:

1 2 3 · · · n n+1 n+2 · · · n+m

a+1 1 0 0 · · · 0 1 0 · · · ·

a1 1 0 0 · · · 0 0 0 · · · ·

a+2 0 1 0 · · · 0 0 1 · · · ·

a2 0 1 0 · · · 0 1 0 · · · ·

a+3 0 0 1 · · · 0 1 1 · · · ·

... ... ... ... ... ... ... ... ... ...

a+n 0 0 0 · · · 1 0 0 · · · ·

an 0 0 0 · · · 1 0 1 · · · ·

d1 0 0 0 · · · 0 1 0 · · · 0

d10 0 0 0 · · · 0 1 0 · · · 0

... ... ... ... ... ... ... ... ... ...

dm 0 0 0 · · · 0 0 0 · · · 1

dm0 0 0 0 · · · 0 0 0 · · · 1

b 1 1 1 · · · 1 3 3 · · · 3

(18)

Beweis (1): Keine Carry-Overs

F¨ur jede Dezimalstellei ∈ {1, . . . ,n}gilt: Nur zwei der Var-Zahlen und Dummy-Zahlen haben an dieser Stelle die Ziffer 1; alle anderen Zahlen haben an dieser Stelle die Ziffer 0.

F¨ur jede Dezimalstellei ∈ {n+1, . . . ,n+m}gilt: Nur f¨unf der Var-Zahlen und Dummy-Zahlen haben an dieser Stelle die Ziffer 1;

alle anderen Zahlen haben an dieser Stelle die Ziffer 0.

Beobachtung: Keine Carry-Overs

Wird eine beliebige Menge von Var-Zahlen und Dummy-Zahlen addiert, so treten bei den Spr¨ungen von einer Dezimalstelle zur n¨achsten niemals Additions¨ubertr¨age auf.

(19)

Beweis (1): Keine Carry-Overs

F¨ur jede Dezimalstellei ∈ {1, . . . ,n}gilt: Nur zwei der Var-Zahlen und Dummy-Zahlen haben an dieser Stelle die Ziffer 1; alle anderen Zahlen haben an dieser Stelle die Ziffer 0.

F¨ur jede Dezimalstellei ∈ {n+1, . . . ,n+m}gilt: Nur f¨unf der Var-Zahlen und Dummy-Zahlen haben an dieser Stelle die Ziffer 1;

alle anderen Zahlen haben an dieser Stelle die Ziffer 0.

Beobachtung: Keine Carry-Overs

Wird eine beliebige Menge von Var-Zahlen und Dummy-Zahlen addiert, so treten bei den Spr¨ungen von einer Dezimalstelle zur n¨achsten niemals Additions¨ubertr¨age auf.

(20)

Beweis (2): Laufzeit der Reduktion

Die SAT Instanzϕbesteht ausnVariablen und mKlauseln.

Die Eingabel¨ange ist≥m+n.

Die konstruierte SUBSET-SUM Instanz besteht aus 2n+2m+1 Dezimalzahlen mit jem+nDezimalstellen.

Die Reduktion wird in polynomieller ZeitO (m+n)2

durchgef¨uhrt.

(21)

Beweis (3): Korrektheit, Teil A

Lemma A: Formel ϕerf¨ullbar⇒SUBSET-SUM Instanz ist l¨osbar Es gibt eine erf¨ullende Belegungxf¨ur die Formelϕ.

Fallsxi=1, so w¨ahlen wira+i aus; andernfalls w¨ahlen wirai Die Summe der ausgew¨ahlten Var-Zahlen bezeichnen wir mit A Da f¨ur jedesi ∈ {1, . . . ,n}entwedera+i oderai ausgew¨ahlt wurde, gilt A(i) =1

Ausserdem giltA(n+j)∈ {1,2,3}f¨ur1≤j ≤m, weil in jeder Klausel ein oder zwei oder drei Literale erf¨ullt sind.

Falls A(n+j)∈ {1,2}, so w¨ahlen wir zus¨atzlichdj und/oderdj0 aus, um die Ziffer3an Ziffernpositionn+j der Summe zu erhalten. Also gibt es eine Teilmenge mit der gew¨unschten Zielsummeb.

(22)

Beweis (3): Korrektheit, Teil A

Lemma A: Formel ϕerf¨ullbar⇒SUBSET-SUM Instanz ist l¨osbar Es gibt eine erf¨ullende Belegungxf¨ur die Formelϕ.

Fallsxi=1, so w¨ahlen wira+i aus; andernfalls w¨ahlen wirai Die Summe der ausgew¨ahlten Var-Zahlen bezeichnen wir mitA Da f¨ur jedesi ∈ {1, . . . ,n}entwedera+i oderai ausgew¨ahlt wurde, giltA(i) =1

Ausserdem giltA(n+j)∈ {1,2,3}f¨ur1≤j ≤m, weil in jeder Klausel ein oder zwei oder drei Literale erf¨ullt sind.

Falls A(n+j)∈ {1,2}, so w¨ahlen wir zus¨atzlichdj und/oderdj0 aus, um die Ziffer3an Ziffernpositionn+j der Summe zu erhalten. Also gibt es eine Teilmenge mit der gew¨unschten Zielsummeb.

(23)

Beweis (3): Korrektheit, Teil A

Lemma A: Formel ϕerf¨ullbar⇒SUBSET-SUM Instanz ist l¨osbar Es gibt eine erf¨ullende Belegungxf¨ur die Formelϕ.

Fallsxi=1, so w¨ahlen wira+i aus; andernfalls w¨ahlen wirai Die Summe der ausgew¨ahlten Var-Zahlen bezeichnen wir mitA Da f¨ur jedesi ∈ {1, . . . ,n}entwedera+i oderai ausgew¨ahlt wurde, giltA(i) =1

Ausserdem giltA(n+j)∈ {1,2,3} f¨ur1≤j ≤m, weil in jeder Klausel ein oder zwei oder drei Literale erf¨ullt sind.

Falls A(n+j)∈ {1,2}, so w¨ahlen wir zus¨atzlichdj und/oderdj0 aus, um die Ziffer3an Ziffernpositionn+j der Summe zu erhalten. Also gibt es eine Teilmenge mit der gew¨unschten Zielsummeb.

(24)

Beweis (3): Korrektheit, Teil A

Lemma A: Formel ϕerf¨ullbar⇒SUBSET-SUM Instanz ist l¨osbar Es gibt eine erf¨ullende Belegungxf¨ur die Formelϕ.

Fallsxi=1, so w¨ahlen wira+i aus; andernfalls w¨ahlen wirai Die Summe der ausgew¨ahlten Var-Zahlen bezeichnen wir mitA Da f¨ur jedesi ∈ {1, . . . ,n}entwedera+i oderai ausgew¨ahlt wurde, giltA(i) =1

Ausserdem giltA(n+j)∈ {1,2,3} f¨ur1≤j ≤m, weil in jeder Klausel ein oder zwei oder drei Literale erf¨ullt sind.

Falls A(n+j)∈ {1,2}, so w¨ahlen wir zus¨atzlichdj und/oderdj0 aus, um die Ziffer3an Ziffernpositionn+j der Summe zu erhalten.

Also gibt es eine Teilmenge mit der gew¨unschten Zielsummeb.

(25)

Beweis (4): Korrektheit, Teil B

Lemma B: SUBSET-SUM Instanz ist l¨osbar⇒Formelϕ erf¨ullbar Es gibt eine TeilmengeKA der Var-Zahlen (mit SummeA) und eine TeilmengeKD der Dummy-Zahlen (mit SummeH), die sich zur Zielsummebaufaddieren; also:A+H=b.

Die MengeKAenth¨alt f¨ur jedesi ∈ {1, . . . ,n}genau eine der beiden Var-Zahlena+i undai ; andernfalls w¨areA(i)6=1.

Wir setzenxi =1fallsai+∈KA, und andernfallsxi=0. Es gilt A(n+j)≥1f¨ur1≤j ≤m.

Ansonsten w¨areA(n+j) +H(n+j)≤A(n+j) +2<3.

Dadurch ist sichergestellt, dass in jeder Klausel mindestens eines der Literale den Wert 1 hat.

Die Formelϕ ist also erf¨ullbar.

(26)

Beweis (4): Korrektheit, Teil B

Lemma B: SUBSET-SUM Instanz ist l¨osbar⇒Formelϕ erf¨ullbar Es gibt eine TeilmengeKA der Var-Zahlen (mit SummeA) und eine TeilmengeKD der Dummy-Zahlen (mit SummeH), die sich zur Zielsummebaufaddieren; also:A+H=b.

Die MengeKAenth¨alt f¨ur jedesi ∈ {1, . . . ,n}genau eine der beiden Var-Zahlena+i undai ; andernfalls w¨areA(i)6=1.

Wir setzenxi =1fallsai+∈KA, und andernfallsxi=0. Es gilt A(n+j)≥1f¨ur1≤j ≤m.

Ansonsten w¨areA(n+j) +H(n+j)≤A(n+j) +2<3.

Dadurch ist sichergestellt, dass in jeder Klausel mindestens eines der Literale den Wert 1 hat.

Die Formelϕ ist also erf¨ullbar.

(27)

Beweis (4): Korrektheit, Teil B

Lemma B: SUBSET-SUM Instanz ist l¨osbar⇒Formelϕ erf¨ullbar Es gibt eine TeilmengeKA der Var-Zahlen (mit SummeA) und eine TeilmengeKD der Dummy-Zahlen (mit SummeH), die sich zur Zielsummebaufaddieren; also:A+H=b.

Die MengeKAenth¨alt f¨ur jedesi ∈ {1, . . . ,n}genau eine der beiden Var-Zahlena+i undai ; andernfalls w¨areA(i)6=1.

Wir setzenxi =1fallsai+∈KA, und andernfallsxi=0.

Es gilt A(n+j)≥1f¨ur1≤j ≤m.

Ansonsten w¨areA(n+j) +H(n+j)≤A(n+j) +2<3.

Dadurch ist sichergestellt, dass in jeder Klausel mindestens eines der Literale den Wert 1 hat.

Die Formelϕ ist also erf¨ullbar.

(28)

Beweis (4): Korrektheit, Teil B

Lemma B: SUBSET-SUM Instanz ist l¨osbar⇒Formelϕ erf¨ullbar Es gibt eine TeilmengeKA der Var-Zahlen (mit SummeA) und eine TeilmengeKD der Dummy-Zahlen (mit SummeH), die sich zur Zielsummebaufaddieren; also:A+H=b.

Die MengeKAenth¨alt f¨ur jedesi ∈ {1, . . . ,n}genau eine der beiden Var-Zahlena+i undai ; andernfalls w¨areA(i)6=1.

Wir setzenxi =1fallsai+∈KA, und andernfallsxi=0.

Es gilt A(n+j)≥1f¨ur1≤j ≤m.

Ansonsten w¨areA(n+j) +H(n+j)≤A(n+j) +2<3.

Dadurch ist sichergestellt, dass in jeder Klausel mindestens eines der Literale den Wert 1 hat.

(29)

NP-Vollst¨ andigkeit von

PARTITION

(30)

PARTITION: Definition

Problem: PARTITION

Eingabe:Positive ganze Zahlena10, . . . ,a0n; mit Pn

i=1a0i =2A0 Frage:Existiert eine IndexmengeI ⊆ {1, . . . ,n}mitP

i∈Ia0i=A0? PARTITION ist der Spezialfall von SUBSET-SUM mitb:= (Pai)/2

Satz

PARTITION ist NP-vollst¨andig. Beweis:

PARTITION liegt in NP

Wir zeigen SUBSET-SUM≤pPARTITION

(31)

PARTITION: Definition

Problem: PARTITION

Eingabe:Positive ganze Zahlena10, . . . ,a0n; mit Pn

i=1a0i =2A0 Frage:Existiert eine IndexmengeI ⊆ {1, . . . ,n}mitP

i∈Ia0i=A0? PARTITION ist der Spezialfall von SUBSET-SUM mitb:= (Pai)/2

Satz

PARTITION ist NP-vollst¨andig.

Beweis:

PARTITION liegt in NP

Wir zeigen SUBSET-SUM≤p PARTITION

(32)

PARTITION: Reduktion

Es seia1, . . . ,an∈Nundb∈Neine beliebige Instanz von SUBSET-SUM

Es seiS:=Pn

i=1ai, und o.B.d.A. giltS≥b

Wir bilden diese SUBSET-SUM Instanz auf eine PARTITION Instanz ab, die aus den folgendenn+2Zahlena01, . . . ,a0n+2besteht:

a0i=ai f¨ur1≤i ≤n

a0n+1=2S−b und an+20 =S+b Die Summe diesern+2Zahlen betr¨agtPn+2

i=1a0i=4S. Daher giltA0:=2S f¨ur die PARTITION Instanz. Die Reduktion wird in polynomieller Zeit durchgef¨uhrt.

(33)

PARTITION: Reduktion

Es seia1, . . . ,an∈Nundb∈Neine beliebige Instanz von SUBSET-SUM

Es seiS:=Pn

i=1ai, und o.B.d.A. giltS≥b

Wir bilden diese SUBSET-SUM Instanz auf eine PARTITION Instanz ab, die aus den folgendenn+2Zahlena01, . . . ,a0n+2besteht:

a0i=ai f¨ur1≤i ≤n

a0n+1=2S−b und an+20 =S+b

Die Summe diesern+2Zahlen betr¨agtPn+2

i=1a0i=4S. Daher giltA0:=2S f¨ur die PARTITION Instanz. Die Reduktion wird in polynomieller Zeit durchgef¨uhrt.

(34)

PARTITION: Reduktion

Es seia1, . . . ,an∈Nundb∈Neine beliebige Instanz von SUBSET-SUM

Es seiS:=Pn

i=1ai, und o.B.d.A. giltS≥b

Wir bilden diese SUBSET-SUM Instanz auf eine PARTITION Instanz ab, die aus den folgendenn+2Zahlena01, . . . ,a0n+2besteht:

a0i=ai f¨ur1≤i ≤n

a0n+1=2S−b und an+20 =S+b Die Summe diesern+2Zahlen betr¨agtPn+2

i=1a0i=4S.

Daher giltA0:=2S f¨ur die PARTITION Instanz.

Die Reduktion wird in polynomieller Zeit durchgef¨uhrt.

(35)

Beweis (1): Korrektheit, Teil A

Lemma A: SUBSET-SUM Instanz l¨osbar⇒PARTITION Instanz l¨osbar

Wenn es in der SUBSET-SUM Instanz eine Teilmenge der Zahlen a1, . . . ,an mit der Summebgibt, so haben die enstprechenden Zahlena01, . . . ,a0nin der PARTITION Instanz ebenfalls die Summe b.

Wir f¨ugen die Zahla0n+1=2S−bzu dieser Teilmenge dazu und erhalten eine Teilmenge mit der gew¨unschten ZielsummeA0=2S.

(36)

Beweis (2): Korrektheit, Teil B

Lemma B: PARTITION Instanz l¨osbar⇒SUBSET-SUM Instanz l¨osbar

In der L¨osung der PARTITION Instanz sind die beiden Zahlen a0n+1=2S−bunda0n+2=S+bnicht in derselben Teilmenge, da a0n+1+a0n+2=3S>2S =A0 gilt.

Eine der Teilmengen besteht ausan+10 =2S−bund einer Teilmenge der Zahlena10, . . . ,an0 mit Gesamtsumme A0=2S.

Die entsprechenden Zahlen in der SUBSET-SUM Instanz haben dann die Summeb.

(37)

NP-Vollst¨ andigkeit von

Bin Packing und Knapsack

(38)

Bin Packing

Beim Bin Packing sollennObjekte mit Gewichtenw1, . . . ,wn auf eine m¨oglichst kleine Anzahl von Kisten mit GewichtslimitB verteilt werden.

Problem: Bin Packing (BPP)

Eingabe:ZahlenB undw1, . . . ,wn∈ {1, . . . ,B}; eine Schrankeγ Frage:K¨onnen Objekte mit den gegebenen Gr¨ossenw1, . . . ,wn

inγ Kisten der Gr¨osseB gepackt werden?

Satz

Bin Packing ist NP-vollst¨andig.

Beweis:

Wir zeigen PARTITION≤p Bin Packing

Wir setzenγ=2, undw =a0 f¨ur 1≤i ≤n, und B=A0

(39)

Knapsack

Im Knapsack Problem sollen Objekte ausgew¨ahlt werden, die in einen Rucksack mit Gewichtsschrankew passen und den Gesamtprofit maximieren.

Problem: Knapsack (KP)

Eingabe:Nat¨urliche Zahlenw1, . . . ,wn, p1, . . . ,pn,w,γ Frage:Existiert eine Teilmenge der Objekte mit

Gesamtgewicht h¨ochstensw und Gesamtprofit mindestensγ?

Satz

Knapsack ist NP-vollst¨andig.

Beweis:

Wir zeigen SUBSET-SUM≤pKnapsack

Wir setzenwi =ai undpi=ai f¨ur 1≤i ≤n, undw =γ=b

(40)

Die Komplexit¨ atslandschaft

NP

P

SAT

Clique Ind-Set VC

Ham-Cycle TSP Partition

Subset-Sum Knapsack

BPP

3-SAT

Graph- zusammenhang Primzahl

(41)

Die Komplexit¨ atslandschaft

NP

P

SAT

Clique Ind-Set VC

Ham-Cycle TSP Partition

Subset-Sum Knapsack

BPP

3-SAT

Graph- zusammenhang Primzahl

Warnung: Dieser Abbildung liegt die AnnahmeP6=NP zu Grunde.

(42)

Kodierungsl¨ ange

(43)

Kodierungsl¨ ange

Es seiX ein algorithmisches Problem

Die Laufzeit eines Algorithmus f¨ur ProblemX messen wir in Abh¨angigkeit von der Kodierungsl¨ange der InstanzenI

Die Kodierungsl¨ange|I|ist die Anzahl der Symbole in einer

“vern¨unftigen” Beschreibung der InstanzI

Kleine (polynomiell grosse) ¨Anderungen in der L¨ange von derartigen Beschreibungen sind f¨ur unsere Definitionen / S¨atze / Beweise / Reduktionen / Resultate irrelevant

(44)

Kodierungsl¨ ange

Es seiX ein algorithmisches Problem

Die Laufzeit eines Algorithmus f¨ur ProblemX messen wir in Abh¨angigkeit von der Kodierungsl¨ange der InstanzenI Die Kodierungsl¨ange|I|ist die Anzahl der Symbole in einer

“vern¨unftigen” Beschreibung der InstanzI

Kleine (polynomiell grosse) ¨Anderungen in der L¨ange von derartigen Beschreibungen sind f¨ur unsere Definitionen / S¨atze / Beweise / Reduktionen / Resultate irrelevant

(45)

Kodierungsl¨ ange: Graphen

Beispiel: Ungerichtete Graphen

Vern¨unftige Beschreibungen von ungerichteten GraphenG = (V,E)sind Adjazenzlisten mit L¨ange`1(G) =O(|E|log|V|)

Adjazenzmatrizen mit L¨ange`2(G) =O(|V|2) F¨ur zusammenh¨angende Graphen gilt:

`1(G)ist polynomiell beschr¨ankt in`2(G)

`2(G)ist polynomiell beschr¨ankt in`1(G)

(46)

Kodierungsl¨ ange: Mengen

Beispiel: Mengen und Teilmengen

Es seiX eine Grundmenge mit nElementen. Vern¨unftige Beschreibungen einer TeilmengeY ⊆X sind:

Bitvektoren der L¨ange`1(Y) =n

Auflisten der Elemente mit L¨ange`2(Y) =O(|Y|logn) F¨ur dichte MengenY mitΩ(n)vielen Elementen gilt:

`1(Y)ist polynomiell beschr¨ankt in`2(Y)

`2(Y)ist polynomiell beschr¨ankt in`1(Y)

(47)

Kodierungsl¨ ange: Zahlen

Beispiel: Nat¨urliche Zahlen

Vern¨unftige Beschreibungen von nat¨urlichen Zahlennsind Dezimaldarstellung mit L¨ange ≈ log10n

Bin¨ardarstellung mit L¨ange ≈ log2n Oktaldarstellung mit L¨ange ≈ log8n Hexadezimaldarstellung mit L¨ange ≈ log16n

F¨ur alle reellen Zahlena,b≥2gilt: logan=logab·logbn

Die verschiedenen Kodierungsl¨angen unterscheiden sich daher nur um einen konstanten Faktor.

Anmerkung

Die Zahlnstellt den Wertnmit Kodierungsl¨angeO(logn)dar.

Der Wert h¨angt alsoexponentiellvon der Kodierungsl¨ange ab.

(48)

Zahlenwert versus Kodierungsl¨ ange (1)

Definition: Number

F¨ur eine InstanzI eines Entscheidungsproblems bezeichnen wir mit Number(I)den Wert der gr¨ossten in I vorkommenden Zahl.

Beispiel

F¨ur eine TSP Instanz I istNumber(I)

der Wert der gr¨ossten St¨adtedistanz maxi,jd(i,j)oder der Wertγ. F¨ur eine SUBSET-SUM InstanzI istNumber(I)

das Maximum der Zahlen a1, . . . ,an undb. F¨ur eine SAT Instanz I istNumber(I)

das Maximum der Zahlen nundm. (Ergo:Number(I)≤ |I|.)

(49)

Zahlenwert versus Kodierungsl¨ ange (1)

Definition: Number

F¨ur eine InstanzI eines Entscheidungsproblems bezeichnen wir mit Number(I)den Wert der gr¨ossten in I vorkommenden Zahl.

Beispiel

F¨ur eine TSP Instanz I istNumber(I)

der Wert der gr¨ossten St¨adtedistanz maxi,jd(i,j)oder der Wertγ. F¨ur eine SUBSET-SUM InstanzI istNumber(I)

das Maximum der Zahlen a1, . . . ,an undb. F¨ur eine SAT Instanz I istNumber(I)

das Maximum der Zahlen nundm. (Ergo:Number(I)≤ |I|.)

(50)

Zahlenwert versus Kodierungsl¨ ange (1)

Definition: Number

F¨ur eine InstanzI eines Entscheidungsproblems bezeichnen wir mit Number(I)den Wert der gr¨ossten in I vorkommenden Zahl.

Beispiel

F¨ur eine TSP Instanz I istNumber(I)

der Wert der gr¨ossten St¨adtedistanz maxi,jd(i,j)oder der Wertγ.

F¨ur eine SUBSET-SUM InstanzI istNumber(I) das Maximum der Zahlen a1, . . . ,an undb. F¨ur eine SAT Instanz I istNumber(I)

das Maximum der Zahlen nundm. (Ergo:Number(I)≤ |I|.)

(51)

Zahlenwert versus Kodierungsl¨ ange (1)

Definition: Number

F¨ur eine InstanzI eines Entscheidungsproblems bezeichnen wir mit Number(I)den Wert der gr¨ossten in I vorkommenden Zahl.

Beispiel

F¨ur eine TSP Instanz I istNumber(I)

der Wert der gr¨ossten St¨adtedistanz maxi,jd(i,j)oder der Wertγ.

F¨ur eine SUBSET-SUM InstanzI istNumber(I)

das Maximum der Zahlen a1, . . . ,an undb. F¨ur eine SAT Instanz I istNumber(I)

das Maximum der Zahlen nundm. (Ergo:Number(I)≤ |I|.)

(52)

Zahlenwert versus Kodierungsl¨ ange (1)

Definition: Number

F¨ur eine InstanzI eines Entscheidungsproblems bezeichnen wir mit Number(I)den Wert der gr¨ossten in I vorkommenden Zahl.

Beispiel

F¨ur eine TSP Instanz I istNumber(I)

der Wert der gr¨ossten St¨adtedistanz maxi,jd(i,j)oder der Wertγ.

F¨ur eine SUBSET-SUM InstanzI istNumber(I) das Maximum der Zahlen a1, . . . ,an undb.

F¨ur eine SAT Instanz I istNumber(I)

das Maximum der Zahlen nundm. (Ergo:Number(I)≤ |I|.)

(53)

Zahlenwert versus Kodierungsl¨ ange (1)

Definition: Number

F¨ur eine InstanzI eines Entscheidungsproblems bezeichnen wir mit Number(I)den Wert der gr¨ossten in I vorkommenden Zahl.

Beispiel

F¨ur eine TSP Instanz I istNumber(I)

der Wert der gr¨ossten St¨adtedistanz maxi,jd(i,j)oder der Wertγ.

F¨ur eine SUBSET-SUM InstanzI istNumber(I) das Maximum der Zahlen a1, . . . ,an undb.

F¨ur eine SAT Instanz I istNumber(I)

das Maximum der Zahlen nundm. (Ergo:Number(I)≤ |I|.)

(54)

Zahlenwert versus Kodierungsl¨ ange (1)

Definition: Number

F¨ur eine InstanzI eines Entscheidungsproblems bezeichnen wir mit Number(I)den Wert der gr¨ossten in I vorkommenden Zahl.

Beispiel

F¨ur eine TSP Instanz I istNumber(I)

der Wert der gr¨ossten St¨adtedistanz maxi,jd(i,j)oder der Wertγ.

F¨ur eine SUBSET-SUM InstanzI istNumber(I) das Maximum der Zahlen a1, . . . ,an undb.

F¨ur eine SAT Instanz I istNumber(I)

das Maximum der Zahlen nundm. (Ergo:Number(I)≤ |I|.)

(55)

Zahlenwert versus Kodierungsl¨ ange (2)

F¨ur viele Entscheidungsprobleme wie zum Beispiel SAT, VC, CLIQUE, Ham-Cycle, COLORING gilt Number(I)≤ |I|.

F¨ur derartige Probleme ist Number(I)polynomiellin der Eingabel¨ange beschr¨ankt.

Der ParameterNumber(I)ist nur f¨ur Probleme relevant, in denen Distanzen, Kosten, Gewichte, L¨angen, Profite, Zeitintervalle, Abst¨ande, etc eine Rolle spielen.

Zum Beispiel: TSP, SUBSET-SUM, PARTITION

F¨ur derartige Probleme ist Number(I)nurexponentiellin der Eingabel¨ange beschr¨ankt.

(56)

Pseudo-polynomielle Zeit und

Starke NP-Schwere

(57)

Pseudo-polynomielle Zeit

Definition: Pseudo-polynomielle Zeit

Ein AlgorithmusAl¨ost ein ProblemX inpseudo-polynomiellerZeit, falls die Laufzeit von Aauf InstanzenI von X

polynomiell in|I|undNumber(I)beschr¨ankt ist.

Satz

Die Probleme SUBSET-SUM, PARTITION und Knapsack sind in pseudo-polynomieller Zeit l¨osbar.

(58)

Pseudo-polynomielle Zeit

Definition: Pseudo-polynomielle Zeit

Ein AlgorithmusAl¨ost ein ProblemX inpseudo-polynomiellerZeit, falls die Laufzeit von Aauf InstanzenI von X

polynomiell in|I|undNumber(I)beschr¨ankt ist.

Satz

Die Probleme SUBSET-SUM, PARTITION und Knapsack sind in pseudo-polynomieller Zeit l¨osbar.

(59)

Beispiel: SUBSET-SUM

Problem: SUBSET-SUM

Eingabe:Positive ganze Zahlena1, . . . ,an; eine ganze Zahlb Frage:Existiert eine IndexmengeI ⊆ {1, . . . ,n}mitP

i∈Iai=b?

Satz

SUBSET-SUM ist in pseudo-polynomieller ZeitO(n·b)l¨osbar.

Beweis:

Dynamische Programmierung: F¨urk=0, . . . ,nundc =0, . . . ,b setzen wirF[k,c] =TRUE genau dann, wenn es eine Indexmenge I ⊆ {1, . . . ,k}mitP

i∈Iai=c gibt. F[0,c] = (c==0)f¨urc=0, . . . ,b F[k,c] =F[k−1,c−ak]∨F[k−1,c]

Schlussendlich findet man die Antwort inF[n,b]

(60)

Beispiel: SUBSET-SUM

Problem: SUBSET-SUM

Eingabe:Positive ganze Zahlena1, . . . ,an; eine ganze Zahlb Frage:Existiert eine IndexmengeI ⊆ {1, . . . ,n}mitP

i∈Iai=b?

Satz

SUBSET-SUM ist in pseudo-polynomieller ZeitO(n·b)l¨osbar.

Beweis:

Dynamische Programmierung: F¨urk=0, . . . ,nundc =0, . . . ,b setzen wirF[k,c] =TRUE genau dann, wenn es eine Indexmenge I ⊆ {1, . . . ,k} mitP

i∈Iai=c gibt.

F[0,c] = (c==0)f¨urc=0, . . . ,b F[k,c] =F[k−1,c−ak]∨F[k−1,c]

(61)

Beispiel: MAX-FLUSS

Problem: MAX-FLUSS

Eingabe:Ein gerichteter GraphG = (V,A); eine Quelles ∈V; eine Senket∈V; Kantenkapazit¨atenc:A→N; eine Schrankeγ Frage:Existiert ein s-t-Flussf mit Wertf≥γ?

Satz

MAX-FLUSS ist in pseudo-polynomieller ZeitO(f|V|+f|E|)l¨osbar.

Beweis: siehe DSAL Vorlesung (Ford-Fulkerson Algorithmus mit Residualnetzwerken und augmentierenden Pfaden)

(62)

Starke NP-Schwere

Definition: Stark NP-schwer (engl.: NP-hard in the strong sense) Ein EntscheidungsproblemX iststark NP-schwer,

wenn es ein Polynom q:N→Ngibt, sodass die RestriktionXq von X auf InstanzenI mitNumber(I)≤q(|I|)NP-schwer ist.

Also: Das ProblemX ist sogar dann NP-schwer, wenn alle Zahlenwerte in der InstanzI nur polynomiell gross (gemessen in |I|) sind.

Ubung (unter der Annahme P6=NP)¨

Welche der folgenden Probleme sind stark NP-schwer? SAT und 3-SAT

CLIQUE, INDEP-SET, Vertex Cover Ham-Cycle und TSP

SUBSET-SUM und PARTITION Bin Packing

(63)

Starke NP-Schwere

Definition: Stark NP-schwer (engl.: NP-hard in the strong sense) Ein EntscheidungsproblemX iststark NP-schwer,

wenn es ein Polynom q:N→Ngibt, sodass die RestriktionXq von X auf InstanzenI mitNumber(I)≤q(|I|)NP-schwer ist.

Also: Das ProblemX ist sogar dann NP-schwer, wenn alle Zahlenwerte in der InstanzI nur polynomiell gross (gemessen in |I|) sind.

Ubung (unter der Annahme P6=NP)¨

Welche der folgenden Probleme sind stark NP-schwer?

SAT und 3-SAT

CLIQUE, INDEP-SET, Vertex Cover Ham-Cycle und TSP

SUBSET-SUM und PARTITION Bin Packing

(64)

Stark NP-schwer vs pseudo-polynomiell

Satz

Es seiX ein stark NP-schweres Entscheidungsproblem.

FallsX pseudo-polynomiell l¨osbar ist, so gilt P=NP.

Also: Pseudo-polynomiell und stark NP-schwer schliessen einander aus (unter unserer Standardannahme P6=NP)

Beweis:

X ist stark NP-schwer

Ergo gibt es ein Polynomq:N→N, f¨ur das die RestriktionXq von X auf InstanzenI mitNumber(I)≤q(|I|)NP-schwer ist.

Ein pseudo-polynomieller AlgorithmusAf¨urX hat Laufzeit polynomiell beschr¨ankt in |I|undNumber(I)

Wendet man AlgorithmusAaufXqan, so ist die Laufzeit polynomiell beschr¨ankt in|I|undq(|I|), und daher polynomiell beschr¨ankt in|I| (Xq NP-schwer) und (Xq polynomiell l¨osbar) ⇒ P=NP

(65)

Stark NP-schwer vs pseudo-polynomiell

Satz

Es seiX ein stark NP-schweres Entscheidungsproblem.

FallsX pseudo-polynomiell l¨osbar ist, so gilt P=NP.

Also: Pseudo-polynomiell und stark NP-schwer schliessen einander aus (unter unserer Standardannahme P6=NP)

Beweis:

X ist stark NP-schwer

Ergo gibt es ein Polynomq:N→N, f¨ur das die RestriktionXq von X auf InstanzenI mitNumber(I)≤q(|I|)NP-schwer ist.

Ein pseudo-polynomieller AlgorithmusAf¨urX hat Laufzeit polynomiell beschr¨ankt in|I|undNumber(I)

Wendet man AlgorithmusAaufXqan, so ist die Laufzeit polynomiell beschr¨ankt in|I|undq(|I|), und daher polynomiell beschr¨ankt in|I| (Xq NP-schwer) und (Xq polynomiell l¨osbar) ⇒ P=NP

(66)

Beispiel: THREE-PARTITION

Problem: THREE-PARTITION

Eingabe:Positive ganze Zahlena1, . . . ,an, b1, . . . ,bn, undc1, . . . ,cn mitPn

i=1(ai+bi+ci) =nS

Frage:Gibt es zwei Permutationenα, βvon 1, . . . ,n, sodassaα(i)+bβ(i)+ci=S f¨ur1≤i ≤n gilt?

Satz (ohne Beweis)

THREE-PARTITION ist stark NP-schwer.

Ubung¨

Zeigen Sie: Bin Packing ist stark NP-schwer.

(67)

Beispiel: THREE-PARTITION

Problem: THREE-PARTITION

Eingabe:Positive ganze Zahlena1, . . . ,an, b1, . . . ,bn, undc1, . . . ,cn mitPn

i=1(ai+bi+ci) =nS

Frage:Gibt es zwei Permutationenα, βvon 1, . . . ,n, sodassaα(i)+bβ(i)+ci=S f¨ur1≤i ≤n gilt?

Satz (ohne Beweis)

THREE-PARTITION ist stark NP-schwer.

Ubung¨

Zeigen Sie: Bin Packing ist stark NP-schwer.

Referenzen

ÄHNLICHE DOKUMENTE

Basierend auf diesen Techniken k¨ onnen wir uns klar machen, dass bekannte Algorithmen (wie z.B. MergeSort) ohne Weiteres auf einer TM ausgef¨ uhrt werden k¨ onnen... Techniken

Variablen k¨ onnen realisiert werden, indem wir pro Variable eine Spur reservieren. Felder (Arrays) k¨ onnen ebenfalls auf einer Spur

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

U enth¨ alt somit genau ein Literal pro Klausel Kein Literal tritt sowohl positiv als auch negiert auf Ergo: Alle diese Literale k¨ onnen gleichzeitig erf¨ ullt werden Also ist ϕ

, n} gilt: Nur zwei der Var-Zahlen und Dummy-Zahlen haben an dieser Stelle die Ziffer 1; alle anderen Zahlen haben an dieser Stelle die Ziffer 0. F¨ ur jede Dezimalstelle i ∈ {n

Wenn das Entscheidungsproblem X NP-vollst¨ andig ist, so ist das komplement¨ are Problem X coNP-vollst¨ andig. Komplement¨

Also: Das Problem X ist sogar dann NP-schwer, wenn alle Zahlenwerte in der Instanz I nur polynomiell gross (gemessen in |I |)

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