\documentclass[11pt,a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,provide=*]{babel}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{geometry}
\usepackage{enumitem}
\usepackage{fancyhdr}
\usepackage{array}
\usepackage{framed}
\usepackage{xcolor}
\usepackage{setspace}

\geometry{a4paper,left=2.5cm,right=2.5cm,top=2.2cm,bottom=2.5cm}

% ------- Grafik-Beschreibungs-Box (ersetzt Original-Grafiken) -------
\definecolor{grafikbg}{gray}{0.94}
\newenvironment{grafik}%
  {\par\medskip\begin{shaded}\noindent\textbf{[Grafik-Beschreibung]}\par\nobreak\smallskip\itshape}%
  {\end{shaded}\medskip}
\colorlet{shadecolor}{grafikbg}

% ------- Aufgaben-Kopf -------
\newcommand{\aufgabe}[2]{\medskip\noindent\textbf{Aufgabe #1}\hfill\textbf{(#2)}\par\smallskip}

% ------- Kopf einer Klausur -------
\newcommand{\klausurkopf}[3]{%
  % #1 = Datum, #2 = Semester, #3 = Hinweisliste (als \item-Block)
  \thispagestyle{fancy}
  \begin{minipage}[t]{0.18\textwidth}
    \raisebox{-1.0cm}{\fbox{\parbox[t]{2.6cm}{\centering\scriptsize CAU-Siegel\\[2pt]\textit{(rundes Universitäts\-siegel mit Schrift ``SIGILLUM ACADEMIAE'' und Wappenfigur)}}}}
  \end{minipage}\hfill
  \begin{minipage}[t]{0.80\textwidth}
    \textbf{\large CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL}\\[2pt]
    Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität\\
    Prof.\ Dr.\ K.\ Jansen\\[6pt]
    \hfill #1
  \end{minipage}

  \vspace{6pt}
  \begin{center}
    \textbf{\large Modulprüfung zur Vorlesung}\\[2pt]
    \textbf{\large »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«}\\[6pt]
    #2
  \end{center}

  \medskip
  \noindent Name:\ \underline{\hspace{4.5cm}}\qquad Matrikel-Nr.:\ \underline{\hspace{4.5cm}}

  \medskip
  \noindent\textit{Hinweise:}
  \begin{itemize}[leftmargin=1.4em,itemsep=1pt,topsep=2pt]
    #3
  \end{itemize}
}

% ------- Notentabelle -------
\newcommand{\notentabelle}{%
  \begin{center}\small
  \begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|}\hline
  Note & 4,0 & 3,7 & 3,3 & 3,0 & 2,7 & 2,3 & 2,0 & 1,7 & 1,3 & 1,0\\\hline
  Mindestpunktzahl & 17,5 & 19,5 & 21,5 & 23,5 & 25 & 27 & 29 & 31 & 33 & 35\\\hline
  \end{tabular}
  \end{center}
}

% ------- Fußzeile -------
\fancypagestyle{fancy}{%
  \fancyhf{}
  \renewcommand{\headrulewidth}{0pt}
  \renewcommand{\footrulewidth}{0pt}
  \fancyfoot[L]{\scriptsize Klausur »Analyse von Algorithmen und Komplexität (Komplexitätsteil)«}
  \fancyfoot[R]{\scriptsize Seite \thepage}
}
\pagestyle{fancy}

\setlength{\parindent}{0pt}
\setlength{\parskip}{4pt}

\begin{document}

%======================================================================
%  KLAUSUR 1 — 19. Juli 2024 — SS 2024
%======================================================================
\klausurkopf{19.\ Juli 2024}{SS 2024}{%
  \item Bearbeiten Sie \textit{alle} Aufgaben.
  \item Sie haben 10 Minuten Einlesezeit. Danach haben Sie 120 Minuten Zeit für die Klausurbearbeitung.
  \item Erlaubte Hilfsmittel: Ein doppelseitig handschriftlich beschriebenes Blatt Papier, (bunte) Stifte (kein Rot, kein Grün, kein Bleistift).
  \item Einsichtnahme: 18.08.2024.
  \item[]\notentabelle
}

\newpage
\aufgabe{1 \quad KOMPLEXITÄT: ANWENDUNG LPT}{4+2+2+2 Punkte}
Gegeben ist folgende Scheduling-Instanz:
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}\hline
$J_j$ & $J_1$ & $J_2$ & $J_3$ & $J_4$ & $J_5$ & $J_6$ & $J_7$\\\hline
$p_j$ & 5 & 3 & 7 & 8 & 1 & 4 & 2\\\hline
\end{tabular}
\end{center}
$m = 3$

\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item 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 resultierenden Schedule graphisch dar. Eine beispielhafte Darstellung ist:

\begin{grafik}
Beispielhaftes Gantt-/Balkendiagramm mit drei Spalten, überschrieben mit $m_1$, $m_2$, $m_3$. Untereinander sind als gestapelte Blöcke die Jobs $J_1, J_2, J_3, J_4, J_5, J_6, J_7$ angedeutet (Platzhalter dafür, wie ein fertiger Schedule gezeichnet werden soll: pro Maschine eine Spalte, Jobs als übereinander gestapelte, proportional zur Ausführungszeit hohe Rechtecke).
\end{grafik}

\item Geben Sie die approximative Güte des Algorithmus LPT an.

\item 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.

\item 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.
\end{enumerate}

\newpage
\aufgabe{2 \quad KOMPLEXITÄT: BEWEIS: K-CLIQUE}{10 Punkte}
Beweisen Sie folgende Aussage aus der Vorlesung:
\[ \text{SAT} \le \text{$k$-Clique}. \]
\textit{Hinweis: NICHT 3-SAT, sondern allgemeines SAT!}

\newpage
\aufgabe{3 \quad KOMPLEXITÄT: NP-VOLLSTÄNDIGKEIT}{5+5 Punkte}
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Wir betrachten folgendes Problem:

\textbf{Problem: CliqueAndIndependentSet}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$ mit $V = 1,\dots,|V|$ und eine ganze Zahl $k \ge 1$.\\
\textbf{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$ als auch eine Clique der Größe $k$?

Zeigen Sie die NP-Schwere von CliqueAndIndependentSet durch Angabe einer Reduktion eines nach Vorlesung/Übung bekanntermaßen NP-schweren Problems.

\item Wir betrachten folgendes Problem:

\textbf{Problem: $(a_1 = 1)$-SubsetSum}\\
\textbf{Eingabe:} Eine Menge von $n$ Items, jedes Item $i \in [n]$ hat eine Größe $a_i \in \mathbb{N}_{>0}$, wobei $a_1 = 1$, und ein Zielwert $T$.\\
\textbf{Entscheide:} Gibt es $I \subseteq [n]$ sodass $\sum_{i \in I} a_i = T$?

Zeigen Sie die NP-Schwere von $(a_1 = 1)$-SubsetSum durch Angabe einer Reduktion eines nach Vorlesung/Übung bekanntermaßen NP-schweren Problems.
\end{enumerate}

\newpage
\aufgabe{4 \quad KOMPLEXITÄT: APPROXIMATIVE ALGORITHMEN}{3+7 Punkte}
Wir betrachten folgendes Problem:

\textbf{Problem: APPROXIMATE SUBSET SUM}\\
\textbf{Eingabe:} $n$ ganze Zahlen $a_1,\dots,a_n$ und ein Zielwert $T$. Es gilt $a_i \le T$ $\forall i \in [n]$ sowie $\sum_{i \in [n]} a_i > T$.\\
\textbf{Ziel:} Wähle Zahlenmenge $S \subseteq \{1,\dots,n\}$ mit $\sum_{j \in S} a_j \le T$ und maximiere $\sum_{j \in S} a_j$.

Betrachten Sie zu diesem Problem den folgenden Algorithmus GA.

\begin{shaded}
\ttfamily\small
\textbf{Algorithmus GA($(A,T)$)}\\
1\quad sortiere Zahlen absteigend, sodass $a_1 \ge a_2 \ge \dots \ge a_n$ gilt;\\
2\quad integer $i = 1$;\\
3\quad integer $sum = 0$;\\
4\quad boolean $tooLarge = false$;\\
5\quad \textbf{while} $i \le n$ \textbf{and} $tooLarge = false$ \textbf{do}\\
6\quad\quad \textbf{if} $sum + a_i \le T$ \textbf{then}\\
7\quad\quad\quad $sum = sum + a_i$;\\
8\quad\quad\quad $i = i + 1$;\\
9\quad\quad \textbf{else}\\
10\quad\quad\quad $tooLarge = true$;\\
11\quad\quad \textbf{fi}\\
12\quad \textbf{od}\\
13\quad \textbf{return} $sum$;
\end{shaded}

\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item 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) \approx \frac{\mathrm{OPT}(I)}{2}$.

\item Zeigen Sie, dass der Algorithmus GA eine approximative Güte von 2 hat, also $A(I) \ge \frac{\mathrm{OPT}(I)}{2}$ gilt.
\end{enumerate}

\newpage
\aufgabe{5 \quad KOMPLEXITÄT: ETH}{5+5 Punkte}
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Betrachten Sie nachfolgende Reduktion von 3-SAT auf $k$-Color:
\begin{enumerate}[label=\arabic*.,leftmargin=1.6em]
\item Eliminiere doppelte Klauseln und Variablen, die in keiner Klausel auftauchen.
\item Eliminiere Klauseln, die eine Variable und ihre Negation enthalten (diese sind immer erfüllt).
\item Seien $C_1,\dots,C_m$ die Klauseln in der SAT-Formel.
\item Definiere
\[ V := \{\, x_i,\ \bar x_i,\ v_i \mid i \in [n] \,\} \cup \{\, C_j \mid j \in [m] \,\} \cup \{z\}, \]
sowie
\begin{align*}
E := \ & \{\, \{v_i, v_j\}, \{v_i, x_j\}, \{v_i, \bar x_j\} \mid i \in [n],\ j \in [n]\setminus\{i\} \,\}\\
 \cup\ & \{\, \{x_i, \bar x_i\} \mid i \in [n] \,\}\\
 \cup\ & \{\, \{x_i, C_j\} \mid i \in [n],\ j \in [m],\ x_i \notin C_j \,\}\\
 \cup\ & \{\, \{\bar x_i, C_j\} \mid i \in [n],\ j \in [m],\ \bar x_i \notin C_j \,\}\\
 \cup\ & \{\, \{v_i, z\} \mid i \in [n] \,\}\\
 \cup\ & \{\, \{C_j, z\} \mid j \in [m] \,\}
\end{align*}
\end{enumerate}
Welche Lower Bounds ergeben sich unter Annahme der ETH für $k$-Colour aus dieser Reduktion in Hinblick auf
\begin{enumerate}[label=(\roman*),leftmargin=1.6em]
\item die Anzahl der Knoten $|V|$; sowie
\item die Anzahl der Kanten $|E|$?
\end{enumerate}

\item Wir betrachten folgendes Scheduling-Problem:

\textbf{Problem:} $2\,|\,\mathrm{prec},\ p_i \in \{1,2\}\,|\,C_{\max}$\\
\textbf{Eingabe:} Eine Menge $\mathcal{J}$ von $n$ Jobs, jeder Job $J \in \mathcal{J}$ hat eine Ausführungszeit $p_J \in \{1,2\}$ sowie Präzedenzconstraints in Form eines gerichteten, azyklischen Graphen $G = (\mathcal{J}, A)$, sowie eine ganze Zahl $T \ge 0$.\\
\textbf{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 \in \mathcal{J}$ mit $(j,k) \in A$ gilt, 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\,|\,\mathrm{prec},\ p_i \in \{1,2\}\,|\,C_{\max}$.

Seien $G = (V,E)$ und $k$ gegeben. Wir setzen $n = 4|V| + 3|E|$ und erstellen einen Knoten-Job $J_i$ für alle $i \in V$ mit $p_i = 1$. Des Weiteren erstellen wir Kanten-Jobs $J_{\{i,j\}}$ für jede Kante $\{i,j\} \in E$ mit $p_{\{i,j\}} = 2$. Abschließend erstellen wir noch $3|V| + 2|E|$ Dummy-Jobs. Diese Jobs haben Ausführungszeit $p_{\mathrm{dummy}} = 1$.

Wir setzen unsere Präzedenzen nach dem folgenden Schema:
\begin{enumerate}[label=\arabic*),leftmargin=1.6em]
\item $(J_i, J_{\{i,j\}})$ für alle $i \in V,\ \{i,j\} \in E$
\item Präzedenzen innerhalb der Dummy-Jobs.
\end{enumerate}
Zuletzt setzen wir den Makespan $T = 2|V| + 2|E|$.
\begin{enumerate}[label=(\roman*),leftmargin=1.6em]
\item Geben Sie die Lower Bounds für $2\,|\,\mathrm{prec},\ p_i \in \{1,2\}\,|\,C_{\max}$ in Hinblick auf $n$ an, die sich unter der ETH aus dieser Reduktion, basierend auf den Lower Bounds für $k$-Clique, ergeben.
\item Geben Sie die Lower Bounds für $2\,|\,\mathrm{prec},\ p_i \in \{1,2\}\,|\,C_{\max}$ in Hinblick auf $T$ an, die sich unter der ETH aus dieser Reduktion, basierend auf den Lower Bounds für $k$-Clique, ergeben.
\end{enumerate}

\textit{Hinweis:} Ein beispielhafter Schedule ist unten dargestellt. Die Präzedenzen sind im Graphen durch gerichtete Kanten abgebildet, daher startet $J_4$ erst nach dem Ende von $J_1$. 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ängend!

\begin{grafik}
Zwei Teilgrafiken.\\
(1) Präzedenz-Graph: vier Knoten $J_1, J_2, J_3, J_4$. Eine gerichtete Kante führt von $J_1$ nach $J_4$ (d.h.\ $J_4$ hängt von $J_1$ ab); $J_2$ und $J_3$ stehen als weitere Knoten ohne bindende Vorgänger da.\\
(2) Zugehöriger Beispiel-Schedule auf zwei Maschinen als Gantt-Diagramm: Die Jobs $J_1, J_3, J_4, J_2$ sind so über zwei Maschinenzeitachsen verteilt, dass $J_4$ zeitlich nach dem Ende von $J_1$ beginnt und sich Jobs auf derselben Maschine nicht überlappen.
\end{grafik}

\end{enumerate}

\newpage
\aufgabe{6 \quad BONUSAUFGABE}{10 Punkte}
Beweisen oder widerlegen Sie folgende Aussage:
\begin{center}
Wenn die ETH fehlschlägt, gilt $P = NP$.
\end{center}
\bigskip
\begin{center}\textit{Viel Erfolg!}\end{center}

%======================================================================
%  KLAUSUR 2 — 11. Oktober 2024 — SS 2024
%======================================================================
\newpage
\setcounter{page}{1}
\klausurkopf{11.\ Oktober 2024}{SS 2024}{%
  \item Bearbeiten Sie \textit{alle} Aufgaben.
  \item Sie haben 10 Minuten Einlesezeit. Danach haben Sie 120 Minuten Zeit für die Klausurbearbeitung.
  \item Erlaubte Hilfsmittel: Ein doppelseitig handschriftlich beschriebenes Blatt Papier, (bunte) Stifte (kein Rot, kein Grün, kein Bleistift).
  \item Einsichtnahme: 30.10.2024.
  \item[]\notentabelle
}

\newpage
\aufgabe{1 \quad $\Delta$TSP1}{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:

\begin{grafik}
Gerichtet/asymmetrisch gewichteter Graph mit fünf Knoten $a, b, c, d, e$. Anordnung ungefähr: $a$ oben, $b$ oben rechts, $d$ links, $c$ rechts, $e$ unten. Da die Gewichte an der nach außen gerichteten Kantenseite notiert sind, gehören zu jeder Verbindung zwei (i.\,A.\ unterschiedliche) Richtungsgewichte. Die in der Figur ablesbaren Gewichtszahlen sind: $2,\ 3,\ 2,\ 4,\ 4,\ 4,\ 2,\ 3,\ 6,\ 5$ (verteilt auf die Kanten zwischen den fünf Knoten). Die genaue Zuordnung Kante$\,\to\,$Gewicht ist der Originalzeichnung zu entnehmen; für die Anwendung von $\Delta$TSP1 wird von $a$ als Startknoten ausgegangen.
\end{grafik}

\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Wenden Sie den Algorithmus $\Delta$TSP1 auf den Graphen $G$ beginnend bei $a$ an. Geben Sie dabei die Ergebnisse jedes Zwischenschrittes des Algorithmus an.
\item Beschreiben Sie, was der Algorithmus $\Delta$TSP1 berechnet, und geben Sie die Bedingungen an, die an den Graphen gestellt sind, damit der Algorithmus eine korrekte Lösung berechnet.
\item Begründen Sie, warum der Algorithmus $\Delta$TSP1 eine approximative Güte von 2 besitzt.
\end{enumerate}

\newpage
\aufgabe{2 \quad KOMPLEXITÄT: VORLESUNGSBEWEIS SAT}{10 Punkte}
Beweisen Sie folgende Aussage:

3-SAT ist NP-vollständig. Zeigen Sie dafür $\text{SAT} \le \text{3-SAT}$, nehmen Sie also $\text{3-SAT} \in NP$ als gegeben an.

\newpage
\aufgabe{3 \quad KOMPLEXITÄT: NP-VOLLSTÄNDIGKEIT}{5+5 Punkte}
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Wir betrachten folgendes Problem:

\textbf{Problem: Hitchhiker's-HamiltonianCycle}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$ mit $V = \{1,\dots,|V|\}$ und für alle $v \in V$ gilt $\deg(v) \ge 42$.\\
\textbf{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.

\textit{Hinweis:} Als Hilfe geben Sie graphisch die Reduktion für Knotengrad $\ge 10$ an.

\item Wir betrachten folgendes Problem:

\textbf{Problem: AtMostTwoPerSize-SubsetSum}\\
\textbf{Eingabe:} Ein ganzzahliger Zielwert $T > 0$, eine Menge von $n$ Items, jedes Item $i \in [n]$ hat eine Größe $a_i \in \mathbb{N}_{>0}$; jede Größe tritt höchstens zwei Mal auf, d.h.\ für alle $i \in [n]$ gilt $|\{\, i' \in [n] \mid a_{i'} = a_i \,\}| \le 2$.\\
\textbf{Entscheide:} Gibt es $S \subseteq [n]$ sodass $\sum_{i \in S} a_i = T$?

Beweisen Sie die NP-Schwere von AtMostTwoPerSize-SubsetSum durch Angabe einer Reduktion eines nach Vorlesung/Übung bekanntermaßen NP-schweren Problems.
\end{enumerate}

\newpage
\aufgabe{4 \quad KOMPLEXITÄT: APPROXIMATIVE ALGORITHMEN}{10+(10) Punkte}
Wir betrachten das aus der Vorlesung bekannte Makespan-Scheduling-Problem $P\,||\,C_{\max}$. Dazu ist folgender Algorithmus gegeben:

\begin{shaded}
\ttfamily\small
\textbf{Algorithmus ROUND ROBIN SCHEDULING($I = (J,m)$)}\\
1\quad sortiere die Jobs in $J$ so, dass $p_1 \ge p_2 \ge \dots \ge p_n$ gilt;\\
2\quad setze $B_1 = \dots = B_m = \emptyset$;\\
3\quad integer $j = 1$;\\
4\quad integer $i = 1$;\\
5\quad \textbf{while} $j <= n$ \textbf{do}\\
6\quad\quad Platziere Job $J_j$ auf Maschine $M_i$;\\
7\quad\quad $B_i = B_i \cup \{J_j\}$;\\
8\quad\quad $j = j + 1$;\\
9\quad\quad \textbf{if} $i < m$ \textbf{then}\\
10\quad\quad\quad $i = i + 1$\\
11\quad\quad \textbf{else}\\
12\quad\quad\quad $i = 1$\\
13\quad\quad \textbf{fi}\\
14\quad \textbf{od}\\
15\quad \textbf{return} $B_1,\dots,B_m$
\end{shaded}

Betrachten Sie folgendes Beispiel zu der Funktionsweise des Round-Robin-Scheduling-Algorithmus. Gegeben sind 3 Maschinen und 6 Jobs $J_1,\dots,J_6$, die bereits richtig sortiert sind. Es gilt $p_1 = 7$, $p_2 = 5$, $p_3 = 5$, $p_4 = 4$, $p_5 = 3$, $p_6 = 1$. Daraus ergibt sich folgender Schedule:

\begin{grafik}
Gantt-Diagramm mit drei Maschinenspalten $m_1, m_2, m_3$. Round-Robin verteilt reihum: auf $m_1$ liegen $J_1$ ($p=7$) und $J_4$ ($p=4$) übereinander (Last $11$), auf $m_2$ liegen $J_2$ ($p=5$) und $J_5$ ($p=3$) (Last $8$), auf $m_3$ liegen $J_3$ ($p=5$) und $J_6$ ($p=1$) (Last $6$). Jeder Job ist als Rechteck mit zur Laufzeit proportionaler Höhe dargestellt.
\end{grafik}

\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Zeigen Sie per Widerspruch, dass der Algorithmus Round Robin Scheduling eine approximative Güte von 2 hat.

\item \textbf{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) \approx 2 \cdot \mathrm{OPT}(I)$. Nutzen Sie dafür mindestens 3 Maschinen und 7 Jobs, womit eine Rate von $A(I) = \frac{5}{3}\mathrm{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 $\frac{5}{3}$ können bis zu 3 Punkte erreicht werden, bei einer Güte von $\frac{7}{4}$ 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 - \frac{1}{m}$ erreicht wird — dann können Sie die vollen 10 Punkte erreichen.
\end{enumerate}

\newpage
\aufgabe{5 \quad KOMPLEXITÄT: ETH}{5+5 Punkte}
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Wir betrachten folgendes Problem:

\textbf{Problem: DominatingSet}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$ mit $V = 1,\dots,|V|$ und eine Ganzzahl $k \ge 1$.\\
\textbf{Entscheide:} Gibt es eine Menge $M \subseteq V$ der Kardinalität $|M| = k$ derart, dass jeder Knoten $v \in V$ entweder in $M$ ist oder zu einem Knoten in $M$ benachbart ist?

Wir untersuchen nun folgende Reduktion von 3-SAT auf DominatingSet:
\begin{enumerate}[label=\arabic*.,leftmargin=1.6em]
\item Seien $C_1,\dots,C_m$ die Klauseln der 3-SAT-Formel.
\item Seien $x_1,\dots,x_n$ die Variablen der 3-SAT-Formel.
\item Erzeuge die Knoten $x_i,\ \bar x_i$ und $d_i$ für jede Variable $x_i$.
\item Erzeuge die Kanten $\{x_i, \bar x_i\}$, $\{x_i, d_i\}$ und $\{d_i, \bar x_i\}$ für jede Variable $x_i$.
\item Für jede Klausel $C_j$ erzeuge einen Knoten $C_j$.
\item Für jedes Literal $\ell$ einer Klausel $C_j$ erzeuge die Kanten $\{C_j, \ell\}$.
\end{enumerate}
Welche unteren Schranken für die Laufzeit folgen damit für DominatingSet unter der ETH in Bezug auf
\begin{enumerate}[label=(\roman*),leftmargin=1.6em]
\item die Anzahl der Knoten $|V|$?
\item die Anzahl der Kanten $|E|$?
\end{enumerate}

\item Wir betrachten folgendes Problem:

\textbf{Problem: GridTiling}\\
\textbf{Eingabe:} Zwei ganze Zahlen $k$ und $j$ und für jedes $i \in [k]$ und $j \in [k]$ eine Menge $S_{i,j} \subseteq [n]^2$.\\
\textbf{Entscheide:} Gibt es $(e_{i,j})_{(i,j) \in [k]^2}$ derart, dass
\begin{enumerate}[label=\arabic*.,leftmargin=1.6em]
\item für alle $(i,j) \in [k]^2$ gilt $e_{i,j} \in S_{i,j}$;
\item für alle $i \in [k]$ und $j \in [k-1]$ gilt für $e_{i,j} = (a,b)$ und $e_{i,j+1} = (a',b')$, dass $a = a'$ (d.h.\ die ausgewählten Tupel müssen in der ersten Komponente übereinstimmen, wenn der erste Index derselbe ist); und
\item für alle $i \in [k-1]$ und $j \in [k]$ gilt für $e_{i,j} = (a,b)$ und $e_{i+1,j} = (a',b')$, dass $b = b'$ (d.h.\ die ausgewählten Tupel müssen in der zweiten Komponente übereinstimmen, wenn der zweite Index derselbe ist)?
\end{enumerate}
Betrachten Sie folgende Beispielinstanz für $k = 2$, die Elemente der Lösung sind unterstrichen:
\begin{align*}
S_{1,1} &= \{(1,1), \underline{(2,2)}\} & S_{1,2} &= \{(1,2),(2,1), \underline{(2,2)}\}\\
S_{2,1} &= \{(1,2), \underline{(2,1)}\} & S_{2,2} &= \{\underline{(1,1)},(2,2)\}
\end{align*}
Wir untersuchen folgende Reduktion von Clique:
\begin{enumerate}[label=\arabic*.,leftmargin=1.6em]
\item Sei $G = (V,E)$ und eine Zahl $k$ als zu untersuchende Clique-Instanz gegeben.
\item Wir nehmen ohne Beschränkung der Allgemeinheit an, dass $V = \{1,\dots,|V|\}$ sowie $k \ge 2$ gilt und dass keine isolierten Knoten existieren.
\item Wir übernehmen den Wert von $k$.
\item Für jedes Paar $(i,j) \in [k]^2$ definieren wir
\[ S_{i,j} := \begin{cases} \{(a,a) \mid a \in V\} & \text{if } i = j\\ \{(a,b) \mid a \ne b,\ \{a,b\} \in E\} & \text{if } i \ne j \end{cases} \]
\end{enumerate}
Welche unteren Schranken für die Laufzeit folgen damit für GridTiling (mit der aus der Vorlesung bekannten Reduktion von Clique auf 3-SAT) in Hinblick auf
\begin{enumerate}[label=(\roman*),leftmargin=1.6em]
\item die Gesamtanzahl $X := \sum_{(i,j) \in [k]^2} |S_{i,j}|$ der Tupel in den Mengen; sowie
\item die maximale Anzahl $Y := \max_{(i,j) \in [k]^2} |S_{i,j}|$ an Tupeln in einer der Mengen?
\end{enumerate}
\textit{Hinweis:} Aus der Reduktion in der Vorlesung wissen wir, dass Clique selbst dann noch NP-schwer ist, wenn $k \in \Theta(|V|)$ gilt. Sie dürfen also annehmen, dass es eine (globale) Konstante $c > 0$ gibt, sodass $c \cdot n \le k \le n$.
\end{enumerate}

%======================================================================
%  KLAUSUR 3 — 14. Juli 2023 — SS 2023
%======================================================================
\newpage
\setcounter{page}{1}
\klausurkopf{14.\ Juli 2023}{SS 2023}{%
  \item Bearbeiten Sie \textit{alle} Aufgaben.
  \item Sie haben 10 Minuten Einlesezeit. Danach haben Sie 120 Minuten Zeit für die Klausurbearbeitung.
  \item Erlaubte Hilfsmittel: Ein doppelseitig handschriftlich beschriebenes Blatt Papier, (bunte) Stifte (kein Rot, kein Grün, kein Bleistift).
  \item Einsichtnahme: Nach Absprache.
}

\newpage
\aufgabe{1 \quad 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 $(p_i, w_i)$ angegeben.
\[ I = [(1,4),(1,1),(1,3),(11,13),(3,3),(5,6),(1,5),\ 16] \]

\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item 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?
\item Wenden Sie nun den ModifiedGreedy-Algorithmus an. Wie ändert sich die Lösung?
\item 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 $\frac{3}{2}$ oder $\frac{4}{3}$ zu verbessern.
\end{enumerate}

\newpage
\aufgabe{2 \quad LONGEST PATH}{3+3+4 Punkte}
Betrachten Sie das folgende Problem:

\textbf{Problem: LONGEST PATH}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$ und eine Zahl $k$.\\
\textbf{Entscheide:} Gibt es einen Pfad in $G$, der mindestens Länge $k$ hat?

Zeigen Sie auf verschiedene Weisen, dass das Problem in NP liegt:
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Geben Sie ein Zertifikat für LONGEST PATH an.
\item Beschreiben Sie einen Verifizierer für LONGEST PATH und geben Sie dessen Laufzeit konkret an.
\item Beschreiben Sie eine nicht-deterministische Turing-Maschine (in Worten), die LONGEST PATH löst. Geben Sie auch hier die Laufzeit konkret an.
\end{enumerate}

\newpage
\aufgabe{3 \quad APPROXIMATIVE ALGORITHMEN}{6+4 Punkte}
Das Problem MAX-3-SAT sei folgendermaßen definiert:

\textbf{Problem: MAX-3-SAT}\\
\textbf{Eingabe:} Eine Formel $\varphi$ in konjunktiver Normalform, wobei jede Klausel drei Literale enthält.\\
\textbf{Ausgabe:} Eine Belegung $\beta$ der Variablen, die die Anzahl $v(\beta)$ der erfüllten Klauseln maximiert.

Betrachten Sie folgenden Algorithmus $A$:
\begin{itemize}[leftmargin=1.4em,topsep=2pt,itemsep=1pt]
\item Sei $\beta_0$ die Belegung, die alle Variablen auf false setzt.
\item Sei $\beta_1$ die Belegung, die alle Variablen auf true setzt.
\item Falls $v(\beta_0) \ge v(\beta_1)$, gib $\beta_0$ zurück.
\item Sonst gib $\beta_1$ zurück.
\end{itemize}

\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Zeigen Sie, dass obiger Algorithmus Güte 2 hat, d.h.\ $A(\varphi) \ge \frac{1}{2}\mathrm{OPT}(\varphi)$ gilt für alle Eingaben $\varphi$.
\item 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.\\
\textit{Hinweis:} Sie brauchen nur höchstens zwei Klauseln und sechs Variablen.
\end{enumerate}

\newpage
\aufgabe{4 \quad BEWEIS ZUR VORLESUNG}{10 Punkte}
Betrachten Sie folgendes Problem aus der Vorlesung:

\textbf{Problem: $k$-CLIQUE}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$ und eine Zahl $k \ge 1$. Eine Clique ist eine Teilmenge $C \subseteq V$ mit $\{u,v\} \in E$ für alle $u,v \in C$ mit $u \ne v$.\\
\textbf{Entscheide:} Hat der gegebene Graph $G$ eine Clique $C \subseteq V$ mit mindestens $k$ Knoten (d.h.\ mit $|C| \ge k$)?

Beweisen Sie: Das Problem $k$-CLIQUE ist NP-vollständig.

\newpage
\aufgabe{5 \quad NP UND NP-VOLLSTÄNDIGKEIT}{4+4+7 Punkte}
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Beweisen Sie die NP-Vollständigkeit von SUBSETSUM, bei der jede Itemgröße jeweils durch 3 oder durch 7 teilbar ist.
\item Beweisen Sie die NP-Vollständigkeit von 3-COLOR, wobei jeder Knoten im Graph mindestens Grad 3 hat.
\item Zeigen Sie: Für kein $\alpha > 1$ gibt es einen approximativen Algorithmus mit Güte $\alpha$ (d.h.\ mit Zielfunktionswert $\le \alpha \cdot \mathrm{OPT}$) für TSP, außer $P = NP$ (Denken Sie an William Rowan Hamilton).
\end{enumerate}

\newpage
\aufgabe{6 \quad UNTERE SCHRANKEN UND ETH}{7+8 Punkte}
Betrachten Sie folgende Reduktionen:

\textbf{Problem: HITTINGSET}\\
\textbf{Eingabe:} Eine Menge $U$ sowie $r$ Teilmengen $F_1,\dots,F_r \subseteq U$ und eine Zahl $k$.\\
\textbf{Entscheide:} Gibt es eine Menge $S \subseteq U$ mit $|S| \le k$ und $S \cap F_i \ne \emptyset$ für alle $i \in [r]$?

\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item $\text{3-SAT} \preceq \text{HITTINGSET}$: Seien $v_1,\dots,v_n$ die Variablen der Formel und $C_1,\dots,C_m$ die Klauseln. Setze $U = \{v_1, \bar v_1, \dots, v_n, \bar v_n\}$ und $k = n$. Für jede Variable $v_i$ definiere eine Menge $F_i = \{v_i, \bar v_i\}$ und für jede Klausel $C_j$ definiere eine Menge $F_{n+j} = C_j$.

Welche unteren Schranken ergeben sich durch obige Reduktion für die Laufzeit von Algorithmen für HITTINGSET unter Annahme der ETH in Abhängigkeit von
\begin{enumerate}[label=(\roman*),leftmargin=1.6em]
\item $r$?
\item $|U|$?
\end{enumerate}
Beweisen Sie die entsprechenden unteren Schranken!\\
\textit{Hinweis:} Sie dürfen -- wie in den Hausaufgaben zur ETH -- Faktoren, die polynomiell in der Eingabekodierung sind, vernachlässigen.

\item $\text{3-SAT} \preceq \text{SUBSETSUM}$: Seien $v_1,\dots,v_n$ die Variablen der Formel und $C_1,\dots,C_m$ die Klauseln. Für jede Variable $v_i$ erzeuge zwei Items $a_i$ und $b_i$ mit den Größen
\[ s(a_i) = 10^{i-1} + \sum_{\substack{j \in [m]\\ x_i \in C_j}} 10^{n+j-1} \quad\text{und}\quad s(b_i) = 10^{i-1} + \sum_{\substack{j \in [m]\\ \bar x_i \in C_j}} 10^{n+j-1}. \]
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) = 10^{n+j-1}. \]
Der Zielwert sei
\[ B = \sum_{j \in [m]} \left( 3 \cdot 10^{n+j-1} \right) + \sum_{i \in [n]} 10^{i-1}. \]
Welche unteren Schranken ergeben sich durch obige Reduktion für die Laufzeit von Algorithmen für SUBSETSUM unter Annahme der ETH in Abhängigkeit von
\begin{enumerate}[label=(\roman*),leftmargin=1.6em]
\item der Anzahl der unterschiedlichen Itemgrößen $d$?
\item der binären Kodierungslänge $L$ der größten Itemgröße $\Delta$ (d.h.\ $L = \log(\Delta)$)?
\end{enumerate}
Beweisen Sie die entsprechenden unteren Schranken!\\
\textit{Hinweis:} Sie dürfen auch hier -- wie in den Hausaufgaben zur ETH -- Faktoren, die polynomiell in der Eingabekodierung sind, vernachlässigen.
\end{enumerate}
\bigskip
\begin{center}\textit{Viel Erfolg!}\end{center}

%======================================================================
%  KLAUSUR 4 — 19. Oktober 2023 — SS 2023
%======================================================================
\newpage
\setcounter{page}{1}
\klausurkopf{19.\ Oktober 2023}{SS 2023}{%
  \item Bearbeiten Sie \textit{alle} Aufgaben.
  \item Sie haben 120 Minuten Zeit für die Klausurbearbeitung.
  \item Erlaubte Hilfsmittel: Ein einseitig handschriftlich beschriebenes Blatt Papier, (bunte) Stifte (kein Rot, kein Grün, kein Bleistift, kein Tintenkiller, kein Tipp-Ex).
  \item Schreiben Sie auf jedes Blatt ihren Namen.
  \item Wenn Sie Schmierzettel verwenden, um eine Aufgabe zu bearbeiten, verweisen Sie in der Aufgabe auf diese.
  \item Einsichtnahme: 2.11.23, 13:30--14:30 Uhr.
  \item Die Klausur hat 6 Aufgaben auf 13 Seiten -- überprüfen Sie bitte vor der Bearbeitung, dass Ihre Klausur vollständig ist.
}

\newpage
\aufgabe{1 \quad CHRISTOFIDES' ALGORITHMUS}{3+7 Punkte}
Gegeben sei folgender Graph $G = (V,E)$:

\begin{grafik}
Ungerichteter, kantengewichteter Graph mit vier Knoten $a, b, c, d$. Anordnung ungefähr: $d$ oben links, $a$ links, $c$ rechts, $b$ unten. Die in der Figur ablesbaren Kantengewichte sind: $3,\ 2,\ 3,\ 1,\ 2$. Die genaue Kanten-zu-Gewicht-Zuordnung ist der Originalzeichnung zu entnehmen (der Graph dient als Eingabe für Christofides' Algorithmus mit Startknoten $a$; die Distanzen müssen für die Korrektheit u.\,a.\ die Dreiecksungleichung erfüllen).
\end{grafik}

\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item 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?
\item Wenden Sie den Algorithmus von Christofides auf den Graphen $G$ mit Startknoten $a$ an. Geben 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.
\end{enumerate}

\newpage
\aufgabe{2 \quad DOMINATING SET}{3+3+4 Punkte}
Betrachten Sie das folgende Problem:

\textbf{Problem: DOMINATING SET}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$ (wobei $V = \{1,\dots,n\}$ für eine Zahl $n \in \mathbb{N}_{\ge 1}$) und eine Zahl $k \in \mathbb{N}_0$.\\
\textbf{Entscheide:} Gibt es eine Teilmenge $D \subseteq V$ der Knoten mit $|D| \le k$, sodass jeder Knoten $v \in 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:
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Geben Sie ein Zertifikat für DOMINATING SET an.
\item Beschreiben Sie einen polynomiellen Verifizierer für DOMINATING SET und schätzen Sie die Laufzeit in $O$-Notation konkret ab.
\item Beschreiben Sie (in Worten) eine polynomielle, nicht-deterministische Turing-Maschine, die DOMINATING SET löst. Schätzen Sie auch hier die Laufzeit in $O$-Notation konkret ab.
\end{enumerate}

\newpage
\aufgabe{3 \quad APPROXIMATIVE ALGORITHMEN}{6+4 Punkte}
Das Problem MIN-EDGE-COVER sei folgendermaßen definiert:

\textbf{Problem: MIN-EDGE-COVER}\\
\textbf{Eingabe:} Ein zusammenhängender, ungerichteter Graph $G = (V,E)$.\\
\textbf{Ausgabe:} Eine Teilmenge der Kanten $C \subseteq E$ mit minimaler Kardinalität, sodass jeder Knoten $v \in V$ zu mindestens einer Kante aus $C$ inzident ist.

Betrachten Sie folgenden Algorithmus $A$:
\begin{itemize}[leftmargin=1.4em,topsep=2pt,itemsep=1pt]
\item Gehe (in beliebiger Reihenfolge) alle Knoten durch:
\item 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.
\item Gib anschließend die entstehende Menge $C$ zurück.
\end{itemize}

\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Zeigen Sie, dass obiger Algorithmus Güte 2 hat, d.h.\ $A(G) \le 2 \cdot \mathrm{OPT}(G)$ gilt für alle Eingaben $G$.
\item Sei $n \in \mathbb{N}_{\ge 4}$ gerade. Betrachten Sie den Graphen $G_n$, der genau $n$ Knoten und $n$ Kanten hat und einen Kreis beschreibt. D.h.\ $G_n = (\{1,\dots,n\},\ \{\{i,i+1\} \mid i \in \{1,\dots,n-1\}\} \cup \{\{n,1\}\})$. Wie viele Kanten hat ein MIN-EDGE-COVER des Graphen $G_n$? Wie schlecht ist die Approximationsrate des Algorithmus $A$ für $G_n$ 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.
\end{enumerate}

\newpage
\aufgabe{4 \quad BEWEIS -- SCHEDULING AUF IDENTISCHEN MASCHINEN}{10 Punkte}
Betrachten Sie das Scheduling-Problem $P\,||\,C_{\max}$:

\textbf{Problem: $P\,||\,C_{\max}$}\\
\textbf{Eingabe:} Eine Liste $L = (J_1,\dots,J_n)$ von $n$ Jobs mit Ausführungszeiten $p_1,\dots,p_n \in \mathbb{N}$, und $m$ identische Maschinen.\\
\textbf{Ausgabe:} Ein Schedule (Partition von $J$ in $m$ Teilmengen $B_1,\dots,B_m$) mit minimaler maximaler Last $C_{\max} := \max_{1 \le i \le m} \sum_{J_j \in B_i} p_j$.

Betrachten Sie den folgenden Algorithmus ListScheduling, der einen Schedule berechnet. Sei $\mathrm{LS}(I)$ die Last $C_{\max}$ eines Schedules des Algorithmus, und $\mathrm{OPT}(I)$ die Last $C_{\max}$ eines optimalen Schedules zur Eingabe $I$. Zeigen Sie: Für alle Eingaben $I = (L,m)$ gilt $\mathrm{LS}(I)/\mathrm{OPT}(I) \le 2 - 1/m$.

\begin{shaded}
\ttfamily\small
\textbf{Algorithmus LISTSCHEDULING($L = (J_1,\dots,J_n),\ m$)}\\
1\quad \textbf{for} $i = 1$ \textbf{to} $m$ \textbf{do}\\
2\quad\quad $E_i = 0$;\ $B_i = \emptyset$;\\
3\quad \textbf{od}\\
4\quad \textbf{for} $j = 1$ \textbf{to} $n$ \textbf{do}\\
5\quad\quad wähle Job $J_j$ aus Liste $L$;\\
6\quad\quad wähle Maschine $M_i$ mit minimaler Last $E_i$;\\
7\quad\quad $B_i = B_i \cup \{J_j\}$;\\
8\quad\quad $E_i = E_i + p_j$;\\
9\quad \textbf{od}
\end{shaded}

\newpage
\aufgabe{5 \quad NP UND NP-VOLLSTÄNDIGKEIT}{4+5+6 Punkte}
\textbf{Problem: HAMILTONIANPATH}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$.\\
\textbf{Entscheide:} Existiert ein Pfad in $G$, der jeden Knoten genau einmal besucht?

\medskip
\textbf{Problem: HAMILTONIANCYCLE}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$.\\
\textbf{Entscheide:} Existiert ein Kreis in $G$, der jeden Knoten genau einmal besucht?

\begin{enumerate}[label=(\alph*),leftmargin=1.6em]
\item Sei $L \subseteq \text{SUBSETSUM}$ die Menge der (positiven) SubsetSum-Instanzen, bei denen keine der Itemgrößen eine Zweierpotenz ist. Zeigen Sie, dass $L$ NP-vollständig ist.
\item Geben Sie eine polynomielle Reduktion von HAMILTONIANPATH auf HAMILTONIANCYCLE an.
\item Geben Sie eine polynomielle Reduktion von HAMILTONIANCYCLE auf HAMILTONIANPATH an.
\end{enumerate}

\newpage
\aufgabe{6 \quad UNTERE SCHRANKEN UND ETH}{5+5 Punkte}
Im Folgenden bezeichne $\langle I \rangle$ die Kodierungslänge der Instanz.

\begin{enumerate}[label=(\alph*),leftmargin=1.6em]
\item Wir betrachten folgendes Problem:

\textbf{Problem: HITTINGSET}\\
\textbf{Eingabe:} Eine Menge $U'$ sowie $r'$ Teilmengen $F'_1,\dots,F'_{r'} \subseteq U'$ und eine Zahl $k'$.\\
\textbf{Entscheide:} Gibt es eine Menge $S' \subseteq U'$ mit $|S'| \le k'$ und $S' \cap F'_i \ne \emptyset$ für alle $i' \in \{1,\dots,r'\}$?

Sie dürfen nutzen, dass sich HITTINGSET unter Annahme der ETH nicht in Zeit $2^{o(r')}\langle I \rangle^{O(1)}$ und nicht in Zeit $2^{o(|U'|)}\langle I \rangle^{O(1)}$ lösen lässt.

\medskip
\textbf{Problem: SETCOVER}\\
\textbf{Eingabe:} Eine Menge $U$ sowie $r$ Teilmengen $F_1,\dots,F_r \subseteq U$ und eine Zahl $k$.\\
\textbf{Entscheide:} Gibt es eine Menge $S \subseteq \{1,\dots,r\}$ mit $|S| \le k$ und $\bigcup_{i \in S} F_i = U$?

Welche unteren Schranken ergeben sich
\begin{enumerate}[label=(\roman*),leftmargin=1.6em]
\item in Hinblick auf $|U|$ sowie
\item in Hinblick auf $r$
\end{enumerate}
für SETCOVER unter Annahme der ETH aus den unteren Schranken für HITTINGSET, wenn man folgende Reduktion von SetCover auf HittingSet verwendet?

Sei $(F,U,k)$ eine SETCOVER-Instanz. Setze $V_1 := U$ und $V_2 := \{1,\dots,r\}$. Sei $V := V_1 \mathbin{\dot\cup} V_2$. Weiter sei $E = \{\, \{v,w\} \mid v \in V_1,\ w \in V_2,\ v \in F_w \,\}$. Damit ist $G = (V,E)$ ein bipartiter Graph mit Partitionen $V_1, V_2$. Setze $U' := \{1,\dots,r\}$. Erzeuge nun eine Menge $F'_w$ für jeden Knoten $w \in V_1$, indem $F'_w := \{v \in V_2 \mid \{v,w\} \in E\}$ gesetzt wird. Sei $F' := \{F'_w \mid w \in V_1\}$. Mit $k' = k$ ist die berechnete Instanz nun durch $(F', U', k')$ gegeben.

\item Wir wollen uns mit einem Problem beschäftigen, das ein mächtiges Werkzeug im Bereich der Optimierung ist: Integrale Lineare Programme (ILPs).

\textbf{Problem: ILP-FEASIBILITY}\\
\textbf{Eingabe:} Eine Matrix $A \in \mathbb{Z}^{M \times N}$, eine rechte Seite $b \in \mathbb{Z}^M$.\\
\textbf{Entscheide:} Gibt es einen Vektor $x \in \mathbb{Z}^N_{\ge 0}$ mit $Ax \le b$, d.h.\ $A_i x_i \le b_i$ für alle $i \in \{1,\dots,M\}$?

Welche unteren Schranken ergeben sich
\begin{enumerate}[label=(\roman*),leftmargin=1.6em]
\item in Hinblick auf $M$ sowie
\item im Hinblick auf $N$
\end{enumerate}
für ILP-FEASIBILITY unter Annahme der ETH, wenn man folgende Reduktion von 3-SAT auf ILP-FEASIBILITY verwendet?

Sei $\varphi$ eine 3-SAT-Instanz mit $m$ Klauseln $(C_i)_{i \in m}$ und $n$ Variablen. Analog zu linearen Gleichungssystemen ($Ax = b$), die aus $M$ Gleichungen bestehen, haben wir bei $Ax \le 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 jede SAT-Variable $v$ sei $x_v$ die ILP-Variable, die zum SAT-Literal $v$ korrespondiert, und $x_{\bar v}$ die, die zum SAT-Literal $\bar v$ korrespondiert. Für jede Klausel $C_i$ erzeugen wir eine Ungleichung $-\sum_{\ell \in C_i} x_\ell \le -1$. Weiter erzeugen wir für jede SAT-Variable $v$ zwei Ungleichungen: $x_v + x_{\bar v} \le 1$ und $-x_v - x_{\bar v} \le -1$. Durch das Eintragen der entsprechenden Koeffizienten in eine erweiterte Koeffizientenmatrix (bestehend aus Matrix $A$ und rechter Seite $b$) erhalten wir die ILP-FEASIBILITY-Instanz.
\end{enumerate}
\bigskip
\begin{center}\textit{Viel Erfolg!}\end{center}

\end{document}
