                          CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
                          Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
                          Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz

                                                                                    09.06.2025

        Präsenzaufgaben zur Vorlesung »Analyse von Algorithmen und
                               Komplexität«
                                              Blatt 9


Definition 1 (Knapsack (Entscheidungsvariante)). Gegeben ist eine Menge mit n Gegenständen
mit Gewichten w1 , . . . , wn ∈ N≥0 und Profiten p1 , . . . , pn ∈ N≥0 . Weiter sind eine Kapazität
K ∈ N≥0 und ein Zielprofit P ∈ N≥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 Algorithmen und Komplexität
                        Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz

                                                                                  16.06.2025

      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 ∈ N≥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 ∈ N≥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 ∈ N≥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 für die Sprache L = { 02 | n ∈ N } über dem Alphabet
Σ = {0} und geben Sie die Laufzeit Ihrer Turingmaschine an. Begründen Sie die Korrektheit
und die Laufzeit Ihrer Turingmaschine. Diskutieren Sie die Laufzeit Ihrer Turingmaschine 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 Algorithmen und Komplexität
                        Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz

                                                                                23.06.2025

      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 ∈ 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 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 ∈ N>0 (wobei n
gerade sei) sowie eine Zahl K ∈ N 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 ∈ N>0 und Zahl K ∈ N. 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 Algorithmen und Komplexität
                         Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz

                                                                                  30.06.2025

      Präsenzaufgaben zur Vorlesung »Analyse von Algorithmen und
                             Komplexität«
                                           Blatt 12


Präsenzaufgabe 12.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.
                         CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
                         Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
                         Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz

                                                                                07.07.2025

      Präsenzaufgaben zur Vorlesung »Analyse von Algorithmen und
                             Komplexität«
                                          Blatt 13


Präsenzaufgabe 13.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 CV(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 2ApproxCV ist also maximal doppelt
so groß wie die optimale Lösung C∗ . Damit berechnet der Algorithmus eine 2-Approximation.
Präsenzaufgabe 13.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 ∈ N≥6 mit n mod 4 = 2 und
die nachfolgende Gewichtsfunktion d2 : E → R+ . 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.


                       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



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 oben abgebildeten Graphen abgebildet
werden.

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.
