VL-16: NP-vollst¨ andige Zahlprobleme
(Berechenbarkeit und Komplexit¨ at, WS 2018) Gerhard Woeginger
WS 2018, RWTH
Organisatorisches
N¨achste Vorlesung:
Donnerstag, Januar 17, 12:30–14:00 Uhr, Aula Webseite:
http://algo.rwth-aachen.de/Lehre/WS1819/BuK.php (−→ Arbeitsheft zur Berechenbarkeit)
(−→ Arbeitsheft zur NP-Vollst¨andigkeit)
Wdh.: NP-schwer & NP-Vollst¨ andig
Definition
Ein ProblemL heisstNP-schwer, falls∀L0∈NP : L0≤pL
Ein ProblemL heisstNP-vollst¨andig, fallsL∈NPundL NP-schwer.
Satz
WennL NP-vollst¨andig ist, dann gilt: L∈P ⇒ P =NP Unter der AnnahmeP6=NP (Standardannahme) besitzt also kein NP-vollst¨andiges Problem einen polynomiellen Algorithmus.
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 L∗auf 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∈L∗genau dann, wennf(x)∈L.
Wdh.: Die Komplexit¨ atslandschaft
NP
P
Graph- zusammenhang Primes
SAT
Clique Ind-Set VC
Ex-Cover
Ham-Cycle TSP Partition
Subset-Sum Rucksack
BPP Coloring 3-SAT
Warnung: Dieser Abbildung liegt die AnnahmeP6=NP zu Grunde.
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
JOB SEQUENCING PARTITION
MAX-CUT SET COVER FEEDBACK
ARC SET
FEEDBACK VERTEX
SET DIRECTED
HAM-CYCLE
HAM CYCLE
VERTEX COVER INDEP
SET
CLIQUE
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 Rucksack Pseudo-polynomielle Zeit
Starke NP-Schwere
Das THREE-PARTITION Problem
NP-Vollst¨ andigkeit von
SUBSET-SUM
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
Zahlen1,2,4,8,16,32,64,128,256,512,1024 und b=999
Satz
SUBSET-SUM ist NP-vollst¨andig.
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
Zahlen1,2,4,8,16,32,64,128,256,512,1024 und b=999
Satz
SUBSET-SUM ist NP-vollst¨andig.
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 von 3-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).
Reduktion (1a): Var-Zahlen / Definition
Wir definieren:
S+(i) = {j ∈ {1, . . . ,m} |Klauselcj enth¨alt Literalxi} S−(i) = {j ∈ {1, . . . ,m} |Klauselcj enth¨alt Literalx¯i}
F¨ur jede Boolesche Variablexi mit1≤i ≤nerzeugen wir zwei entsprechende Var-Zahlenai+unda−i mit den folgenden Ziffern:
a+i (i) =1 und f¨ur allej ∈S+(i) : ai+(n+j) =1 a−i (i) =1 und f¨ur allej ∈S−(i) : ai−(n+j) =1
Alle anderen Ziffern in diesen Dezimaldarstellungen sind 0.
Reduktion (1a): Var-Zahlen / Definition
Wir definieren:
S+(i) = {j ∈ {1, . . . ,m} |Klauselcj enth¨alt Literalxi} S−(i) = {j ∈ {1, . . . ,m} |Klauselcj enth¨alt Literalx¯i}
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 a−i (i) =1 und f¨ur allej ∈S−(i) : ai−(n+j) =1
Alle anderen Ziffern in diesen Dezimaldarstellungen sind 0.
Reduktion (1b): Var-Zahlen / Beispiel
Als Beispiel betrachten wir die Formel (x1∨x2∨x3)∧(x2∨x¯3∨x¯4)
Die folgenden Var-Zahlen werden erzeugt:
a+1 = 100010 a−1 = 100000 a+2 = 010011 a−2 = 010000 a+3 = 001010 a−3 = 001001 a+4 = 000100 a−4 = 000101
Reduktion (2): Dummy-Zahlen
Wir definieren f¨ur jede Klauselcj zwei entsprechendeDummy-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
Reduktion (3): Zielsumme
DieZielsummebdefinieren 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
Reduktion (4): 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 · · · ·
a−1 1 0 0 · · · 0 0 0 · · · ·
a+2 0 1 0 · · · 0 0 1 · · · ·
a−2 0 1 0 · · · 0 1 0 · · · ·
a+3 0 0 1 · · · 0 1 1 · · · ·
... ... ... ... ... ... ... ... ... ...
a+n 0 0 0 · · · 1 0 0 · · · ·
a−n 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
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 tritt von keiner Dezimalstelle zur n¨achsten ein Additions¨ubertrag auf.
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 tritt von keiner Dezimalstelle zur n¨achsten ein Additions¨ubertrag auf.
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.
Beweis (3a): Korrektheit
Lemma A: Formel ϕerf¨ullbar⇒SUBSET-SUM Instanz ist l¨osbar Es gibt eine erf¨ullende Belegungx∗f¨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 odera−i 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.
Beweis (3a): Korrektheit
Lemma A: Formel ϕerf¨ullbar⇒SUBSET-SUM Instanz ist l¨osbar Es gibt eine erf¨ullende Belegungx∗f¨ur die Formelϕ.
Fallsxi∗=1, so w¨ahlen wira+i aus; andernfalls w¨ahlen wira−i Die Summe der ausgew¨ahlten Var-Zahlen bezeichnen wir mitA Da f¨ur jedesi ∈ {1, . . . ,n}entwedera+i odera−i 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.
Beweis (3a): Korrektheit
Lemma A: Formel ϕerf¨ullbar⇒SUBSET-SUM Instanz ist l¨osbar Es gibt eine erf¨ullende Belegungx∗f¨ur die Formelϕ.
Fallsxi∗=1, so w¨ahlen wira+i aus; andernfalls w¨ahlen wira−i Die Summe der ausgew¨ahlten Var-Zahlen bezeichnen wir mitA Da f¨ur jedesi ∈ {1, . . . ,n}entwedera+i odera−i 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.
Beweis (3a): Korrektheit
Lemma A: Formel ϕerf¨ullbar⇒SUBSET-SUM Instanz ist l¨osbar Es gibt eine erf¨ullende Belegungx∗f¨ur die Formelϕ.
Fallsxi∗=1, so w¨ahlen wira+i aus; andernfalls w¨ahlen wira−i Die Summe der ausgew¨ahlten Var-Zahlen bezeichnen wir mitA Da f¨ur jedesi ∈ {1, . . . ,n}entwedera+i odera−i 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.
Beweis (3b): Korrektheit
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 unda−i ; 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.
Beweis (3b): Korrektheit
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 unda−i ; 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.
Beweis (3b): Korrektheit
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 unda−i ; 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.
Beweis (3b): Korrektheit
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 unda−i ; 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.
NP-Vollst¨ andigkeit von
PARTITION
PARTITION: Definition
Problem: PARTITION
Eingabe:Positive ganze Zahlena01, . . . ,a0n; mitPn
i=1a0i=2A0 Frage:Existiert eine IndexmengeI ⊆ {1, . . . ,n} mitP
i∈Iai0=A0? PARTITION ist der Spezialfall von SUBSET-SUM mitb:= (P
ai)/2
Satz
PARTITION ist NP-vollst¨andig.
Beweis:
PARTITION liegt in NP
Wir zeigen SUBSET-SUM≤p PARTITION
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.
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.
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.
Beweis (1): Korrektheit
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.
Beweis (2): Korrektheit
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.
NP-Vollst¨ andigkeit von
Bin Packing und Rucksack
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, undwi =a0i f¨ur 1≤i ≤n, und B=A0
Rucksack
Beim Rucksack Problem sollen Objekte ausgew¨ahlt werden, die in einen Rucksack mit GewichtsschrankeB passen und den Gesamtprofit maximieren.
Problem: Rucksack / Knapsack (KP)
Eingabe:Nat¨urliche Zahlenw1, . . . ,wn,p1, . . . ,pn,B,γ Frage:Existiert eine Teilmenge der Objekte mit
Gesamtgewicht h¨ochstensB und Gesamtprofit mindestensγ?
Satz
Rucksack ist NP-vollst¨andig.
Beweis:
Wir zeigen SUBSET-SUM≤pRucksack
Wir setzenwi =ai undpi=ai f¨ur 1≤i ≤n, undB =γ=b
Die Komplexit¨ atslandschaft
NP
P
SAT
Clique Ind-Set VC
Ham-Cycle TSP Partition
Subset-Sum Rucksack
BPP
3-SAT
Graph- zusammenhang Primes
Warnung: Dieser Abbildung liegt die AnnahmeP6=NP zu Grunde.
Die Komplexit¨ atslandschaft
NP
P
SAT
Clique Ind-Set VC
Ham-Cycle TSP Partition
Subset-Sum Rucksack
BPP
3-SAT
Graph- zusammenhang Primes
Pseudo-polynomielle Zeit und
Starke NP-Schwere
Kodierungsl¨ ange (1)
Es seiX ein algorithmisches Problem
Die Laufzeit eines AlgorithmusAf¨ur ProblemX messen wir in der Kodierungsl¨angeder InstanzenI vonX
Die Kodierungsl¨ange|I|ist die Anzahl der Symbole in einer
“vern¨unftigen” Beschreibung der InstanzI
Kleine (polynomiell grosse) ¨Anderungen in derartigen Beschreibungen sind f¨ur unsere Definitionen / S¨atze / Beweise / Resultate irrelevant
Kodierungsl¨ ange (2)
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) Es gilt:
`1(G)ist polynomiell beschr¨ankt in`2(G)
`2(G)ist polynomiell beschr¨ankt in`1(G)
Kodierungsl¨ ange (3)
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>1gilt: 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.
Zahlenwert versus Kodierungsl¨ ange
Definition: Number
F¨ur eine InstanzI eines Entscheidungsproblems bezeichnen wir mit Number(I)den Wert der gr¨ossten inI 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|.) Der ParameterNumber(I)ist nur f¨ur Probleme relevant, in denen Distanzen, Kosten, Gewichte, L¨angen, Profite, Zeitintervalle, Abst¨ande, etc eine Rolle spielen.
Zahlenwert versus Kodierungsl¨ ange
Definition: Number
F¨ur eine InstanzI eines Entscheidungsproblems bezeichnen wir mit Number(I)den Wert der gr¨ossten inI 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|.) Der ParameterNumber(I)ist nur f¨ur Probleme relevant, in denen Distanzen, Kosten, Gewichte, L¨angen, Profite, Zeitintervalle, Abst¨ande, etc eine Rolle spielen.
Pseudo-polynomielle Zeit (1): Definition
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 Rucksack sind pseudo-polynomiell l¨osbar.
Pseudo-polynomielle Zeit (1): Definition
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 Rucksack sind pseudo-polynomiell l¨osbar.
Pseudo-polynomielle Zeit (2): Dynamisches Programm
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]
Pseudo-polynomielle Zeit (2): Dynamisches Programm
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]
Starke NP-Schwere (1): Definition
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
Starke NP-Schwere (1): Definition
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
Starke NP-Schwere (2)
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
Starke NP-Schwere (2)
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
Starke NP-Schwere (3)
Problem: THREE-PARTITION
Eingabe:Positive ganze Zahlena1, . . . ,an,b1, . . . ,bn, und c1, . . . ,cn mitPn
i=1(ai+bi+ci) =nS
Frage:Gibt es zwei Permutationenα, β von1, . . . ,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.
Starke NP-Schwere (3)
Problem: THREE-PARTITION
Eingabe:Positive ganze Zahlena1, . . . ,an,b1, . . . ,bn, und c1, . . . ,cn mitPn
i=1(ai+bi+ci) =nS
Frage:Gibt es zwei Permutationenα, β von1, . . . ,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.