update
This commit is contained in:
@@ -6,9 +6,9 @@ man schnell den Mut verliert, eine exakte Lösung in Polynomialzeit zu berechnen
|
||||
Probleme scheinen schwerer zu sein als andere. Was ist die Schwere eines Problems? Die
|
||||
Komplexitätstheorie befasst sich noch weitergehend mit der Frage nach der Komplexität
|
||||
von Problemen, dh. man versucht zu klassifizieren wie schwer Probleme sind.
|
||||
In diesem Kapitel werden wir die Komplexitätsklassen P und N P einführen und wol-
|
||||
len dann die Begriffe der N P -schwere und N P -vollständigkeit verstehen. Im Anschluss
|
||||
werden wir einige Beispiele N P -vollständiger Probleme studieren.
|
||||
In diesem Kapitel werden wir die Komplexitätsklassen P und NP einführen und wol-
|
||||
len dann die Begriffe der NP-schwere und NP-vollständigkeit verstehen. Im Anschluss
|
||||
werden wir einige Beispiele NP-vollständiger Probleme studieren.
|
||||
|
||||
|
||||
6.1 Einleitung: Cliquenproblem
|
||||
@@ -97,14 +97,14 @@ über dem Alphabet Σ = {0, 1}.
|
||||
Bemerkung 6.6. u ist ein Wort der Länge O(|V |2 ), v ist ein Wort der Länge O(log |V |).
|
||||
|
||||
|
||||
6.2 Komplexitätsklassen P, N P
|
||||
6.2 Komplexitätsklassen P, NP
|
||||
Definition 6.7. Die Menge aller polynomiell entscheidbaren Sprachen bzw. Entschei-
|
||||
dungsproblemen wird mit P bezeichnet:
|
||||
|
||||
P = {L ⊆ Σ∗ | es existiert ein Algorithmus A, der L in Laufzeit
|
||||
TA (n) = O(nd ) mit d = O(1) entscheidet}.
|
||||
|
||||
Neben P gibt es unter anderem auch die Klasse N P . Diese wird häufig über nicht-
|
||||
Neben P gibt es unter anderem auch die Klasse NP . Diese wird häufig über nicht-
|
||||
deterministische Algorithmen eingeführt (bei denen es zu jeder Eingabe eine endliche
|
||||
Menge von Rechenwegen gibt).
|
||||
|
||||
@@ -118,9 +118,9 @@ Definition 6.8. Ein nicht-deterministischer Algorithmus entscheidet eine Sprache
|
||||
|
||||
Die Anzahl der Rechenwege kann dabei exponentiell von der Eingabe abhängen.
|
||||
|
||||
Die Klasse N P ist nun genau die Menge aller Sprachen, die durch einen nicht-deterministischen
|
||||
Die Klasse NP ist nun genau die Menge aller Sprachen, die durch einen nicht-deterministischen
|
||||
Algorithmus in Polynomialzeit entschieden werden können. Wir bedienen uns hier aller-
|
||||
dings einer alternativen Definition der Klasse N P über polynomielle Verifizier. Die so
|
||||
dings einer alternativen Definition der Klasse NP über polynomielle Verifizier. Die so
|
||||
definierte Klassen von Problemen sind aber gleich.
|
||||
|
||||
Definition 6.9. Es sei L ⊆ Σ∗ . Ein (deterministischer) Algorithmus, der auf Σ∗ × Σ∗
|
||||
@@ -135,27 +135,27 @@ Definition 6.10. Ein Algorithmus A ist ein polynomieller Verifizierer für eine
|
||||
L, wenn eine Konstante d existiert, so dass es für jedes x ∈ L ein Zertifikat c gibt mit
|
||||
TA (x, c) = O(|x|d ).
|
||||
|
||||
Definition 6.11. Die Klasse aller polynomiell verifizierbaren Sprachen wird mit N P
|
||||
Definition 6.11. Die Klasse aller polynomiell verifizierbaren Sprachen wird mit NP
|
||||
bezeichnet; d.h.
|
||||
|
||||
N P = {L ⊆ Σ∗ | es existiert ein polynomieller Verifizierer für L}.
|
||||
NP = {L ⊆ Σ∗ | es existiert ein polynomieller Verifizierer für L}.
|
||||
|
||||
|
||||
|
||||
202
|
||||
6.2 Komplexitätsklassen P, N P
|
||||
6.2 Komplexitätsklassen P, NP
|
||||
|
||||
|
||||
Satz 6.12. Es gilt P ⊆ N P .
|
||||
Satz 6.12. Es gilt P ⊆ NP .
|
||||
|
||||
Beweis. Zu einem Entscheidungsproblem L aus P gibt es einen Algorithmus A, der
|
||||
L entscheidet. Diesen Algorithmus kann man als Verifizierer auffassen, der die zweite
|
||||
Eingabe c einfach ignoriert. Damit ist L auch in N P .
|
||||
Eingabe c einfach ignoriert. Damit ist L auch in NP .
|
||||
|
||||
Nun können wir auf das Cliquenproblem zurückkommen und die folgende Aussage
|
||||
beweisen.
|
||||
|
||||
Lemma 6.13. Das Entscheidungsproblem k-Clique ist in N P .
|
||||
Lemma 6.13. Das Entscheidungsproblem k-Clique ist in NP .
|
||||
|
||||
Beweis. Durch Angabe eines polynomiellen Verifizieres für k-Clique. Der Algorithmus
|
||||
bekommt neben der Eingabe (einen Graph G = (V, E) und eine Zahl k) ein Zertifikat
|
||||
@@ -171,7 +171,7 @@ bekommt neben der Eingabe (einen Graph G = (V, E) und eine Zahl k) ein Zertifika
|
||||
O(|C|) = O(|V |) Zeit. Da die Eingabelänge Ω(|V | + |E|) ist, ist die Laufzeit des Algo-
|
||||
rithmus polynomiell.
|
||||
|
||||
Nachdem wir nun gesehen haben, wie die Klassen P und N P definiert haben, können
|
||||
Nachdem wir nun gesehen haben, wie die Klassen P und NP definiert haben, können
|
||||
wir den Begriff der Schwere genauer beleuchten. Dafür ist es notwendig zu verstehen,
|
||||
wann ein Problem auf ein anderes Problem reduziert werden kann. Wir benötigen die
|
||||
folgende Definition.
|
||||
@@ -190,11 +190,11 @@ Definition 6.14. Es seien L1 ⊆ Σ∗1 , L2 ⊆ Σ∗2 zwei Sprachen.
|
||||
|
||||
Dann heißt L1 polynomiell reduzierbar auf L2 . Als Notation verwenden wir L1 ≤ L2 .
|
||||
|
||||
Endlich können wir den Begriff der N P -Schwere bzw. N P -Vollständigkeit formal fassen:
|
||||
Endlich können wir den Begriff der NP -Schwere bzw. NP -Vollständigkeit formal fassen:
|
||||
|
||||
Definition 6.15. (i) Eine Sprache L0 heißt N P -schwer, g.d.w. ∀L ∈ N P : L ≤ L0 .
|
||||
Definition 6.15. (i) Eine Sprache L0 heißt NP-schwer, g.d.w. ∀L ∈ NP : L ≤ L0 .
|
||||
|
||||
(ii) Eine Sprache L0 heißt N P -vollständig, g.d.w. L0 ∈ N P und ∀L ∈ N P gilt: L ≤ L0 .
|
||||
(ii) Eine Sprache L0 heißt NP-vollständig, g.d.w. L0 ∈ NP und ∀L ∈ NP gilt: L ≤ L0 .
|
||||
|
||||
|
||||
|
||||
@@ -202,17 +202,17 @@ Definition 6.15. (i) Eine Sprache L0 heißt N P -schwer, g.d.w. ∀L ∈ N P
|
||||
6 Einführung in die Komplexitätstheorie
|
||||
|
||||
|
||||
Eine fundamentale Eigenschaft der N P -vollständigkeit ist die folgende:
|
||||
Eine fundamentale Eigenschaft der NP-vollständigkeit ist die folgende:
|
||||
|
||||
Satz 6.16. Es sei L0 N P -vollständig. Dann gilt P = N P , g.d.w. L0 ∈ P .
|
||||
Satz 6.16. Es sei L0 NP-vollständig. Dann gilt P = NP , g.d.w. L0 ∈ P .
|
||||
|
||||
Beweis. ⇒: Es sei P = N P . Zeige dann, dass L0 ∈ P .
|
||||
L0 ist NP-vollständig. Dann gilt insbesondere L0 ∈ N P . Wegen P = N P gilt dann
|
||||
Beweis. ⇒: Es sei P = NP . Zeige dann, dass L0 ∈ P .
|
||||
L0 ist NP-vollständig. Dann gilt insbesondere L0 ∈ NP . Wegen P = NP gilt dann
|
||||
L0 ∈ P .
|
||||
⇐: Es sei L0 ∈ P . Zeige hier, dass P = N P .
|
||||
⇐: Es sei L0 ∈ P . Zeige hier, dass P = NP .
|
||||
Da L0 ∈ P ist, gibt es einen Algorithmus A0 , der L0 in Polynomzeit T0 entscheidet.
|
||||
Es sei nun L ∈ N P beliebig gewählt. Zeige: L ∈ P .
|
||||
Da L0 N P -vollständig ist und L ∈ N P , gilt L ≤ L0 . Sei also Af ein Algorithmus,
|
||||
Es sei nun L ∈ NP beliebig gewählt. Zeige: L ∈ P .
|
||||
Da L0 NP-vollständig ist und L ∈ NP , gilt L ≤ L0 . Sei also Af ein Algorithmus,
|
||||
der die polynomielle Transformation f von L auf L0 in Polynomzeit Tf berechnet mit
|
||||
u ∈ L ⇔ f (u) ∈ L0 .
|
||||
Wir konstruieren A aus A0 und Af durch Hintereinanderschalten; siehe folgendes Bild:
|
||||
@@ -229,12 +229,12 @@ zu f (u) ∈ L0 bzw. u ∈ L. D.h. Algorithmus A entscheidet L mit Gesamtlaufzei
|
||||
Tf (|u|)+T0 (|f (u)|) ≤ T (|u|) für ein Polynom T . Hierbei verwende, dass |f (u)| ≤ poly(|u|)
|
||||
und dass die Komposition von Polynomen wieder ein Polynom ergibt.
|
||||
|
||||
Konsequenz von Satz 6.16: Wenn ein N P -vollständiges Entscheidungsproblem in P
|
||||
liegt, dann sind alle N P Entscheidungsprobleme in P .
|
||||
Konsequenz von Satz 6.16: Wenn ein NP-vollständiges Entscheidungsproblem in P
|
||||
liegt, dann sind alle NP Entscheidungsprobleme in P .
|
||||
|
||||
Die gleiche Aussage gilt auch für ein N P -schweres Problem.
|
||||
Die gleiche Aussage gilt auch für ein NP-schweres Problem.
|
||||
Offenes Problem der Komplexitätstheorie:
|
||||
Gilt P = N P oder P 6= N P ?
|
||||
Gilt P = NP oder P 6= NP ?
|
||||
|
||||
Dies ist eines der wichtigsten offenen Probleme der Informatik. Es wurde vom Clay
|
||||
Mathematics Institute in die Liste der Millennium-Probleme aufgenommen; mit einem
|
||||
@@ -244,29 +244,29 @@ Bemerkung 6.17. Wenn L1 ≤ L2 und L2 ≤ L3 , dann gilt auch L1 ≤ L3 .
|
||||
|
||||
Beweis. siehe Übung.
|
||||
|
||||
Korollar 6.18. Ist L0 N P -vollständig, L0 ≤ L1 und L1 ∈ N P , so ist auch L1 N P -
|
||||
Korollar 6.18. Ist L0 NP-vollständig, L0 ≤ L1 und L1 ∈ NP , so ist auch L1 NP -
|
||||
vollständig.
|
||||
|
||||
|
||||
|
||||
204
|
||||
6.3 Definition von P und N P per Turingmaschine
|
||||
6.3 Definition von P und NP per Turingmaschine
|
||||
|
||||
|
||||
Beweis. Zeige die folgende Behauptung: ∀L ∈ N P gilt L ≤ L1 .
|
||||
Sei dazu L ∈ N P beliebig gewählt. Zeige dann die Aussage L ≤ L1 . Wegen der N P -
|
||||
vollständigkeit von L0 und da L ∈ N P ist, gilt L ≤ L0 . Nach Voraussetzung gilt
|
||||
Beweis. Zeige die folgende Behauptung: ∀L ∈ NP gilt L ≤ L1 .
|
||||
Sei dazu L ∈ NP beliebig gewählt. Zeige dann die Aussage L ≤ L1 . Wegen der NP -
|
||||
vollständigkeit von L0 und da L ∈ NP ist, gilt L ≤ L0 . Nach Voraussetzung gilt
|
||||
zusätzlich L0 ≤ L1 . Da die Relation ≤ transitiv ist (siehe Bemerkung 6.17), gilt dann:
|
||||
L ≤ L1 .
|
||||
Da L1 ∈ N P wegen der Voraussetzung, ist daher L1 auch N P -vollständig.
|
||||
Da L1 ∈ NP wegen der Voraussetzung, ist daher L1 auch NP-vollständig.
|
||||
|
||||
Das obige Ergebnis in Korollar 6.18 ermöglicht uns, N P -vollständige Probleme aus
|
||||
bekannten N P -vollständigen Problemen zu konstruieren (bzw. deren N P -vollständigkeit
|
||||
Das obige Ergebnis in Korollar 6.18 ermöglicht uns, NP-vollständige Probleme aus
|
||||
bekannten NP-vollständigen Problemen zu konstruieren (bzw. deren NP-vollständigkeit
|
||||
zu beweisen). Für diese Entscheidungsprobleme gibt es keine polynomiellen Algorithmen,
|
||||
außer P = N P .
|
||||
außer P = NP .
|
||||
|
||||
|
||||
6.3 Definition von P und N P per Turingmaschine
|
||||
6.3 Definition von P und NP per Turingmaschine
|
||||
Eine nicht-deterministische Turingmaschine (NDTM) hat die Form:
|
||||
|
||||
M = (Q, Γ, q0 , δ, F ).
|
||||
@@ -344,11 +344,11 @@ w in L liegt.
|
||||
Definition 6.20. L ⊂ Σ∗ ∈ P ⇐⇒ ∃ eine DTM M über Alphabet Γ ⊃ Σ und ein Poly-
|
||||
nom T , so dass M die Sprache L in Zeit T entscheidet.
|
||||
|
||||
Nun bleibt zu zeigen, dass beide gezeigten Definitionen der Komplexitätsklasse N P
|
||||
Nun bleibt zu zeigen, dass beide gezeigten Definitionen der Komplexitätsklasse NP
|
||||
äquivalent sind, sie also die gleiche Klasse beschreiben.
|
||||
|
||||
Satz 6.21. Die Klassen der Sprachen bezüglich Verifizierer und NDTM sind äquivalent
|
||||
und beschreiben beide die gleiche Klasse N P .
|
||||
und beschreiben beide die gleiche Klasse NP .
|
||||
|
||||
Beweis. ” ⊃ ” : Sei N eine NDTM, die eine Sprache L in Zeit nc für eine Konstante
|
||||
c entscheidet. Für jedes x ∈ L gibt es eine Folge nicht-deterministischer Übergänge,
|
||||
@@ -377,8 +377,8 @@ entscheidet, da M diese Eingabe in Polynomzeit verifizieren kann.
|
||||
|
||||
|
||||
6.4 Satisfiability Problem (SAT)
|
||||
Der Kanadier Stephen A. Cook begründete 1971 die Klasse der N P -vollständigen Proble-
|
||||
me in N P , indem er zeigte, dass ein N P -vollständiges Problem existiert. Dieses Problem
|
||||
Der Kanadier Stephen A. Cook begründete 1971 die Klasse der NP-vollständigen Proble-
|
||||
me in NP , indem er zeigte, dass ein NP-vollständiges Problem existiert. Dieses Problem
|
||||
ist das sogenannte Satisfiability Problem (SAT). Leonid Levin hatte einen vergleichbaren
|
||||
Satz 1973 veröffentlicht.
|
||||
|
||||
@@ -417,7 +417,7 @@ Wahrheitstabelle:
|
||||
|
||||
Die Belegung ψ(x1) = ψ(x10) = true ist eine erfüllende Belegung.
|
||||
|
||||
Satz 6.24. (Cook, 1971/Levin, 1973): SAT ist N P -vollständig.
|
||||
Satz 6.24. (Cook, 1971/Levin, 1973): SAT ist NP-vollständig.
|
||||
|
||||
Beweis. SAT ∈ NP Wir skizzieren dies für eine entsprechende nichtdeterministische Tu-
|
||||
ringmaschine mit den Zwischenergebnissen auf dem Turingband in Abb. 6.1. Salopp
|
||||
@@ -576,8 +576,8 @@ Hierbei ist 0 ≤ t, i ≤ T (|u|), 0 ≤ k ≤ S, 1 ≤ l ≤ %, 0 ≤ j ≤ m.
|
||||
wahr geschieht der Übergang Ct → Ct+1 gemäß Zeile zl(t) . Insgesamt
|
||||
erhalten wir eine akzeptierende Berechnung von M auf u.
|
||||
|
||||
Im Folgenden werden wir nun einige N P -vollständige Probleme betrachten und ihre
|
||||
Schwere insbesondere beweisen. Es zeigt sich etwa, dass SAT sogar dann N P -vollständig
|
||||
Im Folgenden werden wir nun einige NP-vollständige Probleme betrachten und ihre
|
||||
Schwere insbesondere beweisen. Es zeigt sich etwa, dass SAT sogar dann NP-vollständig
|
||||
bleibt, wenn man pro Klausel nur maximal 3 Literale erlaubt. Dieses Problem nennen
|
||||
wir 3-SAT.
|
||||
|
||||
@@ -585,7 +585,7 @@ wir 3-SAT.
|
||||
6.5 SAT mit kleinen Klauseln (3-SAT)
|
||||
3-SAT = {α | α Boolescher Ausdruck in KNF mit ≤ 3 Literalen pro Klausel, α erfüllbar}.
|
||||
|
||||
Satz 6.25. 3-SAT ist N P -vollständig.
|
||||
Satz 6.25. 3-SAT ist NP-vollständig.
|
||||
|
||||
Beweis. Es reicht zu zeigen: SAT ≤ 3-SAT. Gesucht ist eine polynomzeit-berechenbare
|
||||
Transformation φ : α → ᾱ mit
|
||||
@@ -629,9 +629,9 @@ Gegeben: Ein ungerichteter Graph G = (V, E) und eine Zahl k ≥ 1.
|
||||
Entscheide: Hat der gegebene Graph G eine Clique C ⊆ V mit mindestens k Knoten
|
||||
(d.h. mit |C| ≥ k)?
|
||||
|
||||
Satz 6.26. Das Problem k-Clique ist N P -vollständig.
|
||||
Satz 6.26. Das Problem k-Clique ist NP-vollständig.
|
||||
|
||||
Beweis. (a) k-Clique ∈ N P : siehe Lemma 6.13 (b) Zeige: SAT ≤ k-Clique.
|
||||
Beweis. (a) k-Clique ∈ NP : siehe Lemma 6.13 (b) Zeige: SAT ≤ k-Clique.
|
||||
Es sei F ein Boolscher Ausdruck in KNF, wobei F = F1 ∧. . .∧Fm und Fi = (yi1 ∨. . .∨yi`i )
|
||||
eine Klausel mit `i Literalen ist. Konstruktion von G = (V, E) (dies geht in poly. Zeit):
|
||||
|
||||
@@ -691,10 +691,10 @@ Gegeben: Ein ungerichteter Graph G = (V, E) und eine Zahl k ≥ 1.
|
||||
Entscheide: Hat der gegebene Graph G eine k-Färbung?
|
||||
|
||||
|
||||
Satz 6.28. Das Färbungsproblem k-Color ist N P -vollständig.
|
||||
Satz 6.28. Das Färbungsproblem k-Color ist NP-vollständig.
|
||||
|
||||
|
||||
Beweis. (a) k-Color ∈ N P : Wähle als Zertifikat eine Abbildung f : V → {1, . . . , k} und
|
||||
Beweis. (a) k-Color ∈ NP : Wähle als Zertifikat eine Abbildung f : V → {1, . . . , k} und
|
||||
teste, ob f eine k-Färbung ist. Der Testschritt geht in Zeit O(|V | + |E|).
|
||||
(b) zeige: 3-SAT ≤ k-Color. Es sei F Boolescher Ausdruck in KNF mit F = F1 ∧. . .∧Fm
|
||||
und Fi Klausel der Länge ≤ 3 und ohne Paare xj ∨ ¬xj in einer Klausel (diese Klauseln
|
||||
@@ -786,8 +786,8 @@ Gegeben: Mengen U, V, W mit |U | = |V | = |W | und Teilmenge T ⊆ V × W × U .
|
||||
Entscheide: Gibt es eine Teilmenge M ⊆ T mit |M | = |U | mit der Eigenschaft: Für jede
|
||||
zwei unterschiedliche (v, w, u), (v 0 , w0 , u0 ) ∈ M gilt: u 6= u0 , v 6= v 0 und w 6= w0 ?
|
||||
|
||||
Satz 6.30. Das 3-dimensionale Matchingproblem (3-dim. Matching) ist N P -vollständig.
|
||||
Beweis. (a) 3-dim. Matching ist in N P . Wähle als Zertifikat eine entsprechende Teil-
|
||||
Satz 6.30. Das 3-dimensionale Matchingproblem (3-dim. Matching) ist NP-vollständig.
|
||||
Beweis. (a) 3-dim. Matching ist in NP . Wähle als Zertifikat eine entsprechende Teil-
|
||||
menge M ⊆ T und teste die obigen Bedingungen.
|
||||
(b) SAT ≤ 3-dim. Matching. Es sei F ein Boolescher Ausdruck mit Variablen x1 , . . . , xn
|
||||
und Klauseln C1 , . . . , Cm . Konstruiere Instanz (V, W, U, T ) mit:
|
||||
@@ -895,7 +895,7 @@ Entscheide:
|
||||
j=1,...,m Sij =
|
||||
S.
|
||||
|
||||
Satz 6.31. Das Problem 3-Exact Cover ist N P -vollständig.
|
||||
Satz 6.31. Das Problem 3-Exact Cover ist NP-vollständig.
|
||||
|
||||
Beweis. Dies folgt, da jede Instanz von 3-dim Matching als eine Instanz von 3-Exact
|
||||
Cover aufgefasst werden kann.
|
||||
@@ -909,9 +909,9 @@ Entscheide: Gibt es eine Teilmenge S ⊆ {1, . . . , n} mit
|
||||
j∈S cj = K?
|
||||
|
||||
|
||||
Satz 6.32. Das Problem SubSet Sum ist N P -vollständig.
|
||||
Satz 6.32. Das Problem SubSet Sum ist NP-vollständig.
|
||||
|
||||
Beweis. (a) SubSet Sum ∈ N P : Wähle als Zertifikat eine Teilmenge und teste ob Summe
|
||||
Beweis. (a) SubSet Sum ∈ NP : Wähle als Zertifikat eine Teilmenge und teste ob Summe
|
||||
gleich K ist.
|
||||
(b) 3-Exact Cover ≤ SubSet Sum. Gegeben sei eine Familie von n Mengen der Kardi-
|
||||
nalität 3 und Grundmenge U = {u1 , . . . , u3m }. Konstruiere Zahlen c1 , . . . , cn .
|
||||
@@ -955,8 +955,8 @@ Entscheide: Gibt es eine Teilmenge S ⊆ {1, . . . , n} mit
|
||||
P Pn
|
||||
j∈S cj = 1/2
|
||||
|
||||
Satz 6.33. Das Problem Partition ist N P -vollständig.
|
||||
Beweis. (a) Partition ∈ N P (klar).
|
||||
Satz 6.33. Das Problem Partition ist NP-vollständig.
|
||||
Beweis. (a) Partition ∈ NP (klar).
|
||||
(b) SubSet Sum ≤ Partition. Gegeben seien Zahlen c1 , . . . , cn , K. Setze N = nj=1 cj +
|
||||
P
|
||||
1 und konstruiere die folgende Menge von (n + 2) Gegenständen: {1, . . . , P n} ∪ {b, c}
|
||||
@@ -1000,7 +1000,7 @@ Entscheide: Gibt es eine Teilmenge S ⊆
|
||||
j∈S cj ≤ K und Gesamtprofit j∈S pj ≥ P ?
|
||||
P
|
||||
|
||||
Satz 6.34. Das Rucksackproblem ist N P -vollständig.
|
||||
Satz 6.34. Das Rucksackproblem ist NP-vollständig.
|
||||
Beweis. Spezialfall mit cj = pj für alle Gegenstände und P = K entspricht dem SubSet
|
||||
Sum Problem.
|
||||
|
||||
@@ -1327,7 +1327,7 @@ einen Hamiltonkreis besitzt.
|
||||
Übung 6.45. Die Eingabe des Problems SAT3 ist ein boolscher Ausdruck in KNF, für
|
||||
den entschieden werden soll, ob es mindestens 3 erfüllende Belegungen für diese Formel
|
||||
gibt.
|
||||
Zeigen Sie, dass SAT3 N P -vollständig ist.
|
||||
Zeigen Sie, dass SAT3 NP-vollständig ist.
|
||||
Übung 6.46. Eine NAE-k-SAT (Not-All-Equal) Formel hat folgende Form m i i
|
||||
V
|
||||
i=1 (z1 , . . . , zk ),
|
||||
@@ -1342,25 +1342,25 @@ Übung 6.47. Ein Independent Set in einem Graphen G = (V, E) ist eine Menge von
|
||||
Knoten I, so dass für je zwei Knoten i, j ∈ I gilt, dass {i, j} 6∈ E. Für das Problem
|
||||
Independent Set ist ein Graph G = (V, E) sowie eine Zahl k ∈ N gegeben und es soll
|
||||
entschieden werden, ob es in G ein Independent Set mit k Knoten gibt.
|
||||
Zeigen Sie, dass das Problem Independent Set N P -vollständig ist.
|
||||
Zeigen Sie, dass das Problem Independent Set NP-vollständig ist.
|
||||
Übung 6.48. Ein Vertex Cover in einem Graphen G = (V, E) ist eine Menge von
|
||||
Knoten C ⊆ V so dass für jede Kante {v, w} ∈ E gilt das v ∈ C oder w ∈ C. Für das
|
||||
Problem Vertex Cover ist ein Graph G = (V, E) sowie eine Zahl k ∈ N gegeben und
|
||||
es soll entschieden werden, ob es in G ein Vertex Cover mit k Knoten gibt.
|
||||
Zeigen Sie, dass das Problem Vertex Cover N P -vollständig ist.
|
||||
Zeigen Sie, dass das Problem Vertex Cover NP-vollständig ist.
|
||||
Übung 6.49. In dem Problem Clique-Member ist ein Graph G = (V, E), ein Knoten
|
||||
v ∈ V sowie eine Zahl k ∈ N gegeben und es soll entschieden werden, ob es eine Clique
|
||||
mit k Knoten gibt, die den Knoten v enthält.
|
||||
Zeigen Sie, dass Clique-Member N P -vollständig ist.
|
||||
Zeigen Sie, dass Clique-Member NP-vollständig ist.
|
||||
Übung 6.50. In dem Problem Clique-Nomember ist ein Graph G = (V, E), ein
|
||||
Knoten v ∈ V sowie eine Zahl k ∈ N gegeben und es soll entschieden werden, ob es eine
|
||||
Clique mit k Knoten gibt, die den Knoten v nicht enthält.
|
||||
Zeigen Sie, dass Clique-Nomember N P -vollständig ist, indem Sie eine Reduktion
|
||||
Zeigen Sie, dass Clique-Nomember NP-vollständig ist, indem Sie eine Reduktion
|
||||
von Clique auf Clique-Nomember angeben.
|
||||
Übung 6.51. In dem Problem Z-Clique ist ein zusammenhängender Graph G =
|
||||
(V, E) und eine Zahl k ∈ N gegeben und es soll entschieden werden, ob G eine Clique
|
||||
mit k Knoten enthält.
|
||||
Zeigen Sie, dass Z-Clique N P -vollständig ist.
|
||||
Zeigen Sie, dass Z-Clique NP-vollständig ist.
|
||||
Übung 6.52. Zeigen Sie, dass das Partition Problem ebenfalls NP-schwer ist, wenn
|
||||
eine Teilmenge A00 ⊆ A gesucht ist mit
|
||||
X X
|
||||
@@ -1378,7 +1378,7 @@ Übung 6.53. Für das Problem Subset Sum Cardinality seien n ganze Zahlen
|
||||
c1 , . . . , cn ∈ N>0 (wobei n gerade sei) sowie eine Zahl K ∈ N gegeben. Es
|
||||
P soll entschieden
|
||||
werden, ob es eine Teilmenge S ⊂ {1, . . . , n} gibt mit |S| = n/2 und i∈S ci = K.
|
||||
Zeigen Sie, dass das Problem Subset Sum Cardinality N P -vollständig ist.
|
||||
Zeigen Sie, dass das Problem Subset Sum Cardinality NP-vollständig ist.
|
||||
|
||||
Übung 6.54. Eine Eingabe des Problems Even-Knapsack ist eine Menge von Items
|
||||
I, sowie ein Rucksack mit gerader Größe B (d.h es gibt b ∈ N mit B = 2b), sowie
|
||||
@@ -1387,7 +1387,7 @@ Das Entscheidungsproblem ist eine Teilmenge I 0 ⊆ I zu finden mit
|
||||
i∈I 0 si ≤ B und
|
||||
i∈I 0 pi ≥ P .
|
||||
P
|
||||
Zeigen Sie, dass Even-Knapsack N P -vollständig ist.
|
||||
Zeigen Sie, dass Even-Knapsack NP-vollständig ist.
|
||||
|
||||
Übung 6.55. Die Probleme Multiple-Choice-Knapsack (kurz MC-Knapsack) ist wie folgt
|
||||
definiert: Gegeben sind endliche Mengen C1 , . . . Ck ⊆ N × N von Items, eine Kapazität
|
||||
@@ -1398,7 +1398,7 @@ gewählten Items gemeinsam
|
||||
P den Zielprofit erfüllen ohne die Kapazität zu überschreiten,
|
||||
d.h. i∈[k] pi ≥ P und i∈[k] wi ≤ B.
|
||||
P
|
||||
Das Problem ist in N P . Zeigen Sie: MC-Knapsack ist N P -vollständig
|
||||
Das Problem ist in NP . Zeigen Sie: MC-Knapsack ist NP-vollständig
|
||||
|
||||
|
||||
|
||||
@@ -1407,8 +1407,8 @@ d.h. i∈[k] pi ≥ P und i∈[k] wi ≤ B.
|
||||
7 Approximative Algorithmen
|
||||
Das letzte Kapitel hat uns Einblicke in die Schwierigkeit der polynomiellen Berechen-
|
||||
barkeit gegeben. Wir wissen nun insbesondere, dass es viele Probleme gibt, deren exakte
|
||||
Lösung eine große, nicht-polynomielle Laufzeit benötigt - es sei denn, es gilt P = N P .
|
||||
In Ermangelung einer Eingebung zu der Frage, ob P = N P oder P 6= N P gilt, hat sich
|
||||
Lösung eine große, nicht-polynomielle Laufzeit benötigt - es sei denn, es gilt P = NP .
|
||||
In Ermangelung einer Eingebung zu der Frage, ob P = NP oder P 6= NP gilt, hat sich
|
||||
die Disziplin der Approximativen Algorithmen entwickelt; anstatt eine exakte Lösung zu
|
||||
verlangen, lässt man die Berechnung geringfügig schlechterer Lösungen zu, welche sich
|
||||
aber deutlich schneller berechnen lassen. Die exakte Lösung wird in diesem Sinne nur
|
||||
@@ -1509,7 +1509,7 @@ Königsberger Brückenproblem Knoten mit ungeradem Grad besitzt und es daher k
|
||||
entsprechenden Rundweg gibt.
|
||||
Wir betrachten nun den folgenden Algorithmus:
|
||||
|
||||
Algorithmus ∆T SP1 (V = {1,...,n}, D = (d(i,j)) )
|
||||
Algorithmus ∆TSP1 (V = {1,...,n}, D = (d(i,j)) )
|
||||
1 Berechne einen minimalen spannenden Baum T des Graphen
|
||||
2 Kn mit Distanzen d(i, j);
|
||||
3 Konstruiere einen Multigraphen G aus T durch Verdoppeln
|
||||
@@ -1568,7 +1568,7 @@ G durch Verdopplung der Kanten mit w(G) = 12; siehe folgendes Bild:
|
||||
12; und durch die Abkürzungen (d.h. Überspringen der schon vorher besuchten Knoten)
|
||||
erhalten wir die Rundreise R = [C, A, E, B, D, C] mit Länge d(R) = 10.
|
||||
|
||||
Satz 7.8. Der Algorithmus ∆T SP1 hat eine multiplikative Güte 2; d.h. d(R) ≤ 2OP T (I),
|
||||
Satz 7.8. Der Algorithmus ∆TSP1 hat eine multiplikative Güte 2; d.h. d(R) ≤ 2OP T (I),
|
||||
wobei OP T (I) die Länge einer minimalen Rundreise zu der Eingabe I mit V = {1, . . . , n}
|
||||
und Distanzen D = (d(i, j)) ist.
|
||||
|
||||
@@ -1599,7 +1599,7 @@ Beweis. Die Behauptung folgt aus den folgenden Ungleichungen:
|
||||
Formal zeigt man die obige Ungleichung per Induktion nach t ≥ 1.
|
||||
|
||||
Bemerkung 7.9. Es gibt Beispiele für Eingaben I zu dem Traveling Salesman Problem
|
||||
mit OP T (I) = n, bei denen der Algorithmus ∆T SP1 eine Rundreise der Länge 2n − 2
|
||||
mit OP T (I) = n, bei denen der Algorithmus ∆TSP1 eine Rundreise der Länge 2n − 2
|
||||
berechnet.
|
||||
|
||||
Beweis. Zur Beweisidee geben wir hier ein Beispiel mit n = 8 Knoten. Betrachte ei-
|
||||
@@ -1663,7 +1663,7 @@ Grad optimaler durch Kanten augmentieren. Hier hilft uns ein Matching mit minima
|
||||
Gewicht. Man beachte, dass die Anzahl der Knoten mit ungeradem Grad gerade ist;
|
||||
siehe auch Lemma 5.4.
|
||||
|
||||
Algorithmus ∆T SP2 (V = {1,...,n}, D = (d(i,j)) )
|
||||
Algorithmus ∆TSP2 (V = {1,...,n}, D = (d(i,j)) )
|
||||
1 Berechne einen minimalen spannenden Baum T des
|
||||
2 Graphen Kn mit Gewichten d(i, j);
|
||||
3 Bestimme die Menge X der Knoten in T,
|
||||
@@ -1685,7 +1685,7 @@ Algorithmus ∆T SP2 (V = {1,...,n}, D = (d(i,j)) )
|
||||
12 Bestimme eine Rundreise R aus C durch Abkürzungen;
|
||||
13 return Rundreise R.
|
||||
|
||||
Satz 7.13. (Christofides): Der Algorithmus ∆T SP2 hat eine multiplikative Güte 1.5;
|
||||
Satz 7.13. (Christofides): Der Algorithmus ∆TSP2 hat eine multiplikative Güte 1.5;
|
||||
d.h. d(R) ≤ 1.5OP T (I).
|
||||
|
||||
Beweis. Es gilt d(C) = w(T ) + d(K) ≤ OP T (I) + d(K). Man zeige nun, dass d(K) ≤
|
||||
@@ -1787,13 +1787,13 @@ induzierten Graphen H rechts mit einem perfektem Matching K und Gewicht w(K) = 3
|
||||
Ein Eulerkreis in G ist C = [C, B, C, A, E, D, C] und nach den Abkürzungen erhalten
|
||||
wir R = [C, B, A, E, D, C] mit Länge d(R) = 9.
|
||||
Lemma 7.15. Es gibt Beispiele für Eingaben I zu dem Traveling Salesman Problem mit
|
||||
OP T (I) = n, bei denen der Algorithmus ∆T SP2 von Christofides eine Rundreise der
|
||||
OP T (I) = n, bei denen der Algorithmus ∆TSP2 von Christofides eine Rundreise der
|
||||
Länge (n − 1) + bn/2c berechnet.
|
||||
Beweis. zur Übung.
|
||||
|
||||
|
||||
7.2 Rucksackproblem
|
||||
Dass das Rucksackproblem N P -vollständig ist, haben wir schon am Ende des letzten Ka-
|
||||
Dass das Rucksackproblem NP-vollständig ist, haben wir schon am Ende des letzten Ka-
|
||||
pitels gesehen. Hier wollen wir nun einige einfache Approximationsalgorithmen studieren.
|
||||
|
||||
Gegeben:
|
||||
@@ -1866,11 +1866,11 @@ Algorithmus MGA(I = ((w0 , p0 ), . . . , (wn−1 , pn−1 ), B))
|
||||
7 Approximative Algorithmen
|
||||
|
||||
|
||||
Es sei M GA(I) der Gesamtgewinn der durch Algorithmus M GA berechneten Lösung
|
||||
Es sei MGA(I) der Gesamtgewinn der durch Algorithmus MGA berechneten Lösung
|
||||
S ⊆ {0, . . . , n − 1} und OP T (I) der Gesamtgewinn einer optimalen Lösung zur Eingabe
|
||||
I.
|
||||
|
||||
Satz 7.18. Die Worst-Case Güte von Algorithmus M GA ist 2 (d.h. OP T (I)/M GA(I) ≤
|
||||
Satz 7.18. Die Worst-Case Güte von Algorithmus MGA ist 2 (d.h. OP T (I)/MGA(I) ≤
|
||||
2 für alle Eingaben I).
|
||||
|
||||
Beweis. Betrachte relaxierte Version des Rucksackproblems, bei dem Gegenstände frak-
|
||||
@@ -1938,18 +1938,18 @@ ist, dass der Algorithmus GA nicht nimmt, gilt
|
||||
|
||||
OP Tf (I) ≤ GA(I) + pk+1 .
|
||||
|
||||
Der Algorithmus M GA berechnet Lösung mit Wert GA(I) oder pmax ≥ pk+1 (bzw. sogar
|
||||
Der Algorithmus MGA berechnet Lösung mit Wert GA(I) oder pmax ≥ pk+1 (bzw. sogar
|
||||
genauer mit Wert max{GA(I), pmax }). Daher gilt
|
||||
|
||||
OP T (I) ≤ OP Tf (I) ≤ GA(I) + pk+1
|
||||
≤ GA(I) + pmax ≤ 2 max{GA(I), pmax }
|
||||
= 2 · M GA(I)
|
||||
= 2 · MGA(I)
|
||||
|
||||
|
||||
|
||||
Bemerkung 7.19. (a) Der Algorithmus M GA läuft in Zeit O(n log n).
|
||||
Bemerkung 7.19. (a) Der Algorithmus MGA läuft in Zeit O(n log n).
|
||||
|
||||
(b) Durch eine Modifikation von M GA können wir auch einen approximativen Algo-
|
||||
(b) Durch eine Modifikation von MGA können wir auch einen approximativen Algo-
|
||||
rithmus angeben mit Worst Case Güte 2, der in O(n) Zeit läuft.
|
||||
|
||||
Beweis. Wir verwenden als Idee zur Laufzeitverbesserung (b) hierzu den Median-Algorithmus
|
||||
|
||||
Reference in New Issue
Block a user