NP-vollst. u. NP-äquiv. Probleme

Werbung
NP-vollst. u. NP-äquiv. Probleme
Literatur: Kapitel K6.
Ziel:
• Weitere Probleme kennen lernen
(und damit weitere Basisprobleme für eigene
Reduktionen)
• Weitere Beispiele für
NP-Vollständigkeitsbeweise kennen lernen.
235
Bisher bewiesen (vgl. Folie 189)
Partition p BP
p IS =p Clique =p VC
SAT =p 3-SAT
p
DHC =p HC =p TSP2,∆,sym
NP-vollständig
2-SAT∈P (Übungen)
236
Folgerung
Die Optimierungsvarianten von IS, Clique, VC
und TSP sind NP-äquivalent.
237
Rucksackprobleme [K6.3]
Subset Sum Problem (SSS)
Eingabe: Zahlen a1,...,an, G.
Frage: Gibt es eine Menge I⊆{1,...,n}, so
dass ∑i∈I ai = G?
Satz K6.3.1: SSS ist NP-vollständig.
Beweis: 1. SSS∈NP.
2. Reduktion von 3-SAT.
Reduktion mit
verbundenen
Komponenten
238
3. Angabe der Funktion f.
Eingabe für 3-SAT: Variablen x1,...,xn,
Klauseln C1,...,Cm.
Zahlen der SSS-Eingabe:
- n+m Ziffern in Dezimaldarstellung.
- Für jede Variable xi zwei Zahlen ai und bi:
ai
bi
C1 C2
... Cj
1
1
... Cm x1 x2
0 0
0 0
...
0
0
xi
1
1
... xn
0 0
0 0
falls Cj xi enthält
falls Cj xi enthält
239
Für jede Variable xi:
ai
bi
C1 C2
... Cj
1
1
... Cm x1 x2
0 0
0 0
...
0
0
Für jede Klausel Cj:
dj
ej
C1 C2
... Cj
... Cm x1 x2
...
xi
... xn
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
... Cm x1 x2
3 3 1 1
...
1
xi
... xn
1 1
Summe G:
G
1
1
... xn
0 0
0 0
xi
C1 C2
3 3
... Cj
3 3
1
240
b1
C1
a2
a3
a4
d1
e1
e2
C2
1
C3
1
C4
x1
1
1
1
1
2
3
x3
x4
1
1
1
x2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
d4
1
3
3
3
3
C1 = x1 ∨ x2 ∨ x3, C2 = x1 ∨ x2 ∨ x4,
C3 = x1 ∨ x3 ∨ x4, C4 = x2 ∨ x3 ∨ x4.
241
Korrektheit
„⇒“: Sei z=(z1,...,zn) erfüllende Belegung.
Wähle die Zahl ai, falls zi=1,
bi, falls zi=0.
→ Summe für „Variablenstellen“ stimmt.
Da z erfüllend, sind in jedem Cj 1, 2 oder 3
Literale erfüllt.
1 erfülltes Literal: Wähle dj und ej.
2 erfüllte Literale: Wähle dj.
→ Summe für die „Klauselstellen“ stimmt.
242
Korrektheit
„⇐“: Sei Auswahl der Zahlen mit Summe G
gegeben.
Falls ai gewählt: zi=1.
Falls bi gewählt: zi=0.
Behauptung: Dies ist erfüllende Belegung.
• ai und bi können nicht beide gewählt sein.
• Für jede Klausel Cj muss mindestens eine 1
von einem ai oder bi kommen
→ Zugehöriges Literal erfüllt.
243
Spezialfälle/Restriktionen
Allgemein gilt:
Sei A∈NP, sei B NP-vollständig und ein
Spezialfall von A. Dann ist auch A NPvollständig.
Beweis: Es ist BpA:
Spezialfall bedeutet: Eine Eingabe für A
entsteht aus einer Eingabe für B durch
Konstantsetzen einiger Teile. Diese Abbildung
ist als Funktion f der Reduktion geeignet.
244
Rucksackproblem
Knapsack (KP)
Eingabe: n Objekte mit Nutzenwerten a1,...,an
und Gewichten g1,...,gn, Gesamtgewicht G,
Nutzenschranke B.
Frage: Gibt es eine Auswahl der Objekte mit
Nutzen mindestens B und Gesamtgewicht
höchstens G?
KP*: Spezialfall mit G=B und ai=gi.
245
Folgerung K6.3.2: KP und KP* sind
NP-vollständig.
Beweis:
KP* und SSS sind äquivalent.
KP ist Verallgemeinerung von KP*. Restriktion
246
Partition
Zur Erinnerung:
Eingabe: Natürliche Zahlen a1,...,an.
Frage: Gibt es I⊆{1,...,n} mit
Folgerung K6.3.2: Partition ist NP-vollständig.
Problem: Partition ist ein Spezialfall von SSS.
Verkehrte Richtung für Restriktion.
247
Beweis
Reduktion SSSpPartition:
Sei X=(a1,...,an,G) Eingabe für SSS.
Sei S*=a1 + ... + an.
Konstruiere Partition-Eingabe:
Y=(a1,..., an, an+1=2S*–G, an+2=S*+G)
erzwingende Komponenten
Beob: a1 + ... + an + an+1 + an+2 = 4S*.
248
X=(a1,...,an,G) →
Y=(a1,..., an, an+1=2S*–G, an+2=S*+G)
Korrektheit:
„⇒“: Sei I Lösung von X, also ∑i∈I ai=G:
Dann ist I∪{n+1} Lösung von Y.
„⇐“: Sei J Lösung für Y.
Falls n+1∉J, vertausche J und
J={1,...,n+2} –J.
Dann ist J–{n+1} eine Lösung für X.
249
Aufteilung u. Lastverteilung [K6.4]
Wir haben bereits gezeigt: PartitionpBP.
Folgerung K6.4.1: BP ist NP-vollständig.
BP
Eingabe: n Objekte mit Größen a1,...,an,
Kistengröße b, Zahl k.
Aufgabe: Genügen k Kisten der Größe b, um alle
Objekte zu verpacken?
250
Sequencing with Intervals (SWI)
Eingabe: A={a1,...,an} Menge v. Aufgaben mit
l(a): Bearbeitungsdauer von Aufgabe a, length
r(a): frühester Bearbeitungszeitpunkt von a,
release time
d(a): Deadline für a
Frage: Können die Aufgaben von einem
Prozessor so bearbeitet werden, dass keine
Aufgabe unterbrochen wird und alle
Bedingungen eingehalten werden?
251
Satz K6.4.2: SWI ist NP-vollständig.
Beweis: 1. SWI∈NP klar.
2. Reduktion PartitionpSWI
3. Eingabe f. Partition: X=(s1,...,sn).
Sei S = s1+ ... +sn, ist o.B.d.A. gerade Zahl.
Erzeuge n+1 Aufgaben a1,...,an+1.
Für 1 i n: l(ai)=si, r(ai)=0, d(ai)=S+1,
l(an+1)=1, r(an+1)=S/2, d(an+1)=S/2+1.
an+1
0
S/2
S/2+1
S+1
252
Cliquenprobleme [K6.5]
Graphisomorphie (GI)
Eingabe: Graphen G1=(V1,E1), G2=(V2,E2).
Frage: Sind G1 und G2 isomorph, d.h.,
gibt es eine Funktion f : V1→ V2 mit
{v1,v2}∈E1 ⇔ {f(v1),f(v2)}∈E2?
GI∈NP klar.
Für GI kennt man weder
einen polyn. Algo., noch
einen NP-Vollst.beweis.
253
Teilgraphisomorphie
Subgraph Isomorphism (SI)
Eingabe: Graphen G1=(V1,E1), G2=(V2,E2).
Frage: Gibt es einen Teilgraphen von G1, der
zu G2 isomorph ist?
Teilgraph von G1:
• Knotenmenge V´⊆V1.
• Kantenmenge: Alle Kanten
aus E1, die zwischen Knoten
aus V´ verlaufen.
254
Satz K6.5.1: SI ist NP-vollständig.
Beweis: 1. SI∈NP klar.
Restriktion
2. Reduktion CliquepSI.
3. Eingabe für Cliquenproblem: (G,k).
Sei G1=G,
G2=vollständiger Graph auf k Knoten.
4. G enthält k-Clique ⇔
G1 enthält zu G2 isomorphen Subgraphen.
255
Graphfärbbarkeit
Graph Colorability (GC)
Eingabe: Unger. Graph G=(V,E), Zahl k.
Frage: Können die Knoten von G mit k Farben
gefärbt werden, so dass benachbarte Knoten
verschieden gefärbt werden?
256
Bsp: Färben von Landkarten
257
Satz K6.5.2: GC ist NP-vollständig.
Beweis: 1. GC∈NP klar.
2. Reduktion von 3-SAT.
3. Sei 3-SAT-Eingabe mit Variablen x1,...,xn
und Klauseln C1,....,Cm gegeben.
Wähle k=3 (3 Farben)
258
Komponenten für Klauseln:
v1
v2
v3
w
Beob. (für legale 3-Färbungen):
1.Wenn v1, v2 und v3 dieselbe Farbe
haben, dann hat auch w diese Farbe.
2.Wenn einer der v-Knoten die Farbe 1 hat,
kann auch w die Farbe 1 bekommen.
259
C1=x1∨ x2∨ xn
x1
x1
u
3
x2
C2
x2
w
1
xn
xn
2
260
Korrektheit „⇒“
Sei erfüllende Belegung gegeben.
xi=0: xi-Knoten bekommt Farbe 2,
xi-Knoten bekommt Farbe 1.
xi=1: xi-Knoten bekommt Farbe 1,
xi-Knoten bekommt Farbe 2.
Da die Belegung erfüllend ist, kann jede
Klauselkomponente so gefärbt werden, dass w
die Farbe 1 bekommt.
261
Korrektheit „⇐“
Sei legale Färbung gegeben.
O.B.d.A.: w hat Farbe 1, u hat Farbe 3.
⇒ Variablenknoten haben Farben 1 und 2.
xi-Knoten hat Farbe 1: Belegung xi=1,
xi-Knoten hat Farbe 2: Belegung xi=0.
Annahme: Cj dadurch nicht erfüllt.
Alle v-Knoten von Cj haben Farbe 2
⇒ w hat Farbe 2. Widerspruch.
262
Spezialfall: festes k
k-GC
Eingabe: Graph G
Frage: Ist G mit k Farben färbbar?
Folgerung K6.5.3:
3-GC ist NP-vollständig.
Übungsaufgaben:
Zeige, dass 2-GC∈P.
Zeige, dass k-GC für alle k≥3 NP-vollständig
ist.
263
Zusammenfassung Kompl.theorie
• Betrachtete Rechnermodelle:
– Turingmaschinen, Registermaschinen
– Varianten: deterministisch, randomisiert,
nichtdeterministisch
• Komplexitätstheorie für randomisierte
Algorithmen
– Komplexitätsklassen ZPP, RP, BPP, PP
– Probability Amplification
– Nichtdeterminismus als Spezialfall von
Randomisierung
264
Zusammenfassung Kompl.theorie
• Zentrale Begriffe der NPVollständigkeitstheorie
– Turing-Reduktionen und polynomielle
Reduktionen
– NP-vollständige und NP-schwere
Probleme
• Satz von Cook, Vereinfachung von
Beweisen der NP-Vollständigkeit
• Zahlreiche Reduktionen zwischen
verschiedenen Problemen
265
Fazit NP-Vollständigkeit
Ein Beweis der NP-Vollständigkeit liefert eine
starken Hinweis darauf, dass ein Problem
keinen polyn. Algo hat.
Nutzen
• Keine Zeit dafür ver(sch)wenden, einen Algo
zu suchen, den es wohl nicht gibt.
• Beweis liefert Hinweise darauf, was an
dem Problem schwer ist → Überlegen, ob
wir das richtige Problem lösen.
• Fehlgeschlagene Versuche liefern Hinweise
auf polynomielle Algos.
266
Fazit NP-Vollständigkeit (Forts.)
• Reduktionen mit verbundenen Komponenten
erlauben es, Beziehungen zwischen nicht
verwandten Problemen herzustellen.
• 3-SAT ist häufig ein Ausgangsproblem für
Reduktionen.
267
Zugehörige Unterlagen
Herunterladen