This commit is contained in:
team3
2026-07-08 23:46:35 +02:00
parent f9d77a113b
commit 2178c6faf4
15 changed files with 557 additions and 379 deletions

View File

@@ -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 ), . . . , (wn1 , pn1 ), 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