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

                                                                                             19. Juli 2024

                        Modulprüfung zur Vorlesung
        »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«
                                               SS 2024
    Name:                                       Matrikel-Nr.:


   Hinweise:

   • Bearbeiten Sie alle Aufgaben.
   • Sie haben 10 Minuten Einlesezeit. Danach haben Sie 120 Minuten Zeit für die Klausurbearbeitung.
   • Erlaubte Hilfsmittel: Ein doppelseitig handschriftlich beschriebenes Blatt Papier, (bunte) Stifte (kein
     Rot, kein Grün, kein Bleistift).
   • Einsichtnahme: 18.08.2024.
      Note                 4,0    3,7   3,3    3,0    2,7 2,3 2,0 1,7 1,3 1,0
   •
      Mindestpunkzahl 17,5 19,5 21,5 23,5 25 27 29 31 33 35




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                        Seite 1 von 12
Aufgabe 1 KOMPLEXITÄT: A NWENDUNG LPT (4+2+2+2 Punkte)
    Gegeben ist folgende Scheduling Instanz:
     Jj   J1   J2   J3   J4   J5   J6   J7
                                                  m=3
     pj   5    3    7    8    1    4    2

    a) Wenden Sie den LPT-Scheduling Algorithmus auf die obige Instanz an. Geben Sie dafür alle
       relevanten Zwischenschritte an, sowie die Reihenfolge in der die Jobs auf Maschinen platziert
       werden. Stellen Sie den resultierende Schedule graphisch dar. Eine beispielhafte Darstellung
       ist:

                                             J3
                                                    J6
                                             J2
                                                    J5          J7
                                             J1
                                                    J4
                                             m1     m2         m3




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                 Seite 2 von 12
    b) Geben Sie die approximative Güte des Algorithmus LPT an.




    c) Geben Sie eine Instanz für m = 2 Maschinen an, bei denen der Algorithmus ListScheduling
       eine Güte von 2 − 1/m erzielt. Geben Sie zusätzlich an, welche Werte die optimale Lösung
       OPT und die Lösung von LPT für diese Instanz erzielen.




    d) Geben Sie eine Instanz für m = 3 Maschinen an, bei denen der Algorithmus ListScheduling
       eine Güte von 2 − 1/m erzielt. Geben Sie zusätzlich an, welche Werte die optimale Lösung
       OPT und die Lösung von LPT für diese Instanz erzielen.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«             Seite 3 von 12
Aufgabe 2 KOMPLEXITÄT: B EWEIS : K -C LIQUE (10 Punkte)
    Beweisen Sie folgende Aussage aus der Vorlesung:
    SAT ≤ k-Clique.
    Hinweis: NICHT 3-SAT, sondern allgemeines SAT!




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 4 von 12
Aufgabe 3 KOMPLEXITÄT: NP-VOLLSTÄNDIGKEIT (5+5 Punkte)                                                   a)
       Wir betrachten folgendes Problem:
        Problem: CliqueAndIndependetSet
        Eingabe: Ein ungerichteter Graph G = (V, E) mit V = 1, . . . , |V | und eine ganze Zahl k ≥ 1.
        Entscheide: Gibt es in G sowohl ein Independent Set (Menge von Knoten, die paarweise
        nicht adjazent sind, d.h. zwischen denen es keine Kanten gibt) der Größe k und als auch eine
        Clique der Größe k?
       Zeigen Sie die NP-Schwere von CliqueAndIndependetSet durch Angabe einer Reduktion
       eines nach Vorlesung/Übung bekanntermaßen NP-schweren Problems.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                   Seite 5 von 12
    b) Wir betrachten folgendes Problem:
       Problem: (a1 = 1)-SubsetSum
       Eingabe: Eine Menge von n Items, jedes Item i ∈ [n] hat eine Größe ai ∈ N>0 , wobei a1 = 1,
       und ein Zielwert T .
       Entscheide: Gibt es I ⊆ [n] sodass ∑i∈I ai = T ?
       Zeigen Sie die NP-Schwere von (a1 = 1)-SubsetSum durch Angabe einer Reduktion eines
       nach Vorlesung/Übung bekanntermaßen NP-schweren Problems.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                Seite 6 von 12
Aufgabe 4 KOMPLEXITÄT: A PPROXIMATIVE A LGORITHMEN (3+7 Punkte)
    Wir betrachten folgendes Problem:
    Problem: A PPROXIMATE S UBSET S UM
    Eingabe: n ganze Zahlen a1 , . . . an und ein Zielwert T . Es gilt ai ≤ T ∀i ∈ [n] sowie ∑i∈[n] ai >
    T.
    Ziel: Wähle Zahlenmenge S ⊆ {1, . . . n} mit ∑ j∈S a j ≤ T und maximiere ∑ j∈S a j .

    Betrachten Sie zu diesem Problem den folgenden Algorithmus GA.

    Algorithmus GA((A,T))

     1   sortiere Zahlen absteigend, sodass a1 ≥ a2 ≥ · · · ≥ an gilt;
     2   integer i = 1;
     3   integer sum = 0;
     4   boolean tooLarge = false;
     5   while i ≤ n and tooLarge = false do
     6     if sum+ai ≤ T then
     7        sum=sum+ai ;
     8        i = i + 1;
     9     else
    10        tooLarge = true;
    11     fi
    12   od
    13   return sum;

    a) Geben Sie eine Konstruktionsvorschrift für eine Instanz I an, mit der der Algorithmus GA
       beliebig nah an eine Güte von 2 kommt, also A(I) ≈ OPT2 (I) .




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                     Seite 7 von 12
    b) Zeigen Sie, dass der Algorithmus GA eine approximative Güte von 2 hat, also A(I) ≥ OPT2 (I)
       gilt.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                Seite 8 von 12
Aufgabe 5 KOMPLEXITÄT: ETH (5+5 Punkte)

    a) Betrachten Sie nachfolgende Reduktion von 3-SAT auf k-Color:
       1. Eliminiere doppelte Klauseln und Variablen, die in keiner Klausel auftauchen
       2. Elimiere Klauseln die eine Variable und ihre Negation enthalten (diese sind immer erfüllt)
       3. Seien C1 , . . . ,Cm die Klauseln in der SAT Formel
       4. Definiere                                                  
                                   V := { xi , x̄i , vi | i ∈ [n] } ∪ C j j ∈ [m] ∪ {z} ,
          sowie
                                 
                            E := {vi , v j }, {vi , x j }, {vi , x̄ j } i ∈ [n], j ∈ [n] \ {i}
                              ∪ { {xi , x̄i } | i ∈ [n] }
                                
                              ∪ {xi ,C j } i ∈ [n], j ∈ [m], xi ∈        / Cj
                                
                              ∪ {x̄i ,C j } i ∈ [n], j ∈ [m], x̄i ∈      / Cj
                              ∪ { {vi , z} | i ∈ [n] }
                                
                              ∪ {C j , z} j ∈ [m]
       Welche Lower Bounds ergeben sich unter Annahme der ETH for k-Colour aus dieser Re-
       duktion in Hinblick auf
         (i) die Anzahl der Knoten |V |; sowie
        (ii) die Anzahl der Kanten |E|?




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                             Seite 9 von 12
    b) Wir betrachten folgendes Scheduling Problem:
        Problem: 2|prec, pi ∈ {1, 2}|Cmax
        Eingabe: Eine Menge J von n Jobs, jeder Job J ∈ J hat eine Ausführungszeit pJ ∈ {1, 2}
        sowie Präzedenzconstraints in Form eines gerichteten, azyklischem Graphen G = (J , A),
        sowie ein ganze Zahl T ≥ 0.
        Entscheide: Existiert ein Schedule, d.h. eine Abbildung, die jedem Job eine Startzeit und
        eine Maschine zuweist, sodass (a) sich Jobs auf einer Maschine nicht überlappen (b) für alle
        Jobs j, k ∈ J mit ( j, k) ∈ A, dass k erst startet nachdem j vollständig abgearbeitet ist und
        (c) der Makespan höchstens T ist?
       Wir betrachten die folgende Reduktion von k-Clique auf 2|prec, pi ∈ {1, 2}|Cmax .
       Seien G = (V, E) und k gegeben. Wir setzen n = 4|V | + 3|E| und erstellen einen Knoten-Job Ji
       für alle i ∈ V mit pi = 1. Des Weiteren erstellen wir Kanten-Jobs J{i, j} für jede Kante {i, j} ∈ E
       mit p{i, j} = 2. Abschließend erstellen wir noch 3|V | + 2|E| Dummy Jobs. Diese Jobs haben
       Ausführungszeit pdummy = 1.
       Wir setzen unsere Präzedenzen nach dem folgenden Schema:
       1) (Ji , J{i, j} ) für alle i ∈ V, {i, j} ∈ E
       2) Präzedenzen innerhalb der Dummy Jobs.
       Zuletzt setzen wir den Makespan T = 2|V | + 2|E|.
         (i) Geben Sie die Lower Bounds für 2|prec, pi ∈ {1, 2}|Cmax in Hinblick auf n an, die sich
             unter der ETH aus dieser Reduktion, basierend auf den Lower Bounds für k-Clique,
             ergeben.
        (ii) Geben Sie die Lower Bounds für 2|prec, pi ∈ {1, 2}|Cmax in Hinblick auf T an, die sich
             unter der ETH aus dieser Reduktion, basierend auf den Lower Bounds für k-Clique,
             ergeben.
       Hinweis: Ein beispielhafter Schedule ist unten dargestellt. Die Präzedenzen sind im Graphen
       durch gerichtete Kanten abgebildet, daher startet J4 erst nach dem Ende von J1 . Nutzen Sie
       für diese Aufgabe die bekannten Lower Bounds aus der Präsenzübung. Diese wurden aus der
       Reduktion von 3-SAT auf k-Clique hergeleitet. Hierbei ist der Clique Graph zusammenhän-
       gend!

                                                                               J3

                                                                  J1
                                J3          J4
                                                                               J4

                                J1                                J2
                                            J2




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                     Seite 10 von 12
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 11 von 12
Aufgabe 6 B ONUSAUFGABE (10 Punkte)
    Beweisen oder widerlegen Sie folgende Aussage:
    Wenn die ETH fehlschlägt gilt P = NP.




                                       Viel Erfolg!



Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 12 von 12
                             CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
                             Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
                             Prof. Dr. K. Jansen

                                                                                        11. Oktober 2024

                        Modulprüfung zur Vorlesung
        »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«
                                               SS 2024
    Name:                                       Matrikel-Nr.:
   Hinweise:

   • Bearbeiten Sie alle Aufgaben.
   • Sie haben 10 Minuten Einlesezeit. Danach haben Sie 120 Minuten Zeit für die Klausurbearbeitung.
   • Erlaubte Hilfsmittel: Ein doppelseitig handschriftlich beschriebenes Blatt Papier, (bunte) Stifte (kein
     Rot, kein Grün, kein Bleistift).
   • Einsichtnahme: 30.10.2024
             Note          4,0      3,7   3,3   3,0 2,7 2,3 2,0 1,7 1,3 1,0
   •
      Mindestpunktzahl 17,5 19,5 21,5 23,5 25 27 29 31 33 35




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                        Seite 1 von 16
Aufgabe 1 ∆T SP1 (6+2+2 Punkte)
    Gegeben sei folgender Graph G = (V, E), bei dem die Kantengewichte jeweils an der nach außen
    gerichteten Seite der Kante stehen:

                                                        a
                                        4                               2

                                                        3
                                e                                               b
                                                4               2

                                    4                                       3
                                                    6       5

                                            d                       c
                                                        2

    a) Wenden Sie den Algorithmus ∆T SP1 auf den Graphen G beginnend bei a an. Geben Sie dabei
       die Ergebnisse jedes Zwischenschrittes des Algorithmus an.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                Seite 2 von 16
    b) Beschreiben Sie, was der Algorithmus ∆T SP1 berechnet und geben Sie die Bedingungen an,
       die an den Graphen gestellt sind, damit der Algorithmus eine korrekte Lösung berechnet.




    c) Begründen Sie, warum der Algorithmus ∆T SP1 eine approximative Güte von 2 besitzt.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«             Seite 3 von 16
Aufgabe 2 KOMPLEXITÄT: VORLESUNGSBEWEIS SAT (10 Punkte)
    Beweisen Sie folgende Aussage:
    3-SAT ist NP-vollständig. Zeigen Sie dafür SAT ≤ 3-SAT, nehmen Sie also 3-SAT ∈ NP als
    gegeben an.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«         Seite 4 von 16
Aufgabe 3 KOMPLEXITÄT: NP-VOLLSTÄNDIGKEIT (5+5 Punkte)

    a) Wir betrachten folgendes Problem:
       Problem: Hitchhiker’s-HamiltonianCycle
       Eingabe: Ein ungerichteter Graph G = (V, E) mit V = {1, . . . , |V |} und für alle v ∈ V gilt
       deg(v) ≥ 42.
       Entscheide: Gibt es einen Hamiltonkreis in G?
       Beweisen Sie die NP-Schwere von Hitchhiker’s-HamiltonianCycle durch Angabe einer
       Reduktion eines nach Vorlesung/Übung bekanntermaßen NP-schweren Problems.
       Hinweis: Als Hilfe, geben Sie graphisch die Reduktion für Knotengrad ≥ 10 an.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                 Seite 5 von 16
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 6 von 16
    b) Wir betrachten folgendes Problem:
        Problem: AtMostTwoPerSize-SubsetSum
        Eingabe: Ein ganzzahliger Zielwert T > 0, eine Menge von n Items, jedes Item i ∈ [n]
        hat eine Größe ai ∈ N>0 , jede Größe tritt höchstens zwei Mal auf, d.h. für alle i ∈ [n] gilt
        | { i′ ∈ [n] | ai′ = ai } | ≤ 2.
        Entscheide: Gibt es S ⊆ [n] sodass ∑i∈S ai = T ?
       Beweisen Sie die NP-Schwere von AtMostTwoPerSize-SubsetSum durch Angabe einer Re-
       duktion eines nach Vorlesung/Übung bekanntermaßen NP-schweren Problems.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                  Seite 7 von 16
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 8 von 16
Aufgabe 4 KOMPLEXITÄT: A PPROXIMATIVE A LGORITHMEN (10+(10) Punkte)
    Wir betrachten das aus der Vorlesung bekannte Makespan Scheduling Problem P||Cmax . Dazu ist
    folgender Algorithmus gegeben:

    Algorithmus ROUND ROBIN S CHEDULING(I=(J,m))

      1   sortiere die Jobs in J so, dass p1 ≥ p2 ≥ · · · ≥ pn gilt;
      2   setze B1 = · · · = Bm = 0;
                                  /
      3   integer j = 1;
      4   integer i = 1;
      5   while j <= n do
      6     Platziere Job J j auf Maschine Mi ;
      7     Bi = Bi ∪ {J j };
      8      j = j + 1;
      9     if i < m then
     10        i=i+1
     11     else
     12        i=1
     13     fi
     14   od
     15   return B1 , . . . , Bm

    Betrachten Sie folgendes Beispiel zu der Funktionsweise des Round Robin Scheduling Algorith-
    mus’. Gegeben sind 3 Maschinen und 6 Jobs J1 , . . . J6 , die bereits richtig sortiert sind. Es gilt
    p1 = 7, p2 = 5, p3 = 5, p4 = 4, p5 = 3, p6 = 1. Daraus ergibt sich folgender Schedule:




                                        J4

                                                    J5
                                                                 J6

                                        J1
                                                    J2           J3


                                        m1          m2          m3




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                     Seite 9 von 16
    a) Zeigen Sie per Widerspruch, dass der Algorithmus Round Robin Scheduling eine approxima-
       tive Güte von 2 hat.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«           Seite 10 von 16
    b) BONUS: Geben Sie die Konstruktionsvorschrift für eine Instanz an, mit der der Algorithmus
       Round Robin Scheduling beliebig nah an eine Güte von 2 kommt, also A(I) ≈ 2 · OPT (I).
       Nutzen Sie dafür mindestens 3 Maschinen und 7 Jobs, womit eine Rate von A(I) = 53 OPT
       zu erreichen ist. Geben sie die optimale Makespan an und die, die der Algorithmus bei Ihrer
       Instanz erreicht. Für eine Güte von 53 können bis zu 3 Punkten erreicht werden, bei einer
       Güte von 47 sind bis zu 5 Punkte zu erreichen. Geben Sie eine Konstruktionsvorschrift an,
       bei denen bei einer beliebigen, festen Anzahl von Maschinen m eine Güte von 2 − m1 erreicht
       wird, können Sie die vollen 10 Punkte erreichen.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«              Seite 11 von 16
Aufgabe 5 KOMPLEXITÄT: ETH (5+5 Punkte)

    a) Wir betrachten folgendes Problem:
        Problem: DominatingSet
        Eingabe: Ein ungerichteter Graph G = (V, E) mit V = 1, . . . , |V | und eine Ganzzahl k ≥ 1.
        Entscheide: Gibt es eine Menge M ⊆ V der Kardinalität |M| = k derart, dass jeder Knoten
        v ∈ V entweder in M ist oder zu einem Knoten in M benachbart ist.
       Wir untersuchen nun folgende Reduktion von 3-SAT auf DominatingSet:
       1. Seien C1 , . . . ,Cm die Klauseln der 3-SAT-Formel
       2. Seien x1 , . . . , xn die Variablen der 3-SAT-Formel
       3. Erzeuge die Knoten xi , xi und di für jede Variable xi
       4. Erzeuge die Kanten {xi , xi }, {xi , di } und {di xi } für jede Variable xi
       5. Für jede Klausel C j erzeuge einen Knoten C j
       6. Für jedes Literal ℓ einer Klausel C j erzeuge die Kanten {C j , ℓ}
       Welche unteren Schranken für die Laufzeit folgen damit für DominatingSet unter der ETH
       in Bezug auf
         (i) die Anzahl der Knoten |V |?
        (ii) die Anzahl der Kanten |E|?




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                Seite 12 von 16
    b) Wir betrachten folgendes Problem:
       Problem: GridTiling
       Eingabe: Zwei ganze Zahlen k und j und für jedes i ∈ [k] und j ∈ [k] eine Menge Si, j ⊆ [n]2 .
       Entscheide: Gibt es (ei, j )(i, j)∈[k]2 derart, dass
        1. für alle (i, j) ∈ [k]2 gilt ei, j ∈ Si, j ;
        2. für alle i ∈ [k] und j ∈ [k − 1] gilt für ei, j = (a, b) und ei, j+1 = (a′ , b′ ), dass a = a′ (dh. die
           ausgewählten Tupel müssen in der ersten Komponente übereinstimmen, wenn der erste
           Index derselbe ist); und
        3. für alle i ∈ [k − 1] und j ∈ [k] gilt für ei, j = (a, b) und ei+1, j = (a′ , b′ ), dass b = b′ (dh.
           die ausgewählten Tupel müssen in der zweiten Komponente übereinstimmen, wenn der
           zweite Index derselbe ist)
       Betrachten Sie folgende Beispielinstanz für k = 2, die Elemente der Lösung sind unterstrichen:


                        S1,1 = {(1, 1), (2, 2)}                               S1,2 = {(1, 2), (2, 1), (2, 2)}



                        S2,1 = {(1, 2), (2, 1)}                                   S2,2 = {(1, 1), (2, 2)}


       Wir untersuchen folgende Reduktion von Clique:
       1. Sei G = (V, E) und eine Zahl k als zu untersuchende Clique Instanz gegeben
       2. Wir nehmen ohne Beschränkung der Allgemeinheit an, dass V = {1, . . . , |V |} sowie k ≥ 2
          gilt und dass keine isolierten Knoten existieren.
       3. Wir übernehmen den Wert von k
       4. Für jedes Paar (i, j) ∈ [k]2 definieren wir
                                          (
                                           { (a, a) | a ∈ V }              if i = j
                                 Si, j :=
                                           { (a, b) | a ̸= b, {a, b} ∈ E } if i ̸= j
       Welche unteren Schranken für die Laufzeit folgen damit für Grid Tiling (mit der aus der
       Vorlesung bekannten Reduktion von Clique auf 3-SAT) in Hinblick auf
         (i) der Gesamtanzahl X := ∑(i, j)∈[k]2 |Si, j | der Tupel in den Mengen; sowie
        (ii) der maximalen Anzahl Y := max(i, j)∈[k]2 |Si, j | an Tupeln in einer der Mengen?
       Hinweis: Aus der Reduktion in der Vorlesung wissen wir, dass Clique selbst dann noch NP-
       schwer ist, wenn k ∈ Θ(|V |) gilt. Sie dürfen also annehmen, dass es eine (globale) Konstante
       c > 0 gibt, sodass c · n ≤ k ≤ n.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                            Seite 13 von 16
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 14 von 16
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 15 von 16
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 16 von 16
                             CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
                             Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
                             Prof. Dr. K. Jansen

                                                                                             14. Juli 2023

                        Modulprüfung zur Vorlesung
        »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«
                                               SS 2023
    Name:                                       Matrikel-Nr.:


   Hinweise:

   • Bearbeiten Sie alle Aufgaben.
   • Sie haben 10 Minuten Einlesezeit. Danach haben Sie 120 Minuten Zeit für die Klausurbearbeitung.
   • Erlaubte Hilfsmittel: Ein doppelseitig handschriftlich beschriebenes Blatt Papier, (bunte) Stifte (kein
     Rot, kein Grün, kein Bleistift).
   • Einsichtnahme: Nach Absprache.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                        Seite 1 von 11
Aufgabe 1 RUCKSACKPROBLEM (3+2+5 Punkte)
    Wir betrachten die Anwendung der Approximationsheuristiken für das Rucksackproblem aus der
    Vorlesung.
    Gegeben sei dafür folgende Instanz des Rucksackproblems mit Kapazität B = 16. Items sind in
    der Form (pi , wi ) angegeben.
                       I = [(1, 4), (1, 1), (1, 3), (11, 13), (3, 3), (5, 6), (1, 5), 16]
    a) Wenden Sie den normalen Greedy-Algorithmus auf obige Instanz an. Begründen Sie kurz,
       warum die gewählten Items ausgewählt werden. Was ist der Lösungswert?




    b) Wenden Sie nun den ModifiedGreedy-Algorithmus an. Wie ändert sich die Lösung?




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                        Seite 2 von 11
    c) Was ist die Güte des ModifiedGreedy-Algorithmus? Geben Sie eine kurze Idee an, wie man
       diesen Ansatz modifizieren kann, um die Güte auf 32 oder 43 zu verbessern.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«           Seite 3 von 11
Aufgabe 2 L ONGEST PATH (3+3+4 Punkte)
    Betrachten Sie das folgende Problem:
    Problem: L ONGEST PATH
    Eingabe: Eine ungerichteter Graph G = (V, E) und eine Zahl k.
    Entscheide: Gibt es einen Pfad in G, der mindestens Länge k hat?

    Zeigen Sie auf verschiedene Weisen, dass das Problem in NP liegt:

    a) Geben Sie ein Zertifikat für L ONGEST PATH an.
    b) Beschreiben Sie einen Verifizierer für L ONGEST PATH und geben Sie dessen Laufzeit konkret
       an.
    c) Beschreiben Sie eine nicht-deterministische Turing-Maschine (in Worten), die L ONGEST PATH
       löst. Geben Sie auch hier die Laufzeit konkret an.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«               Seite 4 von 11
Aufgabe 3 A PPROXIMATIVE A LGORITHMEN (6+4 Punkte)
    Das Problem M AX -3-S AT sei folgendermaßen definiert:
    Problem: M AX -3-S AT
    Eingabe: Eine Formel φ in konjunktiver Normalform, wobei jede Klausel drei Literale enthält.
    Ausgabe: Eine Belegung β der Variablen, die die Anzahl v(β ) der erfüllten Klauseln maximiert.

    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) Zeigen Sie, dass obiger Algorithmus Güte 2 hat, d.h. A(φ ) ≥ 12 OPT (φ ) gilt für alle Eingaben
    φ.
    b) 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 sechs Variablen.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                   Seite 5 von 11
Aufgabe 4 B EWEIS ZUR VORLESUNG (10 Punkte)
    Betrachten Sie folgendes Problem aus der Vorlesung:

    Problem: k-C LIQUE
    Eingabe: Ein ungerichteter Graph G = (V, E) und eine Zahl k ≥ 1. Eine Clique ist eine Teil-
    menge C ⊆ V mit {u, v} ∈ E für alle u, v ∈ C mit u ̸= v.
    Entscheide: Hat der gegebene Graph G eine Clique C ⊆ V mit mindestens k Knoten (d.h. mit
    |C| ≥ k)?

    Beweisen Sie: Das Problem k-C LIQUE ist NP-vollständig.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«             Seite 6 von 11
Aufgabe 5 NP UND NP-VOLLSTÄNDIGKEIT (4+4+7 Punkte)


    a) Beweisen Sie die NP-Vollständigkeit von S UBSET S UM, bei der jede Itemgröße jeweils durch
       3 oder durch 7 teilbar ist.
    b) Beweisen Sie die NP-Vollständigkeit von 3-C OLOR, wobei jeder Knoten im Graph mindes-
       tens Grad 3 hat.
    c) Zeigen Sie: Für kein α > 1 gibt es einen approximativen Algorithmus mit Güte α (d.h. mit
       Zielfunktionswert ≤ α · OPT) für TSP, außer P = NP (Denken Sie an Wiliam Rowan Hamil-
       ton).




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«               Seite 7 von 11
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 8 von 11
Aufgabe 6 U NTERE S CHRANKEN UND ETH (7+8 Punkte)
    Betrachten Sie folgende Reduktionen:
    Problem: H ITTING S ET
    Eingabe: Eine Menge U sowie r Teilmengen F1 , . . . , Fr ⊆ U und eine Zahl k.
    Entscheide: Gibt es eine Menge S ⊆ U mit |S| ≤ k und S ∩ Fi ̸= 0/ für alle i ∈ [r]?

    a) 3-SAT ⪯ H ITTING S ET: Seien v1 , . . . , vn die Variablen der Formel und C1 , . . . ,Cm die Klau-
       seln. Setze U = { v1 , v1 , . . . , vn , vn } und k = n. Für jede Variable vi definiere eine Menge
       Fi = {vi , vi } und für jede Klausel C j definiere eine Menge Fn+ j = C j
       Welche unteren Schranken ergeben sich durch obige Reduktion für die Laufzeit von Algorith-
       men für H ITTING S ET unter Annahme der ETH in Abhängigkeit von
         (i) r?
        (ii) |U|?
       Beweisen Sie die entsprechenden unteren Schranken!
       Hinweis: Sie dürfen – wie in den Hausaufgaben zur ETH – Faktoren, die polynomiell in der
       Eingabekodierung sind, vernachlässigen.
    b) 3-S AT ⪯ S UBSET S UM: Seien v1 , . . . , vn die Variablen der Formel und C1 , . . . ,Cm die Klauseln.
       Für jede Variable vi erzeuge zwei Items ai und bi , mit den Größen

                     s(ai ) = 10i−1 + ∑ 10n+ j−1             und    s(bi ) = 10i−1 + ∑ 10n+ j−1 .
                                       j∈[m]                                       j∈[m]
                                       xi ∈C j                                     xi ∈C j

       Zusätzlich erzeuge zwei Items c j und d j für jede Klausel C j mit Größen

                                                 s(c j ) = s(d j ) = 10n+ j−1 .

       Der Zielwert sei
                                      B = ∑ 3 · 10n+ j−1 + ∑ 10i−1 .
                                                        
                                             j∈[m]                     i∈[n]

       Welche unteren Schranken ergeben sich durch obige Reduktion für die Laufzeit von Algorith-
       men für S UBSET S UM unter Annahme der ETH in Abhängigkeit von
         (i) der Anzahl der unterschiedlichen Itemgrößen d?
        (ii) der binären Kodierungslänge L der größten Itemgröße ∆ (d.h. L = log(∆))?
       Beweisen Sie die entsprechenden unteren Schranken!
       Hinweis: Sie dürfen auch hier – wie in den Hausaufgaben zur ETH – Faktoren, die polynomiell
       in der Eingabekodierung sind, vernachlässigen.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                           Seite 9 von 11
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 10 von 11
                                      Viel Erfolg!


Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 11 von 11
                          CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
                          Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
                          Prof. Dr. K. Jansen

                                                                                       19. Oktober 2023

                     Modulprüfung zur Vorlesung
     »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«
                                             SS 2023
 Name:                                       Matrikel-Nr.:


Hinweise:

• Bearbeiten Sie alle Aufgaben.
• Sie haben 120 Minuten Zeit für die Klausurbearbeitung.
• Erlaubte Hilfsmittel: Ein einseitig handschriftlich beschriebenes Blatt Papier, (bunte) Stifte (kein Rot,
  kein Grün, kein Bleistift, kein Tintenkiller, kein Tipp-Ex).
• Schreiben Sie auf jedes Blatt ihren Namen.
• Wenn Sie Schmierzettel verwenden um eine Aufgabe zu bearbeiten, verweisen Sie in der Aufgabe auf
  diese.
• Einsichtnahme: 2.11.23, 13:30-14:30 Uhr.
• Die Klausur hat 6 Aufgaben auf 13 Seiten – überprüfen Sie bitte vor der Bearbeitung, dass Ihre Klausur
  vollständig ist.
Aufgabe 1 C HRISTOFIDES ’ A LGORITHMUS (3+7 Punkte)
    Gegeben sei folgender Graph G = (V, E) :

                                                d

                                          2
                                                       3

                                                3
                                      a                    c


                                          1
                                                       2

                                                b

    a) Geben Sie an, was Christofides’ Algorithmus berechnet, und welche approximative Güte er
       hat. Welche Eigenschaft müssen die Distanzen neben der Symmetrie noch erfüllen, damit
       Christofides’ Algorithmus korrekt arbeitet.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«            Seite 1 von 19
    b) Wenden Sie den Algorithmus von Christofides auf den Graphen G mit Startknoten a an. Ge-
       ben Sie dabei alle Graphen an, die in Zwischenschritten entstehen. Erwähnen Sie ebenfalls
       Schritte, die bei dieser Anwendung zu keiner Änderung führen, die der Algorithmus aber
       überprüfen muss.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«              Seite 2 von 19
Aufgabe 2 D OMINATING S ET (3+3+4 Punkte)
    Betrachten Sie das folgende Problem:
    Problem: D OMINATING S ET
    Eingabe: Ein ungerichteter Graph G = (V, E) (wobei V = {1, . . . , n} für eine Zahl n ∈ N≥1 )
    und eine Zahl k ∈ N0 .
    Entscheide: Gibt es eine Teilmenge D ⊆ V der Knoten mit |D| ≤ k, sodass jeder Knoten v ∈ V
    in D enthalten ist oder benachbart zu mindestens einem der Knoten in D ist?

    Zeigen Sie auf verschiedene Weisen, dass das Problem in NP liegt:
    a) Geben Sie ein Zertifikat für D OMINATING S ET an.
    b) Beschreiben Sie einen polynomiellen Verifizierer für D OMINATING S ET und schätzen Sie die
       Laufzeit in O-Notation konkret ab.
    c) Beschreiben Sie (in Worten) eine polynomielle, nicht-deterministische Turing-Maschine, die
       D OMINATING S ET löst. Schätzen Sie auch hier die Laufzeit in O-Notation konkret ab.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«               Seite 3 von 19
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 4 von 19
Aufgabe 3 A PPROXIMATIVE A LGORITHMEN (6+4 Punkte)
    Das Problem M IN -E DGE -C OVER sei folgendermaßen definiert:
    Problem: M IN -E DGE -C OVER
    Eingabe: Ein zusammenhängender, ungerichteter Graph G = (V, E).
    Ausgabe: Eine Teilmenge der Kanten C ⊆ E mit minimaler Kardinalität, sodass jeder Knoten
    v ∈ V zu mindestens einer Kante aus C inzident ist.

    Betrachten Sie folgenden Algorithmus A:

       • Gehe (in beliebiger Reihenfolge) alle Knoten durch:
       • Falls der aktuelle Knoten v noch nicht abgedeckt ist, wähle zufällig eine der zu v inzidenten
         Kanten und füge sie zu C hinzu.
       • Gib anschließend die entstehende Menge C zurück.

    a) Zeigen Sie, dass obiger Algorithmus Güte 2 hat, d.h. A(G) ≤ 2 · OPT(G) gilt für alle Eingaben
    G.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                   Seite 5 von 19
    b) Sei n ∈ N≥4 gerade. Betrachten Sie den Graphen Gn , der genau n Knoten und n Kanten hat und
    einen Kreis beschreibt. D.h. Gn = ({1, . . . , n}, {{i, i+1} | i ∈ {1, . . . , n−1}}∪{{n, 1}}). Wie viele
    Kanten hat ein M IN -E DGE -C OVER des Graphen Gn ? Wie schlecht ist die Approximationsrate
    des Algorithmus A für Gn im schlimmsten Fall? Geben Sie eine Reihenfolge der Knoten (für
    Schritt 1) und eine Auswahl der Kanten (für Schritt 2) an, die zu einer möglichst schlechten
    Approximationsrate führen.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                         Seite 6 von 19
Aufgabe 4 B EWEIS – S CHEDULING AUF IDENTISCHEN M ASCHINEN (10 Punkte)
    Betrachten Sie das Scheduling-Problem P||Cmax :
    Problem: P||Cmax
    Eingabe: Eine Liste L = (J1 , . . . , Jn ) von n Jobs mit Ausführungszeiten p1 , . . . , pn ∈ N, und m
    identische Maschinen.
    Ausgabe: Ein Schedule (Partition von J in m Teilmengen B1 , . . . , Bm ) mit minimaler maximaler
    Last Cmax := max ∑ p j .
                  1≤i≤m J ∈B
                          j   i


    Betrachten Sie den folgenden Algorithmus ListScheduling, der einen Schedule berechnet. Sei
    LS(I) die Last Cmax eines Schedules des Algorithmus, und OPT(I) die Last Cmax eines optimalen
    Schedules zur Eingabe I. Zeigen Sie: Für alle Eingaben I = (L, m) gilt LS(I)/OPT(I) ≤ 2 − 1/m.

    Algorithmus L IST S CHEDULING(L = (J1 , . . . , Jn ), m)

      1   for i = 1 to m do
      2     Ei = 0; Bi = 0/ ;
      3   od
      4   for j = 1 to n do
      5     wähle Job J j aus Liste L;
      6     wähle Maschine Mi mit minimaler Last Ei ;
      7     Bi = Bi ∪ {J j };
      8     Ei = Ei + p j ;
      9   od




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                       Seite 7 von 19
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 8 von 19
Aufgabe 5 NP UND NP-VOLLSTÄNDIGKEIT (4+5+6 Punkte)

    Problem: H AMILTONIAN PATH
    Eingabe: Ein ungerichteter Graph G = (V, E)
    Entscheide: Existiert ein Pfad in G, der jeden Knoten genau einmal besucht?
    Problem: H AMILTONIAN C YCLE
    Eingabe: Ein ungerichteter Graph G = (V, E)
    Entscheide: Existiert ein Kreis in G, der jeden Knoten genau einmal besucht?

    (a) Sei L ⊆ S UBSET S UM die Menge der (positiven) SubsetSum-Instanzen, bei denen keine der
        Itemgrößen eine Zweierpotenz ist. Zeigen Sie, dass L NP-vollständig ist.
    (b) Geben Sie eine polynomielle Reduktion von H AMILTONIAN PATH auf H AMILTONIAN C Y-
        CLE an.

    (c) Geben Sie eine polynomielle Reduktion von H AMILTONIAN C YCLE auf H AMILTONIAN -
        PATH an.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«               Seite 9 von 19
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 10 von 19
Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«   Seite 11 von 19
Aufgabe 6 U NTERE S CHRANKEN UND ETH (5+5 Punkte)
    Im Folgenden bezeichne ⟨I⟩ die Kodierungslänge der Instanz.
    (a) Wir betrachten folgendes Problem:
        Problem: H ITTING S ET
        Eingabe: Eine Menge U ′ sowie r′ Teilmengen F1′ , . . . , Fr′′ ⊆ U ′ und eine Zahl k′ .
        Entscheide: Gibt es eine Menge S′ ⊆ U ′ mit |S′ | ≤ k′ und S′ ∩ Fi′ ̸= 0/ für alle i′ ∈ {1, . . . , r′ }?

        Sie dürfen nutzen, dass sich H ITTING S ET unter Annahme der ETH nicht in Zeit 2o(r ) ⟨I⟩O(1)
                                                                                                        ′


        und nicht in Zeit 2o(|U |) ⟨I⟩O(1) lösen lässt.
                               ′


         Problem: S ET C OVER
         Eingabe: Eine Menge U sowie r Teilmengen F1 , . . . , Fr ⊆ U und eine Zahl k.
         Entscheide: Gibt es eine Menge S ⊆ {1, . . . , r} mit |S| ≤ k und i∈S Fi = U?
                                                                          S


        Welche unteren Schranken ergeben sich
          (i) in Hinblick auf |U| sowie
         (ii) in Hinblick auf r
        für S ET C OVER unter Annahme der ETH aus den unteren Schranken für H ITTING S ET, wenn
        man folgende Reduktion von SetCover auf HittingSet verwendet?
        Sei (F ,U, k) eine S ET C OVER-Instanz. Setze V1 := U und V2 := {1, . . . , r}. Sei V := V1 ∪V˙ 2.
        Weiter sei E = { {v, w} | v ∈ V1 , w ∈ V2 , v ∈ Fw }. Damit ist G = (V, E) ein bipartiter Graph
        mit Partitionen V1 ,V2 . Setze U ′ := {1, . . . , r}. Erzeuge nun eine Menge Fw′ für jeden Knoten
        w ∈ V1 , indem Fw′ := { v ∈ V2 | {v, w} ∈ E } gesetzt wird. Sei F ′ := { Fw′ | w ∈ V1 }. Mit k′ = k
        iie berechnete Instanz ist nun durch (F ′ ,U ′ , k′ ) gegeben.




Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                            Seite 12 von 19
    (b) Wir wollen uns mit einem Problem beschäftigen, das ein mächtiges Werkzeug im Bereich
        der Optimierung ist: Integrale Lineare Programme (ILPs).
         Problem: ILP-F EASIBILITY
         Eingabe: Eine Matrix A ∈ ZM×N , eine rechte Seite b ∈ ZM .
         Entscheide: Gibt es einen Vektor x ∈ ZN≥0 mit Ax ≤ b, d.h. Ai xi ≤ bi für alle i ∈ {1, . . . , M}?
        Welche unteren Schranken ergeben sich
          (i) in Hinblick auf M sowie
         (ii) im Hinblick auf N
        für ILP-F EASIBILITY unter Annahme der ETH, wenn man folgende Reduktion von 3-SAT
        auf ILP-F EASIBILITY verwendet?
        Sei φ eine 3-SAT Instanz mit m Klauseln (Ci )i∈m und n Variablen. Analog zu linearen Glei-
        chungssystemen (Ax = b), die aus M Gleichungen bestehen, haben wir bei Ax ≤ b einen
        Satz von M linearen Ungleichungen. Wir konstruieren diese wie folgt: Wir nutzen N := 2n
        Variablen in unserem ILP, eine für jedes (mögliche) Literal in der SAT-Formel. Für je-
        de SAT-Variable v sei xv die ILP-Variable, die zum SAT-Literal v korrespondiert, und xv̄
        die, die zum SAT-Literal v̄ korrespondiert. Für jede Klausel Ci erzeugen wir eine Unglei-
        chung − ∑ℓ∈Ci xℓ ≤ −1. Weiter erzeugen wir für jede SAT-Variable v zwei Ungleichungen:
        xv +xv̄ ≤ 1 und −xv −xv̄ ≤ −1. Durch das Eintragen der entsprechenden Koeffizienten in eine
        erweiterte Koeffizientenmatrix (bestehend aus Matrix A und rechter Seite b) erhalten wir die
        ILP-F EASIBILITY Instanz.




                                           Viel Erfolg!



Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«                      Seite 13 von 19
