848 lines
50 KiB
Plaintext
848 lines
50 KiB
Plaintext
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Dr. Max Deppert, Janina Reuter, Annika Huch
|
||
|
||
08.06.2026
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 9
|
||
|
||
|
||
Definition 1 (Vertex Cover (VC)). Für einen (ungerichteten) Graphen G = (V, E) ist ein Vertex
|
||
Cover eine Menge von Knoten C ⊆ V , sodass u ∈ C oder v ∈ C für alle { u, v } ∈ E gilt, also ist
|
||
für alle Kanten mindestens ein Endpunkt in C.
|
||
Für das V ERTEX C OVER Problem ist neben einem Graphen G eine Zahl k ∈ Z≥0 gegeben und
|
||
es wird gefragt, ob ein Vertex Cover mit Größe (Anzahl der Knoten) höchstens k in G existiert.
|
||
|
||
Definition 2 (Feedback Vertex Set (FVS)). Für einen gerichteten Graphen G = (V, E) ist ein
|
||
Feedback Vertex Set eine Menge von Knoten X ⊆ V , sodass G \ X kreisfrei ist.
|
||
Für das F EEDBACK V ERTEX S ET Problem ist neben einem Graphen G eine Zahl k ∈ Z≥0 gege-
|
||
ben und es wird gefragt, ob ein Feedback Vertex Set mit Größe (Anzahl der Knoten) höchstens
|
||
k in G existiert.
|
||
|
||
1 6 2
|
||
|
||
|
||
5
|
||
8 7
|
||
3
|
||
4
|
||
Abbildung 1: Beispiel Graph.
|
||
|
||
Hausaufgabe 9.1 (Nichtdeterministischer Algorithmus für VC) (5 Punkte)
|
||
1. Finden Sie ein minimales Vertex Cover in Abbildung 1. Für ein Vertex Cover ist die
|
||
Orientierung der Kanten nicht relevant.
|
||
2. Zeigen Sie V ERTEX C OVER ∈ NP, indem Sie einen nichtdeterministischen Algorithmus
|
||
angeben, der V ERTEX C OVER in Polynomialzeit löst. Begründen Sie die Korrektheit und
|
||
die Laufzeit von Ihrem Algorithmus.
|
||
Hausaufgabe 9.2 (Polynomieller Verifizierer für FVS) (5 Punkte)
|
||
1. Finden Sie ein minimales Feedback Vertex Set in Abbildung 1.
|
||
2. Zeigen Sie F EEDBACK V ERTEX S ET ∈ NP, indem Sie einen polynomiellen Verifizierer
|
||
für F EEDBACK V ERTEX S ET angeben. Begründen Sie die Korrektheit und die Laufzeit
|
||
von Ihrem Verifizierer.
|
||
Abgabe: 15.06.2026, 10:00 Uhr in Moodle.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Dr. Max Deppert, Janina Reuter, Annika Huch
|
||
|
||
15.06.2026
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 10
|
||
|
||
|
||
Definition 1 (Feedback Vertex Set (FVS)). Für einen gerichteten Graphen G = (V, E) ist ein
|
||
Feedback Vertex Set eine Menge von Knoten X ⊆ V , sodass G \ X kreisfrei ist.
|
||
Für das F EEDBACK V ERTEX S ET Problem ist neben einem Graphen G eine Zahl k ∈ Z≥0 gege-
|
||
ben und es wird gefragt, ob ein Feedback Vertex Set mit Größe (Anzahl der Knoten) höchstens
|
||
k in G existiert.
|
||
|
||
Hausaufgabe 10.1 (F EEDBACK V ERTEX S ET ist NP-vollständig) (5 Punkte)
|
||
Zeigen Sie, dass F EEDBACK V ERTEX S ET NP-vollständig ist.
|
||
Hinweis: Reduzieren Sie V ERTEX C OVER auf F EEDBACK V ERTEX S ET. Wenn ein Vertex Cover
|
||
aus einem Graphen entfernt wird, hat dieser keine Kanten mehr.
|
||
Hausaufgabe 10.2 (k-C LIQUE mit universellem Knoten) (5 Punkte)
|
||
Die folgende Aufgabe ist eine klassische Klausuraufgabe (da sie ein Problem, dessen NP-
|
||
Vollständigkeit bereits bekannt ist, mit einer Zusatzeigenschaft versieht - und erneut nach NP-
|
||
Vollständigkeit fragt).
|
||
Wir definieren das Problem k-C LIQUE U NIVERSAL wie folgt:
|
||
Gegeben: Ein ungerichteter Graph G = (V, E) sowie eine Zahl k ∈ Z≥1 , wobei ein u ∈ V so
|
||
existiert, dass u mit allen anderen Knoten verbunden ist, i.e. { {u, v} | v ∈ V \ {u} } ⊆ E
|
||
Entscheide: Existiert eine Clique C ⊆ V von G mit |C| ≥ k?
|
||
Zeigen Sie, dass k-C LIQUE U NIVERSAL NP-vollständig ist.
|
||
|
||
|
||
|
||
|
||
Abgabe: 22.06.2026, 10:00 Uhr in Moodle.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Dr. Max Deppert, Janina Reuter, Annika Huch
|
||
|
||
22.06.2026
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 11
|
||
|
||
|
||
Definition 1 (Dreiecksüberdeckung eines Graphen (∆ C OVER)).
|
||
|
||
Gegeben Ein ungerichteter Graph G = (V, E) und eine Zahl k ∈ Z≥0 .
|
||
Entscheide Besitzt G eine Dreiecksüberdeckung C∆ ⊆ V mit |C∆ | ≤ k,
|
||
d.h. gilt D ∩C∆ ̸= 0/ für jede 3-Clique D ⊆ V in G?
|
||
|
||
|
||
|
||
|
||
(a) Ein Vertex Cover der Größe 5 (b) Eine Dreiecksüberdeckung der Größe 5
|
||
|
||
Abbildung 1: Zwei Beispielgraphen
|
||
|
||
Hausaufgabe 11.1 (5 Punkte)
|
||
Zeigen Sie: ∆ C OVER ist NP-vollständig.
|
||
|
||
Definition 2 (Halteproblem auf DTMs). Eine DTM M hält auf dem Wort w, wenn die Be-
|
||
rechnung von M auf w eine Stopkonfiguration erreicht. Für eine geeignete Kodierung ⟨•, •⟩
|
||
definieren wir:
|
||
|
||
HALTTM := { ⟨M, w⟩ | M ist DTM und M hält auf dem Wort w }
|
||
|
||
Hausaufgabe 11.2 (5 Punkte)
|
||
Zeigen Sie: HALTTM ist NP-schwer.
|
||
|
||
Abgabe: 30.06.2026, 10:00 Uhr in Moodle.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Dr. Max Deppert, Janina Reuter, Annika Huch
|
||
|
||
29.06.2026
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 12
|
||
|
||
|
||
Definition 1 (M AX -3-S AT). Bei dem Problem M AX -3-S AT ist eine Formel φ in konjunktiver
|
||
Normalform gegeben, wobei jede Klausel 3 Literale enthält. Gesucht ist eine Belegung β der
|
||
Variablen, die die Anzahl v(β ) der erfüllten Klauseln maximiert.
|
||
|
||
Hausaufgabe 12.1 (M AX -3-S AT, K LAUSURAUFGABE AUS S O S E 23, PZ1) (10 Punkte)
|
||
Betrachten Sie folgenden Algorithmus A:
|
||
• Sei β0 die Belegung, die alle Variablen auf false setzt.
|
||
• Sei β1 die Belegung, die alle Variablen auf true setzt.
|
||
• Falls v(β0 ) ≥ v(β1 ), gib β0 zurück.
|
||
• Sonst gib β1 zurück.
|
||
|
||
(a) (6 Punkte) Zeigen Sie, dass obiger Algorithmus Güte 2 hat, d.h. v(A(φ )) ≥ 21 v(OPT (φ ))
|
||
gilt für alle Eingaben φ .
|
||
(b) (4 Punkte) Geben Sie eine Formel an, bei der der Algorithmus eine Belegung ausgibt, die
|
||
genau die Hälfte der maximal erfüllbaren Klauseln erfüllt. Begründen Sie kurz, warum
|
||
Ihre Formel geeignet ist.
|
||
Hinweis: Sie brauchen nur höchstens zwei Klauseln und vier Variablen.
|
||
|
||
|
||
|
||
|
||
Abgabe: 06.07.2026, 10:00 Uhr in Moodle.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Dr. Max Deppert, Janina Reuter, Annika Huch
|
||
|
||
06.07.2026
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 13
|
||
|
||
|
||
Hausaufgabe 13.1 (Lower Bound: V ERTEX C OVER) (5 Punkte)
|
||
Betrachten Sie die Reduktion aus der Musterlösung zu Präsenzserie 10 von C LIQUE auf V ER -
|
||
TEX C OVER .
|
||
|
||
1. Geben Sie die Anzahl der Knoten, die Anzahl der Kanten und den Wert k für die re-
|
||
sultierende V ERTEX C OVER Instanz in Abhängigkeit von der originalen C LIQUE Instanz
|
||
an.
|
||
2. Zeigen Sie Lower Bounds für V ERTEX C OVER bezüglich Anzahl der Knoten, Anzahl
|
||
der Kanten und k basierend auf der ETH und der Reduktion aus der Musterlösung zu
|
||
Präsenzserie 10.
|
||
|
||
Definition 1 (H ITTING S ET). Bei diesem Problem ist ein Universum U, Teilmengen des Uni-
|
||
versums F1 , . . . , Fr ⊆ U und eine Zahl k ∈ Z≥0 gegeben. Gibt es eine Menge S ⊆ U mit |U| ≤ k
|
||
und S ∩ Fi ̸= 0/ für alle i ∈ [r]?
|
||
Anschaulicher wird bei diesem Problem nach maximal k Elementen aus dem Universum ge-
|
||
fragt, sodass diese Elemente alle gegebenen Mengen Fi „treffen“.
|
||
|
||
Hausaufgabe 13.2 (Lower Bound: H ITTING S ET) (5 Punkte)
|
||
Betrachten Sie folgende Reduktion von 3-SAT auf H ITTING S ET.
|
||
Für eine gegebene 3-SAT Instanz I mit n Variablen x1 , . . . , xn und m Klauseln C1 , . . . ,Cm : Als
|
||
Universum wählen wir U = { x1 , x̄1 , . . . , xn , x̄n }. Für jede Variable xi fügen wir die Menge Fi :=
|
||
{ xi , x̄i } hinzu. Für jede Klausel C j fügen wir die Menge Fn+ j := C j hinzu. Wir setzen k := n
|
||
und erhalten damit eine H ITTING S ET Instanz I.
|
||
1. Geben Sie die Größe des Universums, die Anzahl der Mengen und die Zahl k aus der
|
||
resultierenden H ITTING S ET Instanz in Abhängigkeit von der Anzahl der Variablen n und
|
||
der Anzahl der Klauseln m aus der originalen 3-SAT Instanz an.
|
||
2. Beweisen Sie Lower Bounds für H ITTING S ET bezüglich Universumsgröße, Anzahl der
|
||
Mengen und der Zahl k basierend auf der obigen Reduktion und der ETH.
|
||
|
||
|
||
|
||
|
||
Abgabe: 13.07.2026, 10:00 Uhr in Moodle.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
08.06.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 9
|
||
|
||
|
||
Definition 1 (Knapsack (Entscheidungsvariante)). Gegeben ist eine Menge mit n Gegenstän-
|
||
den mit Gewichten w1 , . . . , wn ∈ Z≥0 und Profiten p1 , . . . , pn ∈ Z≥0 . Weiter sind eine Kapazität
|
||
K ∈ Z≥0 und ein Zielprofit P ∈ Z≥0 gegeben. Bei dem K NAPSACK Problem muss entschieden
|
||
werden, ob eine Teilmenge S ⊆ [n] existiert, sodass
|
||
|
||
∑ wi ≤ K und ∑ pi ≥ P
|
||
i∈S i∈S
|
||
|
||
gilt.
|
||
|
||
Präsenzaufgabe 9.1 (K NAPSACK in NP)
|
||
Zeigen Sie K NAPSACK ∈ NP auf zwei verschiedene Wege.
|
||
1. Geben Sie einen nicht deterministischen Algorithmus an, der das Problem in polynomi-
|
||
eller Zeit löst.
|
||
2. Geben Sie einen polynomiellen Verifizierer für das Problem an.
|
||
Wie hängen diese beiden Methoden zusammen?
|
||
Präsenzaufgabe 9.2 (Transitivität von Polynomialzeitreduktionen)
|
||
Zeigen Sie, dass Polynomialzeitreduktionen transitiv sind, d.h., dass für alle Entscheidungspro-
|
||
bleme L1 , L2 , L3 ⊆ Σ∗ gilt, dass
|
||
|
||
L1 ≤ L2 ∧ L2 ≤ L3 =⇒ L1 ≤ L3 .
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
15.06.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 10
|
||
|
||
|
||
Präsenzaufgabe 10.1 (Fragen über Fragen)
|
||
Diskutieren Sie die folgenden Aussagen (Gelten sie allgemein? Gelten sie nicht? Gelten sie
|
||
unter bestimmten Bedingungen? Welche?):
|
||
(i) Für jede Sprache, die von einer NDTM in polynomieller Zeit akzeptiert werden kann,
|
||
existiert eine DTM, die ebenfalls die Sprache in polynomieller Zeit akzeptiert.
|
||
(ii) A ist NP-schwer =⇒ A ∈ P
|
||
|
||
Definition 1 (Vertex Cover (VC)). Für einen (ungerichteten) Graphen G = (V, E) ist ein Vertex
|
||
Cover eine Menge von Knoten C ⊆ V , sodass u ∈ C oder v ∈ C für alle { u, v } ∈ E gilt, also ist
|
||
für alle Kanten mindestens ein Endpunkt in C.
|
||
Für das V ERTEX C OVER Problem ist neben einem Graphen G eine Zahl k ∈ Z≥0 gegeben und
|
||
es wird gefragt, ob ein Vertex Cover mit Größe (Anzahl der Knoten) höchstens k in G existiert.
|
||
|
||
Präsenzaufgabe 10.2 (V ERTEX C OVER ist NP-vollständig)
|
||
Zeigen Sie, dass V ERTEX C OVER NP-vollständig ist.
|
||
Hinweis: Reduzieren Sie C LIQUE auf V ERTEX C OVER.
|
||
Präsenzaufgabe 10.3 (Turingmaschinen)
|
||
n
|
||
Entwerfen Sie eine Turingmaschine, welche die Sprache L = { 02 | n ∈ Z≥0 } über dem Al-
|
||
phabet Σ = {0} entscheidet. Geben Sie die Laufzeit Ihrer Turingmaschine an. Begründen Sie
|
||
die Korrektheit und die Laufzeit Ihrer Turingmaschine. Diskutieren Sie die Laufzeit Ihrer Tu-
|
||
ringmaschine im Vergleich zu einem Algorithmus (mit RAM) für diese Sprache.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
22.06.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 11
|
||
|
||
|
||
Präsenzaufgabe 11.1 (Fragen über Fragen)
|
||
Diskutieren Sie nachfolgende Aussagen. Sind diese wahr oder falsch?
|
||
(a) Für L ∈ NP gilt, aus L ≤ 3-SAT folgt, dass L NP-vollständig ist.
|
||
(b) Gilt für eine Sprache L, dass sowohl L ≤ 3-SAT als auch 3-SAT ≤ L, dann ist L NP-vollständig.
|
||
(c) Sei L NP-vollständig. Dann gilt L ∈ P genau dann, wenn P = NP.
|
||
(d) Es ist möglich, dass 3-SAT ∈ P und C LIQUE ∈
|
||
/ P.
|
||
Präsenzaufgabe 11.2 (NP-Vollständigkeit)
|
||
In dem Problem C LIQUE -N OMEMBER ist ein Graph G = (V, E), ein Knoten v ∈ V sowie eine
|
||
Zahl k ∈ Z≥0 gegeben und es soll entschieden werden, ob es eine Clique mit k Knoten gibt, die
|
||
den Knoten v nicht enthält.
|
||
Zeigen Sie, dass C LIQUE -N OMEMBER NP-vollständig ist, indem Sie eine Reduktion von C LI -
|
||
QUE auf C LIQUE -N OMEMBER angeben. Sie können davon ausgehen, dass C LIQUE -N OMEMBER ∈
|
||
NP ist.
|
||
Präsenzaufgabe 11.3 (NP-Vollständigkeit)
|
||
Für das Problem S UBSET S UM C ARDINALITY seien n ganze Zahlen c1 , . . . , cn ∈ Z>0 (wobei n
|
||
gerade sei) sowie eine Zahl K ∈ Z≥0 gegeben. Es 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 S UBSET S UM C ARDINALITY NP-vollständig ist. Sie können
|
||
davon ausgehen, dass S UBSET S UM C ARDINALITY ∈ NP ist.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
29.06.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 12
|
||
|
||
|
||
Präsenzaufgabe 12.1 (Vertex Cover)
|
||
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, dass v ∈ C oder w ∈ C. Beim Optimierungsproblem Minimum Vertex
|
||
Cover soll die kardinalitätskleinste Menge C ⊆ V gefunden werden, die ein Vertex Cover von
|
||
G ist.
|
||
Gegeben ist der folgende approximative Algorithmus mit Güte 2 für VertexCover:
|
||
Idee: Wähle eine beliebige Kante. Wenn einer der beiden Endknoten bereits in C ist, verwirf
|
||
diese Kante. Sonst, füge beide Endknoten zur Menge C hinzu. Mache dies für jede Kante.
|
||
|
||
Algorithmus 2A PPROX VC(G = (V, E))
|
||
|
||
1 C = {}
|
||
2 foreach {u, v} ∈ E do
|
||
3 if u ̸∈ C and v ̸∈ C then
|
||
4 C = C ∪ {u, v}
|
||
5 fi
|
||
6 od
|
||
7 return C
|
||
|
||
Beweisen Sie die Güte.
|
||
Präsenzaufgabe 12.2 (TSP)
|
||
In der Vorlesung haben Sie zwei approximative Algorithmen für das TSP-Problem kennen ge-
|
||
lernt. Der erste Algorithmus ∆T SP1 hat eine Approximationsrate von 2, während der zweite
|
||
Algorithmus ∆T SP2 von Christofides eine Approximationsrate von 3/2 besitzt. In dieser Übung
|
||
soll gezeigt werden, dass die zweite Rate scharf ist. D.h., dass es eine Folge von Instanzen gibt,
|
||
auf denen der Algorithmus immer näher an diese Rate heran kommt.
|
||
Wir betrachten den vollständigen Graphen Kn = (V, E) für ein n ∈ Z≥6 mit n mod 4 = 2 und die
|
||
nachfolgende Gewichtsfunktion d2 : E → Z>0 .
|
||
Wir definieren E2 := {{i, i + 2}|i ∈ {1, . . . , n − 2}} ∪ {{2i + 1, 2i + 2}|i ∈ {0, . . . , n/2 − 1}} und
|
||
d2 , so dass alle Kanten aus E2 auf 1 abgebildet werden und alle Kanten aus E \ E2 auf den Wert
|
||
des kürzesten Wegs zwischen diesen Knoten in dem Graphen G2 = (V, E2 ) abgebildet werden.
|
||
Der Graph G2 ist im folgenden abgebildet.
|
||
1 1 1 1
|
||
1 3 5 7 9 n−1
|
||
|
||
|
||
1 1 1 1 1 1
|
||
|
||
1 1 1 1
|
||
2 4 6 8 10 n
|
||
|
||
|
||
|
||
Zeigen Sie, dass
|
||
(a) OPT((Kn , d2 )) = n gilt und
|
||
(b) eine mögliche Ausführung von ∆TSP2 existiert, die auf Eingabe (Kn , d2 ) eine Tour der
|
||
Länge (n − 1) + n/2 berechnet.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
06.07.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 13
|
||
|
||
|
||
Präsenzaufgabe 13.1
|
||
Im Folgenden sollen Sie herausfinden (und begründen), welche Lower Bounds sich über ETH
|
||
und die Reduktionen aus der Vorlesung ergeben. Nutzen Sie hierfür auch das Sparsification
|
||
Lemma.
|
||
Welche Schranken für die Laufzeit in Abhängigkeit von den natürlichen Parametern (Anzahl
|
||
Knoten, Anzahl Kanten, Anzahl Items, Anzahl unterschiedlicher Items, Anzahl Tripel, Kardi-
|
||
nalität der Grundmenge, Anzahl unterschiedlicher Tripel, Anzahl unterschiedlicher auftretender
|
||
Zahlen, größte auftretende Zahl, . . . ) ergeben sich jeweils aus folgenden (zum Großteil aus der
|
||
Vorlesung bekannten) Reduktionen (Laufzeitfaktoren, die polynomiell in der Eingabekodierung
|
||
sind, dürfen vernachlässigt werden)?
|
||
Schätzen Sie dazu zunächst die verschiedenen Parameter der resultierenden Instanz mithilfe der
|
||
Parameter der eingegebenen Instanz geeignet ab.
|
||
1. 3-SAT ≤ k-C LIQUE
|
||
2. k-C LIQUE ≤ k-I NDEPENDENT S ET (Problemdefinition für die Antwort nicht relevant; in
|
||
der Reduktion wird der Graph G = (V, E) auf den Komplementgraph (V, E) abgebildet)
|
||
3. SAT ≤ 3-D IMENSIONAL M ATCHING (Hinweis: 3-SAT ⊆ SAT)
|
||
4. 3-D IMENSIONAL M ATCHING ≤ 3-E XACT C OVER
|
||
5. 3-E XACT C OVER ≤ S UBSET S UM
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
08.06.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 9
|
||
|
||
|
||
Definition 1 (Knapsack (Entscheidungsvariante)). Gegeben ist eine Menge mit n Gegenstän-
|
||
den mit Gewichten w1 , . . . , wn ∈ Z≥0 und Profiten p1 , . . . , pn ∈ Z≥0 . Weiter sind eine Kapazität
|
||
K ∈ Z≥0 und ein Zielprofit P ∈ Z≥0 gegeben. Bei dem K NAPSACK Problem muss entschieden
|
||
werden, ob eine Teilmenge S ⊆ [n] existiert, sodass
|
||
|
||
∑ wi ≤ K und ∑ pi ≥ P
|
||
i∈S i∈S
|
||
|
||
gilt.
|
||
|
||
Präsenzaufgabe 9.1 (K NAPSACK in NP)
|
||
Zeigen Sie K NAPSACK ∈ NP auf zwei verschiedene Wege.
|
||
1. Geben Sie einen nicht deterministischen Algorithmus an, der das Problem in polynomi-
|
||
eller Zeit löst.
|
||
2. Geben Sie einen polynomiellen Verifizierer für das Problem an.
|
||
Wie hängen diese beiden Methoden zusammen?
|
||
|
||
Lösung. 1. Der Algorithmus arbeitet wie folgt: Für jeden Gegenstand entscheiden wir nicht-
|
||
deterministisch, ob er in den Rucksack soll. Anschließend akzeptieren wir, falls die Kapazitäts-
|
||
und Profitbedingung erfüllt sind.
|
||
Existiert eine valide Rucksackfüllung mit genügend Profit, dann gibt es auch eine Reihe
|
||
von nichtdeterministischen Entscheidungen, die diese Füllung findet. Diese wird dann
|
||
auch vom Algorithmus akzeptiert.
|
||
Der Algorithmus macht polynomiell viele nichtdeterministische Entscheidungen und die
|
||
Überprüfung der Eigenschaften ist ebenfalls in Polynomialzeit möglich, also ist dies ein
|
||
polynomieller, nichtdeterministischer Algorithmus, der K NAPSACK löst.
|
||
2. Unser Zertifikat ist eine Teilmenge S ⊆ [n], die die Auswahl für den Rucksack darstellen
|
||
soll. Dies kann zum Beispiel über ein Bit pro Gegenstand realisiert werden. Um dieses
|
||
Zertifikat zu verifizieren, berechnen wir ∑i∈S wi und ∑i∈S pi und vergleichen die Werte
|
||
mit K und P und akzeptieren entsprechend.
|
||
Existiert eine valide Rucksackfüllung mit genügend Profit, dann gibt es auch ein Zertifi-
|
||
kat, das diese Füllung beschreibt. Dieses wird dann auch vom Verifizierer akzeptiert.
|
||
Das Ausrechnen der Summen und das Überprüfen ist in polynomieller Zeit möglich, also
|
||
ist dies ein polynomieller Verifizierer.
|
||
In beiden Wegen wird die extra Ressource, die wir zur Verfügung haben, genutzt, um eine
|
||
Teilmenge (einen möglichen Rucksack) zu bestimmen und zu überprüfen. In der Vorlesung
|
||
wird noch genau gezeigt, dass diese beiden Wege tatsächlich äquivalent sind.
|
||
|
||
Präsenzaufgabe 9.2 (Transitivität von Polynomialzeitreduktionen)
|
||
Zeigen Sie, dass Polynomialzeitreduktionen transitiv sind, d.h., dass für alle Entscheidungspro-
|
||
bleme L1 , L2 , L3 ⊆ Σ∗ gilt, dass
|
||
|
||
L1 ≤ L2 ∧ L2 ≤ L3 =⇒ L1 ≤ L3 .
|
||
|
||
Lösung. Seien L1 , L2 , L3 Sprachen. Zudem sei R1 ein Algorithmus, der L1 nach L2 in O(na )
|
||
reduziert, und R2 ein Algorithmus, der L2 nach L3 in O(nb ) reduziert.
|
||
Sei x eine Instanz von L1 der Größe n. Dann benötigt der Aufruf von R1 auf x höchstens O(na )
|
||
Zeit.
|
||
Sei x′ die Ausgabe von R1 . Dann hat x′ eine Größe von höchstens O(na ). Diese Schranke für
|
||
die Ausgabe ergibt sich aus der Laufzeit der Reduktion. Der Aufruf von R2 auf x′ benötigt nun
|
||
höchstens O((na )b ) = O(nab ) Zeit. Damit ist die Reduktion von L1 auf L3 in polynomieller Zeit
|
||
möglich.
|
||
Die Korrektheit ergibt sich aus der Transitivität der Äquivalenz: Sei x′′ die Ausgabe von R2 auf
|
||
x′ , dann gilt
|
||
x ∈ L1 ⇐⇒ x′ ∈ L2 und x′ ∈ L2 ⇐⇒ x′′ ∈ L3 ,
|
||
also auch x ∈ L1 ⇐⇒ x′′ ∈ L3 .
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
15.06.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 10
|
||
|
||
|
||
Präsenzaufgabe 10.1 (Fragen über Fragen)
|
||
Diskutieren Sie die folgenden Aussagen (Gelten sie allgemein? Gelten sie nicht? Gelten sie
|
||
unter bestimmten Bedingungen? Welche?):
|
||
(i) Für jede Sprache, die von einer NDTM in polynomieller Zeit akzeptiert werden kann,
|
||
existiert eine DTM, die ebenfalls die Sprache in polynomieller Zeit akzeptiert.
|
||
(ii) A ist NP-schwer =⇒ A ∈ P
|
||
|
||
Lösung. (i) Die Aussage gilt nur, wenn P = NP. Dann liegen alle Probleme in NP (von
|
||
NDTM in polynomieller Zeit lösbar) auch in P (von DTM in polynomieller Zeit lösbar).
|
||
Falls P ̸= NP, dann nein, weil sonst folgender Widerspruch auftritt: ein Problem in NP \ P
|
||
ist von einer NDTM, nicht aber von einer DTM in polynomieller Zeit lösbar. Könnte eine
|
||
DTM die NDTM in polynomieller Zeit simulieren, wäre das Problem auch in P.
|
||
(ii) Falsch. Es gibt NP-schwere Probleme, die nicht in NP liegen, z.B. das H ALTE-Problem.
|
||
Diese liegen folglich auch definitiv nicht in P. NP-schwer ist eine untere Schranke, ∈ NP
|
||
eine obere, und wenn beide erfüllt sind, ist ein Problem NP-vollständig.
|
||
|
||
|
||
|
||
Definition 1 (Vertex Cover (VC)). Für einen (ungerichteten) Graphen G = (V, E) ist ein Vertex
|
||
Cover eine Menge von Knoten C ⊆ V , sodass u ∈ C oder v ∈ C für alle { u, v } ∈ E gilt, also ist
|
||
für alle Kanten mindestens ein Endpunkt in C.
|
||
Für das V ERTEX C OVER Problem ist neben einem Graphen G eine Zahl k ∈ Z≥0 gegeben und
|
||
es wird gefragt, ob ein Vertex Cover mit Größe (Anzahl der Knoten) höchstens k in G existiert.
|
||
|
||
Präsenzaufgabe 10.2 (V ERTEX C OVER ist NP-vollständig)
|
||
Zeigen Sie, dass V ERTEX C OVER NP-vollständig ist.
|
||
Hinweis: Reduzieren Sie C LIQUE auf V ERTEX C OVER.
|
||
|
||
Lösung. V ERTEX C OVER ∈ NP ist bekannt aus der letzten Hausaufgabe.
|
||
Vorüberlegung zur Reduktion von C LIQUE auf V ERTEX C OVER: Sei eine Instanz mit G =
|
||
(V, E) und k ∈ Z≥0 von C LIQUE gegeben. Wir invertieren zunächst den Graphen G und erhal-
|
||
ten damit G′ . Nun enthält G′ genau dann eine unabhängige Menge der Größe ℓ, wenn G eine
|
||
Clique der Größe ℓ enthält. Wenn ein Graph mit n Knoten eine unabhängige Menge mit min-
|
||
destens k Knoten hat, dann hat der Graph auch ein Vertex Cover mit maximal n − k Knoten
|
||
(das Komplement zur unabhängigen Menge). Unsere Instanz für V ERTEX C OVER ist also G′
|
||
und n − k. (k ≤ n können wir annehmen)
|
||
Betrachte nun folgende Reduktion:
|
||
Sei eine Instanz mit G = (V, E) und k ∈ Z≥0 von C LIQUE gegeben. Invertiere den Graphen G
|
||
und erhalte damit G′ . Gebe nun G′ und n − k als Instanz von V ERTEX C OVER zurück.
|
||
Korrektheit:
|
||
⇒ (Falls (G, k) eine Ja-Instanz von C LIQUE ist, dann ist (G′ , n − k) eine Ja-Instanz von V ER -
|
||
TEX C OVER .):
|
||
|
||
G enthalte eine Clique C der Größe ≥ k. Dann ist V ′ := V \C ein Vertex Cover von G′ der Größe
|
||
≤ n − k. Da |C| ≥ k, gilt |V ′ | ≤ n − k. Da C eine Clique ist, also alle Knoten aus C mit allen
|
||
anderen Knoten aus C verbunden sind, gibt es im invertierten Graphen G′ keine Kante zwischen
|
||
Knoten aus C. Also gilt für jede Kante {u, v} ∈ E ′ , dass u ∈ / C und somit u ∈ V ′ oder
|
||
/ C oder v ∈
|
||
v ∈ V ′.
|
||
⇐ (Falls (G′ , n − k) eine Ja-Instanz von V ERTEX C OVER ist, dann ist (G, k) eine Ja-Instanz von
|
||
C LIQUE.):
|
||
G′ enthalte ein Vertex Cover V ′ der Größe ≤ n−k. Dann ist C := V \V ′ eine Clique der Größe ≥
|
||
k in G. Da |V ′ | ≤ n − k, gilt |C| ≥ k. Für jede Menge {u, v} ⊆ C gilt, dass {u, v} ∈
|
||
/ E ′ . Ansonsten
|
||
wäre V ′ kein korrektes Vertex Cover. Da G′ der invertierte Graph von G ist, gilt somit {u, v} ∈ E
|
||
für jede Menge {u, v} ⊆ C.
|
||
Laufzeit: Das Invertieren des Graphen kann naiv in O(|V |2 · |E|) Zeit, also in polynomieller
|
||
Zeit, erledigt werden.
|
||
Also existiert eine polynomielle Reduktion von C LIQUE auf V ERTEX C OVER. Da C LIQUE
|
||
NP-vollständig ist und V ERTEX C OVER ∈ NP gilt, ist somit V ERTEX C OVER NP-vollständig.
|
||
|
||
|
||
Präsenzaufgabe 10.3 (Turingmaschinen)
|
||
n
|
||
Entwerfen Sie eine Turingmaschine, welche die Sprache L = { 02 | n ∈ Z≥0 } über dem Al-
|
||
phabet Σ = {0} entscheidet. Geben Sie die Laufzeit Ihrer Turingmaschine an. Begründen Sie
|
||
die Korrektheit und die Laufzeit Ihrer Turingmaschine. Diskutieren Sie die Laufzeit Ihrer Tu-
|
||
ringmaschine im Vergleich zu einem Algorithmus (mit RAM) für diese Sprache.
|
||
|
||
Lösung. Die Turingmaschine sieht folgendermaßen aus:
|
||
(1) Falls genau eine 0 auf dem Band steht, akzeptiere.
|
||
(2) Bewege den Kopf von links nach rechts über die Eingabe und ersetze jede zweite 0 durch
|
||
ein neues Symbol x.
|
||
(3) Falls das letzte Symbol der Eingabe nun eine 0 ist, verwerfe.
|
||
(4) Gehe zu Schritt (1).
|
||
Korrektheit: Die Sprache L besteht aus allen Wörtern, die nur Nullen enthalten und deren Länge
|
||
eine Zweierpotenz ist. Eine Zahl ist genau dann eine Zweierpotenz, wenn sie nach wiederholtem
|
||
Teilen durch 2 irgendwann eine 1 ergibt. Genau das überprüft die Turingmaschine. Wenn bei
|
||
diesem wiederholten Teilen eine ungerade Zahl auftritt, ist die Zahl keine Zweierpotenz. In
|
||
diesem Fall verwirft die Turingmaschine die Eingabe (siehe Schritt (3)).
|
||
Laufzeit: Die angegebene Turingmaschine hat eine Laufzeit von O(n log(n)), wobei n hier die
|
||
Länge der Eingabe bezeichnet. Schritt (1) und Schritt (2) benötigen jeweils eine Laufzeit von
|
||
O(n). Schritt (3) geht in konstanter Laufzeit O(1). Schritt (4) wiederholt die Schritte (1) bis (3)
|
||
bis nur noch eine 0 auf dem Band steht oder vorher abgebrochen wird. Da in jedem Durchlauf
|
||
der Schritte (1) bis (3) die Hälfte der Nullen (abgerundet) durch x Symbole ersetzt wird, steht
|
||
nach log n Durchläufen nur noch eine Null auf dem Band und es wird nach Schritt (1) akzeptiert
|
||
oder es steht nach ⌊log n⌋ − 1 Durchläufen eine ungerade Anzahl von Nullen auf dem Band und
|
||
es wird nach Schritt (3) verworfen. Also gibt es maximal log n + 1 Durchläufe.
|
||
Diskussion: Ein Algorithmus mit RAM könnte folgendermaßen aussehen:
|
||
1. Zähle die Buchstaben und erhalte Anzahl m.
|
||
2. Falls log m ganzzahlig ist, akzeptiere. Sonst verwerfe.
|
||
Dieser Algorithmus hat eine Laufzeit von O(n), wobei n hier die Länge der Eingabe bezeichnet.
|
||
Ein Algorithmus mit RAM kann also den zusätzlichen Speicher nutzen, um wesentlich schneller
|
||
eine Aufgabe zu erledigen, im Vergleich zu einem Algorithmus, der auf einer Turingmaschine
|
||
läuft.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
22.06.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 11
|
||
|
||
|
||
Präsenzaufgabe 11.1 (Fragen über Fragen)
|
||
Diskutieren Sie nachfolgende Aussagen. Sind diese wahr oder falsch?
|
||
(a) Für L ∈ NP gilt, aus L ≤ 3-SAT folgt, dass L NP-vollständig ist.
|
||
(b) Gilt für eine Sprache L, dass sowohl L ≤ 3-SAT als auch 3-SAT ≤ L, dann ist L NP-vollständig.
|
||
(c) Sei L NP-vollständig. Dann gilt L ∈ P genau dann, wenn P = NP.
|
||
(d) Es ist möglich, dass 3-SAT ∈ P und C LIQUE ∈
|
||
/ P.
|
||
Lösung.
|
||
/ Offensichtlich gilt L ∈ NP. Aus L ≤ 3-SAT folgt nur,
|
||
(a) Nein, ein Gegenbeispiel ist L = 0.
|
||
dass sich L auf 3-SAT reduzieren lässt, nicht anders herum.
|
||
(b) Das ist die Definition von NP-vollständig.
|
||
(c) Korrekt, da sich jedes Problem auf L reduzieren lässt nach Def. NP-vollständig (und offen-
|
||
sichtlich P ⊆ NP).
|
||
(d) Nein, weil 3-SAT NP-vollständig ist, lässt sich C LIQUE (liegt bekannterweise in NP, ist
|
||
sogar NP-vollständig) auf 3-SAT reduzieren.
|
||
Präsenzaufgabe 11.2 (NP-Vollständigkeit)
|
||
In dem Problem C LIQUE -N OMEMBER ist ein Graph G = (V, E), ein Knoten v ∈ V sowie eine
|
||
Zahl k ∈ Z≥0 gegeben und es soll entschieden werden, ob es eine Clique mit k Knoten gibt, die
|
||
den Knoten v nicht enthält.
|
||
Zeigen Sie, dass C LIQUE -N OMEMBER NP-vollständig ist, indem Sie eine Reduktion von C LI -
|
||
QUE auf C LIQUE -N OMEMBER angeben. Sie können davon ausgehen, dass C LIQUE -N OMEMBER ∈
|
||
NP ist.
|
||
Lösung. Clique-Nomember ist NP-schwer:
|
||
Sei (G = (V, E), k) eine Eingabe für das Clique Problem.
|
||
Idee: Füge einen neuen isolierten Knoten v zu G hinzu.
|
||
Wir geben zuerst die Abbildung an: Sei v ̸∈ V . Wir definieren die Eingabe für das Problem
|
||
C LIQUE -N OMEMBER als den Graphen G′ := (V ∪ {v}, E), den Knoten v als Knoten, der nicht
|
||
benutzt werden darf, und k als gesuchte Cliquengröße. (G′ , v, k) ist eine gültige Eingabe für
|
||
C LIQUE -N OMEMBER und in polynomieller Zeit berechenbar.
|
||
Wir zeigen nun: G hat eine k-Clique genau dann, wenn G′ eine k-Clique ohne v beinhaltet.
|
||
⇒:
|
||
Sei (G, k) eine Ja-Instanz des C LIQUE Problems. Dann enthält G eine k-Clique C. Dann ist C
|
||
auch eine k-Clique in G′ , da bei der Abbildung keine Kanten entfernt wurden. Da v ̸∈ V , enthält
|
||
C den Knoten v nicht. Damit ist C eine k-Clique in G ohne den Knoten v. (G′ , v, k) ist also eine
|
||
Ja-Instanz des C LIQUE -N OMEMBER Problems.
|
||
⇐:
|
||
Sei (G′ , v, k) eine Ja-Instanz des C LIQUE -N OMEMBER Problems. Dann enthält G′ eine k-Clique
|
||
C mit v ̸∈ C. Da bei der Abbildung an dem Graphen nichts geändert wurde, außer der Knoten v
|
||
hinzugefügt, muss C auch eine k-Clique in G sein. Damit ist (G, k) eine Ja-Instanz des C LIQUE
|
||
Problems.
|
||
Also existiert eine polynomielle Reduktion von C LIQUE auf C LIQUE -N OMEMBER. Da C LI -
|
||
QUE NP-vollständig ist und C LIQUE -N OMEMBER ∈ NP nach Aufgabenstellung gilt, ist somit
|
||
C LIQUE -N OMEMBER NP-vollständig.
|
||
Präsenzaufgabe 11.3 (NP-Vollständigkeit)
|
||
Für das Problem S UBSET S UM C ARDINALITY seien n ganze Zahlen c1 , . . . , cn ∈ Z>0 (wobei n
|
||
gerade sei) sowie eine Zahl K ∈ Z≥0 gegeben. Es 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 S UBSET S UM C ARDINALITY NP-vollständig ist. Sie können
|
||
davon ausgehen, dass S UBSET S UM C ARDINALITY ∈ NP ist.
|
||
Lösung. Subset Sum Cardinality ist NP-schwer:
|
||
S UBSET S UM Problem: Gegeben: n ganze Zahlen c1 , . . . , cn ∈ Z>0 und Zahl K ∈ Z≥0 . Frage:
|
||
Gibt es eine Teilmenge S ⊆ {0, . . . , n} mit ∑i∈S ci = K?
|
||
Reduktion: Sei I = (c1 , . . . , cn , K) eine Eingabe für das S UBSET S UM Problem. Definiere c′i :=
|
||
ci + 1 für i ≤ n und c′i := 1 für i ∈ {n + 1, . . . , 2n}. Wir definieren die Eingabe für das Problem
|
||
S UBSET S UM C ARDINALITY als I ′ = (c′1 , . . . , c′2n , K + n).
|
||
Wir zeigen nun: Es gibt eine Lösung für I genau dann, wenn es eine Lösung für I ′ gibt.
|
||
⇒:
|
||
Sei I eine Ja-Instanz des S UBSET S UM Problems. Dann gibt es eine Menge S ⊆ {1, . . . , n} mit
|
||
∑i∈S ci = K. Es gilt also ∑i∈S c′i = ∑i∈S (ci + 1) = K + |S|. Sei nun S′ = {n + 1, . . . , 2n − |S|}. Es
|
||
gilt |S ∪ S′ | = n und ∑i∈S∪S′ c′i = ∑i∈S c′i + ∑i∈S′ c′i = ∑i∈S (ci + 1) + ∑i∈S′ 1 = K + |S| + (n − |S|) =
|
||
K + n. S ∪ S′ ist also eine Lösung für I ′ und I ′ damit eine Ja-Instanz.
|
||
⇐:
|
||
Es sei I ′ eine Ja-Instanz. Dann gibt es also eine Menge S′ ⊆ {1, . . . , 2n} mit ∑i∈S′ c′i = K + n und
|
||
|S′ | = n. Sei S := S′ ∩{1, . . . , n}. Es gilt ∑i∈S′ c′i − ∑i∈S c′i = n−|S|, da die Items in {n+1, . . . , 2n}
|
||
das Gewicht 1 haben, und genau n − |S| Items übrig sind. Damit gilt ∑i∈S (ci + 1) = ∑i∈S c′i =
|
||
K + n − (n − |S|) = K + |S|, woraus folgt, dass ∑i∈S ci = K. Damit ist S eine Lösung für I und
|
||
somit I eine Ja-Instanz.
|
||
Laufzeit: Die Reduktion kann naiv in einer Zeit von O(n) implementiert werden. Das ist eine
|
||
polynomielle Laufzeit.
|
||
Also existiert eine polynomielle Reduktion von S UBSET S UM auf S UBSET S UM C ARDINALI -
|
||
TY . Da nach Skript S UBSET S UM NP-vollständig ist und S UBSET S UM C ARDINALITY ∈ NP
|
||
nach Aufgabenstellung gilt, ist somit S UBSET S UM C ARDINALITY NP-vollständig.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
29.06.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 12
|
||
|
||
|
||
Präsenzaufgabe 12.1 (Vertex Cover)
|
||
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, dass v ∈ C oder w ∈ C. Beim Optimierungsproblem Minimum Vertex
|
||
Cover soll die kardinalitätskleinste Menge C ⊆ V gefunden werden, die ein Vertex Cover von
|
||
G ist.
|
||
Gegeben ist der folgende approximative Algorithmus mit Güte 2 für VertexCover:
|
||
Idee: Wähle eine beliebige Kante. Wenn einer der beiden Endknoten bereits in C ist, verwirf
|
||
diese Kante. Sonst, füge beide Endknoten zur Menge C hinzu. Mache dies für jede Kante.
|
||
|
||
Algorithmus 2A PPROX VC(G = (V, E))
|
||
|
||
1 C = {}
|
||
2 foreach {u, v} ∈ E do
|
||
3 if u ̸∈ C and v ̸∈ C then
|
||
4 C = C ∪ {u, v}
|
||
5 fi
|
||
6 od
|
||
7 return C
|
||
|
||
Beweisen Sie die Güte.
|
||
|
||
Lösung. Beweis: Sei C∗ ein minimales Vertex Cover. Wir zeigen |C| ≤ 2|C∗ |.
|
||
Sei A die Menge der Kanten, für die beide Endknoten zu C hinzugefügt wurden. Es gilt |C| =
|
||
2|A|, da beide Knoten jeder ausgewählten Kante zu C hinzugefügt wurden und alle anderen
|
||
Kanten nicht weiter betrachtet werden. Damit folgt auch, dass keine zwei Kanten aus A einen
|
||
Knoten gemeinsam haben können. Sei nun C∗ ein minimales Vertex Cover. C∗ enthält nach
|
||
Definition mindestens einen Knoten jeder Kante, also insbesondere einen Knoten jeder Kante
|
||
aus A. Da keine zwei Kanten aus A vom gleichen Knoten aus C∗ überdeckt werden können, gilt
|
||
|C∗ | ≥ |A|. Es folgt |C| = 2|A| ≤ 2|C∗ |. Die Lösung C von 2ApproxVC ist also maximal doppelt
|
||
so groß wie die optimale Lösung C∗ . Damit berechnet der Algorithmus eine 2-Approximation.
|
||
Präsenzaufgabe 12.2 (TSP)
|
||
In der Vorlesung haben Sie zwei approximative Algorithmen für das TSP-Problem kennen ge-
|
||
lernt. Der erste Algorithmus ∆T SP1 hat eine Approximationsrate von 2, während der zweite
|
||
Algorithmus ∆T SP2 von Christofides eine Approximationsrate von 3/2 besitzt. In dieser Übung
|
||
soll gezeigt werden, dass die zweite Rate scharf ist. D.h., dass es eine Folge von Instanzen gibt,
|
||
auf denen der Algorithmus immer näher an diese Rate heran kommt.
|
||
Wir betrachten den vollständigen Graphen Kn = (V, E) für ein n ∈ Z≥6 mit n mod 4 = 2 und die
|
||
nachfolgende Gewichtsfunktion d2 : E → Z>0 .
|
||
Wir definieren E2 := {{i, i + 2}|i ∈ {1, . . . , n − 2}} ∪ {{2i + 1, 2i + 2}|i ∈ {0, . . . , n/2 − 1}} und
|
||
d2 , so dass alle Kanten aus E2 auf 1 abgebildet werden und alle Kanten aus E \ E2 auf den Wert
|
||
des kürzesten Wegs zwischen diesen Knoten in dem Graphen G2 = (V, E2 ) abgebildet werden.
|
||
Der Graph G2 ist im folgenden abgebildet.
|
||
|
||
|
||
1 1 1 1
|
||
1 3 5 7 9 n−1
|
||
|
||
|
||
1 1 1 1 1 1
|
||
|
||
1 1 1 1
|
||
2 4 6 8 10 n
|
||
|
||
|
||
|
||
Zeigen Sie, dass
|
||
(a) OPT((Kn , d2 )) = n gilt und
|
||
(b) eine mögliche Ausführung von ∆TSP2 existiert, die auf Eingabe (Kn , d2 ) eine Tour der
|
||
Länge (n − 1) + n/2 berechnet.
|
||
|
||
Lösung. Wichtig bei dieser Aufgabe ist der folgende Fakt: Bei beiden Algorithmen wird ir-
|
||
gendein MST genommen und dann irgendeine Reihenfolge der Knoten. Typischerweise wird
|
||
diese Reihenfolge durch bestimmte Knoten- oder Kanten-Labels festgelegt (wird zum Beispiel
|
||
der Kruskal-Algorithmus zur Konstruktion des MST genutzt, so werden dort die Kanten nach
|
||
Gewicht sortiert. Kanten gleichen Gewichts müssen also auch noch durch irgendeine Reihen-
|
||
folge festgelegt werden.) Wir gehen also davon aus, dass wir diese Reihenfolge auch wählen
|
||
können. Sollte der Algorithmus also einen “besseren” MST oder eine “bessere” Knotenreihen-
|
||
folge nutzen, passen wir die Labels dementsprechend an.
|
||
Ein möglicher MST ist durch die unten angegebene Zick-Zack-Tour gegeben oder formal durch
|
||
h [ i
|
||
ET = {{ j, j + 1}, { j + 1, j + 3}, { j + 3, j + 2}, { j + 2, j + 4}}} ∪ {{n − 1, n}}.
|
||
1≤ j≤n−5
|
||
j mod 4=1
|
||
|
||
|
||
1 1 1 1
|
||
1 3 5 7 n−3 n−1
|
||
|
||
|
||
1 1 1 1 1 1
|
||
|
||
1 1 1 1
|
||
2 4 6 8 n−2 n
|
||
Es gilt d(T ) = n − 1 für die Kosten d(T ) des MST T , da nur Kanten mit Kosten 1 gewählt
|
||
werden und n − 1 Kanten gewählt werden müssen, um den Zusammenhang sicher zu stellen.
|
||
Da jeder Knoten im MST außer 1 und n geraden Grad hat, ist das Matching K sehr simpel,
|
||
nämlich K = {{1, n}}. Die Kosten der Kante {1, n} sind n/2 (der kürzeste Pfad von 1 zu n)
|
||
und somit gilt d(K) = n/2 für die Kosten von K. Die Rundreise R entspricht einfach dem MST
|
||
vereinigt mit der Matchingkante und hat somit Kosten: d(R) = n − 1 + n/2.
|
||
Die optimale Tour würde erst “oben” und dann “unten” entlang laufen, also von Knoten 1 zu
|
||
Knoten 3 gehen, dann zu Knoten 5 und so weiter, bis Knoten n − 1 erreicht wurde. Danach
|
||
folgen Knoten n, n − 2, n − 4 und so weiter. Diese Tour hat offensichtlich Kosten n, da wir n
|
||
Kanten mit Gewicht 1 nutzen. Somit gilt OPT((Kn , d2 )) = n und wir haben eine Rate von
|
||
|
||
∆T SP2 ((Kn , d2 )) n − 1 + n/2 1
|
||
= = 3/2 − ≤ 3/2.
|
||
OPT((Kn , d2 )) n n
|
||
|
||
Da limn→∞ 3/2 − n1 = 3/2, kommen wir der Rate von 3/2 also beliebig nahe.
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Theoretische Informatik
|
||
Dr. Max A. Deppert, Janina Reuter, Annika Huch
|
||
|
||
06.07.2026
|
||
|
||
Präsenzaufgaben zur Vorlesung
|
||
»Analyse von Algorithmen und Komplexität«
|
||
Blatt 13
|
||
|
||
|
||
Präsenzaufgabe 13.1
|
||
Im Folgenden sollen Sie herausfinden (und begründen), welche Lower Bounds sich über ETH
|
||
und die Reduktionen aus der Vorlesung ergeben. Nutzen Sie hierfür auch das Sparsification
|
||
Lemma.
|
||
Welche Schranken für die Laufzeit in Abhängigkeit von den natürlichen Parametern (Anzahl
|
||
Knoten, Anzahl Kanten, Anzahl Items, Anzahl unterschiedlicher Items, Anzahl Tripel, Kardi-
|
||
nalität der Grundmenge, Anzahl unterschiedlicher Tripel, Anzahl unterschiedlicher auftretender
|
||
Zahlen, größte auftretende Zahl, . . . ) ergeben sich jeweils aus folgenden (zum Großteil aus der
|
||
Vorlesung bekannten) Reduktionen (Laufzeitfaktoren, die polynomiell in der Eingabekodierung
|
||
sind, dürfen vernachlässigt werden)?
|
||
Schätzen Sie dazu zunächst die verschiedenen Parameter der resultierenden Instanz mithilfe der
|
||
Parameter der eingegebenen Instanz geeignet ab.
|
||
1. 3-SAT ≤ k-C LIQUE
|
||
2. k-C LIQUE ≤ k-I NDEPENDENT S ET (Problemdefinition für die Antwort nicht relevant; in
|
||
der Reduktion wird der Graph G = (V, E) auf den Komplementgraph (V, E) abgebildet)
|
||
3. SAT ≤ 3-D IMENSIONAL M ATCHING (Hinweis: 3-SAT ⊆ SAT)
|
||
4. 3-D IMENSIONAL M ATCHING ≤ 3-E XACT C OVER
|
||
5. 3-E XACT C OVER ≤ S UBSET S UM
|
||
|
||
Lösung. Angenommen ETH gilt. Das Sparsification Lemma impliziert, dass man 3-SAT nicht
|
||
in 2o(m) · |I|O(1) lösen kann.
|
||
|
||
1. In der Reduktion werden |V | = O(m) Knoten und |E| = O(m2 ) Kanten erstellt und k = m.
|
||
Außerdem gilt n ≤ 3m ∈ O(m).
|
||
• Lower bound bzgl. der Anzahl an Knoten: 2o(|V |) · |I|O(1)
|
||
Angenommen, es existiert ein Algorithmus, der k-Clique in 2o(|V |) ·|I|O(1) löst. Dann
|
||
gibt es auch einen Algorithmus, der 3-SAT in 2o(m) · |I|O(1) löst (Reduktion auf k-
|
||
Clique + k-Cliquen Algorithmus). Nach dem Sparsification Lemma gibt es dies nur,
|
||
wenn die ETH nicht gilt.
|
||
√
|
||
• Lower bound bzgl. der Anzahl an Kanten: 2o( |E|) · |I|O(1) √
|
||
Angenommen, es existiert ein Algorithmus, der k-Clique in 2o( |E|) · |I|O(1) löst.
|
||
Da |E| ∈ O(m2 ), gibt es dann auch einen Algorithmus, der 3-SAT in 2o(m) · |I|O(1)
|
||
löst (Reduktion auf k-Clique + k-Cliquen Algorithmus). Nach dem Sparsification
|
||
Lemma gibt es dies nur, wenn die ETH nicht gilt.
|
||
• Lower bound bzgl. k: 2o(k) · |I|O(1)
|
||
Angenommen, es existiert ein Algorithmus, der k-Clique in 2o(k) · |I|O(1) löst. Dann
|
||
gibt es auch einen Algorithmus, der 3-SAT in 2o(m) · |I|O(1) löst (Reduktion auf k-
|
||
Clique + k-Cliquen Algorithmus). Nach dem Sparsification Lemma gibt es dies nur,
|
||
wenn die ETH nicht gilt.
|
||
2. In der Reduktion werden genau |V | Knoten und maximal |E| = O(|V |2 ) Kanten erstellt.
|
||
• Lower bound bzgl. der Anzahl an Knoten: 2o(|V |) · |I|O(1)
|
||
Angenommen, es existiert ein Algorithmus, der k-Independent-Set in 2o(|V |) · |I|O(1)
|
||
löst. Dann gibt es auch einen Algorithmus, der k-Clique in 2o(|V |) · |I|O(1) löst (Re-
|
||
duktion auf k-Independent-Set + k-Independent-Set Algorithmus). Nach Aufgaben-
|
||
teil 1, gibt es diesen nur, wenn die ETH nicht gilt.
|
||
√
|
||
o( |E|)
|
||
• Lower bound bzgl. der Anzahl an Kanten: 2 · |I|O(1) √
|
||
Angenommen, es existiert ein Algorithmus, der k-Independen-Set in 2o( |E|) ·|I|O(1)
|
||
löst. Da |E| ≤ |V |2 , gibt es dann auch einen Algorithmus, der k-Clique in 2o(|V |) ·
|
||
|I|O(1) löst (Reduktion auf k-Independent-Set + k-Independent-Set Algorithmus).
|
||
Nach Aufgabenteil 1, gibt es diesen nur, wenn die ETH nicht gilt.
|
||
3. In der Reduktion werden Mengen mit |U| = |V | = |W | = O(mn) Elementen erstellt und
|
||
|T | = O(m2 n2 ) Tupel. Es gilt n ≤ 3m ∈ O(m) für 3-SAT.
|
||
√
|
||
• Lower bound bzgl. der Anzahl an Elementen: 2o( |V |) · |I|O(1) √
|
||
Angenommen, es existiert ein Algorithmus, der 3-Dimensional-Matching in 2o( |V |) ·
|
||
|I|O(1) löst. Da |V | ∈ O(mn) ≤ O(m2 ), gibt es dann auch einen Algorithmus, der
|
||
3-SAT in 2o(m) · |I|O(1) löst (Reduktion von SAT auf 3-Dimensional-Matching an-
|
||
gewandt auf 3-SAT Instanzen + 3-Dimensional-Matching Algorithmus). Nach dem
|
||
Sparsification Lemma geht dies nur, wenn die ETH nicht gilt.
|
||
√
|
||
4
|
||
• Lower bound bzgl. der Kardinalität von T : 2o( |T |) · |I|O(1) √
|
||
4
|
||
Angenommen, es existiert ein Algorithmus, der 3-Dimensional-Matching in 2o( |T |) ·
|
||
|I|O(1) löst. Da |T | ∈ O(m2 n2 ) ≤ O(m4 ), gibt es dann auch einen Algorithmus, der
|
||
3-SAT in 2o(m) · |I|O(1) löst (Reduktion von SAT auf 3-Dimensional-Matching an-
|
||
gewandt auf 3-SAT Instanzen + 3-Dimensional-Matching Algorithmus). Nach dem
|
||
Sparsification Lemma geht dies nur, wenn die ETH nicht gilt.
|
||
4. Das 3-dimensionale Matching ist ein Spezialfall vom 3-Exact Cover. Daher gelten die
|
||
Lower Bounds von 3-dimensionalem Matching auch für 3-Exact Cover. Da |U| = 3m ∈
|
||
O(|V |), ergibt sich, dass es für 3-Exact Cover unter der ETH keinen Algorithmus √ mit
|
||
√
|
||
o( m) O(1) o( |V |)
|
||
Laufzeit 2 · |I| geben kann, da sonst 3-dimensionales Matching in 2 ·
|
||
|I|O(1) lösbar wäre. Und da |F| = |T |, √ ergibt sich, dass es für 3-Exact Cover unter der ETH
|
||
o( 4 |F|)
|
||
keinen Algorithmus
|
||
√ mit Laufzeit 2 · |I|O(1) geben kann, da sonst 3-dimensionales
|
||
4
|
||
Matching in 2o( |T |) · |I|O(1) lösbar wäre.
|
||
√
|
||
4
|
||
5. In der Reduktion wird n = |F| gesetzt. Lower bound bzgl. n: 2o( n)√· |I|O(1)
|
||
4
|
||
Angenommen, es existiert ein Algorithmus, der SubsetSum in 2o( n) · |I|O(1) löst. Dann
|
||
√
|
||
4
|
||
|F|)
|
||
gibt es auch einen Algorithmus, der 3-Exact Cover in 2o( · |I|O(1) löst. Nach Aufga-
|
||
benteil 4, gibt es diesen nur, wenn die ETH nicht gilt.
|
||
|