This commit is contained in:
team3
2026-07-20 22:34:19 +02:00
commit d988d850dd
177 changed files with 2032708 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,639 @@
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[main=ngerman, provide=*]{babel}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{mathtools}
\usepackage{geometry}
\usepackage{enumitem}
\usepackage{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\usepackage{scalerel}
\geometry{a4paper, left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm}
% ---------------------------------------------------------------
% Umgebungen
% ---------------------------------------------------------------
\newtheorem{definition}{Definition}
\newtheorem*{loesung}{Lösung}
% Grafik-Ersatz: klare Beschreibung statt Abbildung
\newtcolorbox{grafik}[1]{
colback=gray!5,
colframe=gray!50,
fonttitle=\bfseries,
title={Abbildungsbeschreibung: #1},
breakable
}
% Kopf jedes offiziellen Aufgabenblatts
\newcommand{\blattheader}[2]{%
\begin{flushleft}
\begin{minipage}{0.15\textwidth}
\begin{tcolorbox}[colback=gray!8,colframe=gray!40,boxsep=2pt,left=2pt,right=2pt,top=2pt,bottom=2pt,halign=center,valign=center,height=2.2cm]
\scriptsize\itshape Logo\\ CAU Kiel\\ (rundes\\ Siegel)
\end{tcolorbox}
\end{minipage}\hfill
\begin{minipage}{0.82\textwidth}
{\bfseries CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL}\\
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität\\
Prof.\ Dr.\ K.\ Jansen, B.\ Schumacher, C.\ Wambsganz
\end{minipage}
\end{flushleft}
\begin{flushright}#1\end{flushright}
\begin{center}
{\Large\bfseries Hausaufgaben zur Vorlesung »Analyse von Algorithmen und Komplexität«}\\[0.4em]
{\large Blatt #2}
\end{center}
\vspace{0.5em}
}
% Kopf jeder Abgabe von Marek
\newcommand{\abgabeheader}[2]{%
\begin{center}
{\Large\bfseries Hausaufgabe #1}\\[0.4em]
Marek Lenczewski\\
Matrikelnummer: 1025252\\
#2
\end{center}
\vspace{0.5em}
}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0.5em}
\begin{document}
% ===============================================================
% BLATT 9 Aufgabenblatt (Musterlösung)
% ===============================================================
\blattheader{09.06.2025}{9}
\begin{definition}[Vertex Cover (VC)]
Für einen (ungerichteten) Graphen $G = (V,E)$ ist ein Vertex Cover eine Menge von Knoten $C \subseteq V$, sodass $u \in C$ oder $v \in C$ für alle $\{u,v\} \in E$ gilt, also ist für alle Kanten mindestens ein Endpunkt in $C$.
\end{definition}
Für das \textsc{VertexCover} Problem ist neben einem Graphen $G$ eine Zahl $k \in \mathbb{N}_{\geq 0}$ gegeben und es wird gefragt, ob ein Vertex Cover mit Größe (Anzahl der Knoten) höchstens $k$ in $G$ existiert.
\begin{definition}[Feedback Vertex Set (FVS)]
Für einen gerichteten Graphen $G = (V,E)$ ist ein Feedback Vertex Set eine Menge von Knoten $X \subseteq V$, sodass $G \setminus X$ kreisfrei ist.
\end{definition}
Für das \textsc{FeedbackVertexSet} Problem ist neben einem Graphen $G$ eine Zahl $k \in \mathbb{N}_{\geq 0}$ gegeben und es wird gefragt, ob ein Feedback Vertex Set mit Größe (Anzahl der Knoten) höchstens $k$ in $G$ existiert.
\begin{grafik}{Abbildung 1 -- Beispiel Graph}
Gerichteter Graph mit acht Knoten $\{1,2,3,4,5,6,7,8\}$.\\[0.3em]
\textbf{Anordnung:} Obere Reihe von links nach rechts: $1$, $6$, $2$. Im Zentrum liegen $5$ (links der Mitte) und $7$ (rechts der Mitte). Unten links steht $8$, unten Mitte $4$, rechts $3$.\\[0.3em]
\textbf{Gerichtete Kanten (wie in der Abbildung gezeichnet):}
\[
1 \to 6,\quad 6 \to 2,\quad 2 \to 3,\quad 1 \to 5,\quad 6 \to 5,\quad 7 \to 5,
\]
\[
5 \to 8,\quad 8 \to 4,\quad 4 \to 5,\quad 3 \to 4,\quad 3 \to 7,\quad 4 \to 7.
\]
Für das Vertex Cover ist die Orientierung der Kanten nicht relevant; für das Feedback Vertex Set schon.
\end{grafik}
\subsection*{Hausaufgabe 9.1 (Nichtdeterministischer Algorithmus für VC) \hfill (5 Punkte)}
\begin{enumerate}
\item Finden Sie ein minimales Vertex Cover in Abbildung 1. Für ein Vertex Cover ist die Orientierung der Kanten nicht relevant.
\item Zeigen Sie $\textsc{VertexCover} \in \mathbf{NP}$, indem Sie einen nichtdeterministischen Algorithmus angeben, der \textsc{VertexCover} in Polynomialzeit löst. Begründen Sie die Korrektheit und die Laufzeit von Ihrem Algorithmus.
\end{enumerate}
\begin{loesung}\
\begin{enumerate}
\item Ein minimales Vertex Cover ist zum Beispiel $\{3,5,6,7,8\}$.
\item Unser nichtdeterministischer Algorithmus geht wie folgt vor: Für jeden Knoten wird nichtdeterministisch entschieden, ob dieser im Vertex Cover sein soll. Nachdem dies für alle Knoten entschieden wurde, wird überprüft, ob nicht mehr als $k$ Knoten gewählt wurden und ob für jede Kante mindestens ein Endpunkt im Vertex Cover liegt.
Existiert ein Vertex Cover im Graphen, existiert auch eine Reihe von nichtdeterministischen Entscheidungen, die diese Teilmenge von Knoten auswählt. Diese Teilmenge wird dann auch von dem Algorithmus akzeptiert. Damit ist der Algorithmus korrekt.
Beide diese Schritte können naiv in Polynomialzeit erledigt werden, also löst dieser Algorithmus das Vertex Cover Problem in Polynomialzeit.
\end{enumerate}
\end{loesung}
\textbf{Bewertung} 1 Punkt für das Beispiel und 4 Punkte für den Algorithmus, dabei 2 Punkte für die Beschreibung und jeweils 1 Punkt für Korrektheit und Laufzeit.
\subsection*{Hausaufgabe 9.2 (Polynomieller Verifizierer für FVS) \hfill (5 Punkte)}
\begin{enumerate}
\item Finden Sie ein minimales Feedback Vertex Set in Abbildung 1.
\item Zeigen Sie $\textsc{FeedbackVertexSet} \in \mathbf{NP}$, indem Sie einen polynomiellen Verifizierer für \textsc{FeedbackVertexSet} angeben. Begründen Sie die Korrektheit und die Laufzeit von Ihrem Verifizierer.
\end{enumerate}
\begin{loesung}\
\begin{enumerate}
\item Ein minimales FVS ist zum Beispiel $\{5,6\}$.
\item Das Zertifikat hat die Form einer Teilmenge $X \subseteq V$, die beschreibt, welche Knoten das Feedback Vertex Set bilden sollen. Zum Beispiel über ein Bit pro Knoten. Nun wird überprüft, ob $|X| \leq k$ gilt und ob $G \setminus X$ azyklisch ist.
Hat der Graph ein Feedback Vertex Set von Größe maximal $k$, gibt es ein Zertifikat, welches dieses beschreibt. Dieses Zertifikat wird dann von unserem Verifizierer akzeptiert, damit ist der Verifizierer korrekt.
Die Größe von $X$ zu überprüfen ist naiv in Polynomialzeit möglich. Für den zweiten Test bietet sich der Algorithmus zur topologischen Sortierung aus der Vorlesung an, welcher in Polynomialzeit eine topologische Sortierung findet, wenn der gegebene Graph azyklisch ist. Insgesamt ist dieser Verifizierer korrekt und auch ein polynomieller Verifizierer.
\end{enumerate}
\end{loesung}
\textbf{Bewertung} 1 Punkt für das Beispiel und 4 Punkte für den Verifizierer, dabei 2 Punkte für die Beschreibung und jeweils 1 Punkt für Korrektheit und Laufzeit.
\begin{flushleft}\small
\textbf{Abgabe:} 16.06.2025, 10:00 in Moodle -- bitte beachten Sie die Informationen zum Abgabeformat im Moodlekurs.
\end{flushleft}
\newpage
% ===============================================================
% ABGABE Hausaufgabe 9 (Marek Lenczewski)
% ===============================================================
\abgabeheader{9}{22.\ Juni 2025}
\section*{Hausaufgabe 9.1}
\subsection*{Teil 1}
Ein minimales Vertex Cover ist $C = \{2,7,5,4,1\}$.\\
Die minimale Knotenanzahl ist $5$.
\subsection*{Teil 2}
Der Algorithmus arbeitet wie folgt:
\begin{itemize}
\item Zuerst wird für jeden Knoten $v \in V$ nichtdeterministisch entschieden, ob dieser in das Vertex Cover aufgenommen wird. Dabei wird drauf geachtet, dass die Anzahl $k$ nicht übersteigt.
\item Danach wird geprüft, ob für jede Kante $\{u,v\} \in E$ entweder $v \in C$ oder $u \in C$ oder beides zutrifft.
\item Falls dies für alle Kanten gilt, akzeptieren wir. Andernfalls lehnen wir ab.
\end{itemize}
Existiert ein Vertex Cover der Größe höchstens $k$, dann gibt es auch eine, nichtdeterministisch ausgewählte, Knotenmenge, die dazu passt. Von dieser werden alle Kanten abgedeckt und der Algorithmus akzeptiert. Falls es kein Vertex Cover gibt, dann lehnt der Algorithmus ab. Die Auswahl der Knoten und die Prüfung der Kanten läuft in polynomieller Zeit, also ist dies ein polynomieller nichtdeterministischer Algorithmus, der \textsc{VertexCover} löst und damit ist $\textsc{VertexCover} \in \mathbf{NP}$.
\section*{Hausaufgabe 9.2}
\subsection*{Teil 1}
Ein minimales Feedback Vertex Set ist $X = \{1,5\}$.
\subsection*{Teil 2}
Der Verifizierer arbeitet wie folgt:
\begin{itemize}
\item Es wird eine Teilmenge $X \subseteq V$ übergeben, die das Feedback Vertex Set darstellen soll.
\item Dann wird geprüft, ob $|X| \leq k$ gilt und es wird abgelehnt, falls es nicht gilt.
\item Danach wird ein Graph $G' = G \setminus X$ konstruiert, in dem alle Knoten aus $X$ und alle an $X$ angrenzenden Kanten entfernt wurden.
\item Auf dem Graphen $G'$ wird eine Tiefensuche durchgeführt, dabei werden Knoten während der Bearbeitung grau markiert und beim Backtracking schwarz.
\item Wird eine Kante zu einem grauen Knoten entdeckt, dann wird abgelehnt, da dies einen Kreis anzeigt.
\item Falls die Tiefensuche den gesamten Graphen durchläuft ohne abzulehnen, dann wird akzeptiert.
\end{itemize}
Existiert ein Feedback Vertex Set der Größe höchstens $k$, dann gibt es auch ein Zertifikat, das genau diese Knotenmenge beschreibt. Alle Teilmengen, die die Tiefensuche überstehen, werden von dem Verifizierer akzeptiert und sonst abgelehnt.
Die Prüfung der übergebenen Teilmenge und die Konstruktion des Graphen laufen in polynomieller Zeit. Ebenfalls die Tiefensuche läuft in polynomieller Zeit, somit ist auch der Verifizierer polynomiell und verifiziert die Lösung für das \textsc{FeedbackVertexSet} in polynomieller Zeit. Also gilt $\textsc{FeedbackVertexSet} \in \mathbf{NP}$.
\newpage
% ===============================================================
% BLATT 10 Aufgabenblatt (Musterlösung)
% ===============================================================
\blattheader{16.06.2025}{10}
\begin{definition}[Feedback Vertex Set (FVS)]
Für einen gerichteten Graphen $G = (V,E)$ ist ein Feedback Vertex Set eine Menge von Knoten $X \subseteq V$, sodass $G \setminus X$ kreisfrei ist.
\end{definition}
Für das \textsc{FeedbackVertexSet} Problem ist neben einem Graphen $G$ eine Zahl $k \in \mathbb{N}_{\geq 0}$ gegeben und es wird gefragt, ob ein Feedback Vertex Set mit Größe (Anzahl der Knoten) höchstens $k$ in $G$ existiert.
\subsection*{Hausaufgabe 10.1 (\textsc{FeedbackVertexSet} ist \textbf{NP}-vollständig) \hfill (5 Punkte)}
Zeigen Sie, dass \textsc{FeedbackVertexSet} \textbf{NP}-vollständig ist.
\textit{Hinweis:} Reduzieren Sie \textsc{VertexCover} auf \textsc{FeedbackVertexSet}. Wenn ein Vertex Cover aus einem Graphen entfernt wird, hat dieser keine Kanten mehr.
\begin{loesung}
$\textsc{FeedbackVertexSet} \in \mathbf{NP}$ ist bekannt aus der letzten Hausaufgabe. Nun zeigen wir eine Reduktion von \textsc{VertexCover} auf \textsc{FeedbackVertexSet}. Betrachte die folgende \textbf{Reduktion:}
Für eine gegebene \textsc{VertexCover} Instanz $(G = (V,E), k)$ erzeuge den Graphen $G' = (V,E')$ mit $E' := \{(u,v),(v,u) \mid \{u,v\} \in E\}$. Gebe $(G',k)$ als \textsc{FeedbackVertexSet} Instanz aus.
\textbf{Korrektheit:}
$\Rightarrow$ (Falls $(G,k)$ eine Ja-Instanz von \textsc{VertexCover} ist, dann ist $(G',k)$ eine Ja-Instanz von \textsc{FeedbackVertexSet}.):
Sei $C \subseteq V$ ein Vertex Cover mit Größe kleiner oder gleich $k$. Dann enthält $G \setminus C$ keine Kanten. Damit hat $G' \setminus C$ ebenfalls keine Kanten und somit keine Kreise.
$\Leftarrow$ (Falls $(G',k)$ eine Ja-Instanz von \textsc{FeedbackVertexSet} ist, dann ist $(G,k)$ eine Ja-Instanz von \textsc{VertexCover}.):
Sei $X \subseteq V'$ ein Feedback Vertex Set mit Größe kleiner oder gleich $k$. Dann ist $X$ ein Vertex Cover in $G$, da ansonsten eine Kante $\{u,v\} \in E$ existiert, für die $u \notin X \wedge v \notin X$ gilt. Damit wäre aber $(u,v,u)$ ein Kreis in $G'$ und $X$ somit kein Feedback Vertex Set.
\textbf{Laufzeit:} Das Erzeugen der Menge $E'$ geht in Zeit $O(|E|)$. Insgesamt ist die Reduktion demnach in Laufzeit $O(|E|)$, also in polynomieller Laufzeit, durchführbar.
Also existiert eine polynomielle Reduktion von \textsc{VertexCover} auf \textsc{FeedbackVertexSet}. Da \textsc{VertexCover} nach den aktuellen Präsenzaufgaben \textbf{NP}-vollständig ist und $\textsc{FeedbackVertexSet} \in \mathbf{NP}$ gilt, ist somit \textsc{FeedbackVertexSet} \textbf{NP}-vollständig. \hfill$\square$
\end{loesung}
\textbf{Bewertung} 2 Punkte für die Konstruktion, 1 Punkt für den 1. Fall, 1 Punkt für den 2. Fall, 0.5 Punkte für die Laufzeit, 0.5 Punkte für die Beweisführung im Ganzen.
\subsection*{Hausaufgabe 10.2 (Turingmaschinen) \hfill (5 Punkte)}
Entwerfen Sie eine Turingmaschine für die Sprache $L = \{w \in \Sigma^* \mid w \text{ ist ein Palindrom}\}$ über einem gegebenen Alphabet $\Sigma$ und geben Sie die Laufzeit Ihrer Turingmaschine an. Begründen Sie dabei, warum Ihre Turingmaschine korrekt ist und die angegebene Laufzeit hat.
\begin{loesung}
Die Turingmaschine sieht folgendermaßen aus:
\begin{enumerate}
\item[(1)] Falls kein Wort auf dem Band steht, akzeptiere.
\item[(2)] Falls nur ein Buchstabe auf dem Band steht, akzeptiere.
\item[(3)] Lese den ersten Buchstaben und bewege danach den Kopf zum letzten Buchstaben. Falls die beiden Buchstaben verschieden sind, verwerfe. Ansonsten ersetze beide Buchstaben durch ein neues Symbol $x$. Ersetze dafür zuerst den letzten Buchstaben und bewege dann den Kopf zum ersten Buchstaben.
\item[(4)] Gehe zu Schritt (1).
\end{enumerate}
\textbf{Korrektheit:} Die Turingmaschine vergleicht immer den ersten und den letzten Buchstaben. Wenn die Buchstaben nicht gleich sind, ist das Wort kein Palindrom und es wird verworfen. Ansonsten werden die Buchstaben rausgestrichen (siehe Schritt (3)). Diese Prozedur wird solange wiederholt, bis man in der Mitte des Wortes angekommen ist und entweder nur noch ein Buchstabe oder kein Buchstabe vorhanden ist. In beiden Fällen ist das Wort ein Palindrom und es wird akzeptiert (siehe Schritte (1) und (2)).
\textbf{Laufzeit:} Die Schritte (1) bis (3) benötigen jeweils eine Laufzeit von $O(n)$, wobei $n$ hier die Länge der Eingabe bezeichnet. Da in jedem Durchlauf der Schritte (1) bis (3) zwei Buchstaben raus gestrichen werden oder das Wort akzeptiert oder verworfen wird, gibt es maximal $\lfloor n/2 \rfloor$ Durchläufe, bis nur noch ein oder kein Buchstabe auf dem Band stehen und somit in den Schritten (1) oder (2) akzeptiert wird. Damit ergibt sich insgesamt eine Laufzeit von $O(n^2)$.
\end{loesung}
\textbf{Bewertung} 2 Punkte für die Turingmaschine, 1 Punkt für die Korrektheit und 2 Punkte für die Laufzeit: 1 Punkt Angabe, 1 Punkt Begründung.
\begin{flushleft}\small
\textbf{Abgabe:} 23.06.2025, 10:00 in Moodle -- bitte beachten Sie die Informationen zum Abgabeformat im Moodlekurs.
\end{flushleft}
\newpage
% ===============================================================
% ABGABE Hausaufgabe 10 (Marek Lenczewski)
% ===============================================================
\abgabeheader{10}{22.\ Juni 2025}
\section*{Hausaufgabe 10.1}
\subsection*{Teil 1: FeedbackVertexSet $\in$ NP}
Zuerst brauchen wir einen polynomiellen Verifizierer, um zu zeigen, dass $\textsc{FeedbackVertexSet} \in \mathbf{NP}$.
Der Verifizierer bekommt einen Graphen $G$ und eine Teilmenge $X$, dieser arbeitet wie folgt:
\begin{itemize}
\item Prüfe, ob $|X| \leq k$, sonst ablehnen.
\item Den Graphen $G' = G \setminus X$ konstruieren.
\item Tiefensuche auf $G'$ durchführen, dabei werden Knoten vom aktuellen Pfad als grau markiert und nach vollständiger Bearbeitung als schwarz. Wird eine Kante zu einem grauen Knoten gefunden, zeigt dies einen Kreis an und wir lehnen ab.
\item Akzeptieren, wenn die Tiefensuche nichts findet.
\end{itemize}
Die Schritte 1--4 laufen in polynomieller Zeit, somit läuft der Verifizierer in polynomieller Zeit. Damit ist $\textsc{FeedbackVertexSet} \in \mathbf{NP}$.
\subsection*{Teil 2: FeedbackVertexSet ist NP-schwer}
Jetzt brauchen wir eine Reduktion von \textsc{VertexCover} auf \textsc{FeedbackVertexSet}, um zu zeigen, dass \textsc{FeedbackVertexSet} NP-schwer ist.
\textbf{Konstruktion:} Sei dafür ein \textsc{VertexCover} gegeben mit einem Graphen $G$ und einer Zahl $k$. Aus $G$ wird ein $G'$, wobei jede ungerichtete Kante $\{u,v\} \in E$ durch zwei gerichtete Kanten $(u,v)$ und $(v,u)$ zu $E'$ ersetzt wird. Das $k$ wird einfach übernommen $k = k'$.
\textbf{Beweis VertexCover nach FeedbackVertexSet:}
\begin{itemize}
\item Sei $C$ ein \textsc{VertexCover} von $G$ mit $|C| \leq k$.
\item Da $C$ ein \textsc{VertexCover} ist, wird jede Kante mit $C$ verbunden.
\item Wenn $C$ entfernt wird, dann hat $G \setminus C$ keine Kanten mehr.
\item Dann hat auch $G' \setminus C$ keine Kanten und ist somit kreisfrei.
\item Damit ist $C$ ein \textsc{FeedbackVertexSet} für $G'$ mit $|C| \leq k'$.
\end{itemize}
\textbf{Beweis FeedbackVertexSet nach VertexCover:}
\begin{itemize}
\item Sei $X$ ein \textsc{FeedbackVertexSet} von $G'$ mit $|X| \leq k'$.
\item Dann ist $G' \setminus X$ kreisfrei.
\item Angenommen $X$ wäre kein \textsc{VertexCover} von $G$, dann gäbe es eine Kante $\{u,v\} \in E$ mit $u,v \notin X$.
\item Somit wären $u,v$ noch in $G' \setminus X$ vorhanden.
\item Die Kanten $(u,v)$ und $(v,u)$ würden, durch die Konstruktion, einen Kreis erzeugen.
\item Das ist ein Widerspruch, somit ist $G' \setminus X$ kreisfrei und $X$ ist ein \textsc{VertexCover}.
\end{itemize}
Da $\textsc{FeedbackVertexSet} \in \mathbf{NP}$ und NP-schwer ist, folgt dass \textsc{FeedbackVertexSet} NP-vollständig ist. \hfill$\square$
\section*{Hausaufgabe 10.2}
\begin{loesung}
Die Turingmaschine arbeitet wie folgt:
\begin{enumerate}
\item Falls das Band leer ist oder nur aus Markierungen besteht, akzeptiere.
\item Merke das erste unmarkierte Zeichen und ersetze es durch $X$.
\item Laufe zum letzten unmarkierten Zeichen oder verwerfe.
\item Falls dieses Zeichen nicht mit dem gemerkten übereinstimmt, verwerfe.
\item Ersetze es durch $X$ und gehe zurück zum Anfang.
\item Gehe zu 1.
\end{enumerate}
\textbf{Korrektheit:} Ein Wort ist genau dann ein Palindrom, wenn es sich von vorne und hinten gleich liest. Dies prüft die Turingmaschine, indem sie schrittweise die äußeren Buchstaben verifiziert, bis nur noch einer oder keiner vorhanden ist, dann akzeptiert wird, und wenn eine Unstimmigkeit auftritt, dann lehnt sie ab.
\textbf{Laufzeit:} Die Turingmaschine hat eine Laufzeit von $O(n^2)$. In jedem Durchlauf macht sie $O(n)$ Schritte und das mit $O(n)$ Durchläufen. \hfill$\square$
\end{loesung}
\newpage
% ===============================================================
% BLATT 11 Aufgabenblatt (Musterlösung)
% ===============================================================
\blattheader{23.06.2025}{11}
\begin{definition}[Dreiecksüberdeckung eines Graphen ($\Delta$ COVER)]
Gegeben ist ein endlicher ungerichteter Graph $G = (V,E)$ und eine Zahl $k \in \mathbb{N}$. Dieser Graph hat eine Dreiecksüberdeckung, wenn eine Menge von Knoten $C_\Delta \subseteq V$ mit $|C_\Delta| \leq k$ existiert, so dass zu jedem Teilgraphen (Dreieck) $D = (V_D,E_D) \subseteq (V,E)$ mit $|V_D| = 3$ und $E_D = \{\{v_1,v_2\} \in V_D \times V_D \mid v_1 \neq v_2\}$ von $G$ gilt, $v \in C_\Delta$ für mindestens ein $v \in V_D$.
\end{definition}
\subsection*{Hausaufgabe 11.1 \hfill (10 Punkte)}
\begin{enumerate}
\item[(a)] (1 Punkt) Markieren Sie im folgenden Graphen (Abbildung 1 (a)) ein \textsc{VertexCover} der Größe 5.
\item[(b)] (1 Punkt) Markieren Sie im folgenden Graphen (Abbildung 1 (b)) eine Dreiecksüberdeckung der Größe 5.
\item[(c)] (8 Punkte) Zeigen Sie, dass $\Delta$ COVER \textbf{NP}-vollständig ist.
\end{enumerate}
\begin{grafik}{Abbildung 1 -- Beispielgraph (Aufgabenstellung)}
Zwei ungerichtete Graphen nebeneinander.\\[0.3em]
\textbf{Graph (a)} (links, für das VertexCover): Ein kleinerer Graph in Form einer geschlossenen Schleife mit einem angehängten Dreieck am unteren Ende. Grob: eine sechseckartige/rautenförmige Kette von Knoten bildet oben und in der Mitte eine Ringstruktur, an deren unterem Teil ein Dreieck hängt (drei paarweise verbundene Knoten).\\[0.3em]
\textbf{Graph (b)} (rechts, für die Dreiecksüberdeckung): Ein größerer, dichterer Graph, der aus mehreren miteinander verbundenen Dreiecken besteht. Er enthält mehrere Dreiecksstrukturen, die über gemeinsame Knoten und Kanten verknüpft sind (u.\,a.\ Dreiecke oben links und oben rechts sowie eine Kette von Dreiecken im unteren Bereich). Alle Kanten sind ungerichtet.
\end{grafik}
\begin{loesung}\end{loesung}
\begin{grafik}{Abbildung 2 -- Beispielgraph Lösung}
Dieselben beiden Graphen wie in Abbildung 1, jedoch mit markierten Lösungsknoten:\\[0.3em]
\textbf{(a)} Fünf Knoten sind markiert, die zusammen ein Vertex Cover der Größe 5 bilden (jede Kante des Graphen hat mindestens einen markierten Endpunkt).\\[0.3em]
\textbf{(b)} Fünf Knoten sind markiert, die zusammen eine Dreiecksüberdeckung der Größe 5 bilden (jedes Dreieck des Graphen enthält mindestens einen markierten Knoten).
\end{grafik}
(c) Wir zeigen zunächst, $\Delta$ COVER $\in \mathbf{NP}$ mittels eines polynomiellen Verifizierers.
Der polynomielle Verifizierer erhält als Zertifikat eine Menge von Knoten $C_\Delta \subseteq V$. Zunächst überprüft er, ob $|C_\Delta| \leq k$. Falls dies nicht der Fall ist, verwerfe die Instanz. Ansonsten überprüfe für alle Teilgraphen $D = (V_D,E_D) \subseteq (V,E)$ mit $|V_D| = 3$ und $E_D = \{\{v_1,v_2\} \in V_D \times V_D \mid v_1 \neq v_2\}$ von $G$, ob für mindestens ein $v \in V_D$ auch $v \in C_\Delta$ gilt. Falls dies gilt, akzeptiere. Ansonsten verwerfe.
\textbf{Korrektheit:} Der Verifizierer überprüft die geforderten Eigenschaften. Falls ein Graph eine Dreiecksüberdeckung besitzt, so existiert ein entsprechendes Zertifikat $C_\Delta$ und der Verifizierer akzeptiert die Instanz. Falls ein Graph keine Dreiecksüberdeckung besitzt, existiert kein valides entsprechendes Zertifikat $C_\Delta$ und der Verifizierer verwirft die Instanz.
\textbf{Laufzeit:} Es gibt maximal $|V|^3$ verschiedene Teilmengen, die ein Dreieck bilden könnten und daher überprüft werden müssen. Die Überprüfung geht in $O(|V|)$ Zeit. Da alle anderen Schritte des Verifizierers in $O(1)$ Zeit erledigt werden können, ergibt sich somit insgesamt eine Laufzeit von $O(|V|^4)$, was einer polynomiellen Laufzeit entspricht.
Also gilt $\Delta$ COVER $\in \mathbf{NP}$.
Nun reduzieren wir \textsc{VertexCover} auf $\Delta$ COVER. Betrachte folgende Reduktion:
Sei $I = (G = (V,E), k)$ eine Instanz von \textsc{VertexCover}. Bilde den Graphen $G' = (V',E')$ mit $V' = V \cup \{v_e \mid e \in E\}$ und $E' = E \cup \{\{v_e,e_1\},\{v_e,e_2\} \mid e = \{e_1,e_2\} \in E\}$. Gebe $I' = (G',k)$ als $\Delta$ COVER Instanz aus.
\textbf{Korrektheit:}
$\Rightarrow$ (Falls $(G,k)$ eine Ja-Instanz von \textsc{VertexCover} ist, dann ist $(G',k)$ eine Ja-Instanz von $\Delta$ COVER.):
Sei $C$ ein Vertex Cover mit Größe kleiner oder gleich $k$ von $G$. Dann ist $C$ ebenfalls eine Dreiecksüberdeckung mit Größe kleiner oder gleich $k$. Offensichtlich gilt $|C| \leq k$. Da $C$ ein Vertex Cover von $G$ ist, gilt für jede Kante $\{u,v\} \in E$, dass $u \in C$ oder $v \in C$. Für alle Teilgraphen $D = (V_D,E_D) \subseteq (V,E)$ mit $|V_D| = 3$ und $E_D = \{\{v_1,v_2\} \in V_D \times V_D \mid v_1 \neq v_2\}$ von $G$ gilt damit direkt, dass mindestens ein $v \in V_D$ auch in $C$ enthalten ist. Der Graph $G'$ besitzt neben allen solchen Teilgraphen in $G$ zusätzlich solche Teilgraphen (Dreiecke), die durch die Knotenmenge $\{v_e \mid e \in E\}$ und die entsprechenden Kanten $\{e,\{v_e,e_1\},\{v_e,e_2\} \mid e = \{e_1,e_2\} \in E\}$ entstehen. Für diese Dreiecke gilt aber auch, dass mindestens ein Knoten, nämlich $e_1$ oder $e_2$, in $C$ enthalten sein muss, da $C$ ein Vertex Cover ist.
$\Leftarrow$ (Falls $(G',k)$ eine Ja-Instanz von $\Delta$ COVER ist, dann ist $(G,k)$ eine Ja-Instanz von \textsc{VertexCover}.):
Sei $C_\Delta$ eine Dreiecksüberdeckung von $G'$ der Größe $|C_\Delta| \leq k$. Ohne Beschränkung der Allgemeinheit können wir davon ausgehen, dass $C_\Delta \subseteq V$ gilt: Falls für einen Knoten $v_e \in C_\Delta$ gilt, können wir $e_1$ zu $C_\Delta$ hinzufügen und $v_e$ aus $C_\Delta$ löschen. Dadurch bleibt die Überdeckungseigenschaft erhalten und die Menge wird höchstens kleiner. Nun gilt also $C_\Delta \subseteq V$. Die Menge $C_\Delta$ ist auch ein Vertex Cover mit Größe kleiner oder gleich $k$ von $G$. Offensichtlich gilt $|C_\Delta| \leq k$. Da für alle Teilgraphen $D' = (V'_D,E'_D) \subseteq (V',E')$ mit $|V'_D| = 3$ und $E'_D = \{\{v_1,v_2\} \in V'_D \times V'_D \mid v_1 \neq v_2\}$ von $G'$ gilt, dass mindestens ein Knoten $v \in V'_D$ ebenfalls in $C_\Delta$ enthalten sein muss, gilt dies auch für die Dreiecke $\{v_e,e_1,e_2\}$. Da außerdem $C_\Delta \subseteq V$ gilt, gilt $e_1 \in C_\Delta$ oder $e_2 \in C_\Delta$ für alle Kanten $e \in E$.
\textbf{Laufzeit:} Das Hinzufügen von einem neuen Knoten und zwei neuen Kanten pro Kante geht in $O(|E|)$. Damit geht die gesamte Reduktion in $O(|E|)$, also in polynomieller Zeit.
Also existiert eine polynomielle Reduktion von \textsc{VertexCover} auf $\Delta$ COVER. Da \textsc{VertexCover} \textbf{NP}-vollständig aus den Präsenzaufgaben bekannt ist und $\Delta$ COVER $\in \mathbf{NP}$ gilt, ist somit $\Delta$ COVER \textbf{NP}-vollständig.
\textbf{Bewertung} (a) und (b) jeweils 1 Punkt, (c) gibt 8 Punkte: 1 Punkt Angabe Verifizierer/NDTM, 0,5 Punkte Korrektheit Verifizierer/NDTM, 0,5 Punkte Laufzeit Verifizierer/NDTM, 1 Punkt Angabe Reduktion, 3 Punkte Korrektheit (je Richtung 1,5 Punkte), 1 Punkt Laufzeit Reduktion, 1 Punkt Beweisführung.
\begin{flushleft}\small
\textbf{Abgabe:} 30.06.2025, 10:00 in Moodle -- bitte beachten Sie die Informationen zum Abgabeformat im Moodlekurs.
\end{flushleft}
\newpage
% ===============================================================
% ABGABE Hausaufgabe 11 (Marek Lenczewski)
% ===============================================================
\abgabeheader{11}{28.\ Juni 2025}
\section*{Hausaufgabe 11.1}
\begin{grafik}{Handschriftliche Lösungsskizze (a), (b) und (c)}
\textbf{Skizze (a) -- VertexCover der Größe 5:} Der Graph aus Aufgabe 1(a) mit Knoten $1$ bis $10$. Als Vertex Cover sind 5 Knoten markiert.\\[0.3em]
\textbf{Skizze (b) -- Dreiecksüberdeckung der Größe 5:} Der Graph aus Aufgabe 1(b) mit Knoten $a$ bis $v$ (Buchstabenbeschriftung: $a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v$). Es sind 5 Knoten als Dreiecksüberdeckung markiert.\\[0.3em]
\textbf{Skizze (c):} Verweis auf den nachfolgenden Textbeweis.
\end{grafik}
\subsection*{Teil 1: $\Delta$-Cover $\in$ NP}
Zuerst brauchen wir einen polynomiellen Verifizierer, um zu zeigen, dass $\Delta$-Cover $\in \mathbf{NP}$.
Der Verifizierer bekommt einen Graphen $G = (V,E)$, Zahl $k$ und ein Zertifikat $C_\Delta \subseteq V$ und arbeitet wie folgt:
\begin{enumerate}
\item Prüfe, ob $|C_\Delta| \leq k$.
\item Prüfe alle Knotentripel $\{a,b,c\} \subseteq V$, ob sie ein Dreieck bilden (also ob $\{a,b\},\{b,c\}$ und $\{a,c\} \in E$ zutrifft) und ob $a$, $b$ oder $c \in C_\Delta$.
\item Ablehnen, falls ein Dreieck den Test nicht besteht, sonst akzeptieren.
\end{enumerate}
Die Schritte 1 und 3 laufen in $O(1)$ und Schritt zwei läuft in $O(|V|^3)$, das ergibt eine polynomielle Laufzeit. Damit ist $\Delta$-Cover $\in \mathbf{NP}$.
\subsection*{Teil 2: $\Delta$-Cover ist NP-schwer}
Jetzt brauchen wir eine Reduktion von \textsc{VertexCover} auf $\Delta$-Cover, um zu zeigen, dass $\Delta$-Cover NP-schwer ist.
\textbf{Konstruktion:} Sei dafür ein \textsc{VertexCover} gegeben mit einem Graphen $G = (V,E)$ und einer Zahl $k$. Aus $G$ wird $G' = (V',E')$, wobei für jede Kante $e = \{u,v\} \in E$ ein neuer Knoten $w_e \in V'$ hinzugefügt wird und mit beiden Knoten $u,v$ verbunden wird, sodass die Kanten $\{v,w_e\}$ und $\{u,w_e\}$ zu $E'$ dazu kommen. Das $k = k'$ wird übernommen. So werden aus allen Kanten Dreiecke.
\textbf{Beweis VertexCover nach $\Delta$-Cover:}
\begin{itemize}
\item Sei $C$ ein \textsc{VertexCover} für $G$ mit $|C| \leq k$.
\item Zu zeigen sei, dass $C$ auch ein $\Delta$-Cover für $G'$ mit $|C| \leq k$ ist.
\item Da $C$ ein \textsc{VertexCover} ist, gilt $u \in C$ oder $v \in C$.
\item Jedes Dreieck in $G'$ hat die Form $\{u,v,w_e\}$ für eine Kante $e = \{u,v\} \in E$.
\item Somit hat jedes Dreieck mindestens einen Knoten in $C$.
\item Also ist $C$ ein $\Delta$-Cover für $G'$.
\end{itemize}
\textbf{Beweis $\Delta$-Cover nach VertexCover:}
\begin{itemize}
\item Sei $C_\Delta$ ein $\Delta$-Cover für $G'$ mit $|C_\Delta| \leq k'$.
\item Jede Kante $e = \{u,v\} \in E$ bildet durch $\{u,v,w_e\}$ ein Dreieck in $G'$.
\item Also gilt $u$, $v$ oder $w_e \in C_\Delta$ für alle Kanten in $G'$.
\item Falls $w_e \in C_\Delta$, dann kann man $w_e$ durch $u$ oder $v$ tauschen ohne die Eigenschaft von $\Delta$-Cover zu verletzen, sodass $u$ oder $v \in C_\Delta$ für alle Kanten in $G'$ gilt.
\item Da sich die Knoten aus $C_\Delta$ nur vertauschen gilt weiter $|C| = |C_\Delta| \leq k$.
\item Weiter sind in $C_\Delta$ nur noch die Knoten aus $V$, somit gilt $u \in C$ oder $v \in C$ für alle Kanten $E$.
\item Also ist $C$ ein \textsc{VertexCover} für $G$.
\end{itemize}
Da $\Delta$-Cover $\in \mathbf{NP}$ und NP-schwer ist, folgt dass $\Delta$-Cover NP-vollständig ist. \hfill$\square$
\newpage
% ===============================================================
% BLATT 12 Aufgabenblatt (Musterlösung)
% ===============================================================
\blattheader{30.06.2025}{12}
\subsection*{Hausaufgabe 12.1 (Lower Bound: \textsc{VertexCover}) \hfill (5 Punkte)}
Betrachten Sie die Reduktion aus der Musterlösung zu Präsenzserie 10 von \textsc{Clique} auf \textsc{VertexCover}.
\begin{enumerate}
\item Geben Sie die Anzahl der Knoten, die Anzahl der Kanten und den Wert $k$ für die resultierende \textsc{VertexCover} Instanz in Abhängigkeit von der originalen \textsc{Clique} Instanz an.
\item Zeigen Sie Lower Bounds für \textsc{VertexCover} bezüglich Anzahl der Knoten, Anzahl der Kanten und $k$ basierend auf der ETH und der Reduktion aus der Musterlösung zu Präsenzserie 10.
\end{enumerate}
\begin{loesung}\
\begin{enumerate}
\item Sei $I = (G = (V,E), k)$ eine Instanz von \textsc{Clique} und $I' = (G' = (V',E'), k')$ die aus der Reduktion resultierende Instanz von \textsc{VertexCover}. Es gilt $|V'| = |V|$, $|E'| = \frac{1}{2}|V|(|V|-1) - |E| \leq |V|^2$ und $k' = |V| - k \leq |V|$.
\item \begin{itemize}
\item Angenommen es gäbe einen Algorithmus, der \textsc{VertexCover} in $2^{o(|V'|)} \cdot |I|^{O(1)}$ löst. Durch die Kombination der Reduktion von \textsc{Clique} auf \textsc{VertexCover} und diesem Algorithmus, existiert dann auch ein $2^{o(|V|)} \cdot |I|^{O(1)}$ Algorithmus für \textsc{Clique}, da $|V'| = |V|$ nach Aufgabenteil 1. Aus der Musterlösung der Präsenzserie 12 folgt somit, dass die ETH falsch ist.
Damit kann es so einen Algorithmus für \textsc{VertexCover} nur geben, wenn die ETH falsch ist.
\item Angenommen es gäbe einen Algorithmus, der \textsc{VertexCover} in $2^{o(\sqrt{|E'|})} \cdot |I|^{O(1)}$ löst. Durch die Kombination der Reduktion von \textsc{Clique} auf \textsc{VertexCover} und diesem Algorithmus, existiert dann auch ein $2^{o(|V|)} \cdot |I|^{O(1)}$ Algorithmus für \textsc{Clique}, da $|E'| \leq |V|^2$ nach Aufgabenteil 1. Aus der Musterlösung der Präsenzserie 12 folgt somit, dass die ETH falsch ist.
Damit kann es so einen Algorithmus für \textsc{VertexCover} nur geben, wenn die ETH falsch ist.
\item Angenommen es gäbe einen Algorithmus, der \textsc{VertexCover} in $2^{o(k')} \cdot |I|^{O(1)}$ löst. Durch die Kombination der Reduktion von \textsc{Clique} auf \textsc{VertexCover} und diesem Algorithmus, existiert dann auch ein $2^{o(|V|)} \cdot |I|^{O(1)}$ Algorithmus für \textsc{Clique}, da $k' \leq |V|$ nach Aufgabenteil 1. Aus der Musterlösung der Präsenzserie 12 folgt somit, dass die ETH falsch ist.
Damit kann es so einen Algorithmus für \textsc{VertexCover} nur geben, wenn die ETH falsch ist. \hfill$\square$
\end{itemize}
\end{enumerate}
\end{loesung}
\textbf{Bewertung} 1 Punkt für den ersten Teil und $1.5 + 1.5 + 1$ für den zweiten.
\begin{definition}[\textsc{HittingSet}]
Bei diesem Problem ist ein Universum $U$, Teilmengen des Universums $F_1,\ldots,F_r \subseteq U$ und eine Zahl $k \in \mathbb{N}_{\geq 0}$ gegeben. Gibt es eine Menge $S \subseteq U$ mit $|U| \leq k$ und $S \cap F_i \neq \emptyset$ für alle $i \in [r]$?
\end{definition}
Anschaulicher wird bei diesem Problem nach maximal $k$ Elementen aus dem Universum gefragt, sodass diese Elemente alle gegebenen Mengen $F_i$ „treffen``.
\subsection*{Hausaufgabe 12.2 (Lower Bound: \textsc{HittingSet}) \hfill (5 Punkte)}
Betrachten Sie folgende Reduktion von 3-SAT auf \textsc{HittingSet}.
Für eine gegebene 3-SAT Instanz $I$ mit $n$ Variablen $x_1,\ldots,x_n$ und $m$ Klauseln $C_1,\ldots,C_m$: Als Universum wählen wir $U = \{x_1,\bar{x}_1,\ldots,x_n,\bar{x}_n\}$. Für jede Variable $x_i$ fügen wir die Menge $F_i := \{x_i,\bar{x}_i\}$ hinzu. Für jede Klausel $C_j$ fügen wir die Menge $F_{n+j} := C_j$ hinzu. Wir setzen $k := n$ und erhalten damit eine \textsc{HittingSet} Instanz $I$.
\begin{enumerate}
\item Geben Sie die Größe des Universums, die Anzahl der Mengen und die Zahl $k$ aus der resultierenden \textsc{HittingSet} Instanz in Abhängigkeit von der Anzahl der Variablen $n$ und der Anzahl der Klauseln $m$ aus der originalen 3-SAT Instanz an.
\item Beweisen Sie Lower Bounds für \textsc{HittingSet} bezüglich Universumsgröße, Anzahl der Mengen und der Zahl $k$ basierend auf der obigen Reduktion und der ETH.
\end{enumerate}
\begin{loesung}\
\begin{enumerate}
\item Für die Universumsgröße gilt $|U| = 2n$, für die Anzahl der Mengen gilt $r = n+m$ und es gilt $k = n$.
\item \begin{itemize}
\item Angenommen es gäbe einen Algorithmus, der \textsc{HittingSet} in $2^{o(|U|)} \cdot |I|^{O(1)}$ löst. Durch die Kombination der Reduktion von 3-SAT auf \textsc{HittingSet} und diesem Algorithmus, existiert dann auch ein $2^{o(n)} \cdot |I|^{O(1)}$ Algorithmus für 3-SAT, da $|U| = 2n$ nach Aufgabenteil 1. Damit ist die ETH falsch.
Damit kann es so einen Algorithmus für \textsc{HittingSet} nur geben, wenn die ETH falsch ist.
\item Angenommen es gäbe einen Algorithmus, der \textsc{HittingSet} in $2^{o(r)} \cdot |I|^{O(1)}$ löst. Durch die Kombination der Reduktion von 3-SAT auf \textsc{HittingSet} und diesem Algorithmus, existiert dann auch ein $2^{o(m)} \cdot |I|^{O(1)}$ Algorithmus für 3-SAT, da $r = n+m$ nach Aufgabenteil 1 und $n \leq 3m$ für 3-SAT gilt. Aus dem Sparsification Lemma folgt damit, dass die ETH falsch ist.
Damit kann es so einen Algorithmus für \textsc{HittingSet} nur geben, wenn die ETH falsch ist.
\item Angenommen es gäbe einen Algorithmus, der \textsc{HittingSet} in $2^{o(k)} \cdot |I|^{O(1)}$ löst. Durch die Kombination der Reduktion von 3-SAT auf \textsc{HittingSet} und diesem Algorithmus, existiert dann auch ein $2^{o(n)} \cdot |I|^{O(1)}$ Algorithmus für 3-SAT, da $k = n$ nach Aufgabenteil 1. Damit ist die ETH falsch.
Damit kann es so einen Algorithmus für \textsc{HittingSet} nur geben, wenn die ETH falsch ist.
\end{itemize}
\end{enumerate}
\end{loesung}
\textbf{Bewertung} 1 Punkt für den ersten Teil und $1.5 + 1.5 + 1$ für den zweiten.
\begin{flushleft}\small
\textbf{Abgabe:} 07.07.2025, 10:00 in Moodle -- bitte beachten Sie die Informationen zum Abgabeformat im Moodlekurs.
\end{flushleft}
\newpage
% ===============================================================
% ABGABE Hausaufgabe 12 (Marek Lenczewski)
% ===============================================================
\abgabeheader{12}{6.\ Juli 2025}
\section*{Hausaufgabe 12.1.1}
Die Knotenzahl bleibt gleich: $|V'| = |V| = n$.\\
Die Kantenzahl entspricht den nicht vorhandenen Kanten: $|E'| = |E|$.\\
$k'$ entspricht allen Knoten, die vorher nicht in der Clique waren: $k' = n - k$.
\section*{Hausaufgabe 12.1.2}
Wir wissen, dass 3-SAT laut ETH mindestens $2^{\Omega(n)}$ braucht, wobei $n$ für die Anzahl der Variablen steht.
In der Vorlesung wurde eine Reduktion von 3-SAT auf Clique gezeigt. In der Präsenzaufgabe 10.2 wurde eine Reduktion von Clique auf VertexCover gezeigt. Also gibt es eine Reduktion von 3-SAT zu VertexCover. Somit kann VertexCover nicht schneller lösbar sein als 3-SAT, weil sonst 3-SAT schneller werden würde, was nach ETH nicht geht.
So ergeben sich die folgenden Lower Bounds:
\begin{itemize}
\item Bezüglich Anzahl der Knoten: $2^{\Omega(n)}$, wobei $n = |V'|$. Die Knotenzahl verändert sich nicht bei den Reduktionen.
\item Bezüglich Anzahl der Kanten: $2^{\Omega(\sqrt{m})}$, wobei $m = |E'|$. Die Kanten können bei den Reduktionen zu einem quadratischen Wachstum der Kanten führen.
\item Bezüglich $k'$: $2^{\Omega(k')}$. Bei der Reduktion gilt $k' = n - k$, wobei $k'$ linear von $n$ abhängt.
\end{itemize}
\section*{Hausaufgabe 12.2.1}
\begin{itemize}
\item Größe des Universums: $|U| = 2n$. Für jede der $n$ Variablen gibt es zwei Elemente ($x_i$ und $\bar{x}_i$).
\item Anzahl der Mengen: $n+m$. $n$ sind die Variablenmengen und $m$ die Klauselmengen ($F_i$ und $F_{n+j}$).
\item Parameter: $k = n$. Wird in der Reduktion so übernommen.
\end{itemize}
\section*{Hausaufgabe 12.2.2}
Wir wissen, dass 3-SAT laut ETH mindestens $2^{\Omega(n)}$ braucht, wobei $n$ für die Anzahl der Variablen steht. Somit kann HittingSet nicht schneller sein.
Es ergeben sich die folgenden Lower Bounds für HittingSet:
\begin{itemize}
\item Bezüglich Größe des Universums: $2^{\Omega(|U|/2)}$, da für jede Variable zwei Elemente ins Universum aufgenommen werden.
\item Bezüglich Anzahl der Mengen: $2^{\Omega(n)}$, wobei die Anzahl der Variablen- und Klauselmengen $(m+n)$ mindestens $n$ ist.
\item Bezüglich Zahl $k$: $2^{\Omega(k)}$, da in der Reduktion $k = n$ gilt.
\end{itemize}
\newpage
% ===============================================================
% BLATT 13 Aufgabenblatt (Musterlösung)
% ===============================================================
\blattheader{07.07.2025}{13}
\begin{definition}[MAX-3-SAT]
Bei dem Problem MAX-3-SAT ist eine Formel $\phi$ in konjunktiver Normalform gegeben, wobei jede Klausel 3 Literale enthält. Gesucht ist eine Belegung $\beta$ der Variablen, die die Anzahl $v(\beta)$ der erfüllten Klauseln maximiert.
\end{definition}
\subsection*{Hausaufgabe 13.1 (MAX-3-SAT) \hfill (10 Punkte)}
Betrachten Sie folgenden Algorithmus $A$:
\begin{itemize}
\item Sei $\beta_0$ die Belegung, die alle Variablen auf \texttt{false} setzt.
\item Sei $\beta_1$ die Belegung, die alle Variablen auf \texttt{true} setzt.
\item Falls $v(\beta_0) \geq v(\beta_1)$, gib $\beta_0$ zurück.
\item Sonst gib $\beta_1$ zurück.
\end{itemize}
\begin{enumerate}
\item[(a)] (6 Punkte) Zeigen Sie, dass obiger Algorithmus Güte 2 hat, d.h.\ $v(A(\phi)) \geq \frac{1}{2}v(OPT(\phi))$ gilt für alle Eingaben $\phi$.
\item[(b)] (4 Punkte) Geben Sie eine Formel an, bei der der Algorithmus eine Belegung ausgibt, die genau die Hälfte der maximal erfüllbaren Klauseln erfüllt. Begründen Sie kurz, warum Ihre Formel geeignet ist.
\textit{Hinweis:} Sie brauchen nur höchstens zwei Klauseln und vier Variablen.
\end{enumerate}
\begin{loesung}\
\begin{enumerate}
\item[(a)] Für jede Klausel $C$ gilt, dass sie von mindestens einer der Belegungen $\beta_0$ und $\beta_1$ erfüllt wird. Wir zeigen nun per Widerspruch, dass der obige Algorithmus eine Güte von 2 hat:
Angenommen, es gilt $v(A(\phi)) < \frac{1}{2}v(OPT(\phi))$ für eine Formel $\phi$. Sei $m$ die Anzahl an Klauseln in $\phi$. Dann gilt $v(OPT(\phi)) \leq m$. Da $v(A(\phi)) < \frac{1}{2}v(OPT(\phi)) \leq \frac{1}{2}m$, gilt $v(\beta_0) < \frac{1}{2}m$ und $v(\beta_1) < \frac{1}{2}m$. Da jede Klausel $C$ allerdings von mindestens einer der Belegungen $\beta_0$ und $\beta_1$ erfüllt wird, gilt $v(\beta_0) \geq \frac{1}{2}m$ oder $v(\beta_1) \geq \frac{1}{2}m$. Dies ist ein Widerspruch.
Also gilt $v(A(\phi)) \geq \frac{1}{2}v(OPT(\phi))$ für alle Eingaben $\phi$ und obiger Algorithmus hat Güte 2.
\item[(b)] Betrachte folgende Formel: $\phi = (x_1 \vee x_2 \vee x_3) \wedge (\neg x_0 \vee \neg x_2 \vee \neg x_3)$. Mit $\beta = \{x_0 \to \texttt{false}, x_1 \to \texttt{true}, x_2 \to \texttt{true}, x_3 \to \texttt{true}\}$ gilt $v(\beta) = 2$. Da $\phi$ nur zwei Klauseln hat, gilt somit $v(OPT(\phi)) = 2$. Es gilt allerdings $v(\beta_0) = 1$, da hier nur die zweite Klausel erfüllt ist, und $v(\beta_1) = 1$, da hier nur die erste Klausel erfüllt ist. Somit gilt $v(A(\phi)) = 1 = \frac{1}{2} \cdot 2 = \frac{1}{2}v(OPT(\phi))$.
\end{enumerate}
\end{loesung}
\textbf{Bewertung} (a) 2 Punkte korrekte Beweisführung im Allgemeinen, 2 Punkte Abschätzung Algorithmus, 2 Punkte Abschätzung Optimum; (b) 2 Punkte für Angabe einer korrekten Formel, 1 Punkt Ausgabe Algorithmus, 1 Punkt Optimum.
\begin{flushleft}\small
\textbf{Abgabe:} 14.07.2025, 10:00 in Moodle -- bitte beachten Sie die Informationen zum Abgabeformat im Moodlekurs.
\end{flushleft}
\newpage
% ===============================================================
% ABGABE Hausaufgabe 13 (Marek Lenczewski)
% ===============================================================
\abgabeheader{13}{13.\ Juli 2025}
\section*{Hausaufgabe 13.1.a}
Zu zeigen ist, dass der Algorithmus die Güte 2 hat, also die Lösung vom Algorithmus mindestens halb so gut ist wie die optimale Lösung. Also $\nu(A(\phi)) \geq \frac{1}{2}\nu(OPT(\phi))$ für alle Eingaben $\phi$.
Sei $\phi$ eine beliebige 3-SAT-Formel mit $m$ Klauseln $C_1,C_2,\ldots,C_m$, wobei jede Klausel genau 3 Literale enthält.
Jede Klausel $C_i$ ist wahr, wenn $\beta_0$ wahr ist oder wenn $\beta_1$ wahr ist oder beides. Da die Variablen in $C_i$ nur positiv oder negativ sein können, muss dabei mindestens $\beta_0$ oder $\beta_1$ wahr werden.
Der Algorithmus wählt die Belegung $\beta_0$ oder $\beta_1$ aus, die die meisten Klauseln $C_i$ erfüllt.
Somit ist die Anzahl der ausgewählten Klauseln $C_i$ mindestens $\frac{m}{2}$, da bei jeder Klausel mindestens eine Belegung wahr werden muss und somit hat mindestens eine Belegung mindestens $\frac{m}{2}$ wahre Klauseln.
Sei $\nu_0 = $ Anzahl der von $\beta_0$ erfüllten Klauseln und $\nu_1 = $ Anzahl der von $\beta_1$ erfüllten Klauseln.
So ergibt sich $\nu(A(\phi)) = \max\{\nu_0,\nu_1\} \geq \frac{\nu_0 + \nu_1}{2} \geq \frac{m}{2}$.
Da die optimale Lösung höchstens alle $m$ Klauseln erfüllen kann, gilt $\nu(OPT(\phi)) \leq m$.
Daraus folgt: $\nu(A(\phi)) \geq \frac{m}{2} \geq \frac{\nu(OPT(\phi))}{2}$.
Somit hat der Algorithmus eine Güte von 2.
\section*{Hausaufgabe 13.1.b}
Der Algorithmus erfüllt genau die Hälfte der maximal erfüllbaren Klauseln, wenn jede Klausel nur aus positiven oder negativen Variablen besteht und sich diese genau gleich aufteilen.
\textbf{Formel:} $\phi = (x_1 \vee x_2 \vee x_3) \wedge (\neg x_1 \vee \neg x_2 \vee \neg x_3)$
Unter $\beta_0$ (alle \texttt{false}):
\begin{itemize}
\item $C_1 = (x_1 \vee x_2 \vee x_3) = (\texttt{false} \vee \texttt{false} \vee \texttt{false}) = \texttt{false}$
\item $C_2 = (\neg x_1 \vee \neg x_2 \vee \neg x_3) = (\texttt{true} \vee \texttt{true} \vee \texttt{true}) = \texttt{true}$
\item $\nu(\beta_0) = 1$
\end{itemize}
Unter $\beta_1$ (alle \texttt{true}):
\begin{itemize}
\item $C_1 = (x_1 \vee x_2 \vee x_3) = (\texttt{true} \vee \texttt{true} \vee \texttt{true}) = \texttt{true}$
\item $C_2 = (\neg x_1 \vee \neg x_2 \vee \neg x_3) = (\texttt{false} \vee \texttt{false} \vee \texttt{false}) = \texttt{false}$
\item $\nu(\beta_1) = 1$
\end{itemize}
Der Algorithmus wählt $\nu(A(\phi)) = \max\{\nu(\beta_0),\nu(\beta_1)\} = \max\{1,1\} = 1$.
Eine optimale Lösung wäre zum Beispiel $x_1 = \texttt{true}, x_2 = \texttt{false}, x_3 = \texttt{false}$.
\begin{itemize}
\item $C_1 = (\texttt{true} \vee \texttt{false} \vee \texttt{false}) = \texttt{true}$
\item $C_2 = (\texttt{false} \vee \texttt{true} \vee \texttt{true}) = \texttt{true}$
\end{itemize}
Daraus ergibt sich $\nu(OPT(\phi)) = 2$, also $\nu(A(\phi)) = \frac{\nu(OPT(\phi))}{2}$. Somit hat es die Güte 2.
\end{document}

View File

@@ -0,0 +1,656 @@
\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}

View File

@@ -0,0 +1,336 @@
\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}
\geometry{a4paper,left=2.5cm,right=2.5cm,top=2.6cm,bottom=2.5cm}
\setlength{\headheight}{15pt}
% ------- Grafik-Beschreibungs-Box (ersetzt Original-Grafiken) -------
\definecolor{grafikbg}{gray}{0.94}
\colorlet{shadecolor}{grafikbg}
\newenvironment{grafik}%
{\par\medskip\begin{shaded}\noindent\textbf{[Grafik-Beschreibung]}\par\nobreak\smallskip\itshape}%
{\end{shaded}\medskip}
% ------- Aufgaben-Kopf -------
\newcommand{\aufgabe}[2]{\medskip\noindent\textbf{Aufgabe #1}\hfill\textbf{(#2)}\par\smallskip}
% ------- Kopf einer Klausur -------
\newcommand{\klausurkopf}[3]{%
% #1 = Datum, #2 = Namezeile (true/false), #3 = Hinweisliste
\thispagestyle{footeronly}
\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]
SS 2025
\end{center}
\medskip
\begin{center}
#2
\end{center}
\vspace{1.2cm}
\noindent\textit{Hinweise:}
\begin{itemize}[leftmargin=1.4em,itemsep=1pt,topsep=2pt]
#3
\end{itemize}
}
% ------- Fußzeilen / Kopfzeilen -------
\newcommand{\fusstext}{\scriptsize Klausur »Analyse von Algorithmen und Komplexität -- Komplexitätsteil«}
\fancypagestyle{footeronly}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt}
\fancyfoot[L]{\fusstext}\fancyfoot[R]{\scriptsize Seite \thepage}
}
\fancypagestyle{juli}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt}
\fancyhead[L]{\small Name:\ \underline{\hspace{3.2cm}}\qquad Matrikel-Nr.:\ \underline{\hspace{3.2cm}}}
\fancyfoot[L]{\fusstext}\fancyfoot[R]{\scriptsize Seite \thepage}
}
\fancypagestyle{okt}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt}
\fancyhead[L]{\small Matrikel-Nr.:\ \underline{\hspace{3.2cm}}}
\fancyfoot[L]{\fusstext}\fancyfoot[R]{\scriptsize Seite \thepage}
}
\setlength{\parindent}{0pt}
\setlength{\parskip}{4pt}
\begin{document}
%======================================================================
% KLAUSUR 1 — 22. Juli 2025 — SS 2025
%======================================================================
\klausurkopf{22.\ Juli 2025}%
{Name:\ \underline{\hspace{3.5cm}}\qquad Matrikel-Nr.:\ \underline{\hspace{3.5cm}}}%
{%
\item Bearbeiten Sie \textit{alle} Aufgaben.
\item Sie haben 10 Minuten Einlesezeit. Danach haben Sie \textbf{120 Minuten} Zeit für die Klausurbearbeitung.
\item Erlaubte Hilfsmittel: Ein doppelseitig handschriftlich beschriebenes Blatt Papier DIN A4, (bunte) Stifte (kein Rot, kein Grün, kein Bleistift).
\item Einsichtnahme: \textbf{2.\ September 2025, 10 bis 11 Uhr}. Der Raum für die Einsicht wird noch bekannt gegeben.
\item Die Klausur besteht aus \textbf{5 Aufgaben}, die alle \textbf{10 Punkte} wert sind.
\item Zum Bestehen müssen mindestens \textbf{18 Punkte} erreicht werden.
\item Aufgabe 5 gibt zusätzlich \textbf{10 Bonuspunkte}. Insgesamt können also \textbf{50 Punkte plus 10 Bonuspunkte} erreicht werden.
}
\pagestyle{juli}
\newpage
\aufgabe{1 \quad ANWENDUNG -- CHRISTOFIDES' ALGORITHMUS}{6 + 4 Punkte}
Gegeben sei folgender Graph $G = (V,E)$:
\begin{grafik}
Ungerichteter, kantengewichteter Graph mit vier Knoten $a, b, c, d$ (Anordnung ungefähr: $a$ oben, $b$ und $c$ in der Mitte, $d$ unten). Es handelt sich um einen vollständigen Graphen $K_4$ mit sechs Kanten. Die in der Figur ablesbaren Kantengewichte sind: $2,\ 1,\ 4,\ 4,\ 5,\ 3$. Die genaue Kante-zu-Gewicht-Zuordnung ist der Originalzeichnung zu entnehmen; der Graph dient als Eingabe für Christofides ($\Delta$TSP2) mit Startknoten $a$.
\end{grafik}
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Wenden Sie den Algorithmus von Christofides ($\Delta$TSP2) 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.
\item Für die Korrektheit des Algorithmus von Christofides werden zwei zusätzliche Eigenschaften für die Eingabe des Travelling-Salesperson-Problems benötigt. Nennen Sie die Eigenschaften und geben Sie jeweils eine Eingabe an, welche die Eigenschaft nicht erfüllt. Sie dürfen auch eine Eingabe nennen, welche beide Eigenschaften nicht erfüllt. Geben Sie auch die Güte des Algorithmus an.
\end{enumerate}
\newpage
\aufgabe{2 \quad VORLESUNGSBEWEIS -- DEFINITION NP}{2 + 8 Punkte}
Beweisen Sie folgende Aussage:
\[ \{L \subseteq \Sigma^* \mid \exists\ \text{NDTM } M \text{ über Alphabet } \Gamma \supset \Sigma \text{ und ein Polynom } T \text{ mit } M \text{ akzeptiert } L \]
\[ \text{in nicht-deterministischer Zeit } T\} \subseteq \{L \subseteq \Sigma^* \mid \exists\ \text{polynomieller Verifizierer für } L\} \]
Ausformuliert bedeutet das: Sei $L \subseteq \Sigma^*$ also eine Sprache, für die eine NDTM $M$ über einem Alphabet $\Gamma \supset \Sigma$ und ein Polynom $T$ existiert, sodass $L$ von $M$ in nicht-deterministischer Zeit $T$ entschieden wird.
Nun müssen Sie folgende Aussage beweisen: Es existiert ein polynomieller Verifizierer für $L$.
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Geben Sie dafür zunächst für die Sprache $L$, die durch folgende NDTM $M$ akzeptiert wird, einen polynomiellen Verifizierer an, der in analoger Weise arbeitet. Die NDTM $M$ erhält als Eingabe einen ungerichteten Graphen $G = (V,E)$ und eine Zahl $k \in \mathbb{N}_0$.
\begin{shaded}
\ttfamily\small
$M(G = (V,E),\ k)$\\
1.\quad Rate nicht-deterministisch eine Menge von Knoten $C \subseteq V$.\\
2.\quad Für alle $\{u,v\} \in E$: Falls $u \notin C$ und $v \notin C$, verwerfe.\\
3.\quad Falls $|C| > k$, verwerfe.\\
4.\quad Akzeptiere.
\end{shaded}
\item Führen Sie nun einen allgemeingültigen Beweis.
\end{enumerate}
\newpage
\aufgabe{3 \quad NP-VOLLSTÄNDIGKEIT}{2 + 8 Punkte}
Wir betrachten folgendes Problem:
\textbf{Problem: $k$-CLIQUE-DEG-3}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$, sodass jeder Knoten mindestens Grad 3 hat, also $\deg(v) \ge 3$ für alle $v \in V$. Weiter ist eine Zahl $k \in \mathbb{N}_{>0}$ gegeben.\\
\textbf{Entscheide:} Existiert eine Clique $C \subseteq V$ mit $|C| \ge k$?
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Zeigen Sie, dass $k$-CLIQUE für $k \in \{1,2,3,4\}$ in polynomieller Zeit lösbar ist durch Angabe von polynomiellen Algorithmen.
\item Zeigen Sie, dass $k$-CLIQUE-DEG-3 NP-vollständig ist.
\end{enumerate}
\newpage
\aufgabe{4 \quad ETH}{1+4+1+4 Punkte}
\textbf{Problem: NAE-4-SAT}\\
\textbf{Eingabe:} $n$ Variablen $x_1,\dots,x_n$ und $m$ Klauseln $C_1,\dots,C_m$, wobei $|C_i| \le 4$ für alle $i \in [m]$.\\
\textbf{Entscheide:} Existiert eine Belegung $\varphi$, sodass für jede Klausel $C_i$ Literale $y,z \in C_i$ mit $\varphi(y) \ne \varphi(z)$ existieren?
Betrachten Sie folgende Reduktion von 3-SAT auf NAE-4-SAT. Für eine gegebene 3-SAT-Instanz mit Variablen $x_1,\dots,x_n$ und Klauseln $C_1,\dots,C_m$ konstruieren wir eine NAE-4-SAT-Instanz wie folgt. Die Variablen sind $x_1,\dots,x_n,w$, wobei $w$ eine frische Variable ist, also $w \ne x_i$ für alle $i \in [n]$. Für jedes $i \in [m]$ nehmen wir die Klausel $C_i \cup \{w\}$ hinzu.
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Geben Sie die Anzahl der Variablen und die Anzahl der Klauseln für die resultierende NAE-4-SAT-Instanz in Abhängigkeit von der originalen 3-SAT-Instanz an.
\item Beweisen Sie Lower Bounds für NAE-4-SAT bezüglich Anzahl der Variablen und Anzahl der Klauseln basierend auf der ETH und der oben beschriebenen Reduktion.
\end{enumerate}
\medskip
\textbf{Problem: SETSPLITTING}\\
\textbf{Eingabe:} Eine Grundmenge $S$ und Teilmengen $F_1,\dots,F_r \subseteq S$.\\
\textbf{Entscheide:} Existiert eine Partition von $S$ in $S_1$ und $S_2$ ($S = S_1 \mathbin{\dot\cup} S_2$), sodass $F_i \cap S_1 \ne \emptyset \ne F_i \cap S_2$ für alle $i \in [r]$?
Betrachten Sie folgende Reduktion von NAE-4-SAT auf SETSPLITTING. Für eine NAE-4-SAT-Instanz mit $n$ Variablen $x_1,\dots,x_n$ und $m$ Klauseln $C_1,\dots,C_m$ definiere $S = \{x_i, \bar x_i \mid i \in [n]\}$ als Grundmenge. Die Teilmengen $F_1,\dots,F_r$ ergeben sich folgendermaßen. Für jedes $i \in [n]$ nehmen wir die Teilmenge $\{x_i, \bar x_i\} \subseteq S$. Zusätzlich fügen wir für jede Klausel $C_i$ aus NAE-4-SAT die Teilmenge $C_i \subseteq S$ hinzu.
\begin{enumerate}[label=\alph*),leftmargin=1.6em,start=3]
\item Geben Sie die Größe der Grundmenge $S$ und die Anzahl der Teilmengen $r$ für die resultierende SETSPLITTING-Instanz in Abhängigkeit von der originalen NAE-4-SAT-Instanz an.
\item Beweisen Sie Lower Bounds für SETSPLITTING bezüglich Größe der Grundmenge und Anzahl der Teilmengen basierend auf der ETH und der oben beschriebenen Reduktion.
\end{enumerate}
\newpage
\aufgabe{5 \quad APPROXIMATIVE ALGORITHMEN -- SCHEDULING}{1 + 1 + 8 + (10) Punkte}
Wir betrachten das Parallel-Task-Scheduling-Problem. Dabei sind $n$ Jobs $J$ und $m$ Maschinen gegeben. Hier hat jeder Job $j \in [n]$ eine Ausführungszeit $p_j \in \mathbb{Q}_{>0}$ und belegt dabei gleichzeitig $q_j \in [m]$ Maschinen. Es wird ein valider Schedule (keine zwei verschiedenen Jobs belegen gleichzeitig dieselbe Maschine) gesucht mit minimaler Makespan, also ein Schedule, bei dem alle Jobs möglichst früh abgearbeitet sind.
\begin{shaded}
\ttfamily\small
\textbf{Algorithmus LISTSCHEDULING($J,m$)}\\
1\quad \textbf{foreach} $i \in [m]$ \textbf{do}\\
2\quad\quad $C_i \leftarrow 0$\\
3\quad \textbf{od}\\
4\quad \textbf{foreach} $j \in [n]$ \textbf{do}\\
5\quad\quad Sortiere Maschinen, so dass $C_i \le C_{i+1}$, für alle $i \in [m-1]$\\
6\quad\quad Platziere Job $j$ zum frühestmöglichen Zeitpunkt $C' \leftarrow \max_{i \le q_j}\{C_i\}$\\
7\quad\quad \textbf{foreach} $i \in [q_j]$ \textbf{do}\\
8\quad\quad\quad $C_i \leftarrow C' + p_j$\\
9\quad\quad \textbf{od}\\
10\quad \textbf{od}\\
11\quad \textbf{return} $\max_{i \in [m]} C_i$
\end{shaded}
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Wenden Sie den Algorithmus auf folgende Instanz an. Geben Sie dabei den Schedule am Ende des Algorithmus an. Die Instanz hat $n = 4$ Jobs und $m = 3$ Maschinen, dabei sind die Jobs $J$ durch folgende Tabelle gegeben.
\begin{center}
\begin{tabular}{|l|c|c|c|c|}\hline
Job & 1 & 2 & 3 & 4\\\hline
Ausführungszeit $p$ & 1 & 1 & 2 & 3\\\hline
Maschinenbedarf $q$ & 1 & 3 & 2 & 1\\\hline
\end{tabular}
\end{center}
\item Welche Worst-Case-Güte hat der LISTSCHEDULING-Algorithmus, wenn $q_j = 1$ für alle Jobs $j \in [n]$ gilt?
\item Zeigen Sie $\text{LISTSCHEDULING}(I) \le \mathrm{OPT}(I) + \frac{1}{2} p_{\max}$ für alle Instanzen $I$ mit $\frac{1}{3}m < q_j \le \frac{1}{2}m$ für alle $j \in [n]$. Hier beschreibt $p_{\max} = \max_{j \in [n]} p_j$ die maximale Ausführungszeit in der Instanz.
\item \textbf{BONUS:} Sei $k \in \mathbb{N}_{\ge 2}$. Welche Güte hat LISTSCHEDULING für alle Instanzen $I$ mit $\frac{1}{k+1}m < q_j \le \frac{1}{k}m$ für alle $j \in [n]$? Beweisen Sie diese Güte.
\end{enumerate}
%======================================================================
% KLAUSUR 2 — 14. Oktober 2025 — SS 2025
%======================================================================
\newpage
\setcounter{page}{1}
\klausurkopf{14.\ Oktober 2025}%
{Matrikel-Nr.:\ \underline{\hspace{3.5cm}}}%
{%
\item Bearbeiten Sie \textit{alle} Aufgaben.
\item Sie haben 10 Minuten Einlesezeit. Danach haben Sie \textbf{120 Minuten} Zeit für die Klausurbearbeitung.
\item Erlaubte Hilfsmittel: Ein doppelseitig handschriftlich beschriebenes Blatt Papier DIN A4, (bunte) Stifte (kein Rot, kein Grün, kein Bleistift).
\item Einsichtnahme: \textbf{6.\ November 2025, 09:30 bis 10:30 Uhr}. Der Raum für die Einsicht wird noch bekannt gegeben.
\item Die Klausur besteht aus \textbf{5 Aufgaben}, die alle \textbf{10 Punkte} wert sind.
\item Zum Bestehen müssen mindestens \textbf{18 Punkte} erreicht werden.
\item Aufgabe 5 gibt zusätzlich \textbf{10 Bonuspunkte}. Insgesamt können also \textbf{50 Punkte plus 10 Bonuspunkte} erreicht werden.
}
\pagestyle{okt}
\newpage
\aufgabe{1 \quad ANWENDUNG -- $\Delta$TSP1}{5+1+2+2 Punkte}
Gegeben sei folgender Graph $G = (V,E)$:
\begin{grafik}
Gerichtet/asymmetrisch gewichteter Graph mit fünf Knoten $a, b, c, d, e$ (Anordnung ungefähr: $c$ oben links, $d$ oben rechts, $a$ links/Mitte, $b$ rechts/Mitte, $e$ unten). Die Gewichte stehen an der nach außen gerichteten Kantenseite. Die in der Figur ablesbaren Gewichtszahlen sind: $2,\ 4,\ 3,\ 4,\ 3,\ 4,\ 1,\ 5,\ 1,\ 2$ (verteilt auf die Kanten zwischen den fünf Knoten). Die genaue Zuordnung Kante$\,\to\,$Gewicht ist der Originalzeichnung zu entnehmen; für $\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$ mit Startknoten $a$ an. Geben Sie dabei alle Graphen an, die in Zwischenschritten entstehen. Geben Sie außerdem die Länge der berechneten Rundreise an.
\item Welche Güte hat der Algorithmus $\Delta$TSP1?
\item Ist das Entscheidungsproblem zum TSP in P? Begründen Sie Ihre Antwort kurz.
\item Ist die folgende Aussage wahr? Begründen Sie Ihre Antwort kurz.\\
Wenn der Algorithmus $\Delta$TSP1 eine multiplikative Güte von $1{,}5$ besitzt, dann bedeutet das, dass $\frac{d(R)}{\mathrm{OPT}(I)} \ge 1{,}5$ für eine Instanz $I$ und die Länge der vom Algorithmus für $I$ berechneten Rundreise $d(R)$ gilt.
\end{enumerate}
\newpage
\aufgabe{2 \quad VORLESUNGSBEWEIS -- NP-VOLLSTÄNDIGKEIT}{10 Punkte}
Beweisen Sie den folgenden aus der Vorlesung bekannten Satz.
Sei $L_0$ eine NP-vollständige Sprache. Falls $L_0 \in P$, dann gilt auch $P = NP$.
\newpage
\aufgabe{3 \quad NP-VOLLSTÄNDIGKEIT}{10 Punkte}
Wir betrachten folgendes Problem:
\textbf{Problem: $k$-COLOR-PRECOLORING}\\
\textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$ und eine Zahl $k \in \mathbb{N}_{>0}$ sowie paarweise verschiedene Knoten $v_1,\dots,v_k \in V$.\\
\textbf{Entscheide:} Existiert eine Färbung der Knoten $f : V \to [k]$, sodass $f(v_i) = i$ für alle $i \in [k]$ und $f(v) \ne f(u)$ für alle $\{v,u\} \in E$?
Zeigen Sie, dass $k$-COLOR-PRECOLORING NP-vollständig ist.
\newpage
\aufgabe{4 \quad ETH}{1+4+1+4 Punkte}
\textbf{Problem: COVERCLIQUE}\\
\textbf{Eingabe:} Ein (ungerichteter) Graph $G = (V,E)$ und eine Zahl $k \in \mathbb{N}_{\ge 1}$.\\
\textbf{Entscheide:} Existieren $k$ paarweise disjunkte Cliquen $C_1,\dots,C_k$, die alle Knoten überdecken? Formeller: Existieren $C_1,\dots,C_k \subseteq V$, so dass $V = \bigcup_{i=1}^{k} C_i$ mit $\{\{v,u\} \mid v,u \in C_i,\ v \ne u\} \subseteq E$ für alle $i \in [k]$ und $C_i \cap C_j \ne \emptyset \Rightarrow i = j$ für alle $i,j \in [k]$?
Betrachten Sie folgende Reduktion von $k$-COLOR auf COVERCLIQUE: Für eine Eingabe $(G = (V,E), k)$ erstelle die Instanz $(G' = (V, \bar E), k)$, wobei $\bar E$ die invertierte Kantenmenge ist, also $\bar E = \{\{v,u\} \mid v,u \in V,\ v \ne u,\ \{v,u\} \notin E\}$.
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Geben Sie die Anzahl der Knoten und die Anzahl der Kanten für die resultierende COVERCLIQUE-Instanz in Abhängigkeit von der originalen $k$-COLOR-Instanz an.
\item Beweisen Sie Laufzeit-Lower-Bounds für COVERCLIQUE bezüglich Anzahl der Knoten und Anzahl der Kanten basierend auf der ETH und der oben beschriebenen Reduktion.\\
\textit{Hinweis:} $k$-COLOR kann unter Annahme der ETH nicht in $2^{o(|V|)} \cdot |I|^{O(1)}$ gelöst werden.
\end{enumerate}
\medskip
\textbf{Problem: $\Delta$COVER}\\
\textbf{Eingabe:} Ein (ungerichteter) Graph $G = (V,E)$ und eine Zahl $k \in \mathbb{N}_0$.\\
\textbf{Entscheide:} Besitzt der Graph eine Dreiecksüberdeckung $C_\Delta \subseteq V$ mit $|C_\Delta| \le k$? $C_\Delta$ ist eine Dreiecksüberdeckung, wenn für alle $v,u,w \in V$ mit $\{v,u\},\{v,w\},\{u,w\} \in E$ gilt, dass $\{v,u,w\} \cap C_\Delta \ne \emptyset$.
Betrachten Sie folgende Reduktion von VERTEXCOVER auf $\Delta$COVER, bekannt aus der Übung: Für eine Instanz von VERTEXCOVER $(G = (V,E), k)$ bilde die Instanz $(G' = (V', E'), k)$ mit $V' = V \cup \{v_e \mid e \in E\}$ und $E' = E \cup \{\{v_e, e_1\}, \{v_e, e_2\} \mid e = \{e_1, e_2\} \in E\}$.
\begin{enumerate}[label=\alph*),leftmargin=1.6em,start=3]
\item Geben Sie die Anzahl der Knoten und die Anzahl der Kanten für die resultierende $\Delta$COVER-Instanz in Abhängigkeit von der originalen VERTEXCOVER-Instanz an.
\item Beweisen Sie Laufzeit-Lower-Bounds für $\Delta$COVER bezüglich Anzahl der Knoten und Anzahl der Kanten basierend auf der ETH und der oben beschriebenen Reduktion.
\end{enumerate}
\newpage
\aufgabe{5 \quad APPROXIMATIVE ALGORITHMEN -- STRIP PACKING}{2 + 3 + 5 + (10) Punkte}
\textbf{Problem: STRIPPACKING}\\
\textbf{Eingabe:} Eine Folge $L = (r_1,\dots,r_n)$ von Rechtecken mit Breite $w(r_i)$ und Höhe $h(r_i)$, so dass $h(r_i) \ge h(r_{i+1})$ für alle $i \in \{1,\dots,n-1\}$; ein Streifen mit Breite 1 und unbeschränkter Höhe.\\
\textbf{Ausgabe:} Eine Packung dieser Rechtecke in den Streifen so, dass sich keine zwei Rechtecke überlappen und die Höhe des gepackten Streifens minimal ist.
Der folgende Algorithmus für das StripPacking-Problem geht die Rechtecke nacheinander durch und packt sie von links nach rechts ganz unten auf den Streifen, bis kein Platz mehr ist. Dann geht er eine Stufe höher, also über das erste gepackte Rechteck ganz links, und packt auf dieser Höhe nach dem gleichen Prinzip weiter:
\begin{shaded}
\ttfamily\small
\textbf{Algorithmus NEXT FIT DECREASING HEIGHT (NFDH)($L$)}\\
1\quad Stufe $s \leftarrow 1$\\
2\quad \textbf{foreach} $i \leftarrow 1,\dots,n$ \textbf{do}\\
3\quad\quad Falls in Stufe $s$ noch Platz ist, packe Rechteck $r_i$ (links-justiert) auf diese Stufe.\\
4\quad\quad Ansonsten, setze $s \leftarrow s+1$ und packe dann Rechteck $r_i$ (links-justiert) auf Stufe $s$.\\
5\quad \textbf{od}
\end{shaded}
\begin{enumerate}[label=\alph*),leftmargin=1.6em]
\item Gegeben sei die folgende Beispielinstanz sowie eine Packung, erzeugt von NFDH. Geben Sie eine optimale Packung an sowie die Approximationsrate des Algorithmus in diesem Fall.
\begin{center}
\begin{tabular}{|l|c|c|c|c|c|}\hline
Rechteck & 1 & 2 & 3 & 4 & 5\\\hline
Höhe $h(r_i)$ & 1 & 1 & 1 & 1 & 1\\\hline
Breite $w(r_i)$ & $\tfrac{1}{2}$ & $\tfrac{1}{4}$ & $\tfrac{1}{2}$ & $\tfrac{1}{4}$ & $\tfrac{1}{2}$\\\hline
\end{tabular}
\end{center}
\begin{grafik}
Dargestellte NFDH-Packung im Breite-1-Streifen (alle Rechtecke haben Höhe 1, es entstehen also volle Stufen der Höhe 1): Stufe 1 (unten) enthält Rechteck 1 (Breite $\tfrac12$) links-justiert und daneben Rechteck 2 (Breite $\tfrac14$); Rechteck 3 (Breite $\tfrac12$) passt nicht mehr in Stufe 1, daher Stufe 2 mit Rechteck 3 (Breite $\tfrac12$) und daneben Rechteck 4 (Breite $\tfrac14$); Rechteck 5 (Breite $\tfrac12$) beginnt Stufe 3. Es werden also drei Stufen benutzt, die Gesamthöhe der NFDH-Packung ist $3$.
\end{grafik}
\item Zeigen Sie: Es existieren Eingaben $L_n = (r_1,\dots,r_n)$ mit
\[ \lim_{n \to \infty} \frac{\text{NFDH}(L_n)}{\mathrm{OPT}(L_n)} = 2. \]
\item Zeigen Sie, dass für jede Eingabeinstanz $L = (r_1,\dots,r_n)$ von Rechtecken mit $h(r_i) = 1$ gilt:
\[ \text{NFDH}(L) \le 2 \cdot \mathrm{OPT}(L) + 1. \]
\item \textbf{BONUS:} Zeigen Sie, dass für jede Eingabeinstanz $L = (r_1,\dots,r_n)$ von Rechtecken mit $h(r_i) \le 1$ gilt:
\[ \text{NFDH}(L) \le 2 \cdot \mathrm{OPT}(L) + 1. \]
\end{enumerate}
\end{document}

View File

@@ -0,0 +1,407 @@
\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[provide=*,ngerman]{babel}
\usepackage{amsmath,amssymb,amsthm}
\usepackage[a4paper,margin=2.5cm]{geometry}
\usepackage{enumitem}
% --- Theorem-Stil fuer Definitionen ---
\theoremstyle{definition}
\newtheorem{definition}{Definition}
% --- Hilfsmakros ---
% Problemnamen in Kapitälchen
\newcommand{\prob}[1]{\textsc{#1}}
% QED-Kasten
\newcommand{\qedbox}{\hfill$\square$\par\medskip}
% Kopf jedes Aufgabenblattes (#1 = Datum, #2 = Blatt-Nr.)
\newcommand{\blattheader}[2]{%
\noindent
\begin{minipage}[c]{0.16\textwidth}
\centering\footnotesize\itshape
\fbox{\parbox{0.9\linewidth}{\centering [Logo: rundes Siegel der\\ CAU zu Kiel]}}
\end{minipage}\hfill
\begin{minipage}[c]{0.80\textwidth}
{\large\bfseries CHRISTIAN-ALBRECHTS-UNIVERSIT\"AT ZU KIEL}\\[3pt]
Institut f\"ur Informatik, Arbeitsgruppe Algorithmen und Komplexit\"at\\
Prof.\ Dr.\ K.\ Jansen, B.\ Schumacher, C.\ Wambsganz
\end{minipage}
\par\vspace{6pt}
\hfill #1\par
\vspace{1.2em}
\begin{center}
{\large\bfseries Pr\"asenzaufgaben zur Vorlesung »Analyse von Algorithmen und Komplexit\"at«}\\[8pt]
{\large #2}
\end{center}
\vspace{1.2em}
}
% Aufgaben-Ueberschrift (#1 = Nummer, #2 = Titel)
\newcommand{\aufgabe}[2]{\medskip\par\noindent\textbf{Pr\"asenzaufgabe #1} (#2)\par\nopagebreak\smallskip}
\newcommand{\loesung}{\medskip\par\noindent\textbf{L\"osung.}\ }
\setlength{\parindent}{0pt}
\setlength{\parskip}{0.5em}
\begin{document}
%======================================================================
% BLATT 9
%======================================================================
\blattheader{09.06.2025}{Blatt 9}
\begin{definition}[\prob{Knapsack} (Entscheidungsvariante)]
Gegeben ist eine Menge mit $n$ Gegenst\"anden mit Gewichten
$w_1,\dots,w_n \in \mathbb{N}_{\geq 0}$ und Profiten
$p_1,\dots,p_n \in \mathbb{N}_{\geq 0}$. Weiter sind eine Kapazit\"at
$K \in \mathbb{N}_{\geq 0}$ und ein Zielprofit $P \in \mathbb{N}_{\geq 0}$
gegeben. Bei dem \prob{Knapsack} Problem muss entschieden werden, ob eine
Teilmenge $S \subseteq [n]$ existiert, sodass
\[
\sum_{i\in S} w_i \leq K \qquad\text{und}\qquad \sum_{i\in S} p_i \geq P
\]
gilt.
\end{definition}
\aufgabe{9.1}{\prob{Knapsack} in NP}
Zeigen Sie $\prob{Knapsack} \in \mathbf{NP}$ auf zwei verschiedene Wege.
\begin{enumerate}
\item Geben Sie einen nicht deterministischen Algorithmus an, der das Problem in polynomieller Zeit l\"ost.
\item Geben Sie einen polynomiellen Verifizierer f\"ur das Problem an.
\end{enumerate}
Wie h\"angen diese beiden Methoden zusammen?
\loesung
\begin{enumerate}
\item Der Algorithmus arbeitet wie folgt: F\"ur jeden Gegenstand entscheiden wir nichtdeterministisch, ob er in den Rucksack soll. Anschlie\ss end akzeptieren wir, falls die Kapazit\"ats- und Profitbedingung erf\"ullt sind.
Existiert eine valide Rucksackf\"ullung mit gen\"ugend Profit, dann gibt es auch eine Reihe von nichtdeterministischen Entscheidungen, die diese F\"ullung findet. Diese wird dann auch vom Algorithmus akzeptiert.
Der Algorithmus macht polynomiell viele nichtdeterministische Entscheidungen und die \"Uberpr\"ufung der Eigenschaften ist ebenfalls in Polynomialzeit m\"oglich, also ist dies ein polynomieller, nichtdeterministischer Algorithmus, der \prob{Knapsack} l\"ost.
\item Unser Zertifikat ist eine Teilmenge $S \subseteq [n]$, die die Auswahl f\"ur den Rucksack darstellen soll. Dies kann zum Beispiel \"uber ein Bit pro Gegenstand realisiert werden. Um dieses Zertifikat zu verifizieren, berechnen wir $\sum_{i\in S} w_i$ und $\sum_{i\in S} p_i$ und vergleichen die Werte mit $K$ und $P$ und akzeptieren entsprechend.
Existiert eine valide Rucksackf\"ullung mit gen\"ugend Profit, dann gibt es auch ein Zertifikat, das diese F\"ullung beschreibt. Dieses wird dann auch vom Verifizierer akzeptiert.
Das Ausrechnen der Summen und das \"Uberpr\"ufen ist in polynomieller Zeit m\"oglich, also ist dies ein polynomieller Verifizierer.
\end{enumerate}
In beiden Wegen wird die extra Ressource, die wir zur Verf\"ugung haben, genutzt, um eine Teilmenge (einen m\"oglichen Rucksack) zu bestimmen und zu \"uberpr\"ufen. In der Vorlesung wird noch genau gezeigt, dass diese beiden Wege tats\"achlich \"aquivalent sind.
\aufgabe{9.2}{Transitivit\"at von Polynomialzeitreduktionen}
Zeigen Sie, dass Polynomialzeitreduktionen transitiv sind, d.h., dass f\"ur alle Entscheidungsprobleme $L_1,L_2,L_3 \subseteq \Sigma^{*}$ gilt, dass
\[
L_1 \preceq L_2 \wedge L_2 \preceq L_3 \implies L_1 \preceq L_3.
\]
\loesung
Seien $L_1,L_2,L_3$ Sprachen. Zudem sei $R_1$ ein Algorithmus, der $L_1$ nach $L_2$ in $O(n^{a})$ reduziert, und $R_2$ ein Algorithmus, der $L_2$ nach $L_3$ in $O(n^{b})$ reduziert.
Sei $x$ eine Instanz von $L_1$ der Gr\"o\ss e $n$. Dann ben\"otigt der Aufruf von $R_1$ auf $x$ h\"ochstens $O(n^{a})$ Zeit.
Sei $x'$ die Ausgabe von $R_1$. Dann hat $x'$ eine Gr\"o\ss e von h\"ochstens $O(n^{a})$. Diese Schranke f\"ur die Ausgabe ergibt sich aus der Laufzeit der Reduktion. Der Aufruf von $R_2$ auf $x'$ ben\"otigt nun h\"ochstens $O((n^{a})^{b}) = O(n^{ab})$ Zeit. Damit ist die Reduktion von $L_1$ auf $L_3$ in polynomieller Zeit m\"oglich.
Die Korrektheit ergibt sich aus der Transitivit\"at der \"Aquivalenz: Sei $x''$ die Ausgabe von $R_2$ auf $x'$, dann gilt
\[
x \in L_1 \iff x' \in L_2 \quad\text{und}\quad x' \in L_2 \iff x'' \in L_3,
\]
also auch $x \in L_1 \iff x'' \in L_3$.
\qedbox
\clearpage
%======================================================================
% BLATT 10
%======================================================================
\blattheader{16.06.2025}{Blatt 10}
\aufgabe{10.1}{Fragen \"uber Fragen}
Diskutieren Sie die folgenden Aussagen (Gelten sie allgemein? Gelten sie nicht? Gelten sie unter bestimmten Bedingungen? Welche?):
\begin{enumerate}[label=(\roman*)]
\item F\"ur jede Sprache, die von einer NDTM in polynomieller Zeit akzeptiert werden kann, existiert eine DTM, die ebenfalls die Sprache in polynomieller Zeit akzeptiert.
\item $A$ ist $\mathit{NP}$-schwer $\implies A \in P$
\end{enumerate}
\loesung
\begin{enumerate}[label=(\roman*)]
\item Die Aussage gilt nur, wenn $P = \mathit{NP}$. Dann liegen alle Probleme in $\mathit{NP}$ (von NDTM in polynomieller Zeit l\"osbar) auch in P (von DTM in polynomieller Zeit l\"osbar). Falls $P \neq \mathit{NP}$, dann nein, weil sonst folgender Widerspruch auftritt: ein Problem in $\mathit{NP}\setminus P$ ist von einer NDTM, nicht aber von einer DTM in polynomieller Zeit l\"osbar. K\"onnte eine DTM die NDTM in polynomieller Zeit simulieren, w\"are das Problem auch in $P$.
\item Falsch. Es gibt $\mathit{NP}$-schwere Probleme, die nicht in $\mathit{NP}$ liegen, z.\,B.\ das \prob{Halte}-Problem. Diese liegen folglich auch definitiv nicht in $P$. $\mathit{NP}$-schwer ist eine untere Schranke, $\in \mathit{NP}$ eine obere, und wenn beide erf\"ullt sind, ist ein Problem $\mathit{NP}$-vollst\"andig.
\end{enumerate}
\qedbox
\begin{definition}[Vertex Cover (VC)]
F\"ur einen (ungerichteten) Graphen $G = (V,E)$ ist ein Vertex Cover eine Menge von Knoten $C \subseteq V$, sodass $u \in C$ oder $v \in C$ f\"ur alle $\{u,v\} \in E$ gilt, also ist f\"ur alle Kanten mindestens ein Endpunkt in $C$.
\end{definition}
F\"ur das \prob{VertexCover} Problem ist neben einem Graphen $G$ eine Zahl $k \in \mathbb{N}_{\geq 0}$ gegeben und es wird gefragt, ob ein Vertex Cover mit Gr\"o\ss e (Anzahl der Knoten) h\"ochstens $k$ in $G$ existiert.
\aufgabe{10.2}{\prob{VertexCover} ist NP-vollst\"andig}
Zeigen Sie, dass \prob{VertexCover} $\mathbf{NP}$-vollst\"andig ist.
\textit{Hinweis:} Reduzieren Sie \prob{Clique} auf \prob{VertexCover}.
\loesung
$\prob{VertexCover} \in \mathbf{NP}$ ist bekannt aus der letzten Hausaufgabe.
\textbf{Vor\"uberlegung} zur Reduktion von \prob{Clique} auf \prob{VertexCover}: Sei eine Instanz mit $G = (V,E)$ und $k \in \mathbb{N}_{\geq 0}$ von \prob{Clique} gegeben. Wir invertieren zun\"achst den Graphen $G$ und erhalten damit $G'$. Nun enth\"alt $G'$ genau dann eine unabh\"angige Menge der Gr\"o\ss e $\ell$, wenn $G$ eine Clique der Gr\"o\ss e $\ell$ enth\"alt. Wenn ein Graph mit $n$ Knoten eine unabh\"angige Menge mit mindestens $k$ Knoten hat, dann hat der Graph auch ein Vertex Cover mit maximal $n-k$ Knoten (das Komplement zur unabh\"angigen Menge). Unsere Instanz f\"ur \prob{VertexCover} ist also $G'$ und $n-k$. ($k \leq n$ k\"onnen wir annehmen)
Betrachte nun folgende Reduktion:
Sei eine Instanz mit $G = (V,E)$ und $k \in \mathbb{N}_{\geq 0}$ von \prob{Clique} gegeben. Invertiere den Graphen $G$ und erhalte damit $G'$. Gebe nun $G'$ und $n-k$ als Instanz von \prob{VertexCover} zur\"uck.
\textbf{Korrektheit:}
$\Rightarrow$ (Falls $(G,k)$ eine Ja-Instanz von \prob{Clique} ist, dann ist $(G',n-k)$ eine Ja-Instanz von \prob{VertexCover}.): $G$ enthalte eine Clique $C$ der Gr\"o\ss e $\geq k$. Dann ist $V' := V \setminus C$ ein Vertex Cover von $G'$ der Gr\"o\ss e $\leq n-k$. Da $|C| \geq k$, gilt $|V'| \leq 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\"ur jede Kante $\{u,v\} \in E'$, dass $u \notin C$ oder $v \notin C$ und somit $u \in V'$ oder $v \in V'$.
$\Leftarrow$ (Falls $(G',n-k)$ eine Ja-Instanz von \prob{VertexCover} ist, dann ist $(G,k)$ eine Ja-Instanz von \prob{Clique}.): $G'$ enthalte ein Vertex Cover $V'$ der Gr\"o\ss e $\leq n-k$. Dann ist $C := V \setminus V'$ eine Clique der Gr\"o\ss e $\geq k$ in $G$. Da $|V'| \leq n-k$, gilt $|C| \geq k$. F\"ur jede Menge $\{u,v\} \subseteq C$ gilt, dass $\{u,v\} \notin E'$. Ansonsten w\"are $V'$ kein korrektes Vertex Cover. Da $G'$ der invertierte Graph von $G$ ist, gilt somit $\{u,v\} \in E$ f\"ur jede Menge $\{u,v\} \subseteq C$.
\textbf{Laufzeit:} Das Invertieren des Graphen kann naiv in $O(|V|^{2} \cdot |E|)$ Zeit, also in polynomieller Zeit, erledigt werden.
Also existiert eine polynomielle Reduktion von \prob{Clique} auf \prob{VertexCover}. Da \prob{Clique} $\mathbf{NP}$-vollst\"andig ist und $\prob{VertexCover} \in \mathbf{NP}$ gilt, ist somit \prob{VertexCover} $\mathbf{NP}$-vollst\"andig.
\aufgabe{10.3}{Turingmaschinen}
Entwerfen Sie eine Turingmaschine f\"ur die Sprache $L = \{0^{2^{n}} \mid n \in \mathbb{N}\}$ \"uber dem Alphabet $\Sigma = \{0\}$ und geben Sie die Laufzeit Ihrer Turingmaschine an. Begr\"unden Sie die Korrektheit und die Laufzeit Ihrer Turingmaschine. Diskutieren Sie die Laufzeit Ihrer Turingmaschine im Vergleich zu einem Algorithmus (mit RAM) f\"ur diese Sprache.
\loesung
Die Turingmaschine sieht folgenderma\ss en aus:
\begin{enumerate}[label=(\arabic*)]
\item Falls genau eine 0 auf dem Band steht, akzeptiere.
\item Bewege den Kopf von links nach rechts \"uber die Eingabe und ersetze jede zweite 0 durch ein neues Symbol $x$.
\item Falls das letzte Symbol der Eingabe nun eine 0 ist, verwerfe.
\item Gehe zu Schritt (1).
\end{enumerate}
\textbf{Korrektheit:} Die Sprache $L$ besteht aus allen W\"ortern, die nur Nullen enthalten und deren L\"ange eine Zweierpotenz ist. Eine Zahl ist genau dann eine Zweierpotenz, wenn sie nach wiederholtem Teilen durch 2 irgendwann eine 1 ergibt. Genau das \"uberpr\"uft 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)).
\textbf{Laufzeit:} Die angegebene Turingmaschine hat eine Laufzeit von $O(n\log(n))$, wobei $n$ hier die L\"ange der Eingabe bezeichnet. Schritt (1) und Schritt (2) ben\"otigen 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\"alfte der Nullen (abgerundet) durch $x$-Symbole ersetzt wird, steht nach $\log n$ Durchl\"aufen nur noch eine Null auf dem Band und es wird nach Schritt (1) akzeptiert oder es steht nach $\lfloor \log n \rfloor - 1$ Durchl\"aufen eine ungerade Anzahl von Nullen auf dem Band und es wird nach Schritt (3) verworfen. Also gibt es maximal $\log n + 1$ Durchl\"aufe.
\textbf{Diskussion:} Ein Algorithmus mit RAM k\"onnte folgenderma\ss en aussehen:
\begin{enumerate}
\item Z\"ahle die Buchstaben und erhalte Anzahl $m$.
\item Falls $\log m$ ganzzahlig ist, akzeptiere. Sonst verwerfe.
\end{enumerate}
Dieser Algorithmus hat eine Laufzeit von $O(n)$, wobei $n$ hier die L\"ange der Eingabe bezeichnet. Ein Algorithmus mit RAM kann also den zus\"atzlichen Speicher nutzen, um wesentlich schneller eine Aufgabe zu erledigen, im Vergleich zu einem Algorithmus, der auf einer Turingmaschine l\"auft.
\clearpage
%======================================================================
% BLATT 11
%======================================================================
\blattheader{23.06.2025}{Blatt 11}
\aufgabe{11.1}{Fragen \"uber Fragen}
Diskutieren Sie nachfolgende Aussagen. Sind diese wahr oder falsch?
\begin{enumerate}[label=(\alph*)]
\item F\"ur $L \in \mathbf{NP}$ gilt, aus $L \preceq \text{3-SAT}$ folgt, dass $L$ $\mathbf{NP}$-vollst\"andig ist.
\item Gilt f\"ur eine Sprache $L$, dass sowohl $L \preceq \text{3-SAT}$ als auch $\text{3-SAT} \preceq L$, dann ist $L$ $\mathbf{NP}$-vollst\"andig.
\item Sei $L$ $\mathbf{NP}$-vollst\"andig. Dann gilt $L \in \mathbf{P}$ genau dann, wenn $\mathbf{P} = \mathbf{NP}$.
\item Es ist m\"oglich, dass $\text{3-SAT} \in \mathbf{P}$ und $\prob{Clique} \notin \mathbf{P}$.
\end{enumerate}
\loesung
\begin{enumerate}[label=(\alph*)]
\item Nein, ein Gegenbeispiel ist $L = \emptyset$. Offensichtlich gilt $L \in \mathbf{NP}$. Aus $L \preceq \text{3-SAT}$ folgt nur, dass sich $L$ auf 3-SAT reduzieren l\"asst, nicht anders herum.
\item Das ist die Definition von $\mathbf{NP}$-vollst\"andig.
\item Korrekt, da sich jedes Problem auf $L$ reduzieren l\"asst nach Def.\ $\mathbf{NP}$-vollst\"andig (und offensichtlich $\mathbf{P} \subseteq \mathbf{NP}$).
\item Nein, weil 3-SAT $\mathbf{NP}$-vollst\"andig ist, l\"asst sich \prob{Clique} (liegt bekannterweise in $\mathbf{NP}$, ist sogar $\mathbf{NP}$-vollst\"andig) auf 3-SAT reduzieren.
\end{enumerate}
\qedbox
\aufgabe{11.2}{NP-Vollst\"andigkeit}
In dem Problem \prob{Clique-Nomember} ist ein Graph $G = (V,E)$, ein Knoten $v \in V$ sowie eine Zahl $k \in \mathbb{N}$ gegeben und es soll entschieden werden, ob es eine Clique mit $k$ Knoten gibt, die den Knoten $v$ nicht enth\"alt.
Zeigen Sie, dass \prob{Clique-Nomember} $\mathbf{NP}$-vollst\"andig ist, indem Sie eine Reduktion von \prob{Clique} auf \prob{Clique-Nomember} angeben. Sie k\"onnen davon ausgehen, dass $\prob{Clique-Nomember} \in \mathbf{NP}$ ist.
\loesung
\textbf{Clique-Nomember ist NP-schwer:}
Sei $(G = (V,E), k)$ eine Eingabe f\"ur das Clique Problem.
\textit{Idee:} F\"uge einen neuen isolierten Knoten $v$ zu $G$ hinzu.
Wir geben zuerst die Abbildung an: Sei $v \notin V$. Wir definieren die Eingabe f\"ur das Problem \prob{Clique-Nomember} als den Graphen $G' := (V \cup \{v\}, E)$, den Knoten $v$ als Knoten, der nicht benutzt werden darf, und $k$ als gesuchte Cliquengr\"o\ss e. $(G', v, k)$ ist eine g\"ultige Eingabe f\"ur \prob{Clique-Nomember} und in polynomieller Zeit berechenbar.
Wir zeigen nun: $G$ hat eine $k$-Clique genau dann, wenn $G'$ eine $k$-Clique ohne $v$ beinhaltet.
$\Rightarrow$: Sei $(G,k)$ eine Ja-Instanz des \prob{Clique} Problems. Dann enth\"alt $G$ eine $k$-Clique $C$. Dann ist $C$ auch eine $k$-Clique in $G'$, da bei der Abbildung keine Kanten entfernt wurden. Da $v \notin V$, enth\"alt $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 \prob{Clique-Nomember} Problems.
$\Leftarrow$: Sei $(G', v, k)$ eine Ja-Instanz des \prob{Clique-Nomember} Problems. Dann enth\"alt $G'$ eine $k$-Clique $C$ mit $v \notin C$. Da bei der Abbildung an dem Graphen nichts ge\"andert wurde, au\ss er der Knoten $v$ hinzugef\"ugt, muss $C$ auch eine $k$-Clique in $G$ sein. Damit ist $(G,k)$ eine Ja-Instanz des \prob{Clique} Problems.
Also existiert eine polynomielle Reduktion von \prob{Clique} auf \prob{Clique-Nomember}. Da \prob{Clique} $\mathbf{NP}$-vollst\"andig ist und $\prob{Clique-Nomember} \in \mathbf{NP}$ nach Aufgabenstellung gilt, ist somit \prob{Clique-Nomember} $\mathbf{NP}$-vollst\"andig.
\aufgabe{11.3}{NP-Vollst\"andigkeit}
F\"ur das Problem \prob{Subset Sum Cardinality} seien $n$ ganze Zahlen $c_1,\dots,c_n \in \mathbb{N}_{>0}$ (wobei $n$ gerade sei) sowie eine Zahl $K \in \mathbb{N}$ gegeben. Es soll entschieden werden, ob es eine Teilmenge $S \subset \{1,\dots,n\}$ gibt mit $|S| = n/2$ und $\sum_{i\in S} c_i = K$.
Zeigen Sie, dass das Problem \prob{Subset Sum Cardinality} $\mathbf{NP}$-vollst\"andig ist. Sie k\"onnen davon ausgehen, dass $\prob{Subset Sum Cardinality} \in \mathbf{NP}$ ist.
\loesung
\textbf{Subset Sum Cardinality ist NP-schwer:}
\prob{Subset Sum} Problem: Gegeben: $n$ ganze Zahlen $c_1,\dots,c_n \in \mathbb{N}_{>0}$ und Zahl $K \in \mathbb{N}$. Frage: Gibt es eine Teilmenge $S \subseteq \{0,\dots,n\}$ mit $\sum_{i\in S} c_i = K$?
\textbf{Reduktion:} Sei $I = (c_1,\dots,c_n,K)$ eine Eingabe f\"ur das \prob{Subset Sum} Problem. Definiere $c'_i := c_i + 1$ f\"ur $i \leq n$ und $c'_i := 1$ f\"ur $i \in \{n+1,\dots,2n\}$. Wir definieren die Eingabe f\"ur das Problem \prob{Subset Sum Cardinality} als $I' = (c'_1,\dots,c'_{2n}, K+n)$.
Wir zeigen nun: Es gibt eine L\"osung f\"ur $I$ genau dann, wenn es eine L\"osung f\"ur $I'$ gibt.
$\Rightarrow$: Sei $I$ eine Ja-Instanz des \prob{Subset Sum} Problems. Dann gibt es eine Menge $S \subseteq \{1,\dots,n\}$ mit $\sum_{i\in S} c_i = K$. Es gilt also $\sum_{i\in S} c'_i = \sum_{i\in S}(c_i + 1) = K + |S|$. Sei nun $S' = \{n+1,\dots,2n-|S|\}$. Es gilt $|S \cup S'| = n$ und
\[
\sum_{i\in S\cup S'} c'_i = \sum_{i\in S} c'_i + \sum_{i\in S'} c'_i = \sum_{i\in S}(c_i + 1) + \sum_{i\in S'} 1 = K + |S| + (n - |S|) = K + n.
\]
$S \cup S'$ ist also eine L\"osung f\"ur $I'$ und $I'$ damit eine Ja-Instanz.
$\Leftarrow$: Es sei $I'$ eine Ja-Instanz. Dann gibt es also eine Menge $S' \subseteq \{1,\dots,2n\}$ mit $\sum_{i\in S'} c'_i = K + n$ und $|S'| = n$. Sei $S := S' \cap \{1,\dots,n\}$. Es gilt $\sum_{i\in S'} c'_i - \sum_{i\in S} c'_i = n - |S|$, da die Items in $\{n+1,\dots,2n\}$ das Gewicht 1 haben, und genau $n - |S|$ Items \"ubrig sind. Damit gilt $\sum_{i\in S}(c_i + 1) = \sum_{i\in S} c'_i = K + n - (n - |S|) = K + |S|$, woraus folgt, dass $\sum_{i\in S} c_i = K$. Damit ist $S$ eine L\"osung f\"ur $I$ und somit $I$ eine Ja-Instanz.
\textbf{Laufzeit:} Die Reduktion kann naiv in einer Zeit von $O(n)$ implementiert werden. Das ist eine polynomielle Laufzeit.
Also existiert eine polynomielle Reduktion von \prob{Subset Sum} auf \prob{Subset Sum Cardinality}. Da nach Skript \prob{Subset Sum} $\mathbf{NP}$-vollst\"andig ist und $\prob{Subset Sum Cardinality} \in \mathbf{NP}$ nach Aufgabenstellung gilt, ist somit \prob{Subset Sum Cardinality} $\mathbf{NP}$-vollst\"andig.
\clearpage
%======================================================================
% BLATT 12
%======================================================================
\blattheader{30.06.2025}{Blatt 12}
\aufgabe{12.1}{}
Im Folgenden sollen Sie herausfinden (und begr\"unden), welche Lower Bounds sich \"uber ETH und die Reduktionen aus der Vorlesung ergeben. Nutzen Sie hierf\"ur auch das Sparsification Lemma.
Welche Schranken f\"ur die Laufzeit in Abh\"angigkeit von den nat\"urlichen Parametern (Anzahl Knoten, Anzahl Kanten, Anzahl Items, Anzahl unterschiedlicher Items, Anzahl Tripel, Kardinalit\"at der Grundmenge, Anzahl unterschiedlicher Tripel, Anzahl unterschiedlicher auftretender Zahlen, gr\"o\ss te auftretende Zahl, \dots) ergeben sich jeweils aus folgenden (zum Gro\ss teil aus der Vorlesung bekannten) Reduktionen (Laufzeitfaktoren, die polynomiell in der Eingabekodierung sind, d\"urfen vernachl\"assigt werden)?
Sch\"atzen Sie dazu zun\"achst die verschiedenen Parameter der resultierenden Instanz mithilfe der Parameter der eingegebenen Instanz geeignet ab.
\begin{enumerate}
\item $\text{3-SAT} \preceq k\text{-}\prob{Clique}$
\item $k\text{-}\prob{Clique} \preceq k\text{-}\prob{IndependentSet}$ (Problemdefinition f\"ur die Antwort nicht relevant; in der Reduktion wird der Graph $G = (V,E)$ auf den Komplementgraph $(V,\overline{E})$ abgebildet)
\item $\prob{SAT} \preceq \prob{3-DimensionalMatching}$ (Hinweis: $\text{3-SAT} \subseteq \prob{SAT}$)
\item $\prob{3-DimensionalMatching} \preceq \prob{3-ExactCover}$
\item $\prob{3-ExactCover} \preceq \prob{SubsetSum}$
\end{enumerate}
\loesung
Angenommen ETH gilt. Das Sparsification Lemma impliziert, dass man 3-SAT nicht in $2^{o(m)} \cdot |I|^{O(1)}$ l\"osen kann.
\begin{enumerate}
\item In der Reduktion werden $|V| = O(m)$ Knoten und $|E| = O(m^{2})$ Kanten erstellt und $k = m$. Au\ss erdem gilt $n \leq 3m \in O(m)$.
\begin{itemize}
\item \textbf{Lower bound bzgl.\ der Anzahl an Knoten:} $2^{o(|V|)} \cdot |I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Clique in $2^{o(|V|)} \cdot |I|^{O(1)}$ l\"ost. Dann gibt es auch einen Algorithmus, der 3-SAT in $2^{o(m)} \cdot |I|^{O(1)}$ l\"ost (Reduktion auf $k$-Clique $+$ $k$-Cliquen Algorithmus). Nach dem Sparsification Lemma gibt es dies nur, wenn die ETH nicht gilt.
\item \textbf{Lower bound bzgl.\ der Anzahl an Kanten:} $2^{o(\sqrt{|E|})} \cdot |I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Clique in $2^{o(\sqrt{|E|})} \cdot |I|^{O(1)}$ l\"ost. Da $|E| \in O(m^{2})$, gibt es dann auch einen Algorithmus, der 3-SAT in $2^{o(m)} \cdot |I|^{O(1)}$ l\"ost (Reduktion auf $k$-Clique $+$ $k$-Cliquen Algorithmus). Nach dem Sparsification Lemma gibt es dies nur, wenn die ETH nicht gilt.
\item \textbf{Lower bound bzgl.\ $k$:} $2^{o(k)} \cdot |I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Clique in $2^{o(k)} \cdot |I|^{O(1)}$ l\"ost. Dann gibt es auch einen Algorithmus, der 3-SAT in $2^{o(m)} \cdot |I|^{O(1)}$ l\"ost (Reduktion auf $k$-Clique $+$ $k$-Cliquen Algorithmus). Nach dem Sparsification Lemma gibt es dies nur, wenn die ETH nicht gilt.
\end{itemize}
\item In der Reduktion werden genau $|V|$ Knoten und maximal $|E| = O(|V|^{2})$ Kanten erstellt.
\begin{itemize}
\item \textbf{Lower bound bzgl.\ der Anzahl an Knoten:} $2^{o(|V|)} \cdot |I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Independent-Set in $2^{o(|V|)} \cdot |I|^{O(1)}$ l\"ost. Dann gibt es auch einen Algorithmus, der $k$-Clique in $2^{o(|V|)} \cdot |I|^{O(1)}$ l\"ost (Reduktion auf $k$-Independent-Set $+$ $k$-Independent-Set Algorithmus). Nach Aufgabenteil 1, gibt es diesen nur, wenn die ETH nicht gilt.
\item \textbf{Lower bound bzgl.\ der Anzahl an Kanten:} $2^{o(\sqrt{|E|})} \cdot |I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Independent-Set in $2^{o(\sqrt{|E|})} \cdot |I|^{O(1)}$ l\"ost. Da $|E| \leq |V|^{2}$, gibt es dann auch einen Algorithmus, der $k$-Clique in $2^{o(|V|)} \cdot |I|^{O(1)}$ l\"ost (Reduktion auf $k$-Independent-Set $+$ $k$-Independent-Set Algorithmus). Nach Aufgabenteil 1, gibt es diesen nur, wenn die ETH nicht gilt.
\end{itemize}
\item In der Reduktion werden Mengen mit $|U| = |V| = |W| = O(mn)$ Elementen erstellt und $|T| = O(m^{2}n^{2})$ Tupel. Es gilt $n \leq 3m \in O(m)$ f\"ur 3-SAT.
\begin{itemize}
\item \textbf{Lower bound bzgl.\ der Anzahl an Elementen:} $2^{o(\sqrt{|V|})} \cdot |I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der 3-Dimensional-Matching in $2^{o(\sqrt{|V|})} \cdot |I|^{O(1)}$ l\"ost. Da $|V| \in O(mn) \leq O(m^{2})$, gibt es dann auch einen Algorithmus, der 3-SAT in $2^{o(m)} \cdot |I|^{O(1)}$ l\"ost (Reduktion von SAT auf 3-Dimensional-Matching angewandt auf 3-SAT Instanzen $+$ 3-Dimensional-Matching Algorithmus). Nach dem Sparsification Lemma geht dies nur, wenn die ETH nicht gilt.
\item \textbf{Lower bound bzgl.\ der Kardinalit\"at von $T$:} $2^{o(\sqrt[4]{|T|})} \cdot |I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der 3-Dimensional-Matching in $2^{o(\sqrt[4]{|T|})} \cdot |I|^{O(1)}$ l\"ost. Da $|T| \in O(m^{2}n^{2}) \leq O(m^{4})$, gibt es dann auch einen Algorithmus, der 3-SAT in $2^{o(m)} \cdot |I|^{O(1)}$ l\"ost (Reduktion von SAT auf 3-Dimensional-Matching angewandt auf 3-SAT Instanzen $+$ 3-Dimensional-Matching Algorithmus). Nach dem Sparsification Lemma geht dies nur, wenn die ETH nicht gilt.
\end{itemize}
\item Das 3-dimensionale Matching ist ein Spezialfall vom 3-Exact Cover. Daher gelten die Lower Bounds von 3-dimensionalem Matching auch f\"ur 3-Exact Cover. Da $|U| = 3m \in O(|V|)$, ergibt sich, dass es f\"ur 3-Exact Cover unter der ETH keinen Algorithmus mit Laufzeit $2^{o(\sqrt{m})} \cdot |I|^{O(1)}$ geben kann, da sonst 3-dimensionales Matching in $2^{o(\sqrt{|V|})} \cdot |I|^{O(1)}$ l\"osbar w\"are. Und da $|F| = |T|$, ergibt sich, dass es f\"ur 3-Exact Cover unter der ETH keinen Algorithmus mit Laufzeit $2^{o(\sqrt[4]{|F|})} \cdot |I|^{O(1)}$ geben kann, da sonst 3-dimensionales Matching in $2^{o(\sqrt[4]{|T|})} \cdot |I|^{O(1)}$ l\"osbar w\"are.
\item In der Reduktion wird $n = |F|$ gesetzt. \textbf{Lower bound bzgl.\ $n$:} $2^{o(\sqrt[4]{n})} \cdot |I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der SubsetSum in $2^{o(\sqrt[4]{n})} \cdot |I|^{O(1)}$ l\"ost. Dann gibt es auch einen Algorithmus, der 3-Exact Cover in $2^{o(\sqrt[4]{|F|})} \cdot |I|^{O(1)}$ l\"ost. Nach Aufgabenteil 4, gibt es diesen nur, wenn die ETH nicht gilt.
\end{enumerate}
\clearpage
%======================================================================
% BLATT 13
%======================================================================
\blattheader{07.07.2025}{Blatt 13}
\aufgabe{13.1}{Vertex Cover}
Ein Vertex Cover in einem Graphen $G = (V,E)$ ist eine Menge von Knoten $C \subseteq V$, so dass f\"ur jede Kante $\{v,w\} \in E$ gilt, dass $v \in C$ oder $w \in C$. Beim Optimierungsproblem Minimum Vertex Cover soll die kardinalit\"atskleinste Menge $C \subseteq V$ gefunden werden, die ein Vertex Cover von $G$ ist.
Gegeben ist der folgende approximative Algorithmus mit G\"ute 2 f\"ur \texttt{VertexCover}:
\textit{Idee:} W\"ahle eine beliebige Kante. Wenn einer der beiden Endknoten bereits in $C$ ist, verwirf diese Kante. Sonst, f\"uge beide Endknoten zur Menge $C$ hinzu. Mache dies f\"ur jede Kante.
\medskip
\noindent\textbf{Algorithmus} $\mathbf{2ApproxCV}(G = (V,E))$
\begin{quote}
\ttfamily
\begin{tabbing}
9\=99\=99\=99\=\kill
1 \> $C = \{\}$ \\
2 \> \textbf{foreach} $\{u,v\} \in E$ \textbf{do} \\
3 \> \> \textbf{if} $u \notin C$ \textbf{and} $v \notin C$ \textbf{then} \\
4 \> \> \> $C = C \cup \{u,v\}$ \\
5 \> \> \textbf{fi} \\
6 \> \textbf{od} \\
7 \> \textbf{return} $C$
\end{tabbing}
\end{quote}
Beweisen Sie die G\"ute.
\loesung
\textbf{Beweis:} Sei $C^{*}$ ein minimales Vertex Cover. Wir zeigen $|C| \leq 2|C^{*}|$.
Sei $A$ die Menge der Kanten, f\"ur die beide Endknoten zu $C$ hinzugef\"ugt wurden. Es gilt $|C| = 2|A|$, da beide Knoten jeder ausgew\"ahlten Kante zu $C$ hinzugef\"ugt wurden und alle anderen Kanten nicht weiter betrachtet werden. Damit folgt auch, dass keine zwei Kanten aus $A$ einen Knoten gemeinsam haben k\"onnen. Sei nun $C^{*}$ ein minimales Vertex Cover. $C^{*}$ enth\"alt 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^{*}$ \"uberdeckt werden k\"onnen, gilt $|C^{*}| \geq |A|$. Es folgt $|C| = 2|A| \leq 2|C^{*}|$. Die L\"osung $C$ von \textbf{2ApproxCV} ist also maximal doppelt so gro\ss{} wie die optimale L\"osung $C^{*}$. Damit berechnet der Algorithmus eine 2-Approximation.
\qedbox
\aufgabe{13.2}{TSP}
In der Vorlesung haben Sie zwei approximative Algorithmen f\"ur das TSP-Problem kennengelernt. Der erste Algorithmus $\Delta\mathrm{TSP1}$ hat eine Approximationsrate von 2, w\"ahrend der zweite Algorithmus $\Delta\mathrm{TSP2}$ von Christofides eine Approximationsrate von $3/2$ besitzt. In dieser \"Ubung soll gezeigt werden, dass die zweite Rate scharf ist. D.h., dass es eine Folge von Instanzen gibt, auf denen der Algorithmus immer n\"aher an diese Rate heran kommt.
Wir betrachten den vollst\"andigen Graphen $K_n = (V,E)$ f\"ur ein $n \in \mathbb{N}_{\geq 6}$ mit $n \bmod 4 = 2$ und die nachfolgende Gewichtsfunktion $d_2 : E \to \mathbb{R}_{+}$. Zeigen Sie, dass
\begin{enumerate}[label=(\alph*)]
\item $\mathrm{OPT}((K_n,d_2)) = n$ gilt und
\item eine m\"ogliche Ausf\"uhrung von $\Delta\mathrm{TSP2}$ existiert, die auf Eingabe $(K_n,d_2)$ eine Tour der L\"ange $(n-1) + n/2$ berechnet.
\end{enumerate}
\medskip
\fbox{\parbox{0.97\textwidth}{%
\textit{[Grafik ersetzt durch Beschreibung]}\par\smallskip
Dargestellt ist ein \textbf{leiterf\"ormiger Graph} (Ladder) auf den Knoten $1$ bis $n$.
Die ungeraden Knoten $1,3,5,\dots,n-1$ bilden die \emph{obere} Reihe, die geraden Knoten
$2,4,6,\dots,n$ die \emph{untere} Reihe. Eingezeichnet sind Kanten mit Gewicht $1$:
\begin{itemize}[nosep]
\item \emph{horizontal} zwischen Knoten mit Abstand $2$, d.h.\ $\{i,i+2\}$ f\"ur $i \in \{1,\dots,n-2\}$
(also die Pfade $1$--$3$--$5$--$\dots$--$(n-1)$ oben und $2$--$4$--$6$--$\dots$--$n$ unten);
\item als \emph{Sprossen} senkrecht $\{1,2\},\{3,4\},\{5,6\},\dots,\{n-1,n\}$.
\end{itemize}
Der Graph ist der vollst\"andige Graph $K_n$; alle nicht eingezeichneten Kanten
$E \setminus E_2$ erhalten als Gewicht die L\"ange des k\"urzesten Weges zwischen ihren
Endknoten in dieser Leiterstruktur.}}
\medskip
Wir definieren $E_2 := \{\{i,i+2\} \mid i \in \{1,\dots,n-2\}\} \cup \{\{2i+1,2i+2\} \mid i \in \{0,\dots,n/2-1\}\}$ und $d_2$, so dass alle Kanten aus $E_2$ auf $1$ abgebildet werden und alle Kanten aus $E \setminus E_2$ auf den Wert des k\"urzesten Wegs zwischen diesen Knoten in dem oben abgebildeten Graphen abgebildet werden.
\loesung
Wichtig bei dieser Aufgabe ist der folgende Fakt: Bei beiden Algorithmen wird irgendein 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\"ussen also auch noch durch irgendeine Reihenfolge festgelegt werden.) Wir gehen also davon aus, dass wir diese Reihenfolge auch w\"ahlen k\"onnen. Sollte der Algorithmus also einen „besseren\textquotedblleft{} MST oder eine „bessere\textquotedblleft{} Knotenreihenfolge nutzen, passen wir die Labels dementsprechend an.
Ein m\"oglicher MST ist durch die unten angegebene Zick-Zack-Tour gegeben oder formal durch
\[
E_T = \left[\; \bigcup_{\substack{1 \leq j \leq n-5 \\ j \bmod 4 = 1}} \big\{\{j,j+1\},\{j+1,j+3\},\{j+3,j+2\},\{j+2,j+4\}\big\} \right] \cup \{\{n-1,n\}\}.
\]
\medskip
\fbox{\parbox{0.97\textwidth}{%
\textit{[Grafik ersetzt durch Beschreibung]}\par\smallskip
Dargestellt ist der oben formal definierte MST als \textbf{Zick-Zack-Baum} \"uber dem
Leitergraphen. Ausgehend von Knoten $1$ l\"auft der Pfad im Zickzack zwischen oberer und
unterer Reihe: $1$--$2$, $2$--$4$, $4$--$3$, $3$--$5$, $5$--$6$, $6$--$8$, $8$--$7$, $7$--$9$,
$\dots$ und wird schlie\ss lich durch die Kante $\{n-1,n\}$ abgeschlossen. Alle Baumkanten
haben Gewicht $1$; es werden $n-1$ Kanten gew\"ahlt.}}
\medskip
Es gilt $d(T) = n-1$ f\"ur die Kosten $d(T)$ des MST $T$, da nur Kanten mit Kosten $1$ gew\"ahlt werden und $n-1$ Kanten gew\"ahlt werden m\"ussen, um den Zusammenhang sicher zu stellen.
Da jeder Knoten im MST au\ss er $1$ und $n$ geraden Grad hat, ist das Matching $K$ sehr simpel, n\"amlich $K = \{\{1,n\}\}$. Die Kosten der Kante $\{1,n\}$ sind $n/2$ (der k\"urzeste Pfad von $1$ zu $n$) und somit gilt $d(K) = n/2$ f\"ur 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\"urde erst „oben\textquotedblleft{} und dann „unten\textquotedblleft{} 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 $\mathrm{OPT}((K_n,d_2)) = n$ und wir haben eine Rate von
\[
\frac{\Delta\mathrm{TSP2}((K_n,d_2))}{\mathrm{OPT}((K_n,d_2))} = \frac{n-1+n/2}{n} = 3/2 - \frac{1}{n} \leq 3/2.
\]
Da $\lim_{n\to\infty} 3/2 - \frac{1}{n} = 3/2$, kommen wir der Rate von $3/2$ also beliebig nahe.
\end{document}

View File

@@ -0,0 +1,914 @@
% =====================================================================
% alle_serien_2026.tex
% 1:1-Nachbau der PDF "alle_serien_2026.pdf"
% Vorlesung: Analyse von Algorithmen und Komplexität, CAU Kiel, SoSe 2026
%
% Hinweise:
% - Das CAU-Siegel ist als schlichter Platzhalter (TikZ-Kreis) eingebunden,
% damit die Datei ohne externe Grafik kompiliert. Zum Ersetzen:
% \renewcommand{\caulogo}{\includegraphics[width=2cm]{cau_siegel.png}}
% - Alle Abbildungen (gerichteter Beispielgraph Blatt 9, die zwei
% Beispielgraphen Blatt 11, der Graph G2 und der MST Blatt 12) sind
% durch textuelle Beschreibungen ersetzt.
% - Kompilieren mit pdflatex (2x fuer Referenzen/Layout).
% =====================================================================
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,provide=*]{babel}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{enumitem}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,positioning,calc}
\usepackage[a4paper,left=2.4cm,right=2.4cm,top=2.2cm,bottom=2.2cm]{geometry}
\pagestyle{empty}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0.6em}
\setlist{topsep=2pt,itemsep=2pt}
% ---------- Abkuerzungen ----------------------------------------------
\newcommand{\Znn}{\mathbb{Z}_{\ge 0}}
\newcommand{\Zpos}{\mathbb{Z}_{> 0}}
\newcommand{\prob}[1]{\textsc{#1}}
% ---------- CAU-Siegel (Platzhalter) ----------------------------------
\newcommand{\caulogo}{%
\begin{tikzpicture}[baseline]
\draw[line width=0.4pt] (0,0) circle (0.95);
\draw[line width=0.4pt] (0,0) circle (0.82);
\node[font=\tiny\scshape] at (0,0.45) {sigillum};
\node[font=\scriptsize\bfseries] at (0,0) {CAU};
\node[font=\tiny\scshape] at (0,-0.45) {kiliae};
\end{tikzpicture}%
}
% ---------- Kopf, Titel, Datum, Aufgaben, Abgabe ----------------------
\newcommand{\blattkopf}[2]{% #1 = Arbeitsgruppe, #2 = Dozentenzeile
\noindent
\begin{minipage}[c]{0.16\textwidth}\centering\caulogo\end{minipage}%
\hfill
\begin{minipage}[c]{0.80\textwidth}
\textbf{CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL}\\[0.6mm]
{\small Institut für Informatik, #1}\\
{\small #2}
\end{minipage}\par
}
\newcommand{\datum}[1]{\vspace{2mm}\hfill #1\par\vspace{1mm}}
\newcommand{\hatitel}[1]{%
\begin{center}
{\large\bfseries Hausaufgaben zur Vorlesung »Analyse von Algorithmen und\\ Komplexität«}\\[3mm]
Blatt #1
\end{center}\vspace{2mm}}
\newcommand{\pratitel}[1]{%
\begin{center}
{\large\bfseries Präsenzaufgaben zur Vorlesung\\ »Analyse von Algorithmen und Komplexität«}\\[3mm]
Blatt #1
\end{center}\vspace{2mm}}
% Aufgabenkopf mit Punkten: #1=Bezeichnung #2=Titel #3=Punkte
\newcommand{\aufgabeP}[3]{\par\medskip\noindent\textbf{#1} (#2)\hfill(#3)\par}
% Aufgabenkopf ohne Punkte
\newcommand{\aufgabe}[2]{\par\medskip\noindent\textbf{#1} (#2)\par}
\newcommand{\definition}[2]{\par\medskip\noindent\textbf{Definition #1} (#2)\textbf{.}\ }
\newcommand{\abgabe}[1]{\par\vspace{5mm}\noindent\textbf{Abgabe:} #1}
\newcommand{\loesung}{\par\medskip\noindent\textbf{Lösung.}\ }
\newcommand{\qedsym}{\hfill$\square$}
% Konstanten fuer die Kopfzeilen
\newcommand{\agHA}{Arbeitsgruppe Algorithmen und Komplexität}
\newcommand{\agPR}{Arbeitsgruppe Theoretische Informatik}
\newcommand{\dozHA}{Dr.\ Max Deppert, Janina Reuter, Annika Huch}
\newcommand{\dozPR}{Dr.\ Max A.\ Deppert, Janina Reuter, Annika Huch}
\begin{document}
% =====================================================================
% ============================ HAUSAUFGABEN ===========================
% =====================================================================
% ---------------------------- Blatt 9 --------------------------------
\blattkopf{\agHA}{\dozHA}
\datum{08.06.2026}
\hatitel{9}
\definition{1}{Vertex Cover (VC)} Für einen (ungerichteten) Graphen $G=(V,E)$ ist ein Vertex
Cover eine Menge von Knoten $C\subseteq V$, sodass $u\in C$ oder $v\in C$ für alle $\{u,v\}\in E$ gilt, also ist
für alle Kanten mindestens ein Endpunkt in $C$.
Für das \prob{VertexCover} Problem ist neben einem Graphen $G$ eine Zahl $k\in\Znn$ gegeben und
es wird gefragt, ob ein Vertex Cover mit Größe (Anzahl der Knoten) höchstens $k$ in $G$ existiert.
\definition{2}{Feedback Vertex Set (FVS)} Für einen gerichteten Graphen $G=(V,E)$ ist ein
Feedback Vertex Set eine Menge von Knoten $X\subseteq V$, sodass $G\setminus X$ kreisfrei ist.
Für das \prob{FeedbackVertexSet} Problem ist neben einem Graphen $G$ eine Zahl $k\in\Znn$ gegeben und es wird gefragt, ob ein Feedback Vertex Set mit Größe (Anzahl der Knoten) höchstens
$k$ in $G$ existiert.
% --- Abbildung 1: Beispiel Graph (gerichtet). Richtungen rekonstruiert. ---
\medskip
\noindent\textit{Abbildung 1 (Beschreibung).} Der Beispielgraph ist ein \textbf{gerichteter} Graph mit acht Knoten $1,\dots,8$. Anordnung: obere Reihe $1$, $6$, $2$ (von links nach rechts); mittlere Ebene $5$ (links) und $7$ (rechts); untere Ebene $8$ (links), $3$ (rechts) und $4$ (Mitte unten). Die gerichteten Kanten sind:
\[
1\!\to\!6,\ 6\!\to\!2,\ 1\!\to\!5,\ 6\!\to\!5,\ 6\!\to\!7,\ 2\!\to\!3,\ 3\!\to\!7,\ 3\!\to\!4,\ 5\!\to\!8,\ 4\!\to\!8,\ 4\!\to\!5,\ 7\!\to\!5.
\]
(Für ein Vertex Cover ist die Orientierung der Kanten irrelevant; für das Feedback Vertex Set ist sie relevant. Die Kantenrichtungen wurden aus dem Originalbild rekonstruiert und sollten abgeglichen werden.)
\medskip
\aufgabeP{Hausaufgabe 9.1}{Nichtdeterministischer Algorithmus für VC}{5 Punkte}
\begin{enumerate}
\item Finden Sie ein minimales Vertex Cover in Abbildung 1. Für ein Vertex Cover ist die
Orientierung der Kanten nicht relevant.
\item Zeigen Sie $\prob{VertexCover}\in\mathbf{NP}$, indem Sie einen nichtdeterministischen Algorithmus
angeben, der \prob{VertexCover} in Polynomialzeit löst. Begründen Sie die Korrektheit und
die Laufzeit von Ihrem Algorithmus.
\end{enumerate}
\aufgabeP{Hausaufgabe 9.2}{Polynomieller Verifizierer für FVS}{5 Punkte}
\begin{enumerate}
\item Finden Sie ein minimales Feedback Vertex Set in Abbildung 1.
\item Zeigen Sie $\prob{FeedbackVertexSet}\in\mathbf{NP}$, indem Sie einen polynomiellen Verifizierer
für \prob{FeedbackVertexSet} angeben. Begründen Sie die Korrektheit und die Laufzeit
von Ihrem Verifizierer.
\end{enumerate}
\abgabe{15.06.2026, 10:00 Uhr in Moodle.}
\newpage
% ---------------------------- Blatt 10 -------------------------------
\blattkopf{\agHA}{\dozHA}
\datum{15.06.2026}
\hatitel{10}
\definition{1}{Feedback Vertex Set (FVS)} Für einen gerichteten Graphen $G=(V,E)$ ist ein
Feedback Vertex Set eine Menge von Knoten $X\subseteq V$, sodass $G\setminus X$ kreisfrei ist.
Für das \prob{FeedbackVertexSet} Problem ist neben einem Graphen $G$ eine Zahl $k\in\Znn$ gegeben und es wird gefragt, ob ein Feedback Vertex Set mit Größe (Anzahl der Knoten) höchstens
$k$ in $G$ existiert.
\aufgabeP{Hausaufgabe 10.1}{\prob{FeedbackVertexSet} ist \textbf{NP}-vollständig}{5 Punkte}
Zeigen Sie, dass \prob{FeedbackVertexSet} \textbf{NP}-vollständig ist.
\textit{Hinweis:} Reduzieren Sie \prob{VertexCover} auf \prob{FeedbackVertexSet}. Wenn ein Vertex Cover
aus einem Graphen entfernt wird, hat dieser keine Kanten mehr.
\aufgabeP{Hausaufgabe 10.2}{$k$-\prob{Clique} mit universellem Knoten}{5 Punkte}
Die folgende Aufgabe ist eine klassische Klausuraufgabe (da sie ein Problem, dessen \textbf{NP}-Vollständigkeit bereits bekannt ist, mit einer Zusatzeigenschaft versieht -- und erneut nach \textbf{NP}-Vollständigkeit fragt).
Wir definieren das Problem $k$-\prob{CliqueUniversal} wie folgt:
\noindent\textbf{Gegeben:} Ein ungerichteter Graph $G=(V,E)$ sowie eine Zahl $k\in\mathbb{Z}_{\ge 1}$, wobei ein $u\in V$ so
existiert, dass $u$ mit allen anderen Knoten verbunden ist, i.e.\ $\{\,\{u,v\}\mid v\in V\setminus\{u\}\,\}\subseteq E$
\noindent\textbf{Entscheide:} Existiert eine Clique $C\subseteq V$ von $G$ mit $|C|\ge k$?
Zeigen Sie, dass $k$-\prob{CliqueUniversal} \textbf{NP}-vollständig ist.
\abgabe{22.06.2026, 10:00 Uhr in Moodle.}
\newpage
% ---------------------------- Blatt 11 -------------------------------
\blattkopf{\agHA}{\dozHA}
\datum{22.06.2026}
\hatitel{11}
\definition{1}{Dreiecksüberdeckung eines Graphen ($\Delta$\,\prob{Cover})}\\[-1mm]
\noindent\textbf{Gegeben}\quad Ein ungerichteter Graph $G=(V,E)$ und eine Zahl $k\in\Znn$.
\noindent\textbf{Entscheide}\quad Besitzt $G$ eine \textit{Dreiecksüberdeckung} $C_\Delta\subseteq V$ mit $|C_\Delta|\le k$,\\
\hspace*{2.3cm} d.h.\ gilt $D\cap C_\Delta\ne\emptyset$ für jede 3-Clique $D\subseteq V$ in $G$?
% --- Abbildung 1: zwei Beispielgraphen (approximativ rekonstruiert) ---
\medskip
\noindent\textit{Abbildung 1 (Beschreibung).} Es sind zwei ungerichtete Beispielgraphen dargestellt.
\begin{itemize}
\item[(a)] Ein Graph, in dem eine Menge von fünf Knoten (grau hervorgehoben) ein Vertex Cover der Größe $5$ bildet, d.h.\ jede Kante hat mindestens einen grauen Endknoten.
\item[(b)] Ein Graph mit vielen Dreiecken (3-Cliquen), in dem eine Menge von fünf Knoten (grau hervorgehoben) eine Dreiecksüberdeckung der Größe $5$ bildet, d.h.\ jedes Dreieck enthält mindestens einen grauen Knoten.
\end{itemize}
(Beide Graphen dienen nur der Illustration und werden in den Aufgaben nicht weiter verwendet.)
\medskip
\aufgabeP{Hausaufgabe 11.1}{}{5 Punkte}
Zeigen Sie: $\Delta$\,\prob{Cover} ist \textbf{NP}-vollständig.
\definition{2}{Halteproblem auf DTMs} Eine DTM $M$ \textit{hält} auf dem Wort $w$, wenn die Berechnung von $M$ auf $w$ eine Stopkonfiguration erreicht. Für eine geeignete Kodierung $\langle\bullet,\bullet\rangle$
definieren wir:
\[
\mathrm{HALT}_{\mathrm{TM}} := \{\, \langle M,w\rangle \mid M \text{ ist DTM und } M \text{ hält auf dem Wort } w \,\}
\]
\aufgabeP{Hausaufgabe 11.2}{}{5 Punkte}
Zeigen Sie: $\mathrm{HALT}_{\mathrm{TM}}$ ist \textbf{NP}-schwer.
\abgabe{30.06.2026, 10:00 Uhr in Moodle.}
\newpage
% ---------------------------- Blatt 12 -------------------------------
\blattkopf{\agHA}{\dozHA}
\datum{29.06.2026}
\hatitel{12}
\definition{1}{\prob{Max-3-Sat}} Bei dem Problem \prob{Max-3-Sat} ist eine Formel $\phi$ in konjunktiver
Normalform gegeben, wobei jede Klausel 3 Literale enthält. Gesucht ist eine Belegung $\beta$ der
Variablen, die die Anzahl $v(\beta)$ der erfüllten Klauseln maximiert.
\aufgabeP{Hausaufgabe 12.1}{\prob{Max-3-Sat}, Klausuraufgabe aus SoSe23, PZ1}{10 Punkte}
Betrachten Sie folgenden Algorithmus $A$:
\begin{itemize}
\item Sei $\beta_0$ die Belegung, die alle Variablen auf \texttt{false} setzt.
\item Sei $\beta_1$ die Belegung, die alle Variablen auf \texttt{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*)]
\item (6 Punkte) Zeigen Sie, dass obiger Algorithmus Güte 2 hat, d.h.\ $v(A(\phi))\ge\frac{1}{2}v(OPT(\phi))$
gilt für alle Eingaben $\phi$.
\item (4 Punkte) Geben Sie eine Formel an, bei der der Algorithmus eine Belegung ausgibt, die
genau die Hälfte der maximal erfüllbaren Klauseln erfüllt. Begründen Sie kurz, warum
Ihre Formel geeignet ist.
\textit{Hinweis:} Sie brauchen nur höchstens zwei Klauseln und vier Variablen.
\end{enumerate}
\abgabe{06.07.2026, 10:00 Uhr in Moodle.}
\newpage
% ---------------------------- Blatt 13 -------------------------------
\blattkopf{\agHA}{\dozHA}
\datum{06.07.2026}
\hatitel{13}
\aufgabeP{Hausaufgabe 13.1}{Lower Bound: \prob{VertexCover}}{5 Punkte}
Betrachten Sie die Reduktion aus der Musterlösung zu Präsenzserie 10 von \prob{Clique} auf \prob{VertexCover}.
\begin{enumerate}
\item Geben Sie die Anzahl der Knoten, die Anzahl der Kanten und den Wert $k$ für die resultierende \prob{VertexCover} Instanz in Abhängigkeit von der originalen \prob{Clique} Instanz
an.
\item Zeigen Sie Lower Bounds für \prob{VertexCover} bezüglich Anzahl der Knoten, Anzahl
der Kanten und $k$ basierend auf der ETH und der Reduktion aus der Musterlösung zu
Präsenzserie 10.
\end{enumerate}
\definition{1}{\prob{HittingSet}} Bei diesem Problem ist ein Universum $U$, Teilmengen des Universums $F_1,\dots,F_r\subseteq U$ und eine Zahl $k\in\Znn$ gegeben. Gibt es eine Menge $S\subseteq U$ mit $|U|\le k$
und $S\cap F_i\ne\emptyset$ für alle $i\in[r]$?
Anschaulicher wird bei diesem Problem nach maximal $k$ Elementen aus dem Universum gefragt, sodass diese Elemente alle gegebenen Mengen $F_i$ „treffen“.
\aufgabeP{Hausaufgabe 13.2}{Lower Bound: \prob{HittingSet}}{5 Punkte}
Betrachten Sie folgende Reduktion von 3-\prob{Sat} auf \prob{HittingSet}.
Für eine gegebene 3-\prob{Sat} Instanz $I$ mit $n$ Variablen $x_1,\dots,x_n$ und $m$ Klauseln $C_1,\dots,C_m$: Als
Universum wählen wir $U=\{x_1,\bar x_1,\dots,x_n,\bar x_n\}$. Für jede Variable $x_i$ fügen wir die Menge $F_i:=\{x_i,\bar x_i\}$ hinzu. Für jede Klausel $C_j$ fügen wir die Menge $F_{n+j}:=C_j$ hinzu. Wir setzen $k:=n$
und erhalten damit eine \prob{HittingSet} Instanz $I$.
\begin{enumerate}
\item Geben Sie die Größe des Universums, die Anzahl der Mengen und die Zahl $k$ aus der
resultierenden \prob{HittingSet} Instanz in Abhängigkeit von der Anzahl der Variablen $n$ und
der Anzahl der Klauseln $m$ aus der originalen 3-\prob{Sat} Instanz an.
\item Beweisen Sie Lower Bounds für \prob{HittingSet} bezüglich Universumsgröße, Anzahl der
Mengen und der Zahl $k$ basierend auf der obigen Reduktion und der ETH.
\end{enumerate}
\abgabe{13.07.2026, 10:00 Uhr in Moodle.}
% =====================================================================
% ===================== PRAESENZAUFGABEN (Angabe) =====================
% =====================================================================
\newpage
% ---------------------------- Blatt 9 --------------------------------
\blattkopf{\agPR}{\dozPR}
\datum{08.06.2026}
\pratitel{9}
\definition{1}{Knapsack (Entscheidungsvariante)} Gegeben ist eine Menge mit $n$ Gegenständen mit Gewichten $w_1,\dots,w_n\in\Znn$ und Profiten $p_1,\dots,p_n\in\Znn$. Weiter sind eine Kapazität
$K\in\Znn$ und ein Zielprofit $P\in\Znn$ gegeben. Bei dem \prob{Knapsack} Problem muss entschieden
werden, ob eine Teilmenge $S\subseteq[n]$ existiert, sodass
\[
\sum_{i\in S} w_i \le K \quad\text{und}\quad \sum_{i\in S} p_i \ge P
\]
gilt.
\aufgabe{Präsenzaufgabe 9.1}{\prob{Knapsack} in \textbf{NP}}
Zeigen Sie $\prob{Knapsack}\in\mathbf{NP}$ auf zwei verschiedene Wege.
\begin{enumerate}
\item Geben Sie einen nicht deterministischen Algorithmus an, der das Problem in polynomieller Zeit löst.
\item Geben Sie einen polynomiellen Verifizierer für das Problem an.
\end{enumerate}
Wie hängen diese beiden Methoden zusammen?
\aufgabe{Präsenzaufgabe 9.2}{Transitivität von Polynomialzeitreduktionen}
Zeigen Sie, dass Polynomialzeitreduktionen transitiv sind, d.h., dass für alle Entscheidungsprobleme $L_1,L_2,L_3\subseteq\Sigma^*$ gilt, dass
\[
L_1\le L_2 \wedge L_2\le L_3 \implies L_1\le L_3.
\]
\newpage
% ---------------------------- Blatt 10 -------------------------------
\blattkopf{\agPR}{\dozPR}
\datum{15.06.2026}
\pratitel{10}
\aufgabe{Präsenzaufgabe 10.1}{Fragen über Fragen}
Diskutieren Sie die folgenden Aussagen (Gelten sie allgemein? Gelten sie nicht? Gelten sie
unter bestimmten Bedingungen? Welche?):
\begin{enumerate}[label=(\roman*)]
\item 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.
\item $A$ ist $\mathit{NP}$-schwer $\implies A\in P$
\end{enumerate}
\definition{1}{Vertex Cover (VC)} Für einen (ungerichteten) Graphen $G=(V,E)$ ist ein Vertex
Cover eine Menge von Knoten $C\subseteq V$, sodass $u\in C$ oder $v\in C$ für alle $\{u,v\}\in E$ gilt, also ist
für alle Kanten mindestens ein Endpunkt in $C$.
Für das \prob{VertexCover} Problem ist neben einem Graphen $G$ eine Zahl $k\in\Znn$ gegeben und
es wird gefragt, ob ein Vertex Cover mit Größe (Anzahl der Knoten) höchstens $k$ in $G$ existiert.
\aufgabe{Präsenzaufgabe 10.2}{\prob{VertexCover} ist \textbf{NP}-vollständig}
Zeigen Sie, dass \prob{VertexCover} \textbf{NP}-vollständig ist.
\textit{Hinweis:} Reduzieren Sie \prob{Clique} auf \prob{VertexCover}.
\aufgabe{Präsenzaufgabe 10.3}{Turingmaschinen}
Entwerfen Sie eine Turingmaschine, welche die Sprache $L=\{0^{2^n}\mid n\in\Znn\}$ über dem Alphabet $\Sigma=\{0\}$ entscheidet. 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.
\newpage
% ---------------------------- Blatt 11 -------------------------------
\blattkopf{\agPR}{\dozPR}
\datum{22.06.2026}
\pratitel{11}
\aufgabe{Präsenzaufgabe 11.1}{Fragen über Fragen}
Diskutieren Sie nachfolgende Aussagen. Sind diese wahr oder falsch?
\begin{enumerate}[label=(\alph*)]
\item Für $L\in\mathbf{NP}$ gilt, aus $L\le 3\text{-}\prob{Sat}$ folgt, dass $L$ \textbf{NP}-vollständig ist.
\item Gilt für eine Sprache $L$, dass sowohl $L\le 3\text{-}\prob{Sat}$ als auch $3\text{-}\prob{Sat}\le L$, dann ist $L$ \textbf{NP}-vollständig.
\item Sei $L$ \textbf{NP}-vollständig. Dann gilt $L\in\mathbf{P}$ genau dann, wenn $\mathbf{P}=\mathbf{NP}$.
\item Es ist möglich, dass $3\text{-}\prob{Sat}\in\mathbf{P}$ und $\prob{Clique}\notin\mathbf{P}$.
\end{enumerate}
\aufgabe{Präsenzaufgabe 11.2}{\textbf{NP}-Vollständigkeit}
In dem Problem \prob{Clique-Nomember} ist ein Graph $G=(V,E)$, ein Knoten $v\in V$ sowie eine
Zahl $k\in\Znn$ gegeben und es soll entschieden werden, ob es eine Clique mit $k$ Knoten gibt, die
den Knoten $v$ nicht enthält.
Zeigen Sie, dass \prob{Clique-Nomember} \textbf{NP}-vollständig ist, indem Sie eine Reduktion von \prob{Clique} auf \prob{Clique-Nomember} angeben. Sie können davon ausgehen, dass $\prob{Clique-Nomember}\in\mathbf{NP}$ ist.
\aufgabe{Präsenzaufgabe 11.3}{\textbf{NP}-Vollständigkeit}
Für das Problem \prob{Subset Sum Cardinality} seien $n$ ganze Zahlen $c_1,\dots,c_n\in\Zpos$ (wobei $n$
gerade sei) sowie eine Zahl $K\in\Znn$ gegeben. Es soll entschieden werden, ob es eine Teilmenge
$S\subset\{1,\dots,n\}$ gibt mit $|S|=n/2$ und $\sum_{i\in S} c_i=K$.
Zeigen Sie, dass das Problem \prob{Subset Sum Cardinality} \textbf{NP}-vollständig ist. Sie können
davon ausgehen, dass $\prob{Subset Sum Cardinality}\in\mathbf{NP}$ ist.
\newpage
% ---------------------------- Blatt 12 -------------------------------
\blattkopf{\agPR}{\dozPR}
\datum{29.06.2026}
\pratitel{12}
\aufgabe{Präsenzaufgabe 12.1}{Vertex Cover}
Ein Vertex Cover in einem Graphen $G=(V,E)$ ist eine Menge von Knoten $C\subseteq V$, so dass für
jede Kante $\{v,w\}\in E$ gilt, dass $v\in C$ oder $w\in C$. Beim Optimierungsproblem Minimum Vertex
Cover soll die kardinalitätskleinste Menge $C\subseteq V$ gefunden werden, die ein Vertex Cover von
$G$ ist.
Gegeben ist der folgende approximative Algorithmus mit Güte 2 für \texttt{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.
\medskip
\noindent\textbf{Algorithmus} \textsc{2ApproxVC}$(G=(V,E))$
\begin{tabbing}
\quad\=\quad\=\quad\=\kill
1 \> $C=\{\}$ \\
2 \> \textbf{foreach} $\{u,v\}\in E$ \textbf{do} \\
3 \> \> \textbf{if} $u\notin C$ \textbf{and} $v\notin C$ \textbf{then} \\
4 \> \> \> $C=C\cup\{u,v\}$ \\
5 \> \> \textbf{fi} \\
6 \> \textbf{od} \\
7 \> \textbf{return} $C$
\end{tabbing}
Beweisen Sie die Güte.
\aufgabe{Präsenzaufgabe 12.2}{TSP}
In der Vorlesung haben Sie zwei approximative Algorithmen für das TSP-Problem kennen gelernt. Der erste Algorithmus $\Delta TSP_1$ hat eine Approximationsrate von 2, während der zweite
Algorithmus $\Delta TSP_2$ 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 $K_n=(V,E)$ für ein $n\in\mathbb{Z}_{\ge 6}$ mit $n\bmod 4=2$ und die
nachfolgende Gewichtsfunktion $d_2:E\to\Zpos$.
Wir definieren $E_2:=\{\{i,i+2\}\mid i\in\{1,\dots,n-2\}\}\cup\{\{2i+1,2i+2\}\mid i\in\{0,\dots,n/2-1\}\}$ und
$d_2$, so dass alle Kanten aus $E_2$ auf 1 abgebildet werden und alle Kanten aus $E\setminus E_2$ auf den Wert
des kürzesten Wegs zwischen diesen Knoten in dem Graphen $G_2=(V,E_2)$ abgebildet werden.
Der Graph $G_2$ ist im folgenden abgebildet.
\medskip
\noindent\textit{(Beschreibung von $G_2$.)} Der Graph $G_2=(V,E_2)$ besteht aus den Knoten $1,\dots,n$, angeordnet in zwei parallelen Reihen: ungerade Knoten oben, gerade Knoten unten (leiterartige Struktur). Alle Kanten in $E_2$ haben Gewicht $1$. Es gibt zwei Kantentypen: waagerechte Kanten $\{i,i+2\}$ für $i\in\{1,\dots,n-2\}$ (die jeweils übernächste Knoten innerhalb einer Reihe verbinden) sowie senkrechte „Sprossen“ $\{2i+1,2i+2\}$ für $i\in\{0,\dots,n/2-1\}$ (die ein ungerade-/gerade-Paar übereinander verbinden). Alle übrigen Kanten des vollständigen Graphen $K_n$ erhalten als Gewicht die Länge des kürzesten Weges in $G_2$.
\medskip
Zeigen Sie, dass
\begin{enumerate}[label=(\alph*)]
\item $OPT((K_n,d_2))=n$ gilt und
\item eine mögliche Ausführung von $\Delta TSP_2$ existiert, die auf Eingabe $(K_n,d_2)$ eine Tour der
Länge $(n-1)+n/2$ berechnet.
\end{enumerate}
\newpage
% ---------------------------- Blatt 13 -------------------------------
\blattkopf{\agPR}{\dozPR}
\datum{06.07.2026}
\pratitel{13}
\aufgabe{Präsenzaufgabe 13.1}{}
Im Folgenden sollen Sie herausfinden (und begründen), welche Lower Bounds sich über ETH
und die Reduktionen aus der Vorlesung ergeben. Nutzen Sie hierfür auch das Sparsification
Lemma.
Welche Schranken für die Laufzeit in Abhängigkeit von den natürlichen Parametern (Anzahl
Knoten, Anzahl Kanten, Anzahl Items, Anzahl unterschiedlicher Items, Anzahl Tripel, Kardinalität der Grundmenge, Anzahl unterschiedlicher Tripel, Anzahl unterschiedlicher auftretender
Zahlen, größte auftretende Zahl, \dots) 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.
\begin{enumerate}
\item $3\text{-}\prob{Sat}\le k\text{-}\prob{Clique}$
\item $k\text{-}\prob{Clique}\le k\text{-}\prob{IndependentSet}$ (Problemdefinition für die Antwort nicht relevant; in
der Reduktion wird der Graph $G=(V,E)$ auf den Komplementgraph $(V,\overline{E})$ abgebildet)
\item $\prob{Sat}\le 3\text{-}\prob{DimensionalMatching}$ (Hinweis: $3\text{-}\prob{Sat}\subseteq\prob{Sat}$)
\item $3\text{-}\prob{DimensionalMatching}\le 3\text{-}\prob{ExactCover}$
\item $3\text{-}\prob{ExactCover}\le\prob{SubsetSum}$
\end{enumerate}
% =====================================================================
% ==================== PRAESENZAUFGABEN (mit Lösung) ==================
% =====================================================================
\newpage
% ---------------------- Blatt 9 (mit Lösung) -------------------------
\blattkopf{\agPR}{\dozPR}
\datum{08.06.2026}
\pratitel{9}
\definition{1}{Knapsack (Entscheidungsvariante)} Gegeben ist eine Menge mit $n$ Gegenständen mit Gewichten $w_1,\dots,w_n\in\Znn$ und Profiten $p_1,\dots,p_n\in\Znn$. Weiter sind eine Kapazität
$K\in\Znn$ und ein Zielprofit $P\in\Znn$ gegeben. Bei dem \prob{Knapsack} Problem muss entschieden
werden, ob eine Teilmenge $S\subseteq[n]$ existiert, sodass
\[
\sum_{i\in S} w_i \le K \quad\text{und}\quad \sum_{i\in S} p_i \ge P
\]
gilt.
\aufgabe{Präsenzaufgabe 9.1}{\prob{Knapsack} in \textbf{NP}}
Zeigen Sie $\prob{Knapsack}\in\mathbf{NP}$ auf zwei verschiedene Wege.
\begin{enumerate}
\item Geben Sie einen nicht deterministischen Algorithmus an, der das Problem in polynomieller Zeit löst.
\item Geben Sie einen polynomiellen Verifizierer für das Problem an.
\end{enumerate}
Wie hängen diese beiden Methoden zusammen?
\loesung
\begin{enumerate}
\item Der Algorithmus arbeitet wie folgt: Für jeden Gegenstand entscheiden wir nichtdeterministisch, 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 \prob{Knapsack} löst.
\item Unser Zertifikat ist eine Teilmenge $S\subseteq[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 $\sum_{i\in S} w_i$ und $\sum_{i\in S} p_i$ 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 Zertifikat, 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.
\end{enumerate}
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.
\aufgabe{Präsenzaufgabe 9.2}{Transitivität von Polynomialzeitreduktionen}
Zeigen Sie, dass Polynomialzeitreduktionen transitiv sind, d.h., dass für alle Entscheidungsprobleme $L_1,L_2,L_3\subseteq\Sigma^*$ gilt, dass
\[
L_1\le L_2 \wedge L_2\le L_3 \implies L_1\le L_3.
\]
\loesung Seien $L_1,L_2,L_3$ Sprachen. Zudem sei $R_1$ ein Algorithmus, der $L_1$ nach $L_2$ in $O(n^a)$
reduziert, und $R_2$ ein Algorithmus, der $L_2$ nach $L_3$ in $O(n^b)$ reduziert.
Sei $x$ eine Instanz von $L_1$ der Größe $n$. Dann benötigt der Aufruf von $R_1$ auf $x$ höchstens $O(n^a)$
Zeit.
Sei $x'$ die Ausgabe von $R_1$. Dann hat $x'$ eine Größe von höchstens $O(n^a)$. Diese Schranke für
die Ausgabe ergibt sich aus der Laufzeit der Reduktion. Der Aufruf von $R_2$ auf $x'$ benötigt nun
höchstens $O((n^a)^b)=O(n^{ab})$ Zeit. Damit ist die Reduktion von $L_1$ auf $L_3$ in polynomieller Zeit
möglich.
Die Korrektheit ergibt sich aus der Transitivität der Äquivalenz: Sei $x''$ die Ausgabe von $R_2$ auf
$x'$, dann gilt
\[
x\in L_1 \iff x'\in L_2 \quad\text{und}\quad x'\in L_2 \iff x''\in L_3,
\]
also auch $x\in L_1 \iff x''\in L_3$.
\newpage
% ---------------------- Blatt 10 (mit Lösung) ------------------------
\blattkopf{\agPR}{\dozPR}
\datum{15.06.2026}
\pratitel{10}
\aufgabe{Präsenzaufgabe 10.1}{Fragen über Fragen}
Diskutieren Sie die folgenden Aussagen (Gelten sie allgemein? Gelten sie nicht? Gelten sie
unter bestimmten Bedingungen? Welche?):
\begin{enumerate}[label=(\roman*)]
\item 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.
\item $A$ ist $\mathit{NP}$-schwer $\implies A\in P$
\end{enumerate}
\loesung
\begin{enumerate}[label=(\roman*)]
\item 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\ne NP$, dann nein, weil sonst folgender Widerspruch auftritt: ein Problem in $NP\setminus 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$.
\item Falsch. Es gibt $NP$-schwere Probleme, die nicht in $NP$ liegen, z.B.\ das \prob{Halte}-Problem.
Diese liegen folglich auch definitiv nicht in $P$. NP-schwer ist eine untere Schranke, $\in NP$
eine obere, und wenn beide erfüllt sind, ist ein Problem $NP$-vollständig.
\end{enumerate}
\qedsym
\definition{1}{Vertex Cover (VC)} Für einen (ungerichteten) Graphen $G=(V,E)$ ist ein Vertex
Cover eine Menge von Knoten $C\subseteq V$, sodass $u\in C$ oder $v\in C$ für alle $\{u,v\}\in E$ gilt, also ist
für alle Kanten mindestens ein Endpunkt in $C$.
Für das \prob{VertexCover} Problem ist neben einem Graphen $G$ eine Zahl $k\in\Znn$ gegeben und
es wird gefragt, ob ein Vertex Cover mit Größe (Anzahl der Knoten) höchstens $k$ in $G$ existiert.
\aufgabe{Präsenzaufgabe 10.2}{\prob{VertexCover} ist \textbf{NP}-vollständig}
Zeigen Sie, dass \prob{VertexCover} \textbf{NP}-vollständig ist.
\textit{Hinweis:} Reduzieren Sie \prob{Clique} auf \prob{VertexCover}.
\loesung $\prob{VertexCover}\in\mathbf{NP}$ ist bekannt aus der letzten Hausaufgabe.
\noindent\textbf{Vorüberlegung} zur Reduktion von \prob{Clique} auf \prob{VertexCover}: Sei eine Instanz mit $G=(V,E)$ und $k\in\Znn$ von \prob{Clique} gegeben. Wir invertieren zunächst den Graphen $G$ und erhalten damit $G'$. Nun enthält $G'$ genau dann eine unabhängige Menge der Größe $\ell$, wenn $G$ eine
Clique der Größe $\ell$ enthält. Wenn ein Graph mit $n$ Knoten eine unabhängige Menge mit mindestens $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 \prob{VertexCover} ist also $G'$
und $n-k$. ($k\le n$ können wir annehmen)
Betrachte nun folgende Reduktion:
Sei eine Instanz mit $G=(V,E)$ und $k\in\Znn$ von \prob{Clique} gegeben. Invertiere den Graphen $G$
und erhalte damit $G'$. Gebe nun $G'$ und $n-k$ als Instanz von \prob{VertexCover} zurück.
\noindent\textbf{Korrektheit:}
\noindent$\Rightarrow$ (Falls $(G,k)$ eine Ja-Instanz von \prob{Clique} ist, dann ist $(G',n-k)$ eine Ja-Instanz von \prob{VertexCover}.):
$G$ enthalte eine Clique $C$ der Größe $\ge k$. Dann ist $V':=V\setminus C$ ein Vertex Cover von $G'$ der Größe
$\le n-k$. Da $|C|\ge k$, gilt $|V'|\le 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\}\in E'$, dass $u\notin C$ oder $v\notin C$ und somit $u\in V'$ oder
$v\in V'$.
\noindent$\Leftarrow$ (Falls $(G',n-k)$ eine Ja-Instanz von \prob{VertexCover} ist, dann ist $(G,k)$ eine Ja-Instanz von
\prob{Clique}.):
$G'$ enthalte ein Vertex Cover $V'$ der Größe $\le n-k$. Dann ist $C:=V\setminus V'$ eine Clique der Größe $\ge k$ in $G$. Da $|V'|\le n-k$, gilt $|C|\ge k$. Für jede Menge $\{u,v\}\subseteq C$ gilt, dass $\{u,v\}\notin E'$. Ansonsten
wäre $V'$ kein korrektes Vertex Cover. Da $G'$ der invertierte Graph von $G$ ist, gilt somit $\{u,v\}\in E$
für jede Menge $\{u,v\}\subseteq C$.
\noindent\textbf{Laufzeit:} Das Invertieren des Graphen kann naiv in $O(|V|^2\cdot|E|)$ Zeit, also in polynomieller
Zeit, erledigt werden.
Also existiert eine polynomielle Reduktion von \prob{Clique} auf \prob{VertexCover}. Da \prob{Clique}
\textbf{NP}-vollständig ist und $\prob{VertexCover}\in\mathbf{NP}$ gilt, ist somit \prob{VertexCover} \textbf{NP}-vollständig.
\aufgabe{Präsenzaufgabe 10.3}{Turingmaschinen}
Entwerfen Sie eine Turingmaschine, welche die Sprache $L=\{0^{2^n}\mid n\in\Znn\}$ über dem Alphabet $\Sigma=\{0\}$ entscheidet. 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.
\loesung Die Turingmaschine sieht folgendermaßen aus:
\begin{enumerate}[label=(\arabic*)]
\item Falls genau eine 0 auf dem Band steht, akzeptiere.
\item Bewege den Kopf von links nach rechts über die Eingabe und ersetze jede zweite 0 durch
ein neues Symbol $x$.
\item Falls das letzte Symbol der Eingabe nun eine 0 ist, verwerfe.
\item Gehe zu Schritt (1).
\end{enumerate}
\noindent\textbf{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)).
\noindent\textbf{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 $\lfloor\log n\rfloor-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.
\noindent\textbf{Diskussion:} Ein Algorithmus mit RAM könnte folgendermaßen aussehen:
\begin{enumerate}
\item Zähle die Buchstaben und erhalte Anzahl $m$.
\item Falls $\log m$ ganzzahlig ist, akzeptiere. Sonst verwerfe.
\end{enumerate}
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.
\newpage
% ---------------------- Blatt 11 (mit Lösung) ------------------------
\blattkopf{\agPR}{\dozPR}
\datum{22.06.2026}
\pratitel{11}
\aufgabe{Präsenzaufgabe 11.1}{Fragen über Fragen}
Diskutieren Sie nachfolgende Aussagen. Sind diese wahr oder falsch?
\begin{enumerate}[label=(\alph*)]
\item Für $L\in\mathbf{NP}$ gilt, aus $L\le 3\text{-}\prob{Sat}$ folgt, dass $L$ \textbf{NP}-vollständig ist.
\item Gilt für eine Sprache $L$, dass sowohl $L\le 3\text{-}\prob{Sat}$ als auch $3\text{-}\prob{Sat}\le L$, dann ist $L$ \textbf{NP}-vollständig.
\item Sei $L$ \textbf{NP}-vollständig. Dann gilt $L\in\mathbf{P}$ genau dann, wenn $\mathbf{P}=\mathbf{NP}$.
\item Es ist möglich, dass $3\text{-}\prob{Sat}\in\mathbf{P}$ und $\prob{Clique}\notin\mathbf{P}$.
\end{enumerate}
\loesung
\begin{enumerate}[label=(\alph*)]
\item Nein, ein Gegenbeispiel ist $L=\emptyset$. Offensichtlich gilt $L\in\mathbf{NP}$. Aus $L\le 3\text{-}\prob{Sat}$ folgt nur,
dass sich $L$ auf $3\text{-}\prob{Sat}$ reduzieren lässt, nicht anders herum.
\item Das ist die Definition von \textbf{NP}-vollständig.
\item Korrekt, da sich jedes Problem auf $L$ reduzieren lässt nach Def.\ \textbf{NP}-vollständig (und offensichtlich $\mathbf{P}\subseteq\mathbf{NP}$).
\item Nein, weil $3\text{-}\prob{Sat}$ \textbf{NP}-vollständig ist, lässt sich \prob{Clique} (liegt bekannterweise in \textbf{NP}, ist
sogar \textbf{NP}-vollständig) auf $3\text{-}\prob{Sat}$ reduzieren.
\end{enumerate}
\aufgabe{Präsenzaufgabe 11.2}{\textbf{NP}-Vollständigkeit}
In dem Problem \prob{Clique-Nomember} ist ein Graph $G=(V,E)$, ein Knoten $v\in V$ sowie eine
Zahl $k\in\Znn$ gegeben und es soll entschieden werden, ob es eine Clique mit $k$ Knoten gibt, die
den Knoten $v$ nicht enthält.
Zeigen Sie, dass \prob{Clique-Nomember} \textbf{NP}-vollständig ist, indem Sie eine Reduktion von \prob{Clique} auf \prob{Clique-Nomember} angeben. Sie können davon ausgehen, dass $\prob{Clique-Nomember}\in\mathbf{NP}$ ist.
\loesung \textbf{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\notin V$. Wir definieren die Eingabe für das Problem
\prob{Clique-Nomember} als den Graphen $G':=(V\cup\{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
\prob{Clique-Nomember} und in polynomieller Zeit berechenbar.
Wir zeigen nun: $G$ hat eine $k$-Clique genau dann, wenn $G'$ eine $k$-Clique ohne $v$ beinhaltet.
\noindent$\Rightarrow$:
Sei $(G,k)$ eine Ja-Instanz des \prob{Clique} 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\notin 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 \prob{Clique-Nomember} Problems.
\noindent$\Leftarrow$:
Sei $(G',v,k)$ eine Ja-Instanz des \prob{Clique-Nomember} Problems. Dann enthält $G'$ eine $k$-Clique
$C$ mit $v\notin 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 \prob{Clique}
Problems.
Also existiert eine polynomielle Reduktion von \prob{Clique} auf \prob{Clique-Nomember}. Da \prob{Clique} \textbf{NP}-vollständig ist und $\prob{Clique-Nomember}\in\mathbf{NP}$ nach Aufgabenstellung gilt, ist somit
\prob{Clique-Nomember} \textbf{NP}-vollständig.
\aufgabe{Präsenzaufgabe 11.3}{\textbf{NP}-Vollständigkeit}
Für das Problem \prob{Subset Sum Cardinality} seien $n$ ganze Zahlen $c_1,\dots,c_n\in\Zpos$ (wobei $n$
gerade sei) sowie eine Zahl $K\in\Znn$ gegeben. Es soll entschieden werden, ob es eine Teilmenge
$S\subset\{1,\dots,n\}$ gibt mit $|S|=n/2$ und $\sum_{i\in S} c_i=K$.
Zeigen Sie, dass das Problem \prob{Subset Sum Cardinality} \textbf{NP}-vollständig ist. Sie können
davon ausgehen, dass $\prob{Subset Sum Cardinality}\in\mathbf{NP}$ ist.
\loesung \textbf{Subset Sum Cardinality ist NP-schwer:}
\prob{Subset Sum} Problem: Gegeben: $n$ ganze Zahlen $c_1,\dots,c_n\in\Zpos$ und Zahl $K\in\Znn$. Frage:
Gibt es eine Teilmenge $S\subseteq\{0,\dots,n\}$ mit $\sum_{i\in S} c_i=K$?
\noindent\textbf{Reduktion:} Sei $I=(c_1,\dots,c_n,K)$ eine Eingabe für das \prob{Subset Sum} Problem. Definiere $c_i':=c_i+1$ für $i\le n$ und $c_i':=1$ für $i\in\{n+1,\dots,2n\}$. Wir definieren die Eingabe für das Problem
\prob{Subset Sum Cardinality} als $I'=(c_1',\dots,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.
\noindent$\Rightarrow$:
Sei $I$ eine Ja-Instanz des \prob{Subset Sum} Problems. Dann gibt es eine Menge $S\subseteq\{1,\dots,n\}$ mit
$\sum_{i\in S} c_i=K$. Es gilt also $\sum_{i\in S} c_i'=\sum_{i\in S}(c_i+1)=K+|S|$. Sei nun $S'=\{n+1,\dots,2n-|S|\}$. Es
gilt $|S\cup S'|=n$ und $\sum_{i\in S\cup S'} c_i'=\sum_{i\in S} c_i'+\sum_{i\in S'} c_i'=\sum_{i\in S}(c_i+1)+\sum_{i\in S'}1=K+|S|+(n-|S|)=K+n$. $S\cup S'$ ist also eine Lösung für $I'$ und $I'$ damit eine Ja-Instanz.
\noindent$\Leftarrow$:
Es sei $I'$ eine Ja-Instanz. Dann gibt es also eine Menge $S'\subseteq\{1,\dots,2n\}$ mit $\sum_{i\in S'} c_i'=K+n$ und
$|S'|=n$. Sei $S:=S'\cap\{1,\dots,n\}$. Es gilt $\sum_{i\in S'} c_i'-\sum_{i\in S} c_i'=n-|S|$, da die Items in $\{n+1,\dots,2n\}$
das Gewicht 1 haben, und genau $n-|S|$ Items übrig sind. Damit gilt $\sum_{i\in S}(c_i+1)=\sum_{i\in S} c_i'=K+n-(n-|S|)=K+|S|$, woraus folgt, dass $\sum_{i\in S} c_i=K$. Damit ist $S$ eine Lösung für $I$ und
somit $I$ eine Ja-Instanz.
\noindent\textbf{Laufzeit:} Die Reduktion kann naiv in einer Zeit von $O(n)$ implementiert werden. Das ist eine
polynomielle Laufzeit.
Also existiert eine polynomielle Reduktion von \prob{Subset Sum} auf \prob{Subset Sum Cardinality}. Da nach Skript \prob{Subset Sum} \textbf{NP}-vollständig ist und $\prob{Subset Sum Cardinality}\in\mathbf{NP}$
nach Aufgabenstellung gilt, ist somit \prob{Subset Sum Cardinality} \textbf{NP}-vollständig.
\newpage
% ---------------------- Blatt 12 (mit Lösung) ------------------------
\blattkopf{\agPR}{\dozPR}
\datum{29.06.2026}
\pratitel{12}
\aufgabe{Präsenzaufgabe 12.1}{Vertex Cover}
Ein Vertex Cover in einem Graphen $G=(V,E)$ ist eine Menge von Knoten $C\subseteq V$, so dass für
jede Kante $\{v,w\}\in E$ gilt, dass $v\in C$ oder $w\in C$. Beim Optimierungsproblem Minimum Vertex
Cover soll die kardinalitätskleinste Menge $C\subseteq V$ gefunden werden, die ein Vertex Cover von
$G$ ist.
Gegeben ist der folgende approximative Algorithmus mit Güte 2 für \texttt{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.
\medskip
\noindent\textbf{Algorithmus} \textsc{2ApproxVC}$(G=(V,E))$
\begin{tabbing}
\quad\=\quad\=\quad\=\kill
1 \> $C=\{\}$ \\
2 \> \textbf{foreach} $\{u,v\}\in E$ \textbf{do} \\
3 \> \> \textbf{if} $u\notin C$ \textbf{and} $v\notin C$ \textbf{then} \\
4 \> \> \> $C=C\cup\{u,v\}$ \\
5 \> \> \textbf{fi} \\
6 \> \textbf{od} \\
7 \> \textbf{return} $C$
\end{tabbing}
Beweisen Sie die Güte.
\loesung \textbf{Beweis:} Sei $C^*$ ein minimales Vertex Cover. Wir zeigen $|C|\le 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^*|\ge|A|$. Es folgt $|C|=2|A|\le 2|C^*|$. Die Lösung $C$ von \textsc{2ApproxVC} ist also maximal doppelt
so groß wie die optimale Lösung $C^*$. Damit berechnet der Algorithmus eine 2-Approximation.
\qedsym
\aufgabe{Präsenzaufgabe 12.2}{TSP}
In der Vorlesung haben Sie zwei approximative Algorithmen für das TSP-Problem kennen gelernt. Der erste Algorithmus $\Delta TSP_1$ hat eine Approximationsrate von 2, während der zweite
Algorithmus $\Delta TSP_2$ 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 $K_n=(V,E)$ für ein $n\in\mathbb{Z}_{\ge 6}$ mit $n\bmod 4=2$ und die
nachfolgende Gewichtsfunktion $d_2:E\to\Zpos$.
Wir definieren $E_2:=\{\{i,i+2\}\mid i\in\{1,\dots,n-2\}\}\cup\{\{2i+1,2i+2\}\mid i\in\{0,\dots,n/2-1\}\}$ und
$d_2$, so dass alle Kanten aus $E_2$ auf 1 abgebildet werden und alle Kanten aus $E\setminus E_2$ auf den Wert
des kürzesten Wegs zwischen diesen Knoten in dem Graphen $G_2=(V,E_2)$ abgebildet werden.
Der Graph $G_2$ ist im folgenden abgebildet.
\medskip
\noindent\textit{(Beschreibung von $G_2$.)} Der Graph $G_2=(V,E_2)$ besteht aus den Knoten $1,\dots,n$, angeordnet in zwei parallelen Reihen: ungerade Knoten oben, gerade Knoten unten (leiterartige Struktur). Alle Kanten in $E_2$ haben Gewicht $1$. Es gibt zwei Kantentypen: waagerechte Kanten $\{i,i+2\}$ für $i\in\{1,\dots,n-2\}$ (die jeweils übernächste Knoten innerhalb einer Reihe verbinden) sowie senkrechte „Sprossen“ $\{2i+1,2i+2\}$ für $i\in\{0,\dots,n/2-1\}$ (die ein ungerade-/gerade-Paar übereinander verbinden). Alle übrigen Kanten des vollständigen Graphen $K_n$ erhalten als Gewicht die Länge des kürzesten Weges in $G_2$.
\medskip
Zeigen Sie, dass
\begin{enumerate}[label=(\alph*)]
\item $OPT((K_n,d_2))=n$ gilt und
\item eine mögliche Ausführung von $\Delta TSP_2$ existiert, die auf Eingabe $(K_n,d_2)$ eine Tour der
Länge $(n-1)+n/2$ berechnet.
\end{enumerate}
\loesung Wichtig bei dieser Aufgabe ist der folgende Fakt: Bei beiden Algorithmen wird irgendein 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 Reihenfolge 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“ Knotenreihenfolge nutzen, passen wir die Labels dementsprechend an.
Ein möglicher MST ist durch die unten angegebene Zick-Zack-Tour gegeben oder formal durch
\[
E_T=\left[\bigcup_{\substack{1\le j\le n-5\\ j\bmod 4=1}}\{\{j,j+1\},\{j+1,j+3\},\{j+3,j+2\},\{j+2,j+4\}\}\right]\cup\{\{n-1,n\}\}.
\]
\medskip
\noindent\textit{(Beschreibung des MST.)} Der beschriebene minimale Spannbaum $T$ ist eine Zick-Zack-Tour, die nacheinander alle Knoten durchläuft und dabei ausschließlich Kanten mit Gewicht $1$ aus $G_2$ verwendet. Er enthält $n-1$ Kanten (Kosten $d(T)=n-1$). Alle Knoten außer $1$ und $n$ haben in $T$ geraden Grad.
\medskip
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((K_n,d_2))=n$ und wir haben eine Rate von
\[
\frac{\Delta TSP_2((K_n,d_2))}{OPT((K_n,d_2))}=\frac{n-1+n/2}{n}=3/2-\frac{1}{n}\le 3/2.
\]
Da $\lim_{n\to\infty}3/2-\frac{1}{n}=3/2$, kommen wir der Rate von $3/2$ also beliebig nahe.
\newpage
% ---------------------- Blatt 13 (mit Lösung) ------------------------
\blattkopf{\agPR}{\dozPR}
\datum{06.07.2026}
\pratitel{13}
\aufgabe{Präsenzaufgabe 13.1}{}
Im Folgenden sollen Sie herausfinden (und begründen), welche Lower Bounds sich über ETH
und die Reduktionen aus der Vorlesung ergeben. Nutzen Sie hierfür auch das Sparsification
Lemma.
Welche Schranken für die Laufzeit in Abhängigkeit von den natürlichen Parametern (Anzahl
Knoten, Anzahl Kanten, Anzahl Items, Anzahl unterschiedlicher Items, Anzahl Tripel, Kardinalität der Grundmenge, Anzahl unterschiedlicher Tripel, Anzahl unterschiedlicher auftretender
Zahlen, größte auftretende Zahl, \dots) 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.
\begin{enumerate}
\item $3\text{-}\prob{Sat}\le k\text{-}\prob{Clique}$
\item $k\text{-}\prob{Clique}\le k\text{-}\prob{IndependentSet}$ (Problemdefinition für die Antwort nicht relevant; in
der Reduktion wird der Graph $G=(V,E)$ auf den Komplementgraph $(V,\overline{E})$ abgebildet)
\item $\prob{Sat}\le 3\text{-}\prob{DimensionalMatching}$ (Hinweis: $3\text{-}\prob{Sat}\subseteq\prob{Sat}$)
\item $3\text{-}\prob{DimensionalMatching}\le 3\text{-}\prob{ExactCover}$
\item $3\text{-}\prob{ExactCover}\le\prob{SubsetSum}$
\end{enumerate}
\loesung Angenommen ETH gilt. Das Sparsification Lemma impliziert, dass man $3\text{-}\prob{Sat}$ nicht
in $2^{o(m)}\cdot|I|^{O(1)}$ lösen kann.
\begin{enumerate}
\item In der Reduktion werden $|V|=O(m)$ Knoten und $|E|=O(m^2)$ Kanten erstellt und $k=m$.
Außerdem gilt $n\le 3m\in O(m)$.
\begin{itemize}
\item Lower bound bzgl.\ der Anzahl an Knoten: $2^{o(|V|)}\cdot|I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Clique in $2^{o(|V|)}\cdot|I|^{O(1)}$ löst. Dann
gibt es auch einen Algorithmus, der $3$-SAT in $2^{o(m)}\cdot|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.
\item Lower bound bzgl.\ der Anzahl an Kanten: $2^{o(\sqrt{|E|})}\cdot|I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Clique in $2^{o(\sqrt{|E|})}\cdot|I|^{O(1)}$ löst.
Da $|E|\in O(m^2)$, gibt es dann auch einen Algorithmus, der $3$-SAT in $2^{o(m)}\cdot|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.
\item Lower bound bzgl.\ $k$: $2^{o(k)}\cdot|I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Clique in $2^{o(k)}\cdot|I|^{O(1)}$ löst. Dann
gibt es auch einen Algorithmus, der $3$-SAT in $2^{o(m)}\cdot|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.
\end{itemize}
\item In der Reduktion werden genau $|V|$ Knoten und maximal $|E|=O(|V|^2)$ Kanten erstellt.
\begin{itemize}
\item Lower bound bzgl.\ der Anzahl an Knoten: $2^{o(|V|)}\cdot|I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Independent-Set in $2^{o(|V|)}\cdot|I|^{O(1)}$
löst. Dann gibt es auch einen Algorithmus, der $k$-Clique in $2^{o(|V|)}\cdot|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.
\item Lower bound bzgl.\ der Anzahl an Kanten: $2^{o(\sqrt{|E|})}\cdot|I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der $k$-Independent-Set in $2^{o(\sqrt{|E|})}\cdot|I|^{O(1)}$
löst. Da $|E|\le|V|^2$, gibt es dann auch einen Algorithmus, der $k$-Clique in $2^{o(|V|)}\cdot|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.
\end{itemize}
\item In der Reduktion werden Mengen mit $|U|=|V|=|W|=O(mn)$ Elementen erstellt und
$|T|=O(m^2n^2)$ Tupel. Es gilt $n\le 3m\in O(m)$ für $3$-SAT.
\begin{itemize}
\item Lower bound bzgl.\ der Anzahl an Elementen: $2^{o(\sqrt{|V|})}\cdot|I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der 3-Dimensional-Matching in $2^{o(\sqrt{|V|})}\cdot|I|^{O(1)}$
löst. Da $|V|\in O(mn)\le O(m^2)$, gibt es dann auch einen Algorithmus, der
$3$-SAT in $2^{o(m)}\cdot|I|^{O(1)}$ löst (Reduktion von SAT auf 3-Dimensional-Matching angewandt auf 3-SAT Instanzen + 3-Dimensional-Matching Algorithmus). Nach dem
Sparsification Lemma geht dies nur, wenn die ETH nicht gilt.
\item Lower bound bzgl.\ der Kardinalität von $T$: $2^{o(\sqrt[4]{|T|})}\cdot|I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der 3-Dimensional-Matching in $2^{o(\sqrt[4]{|T|})}\cdot|I|^{O(1)}$
löst. Da $|T|\in O(m^2n^2)\le O(m^4)$, gibt es dann auch einen Algorithmus, der
$3$-SAT in $2^{o(m)}\cdot|I|^{O(1)}$ löst (Reduktion von SAT auf 3-Dimensional-Matching angewandt auf 3-SAT Instanzen + 3-Dimensional-Matching Algorithmus). Nach dem
Sparsification Lemma geht dies nur, wenn die ETH nicht gilt.
\end{itemize}
\item 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\in O(|V|)$, ergibt sich, dass es für 3-Exact Cover unter der ETH keinen Algorithmus mit
Laufzeit $2^{o(\sqrt{m})}\cdot|I|^{O(1)}$ geben kann, da sonst 3-dimensionales Matching in $2^{o(\sqrt{|V|})}\cdot|I|^{O(1)}$ lösbar wäre. Und da $|F|=|T|$, ergibt sich, dass es für 3-Exact Cover unter der ETH
keinen Algorithmus mit Laufzeit $2^{o(\sqrt[4]{|F|})}\cdot|I|^{O(1)}$ geben kann, da sonst 3-dimensionales
Matching in $2^{o(\sqrt[4]{|T|})}\cdot|I|^{O(1)}$ lösbar wäre.
\item In der Reduktion wird $n=|F|$ gesetzt. Lower bound bzgl.\ $n$: $2^{o(\sqrt[4]{n})}\cdot|I|^{O(1)}$\\
Angenommen, es existiert ein Algorithmus, der SubsetSum in $2^{o(\sqrt[4]{n})}\cdot|I|^{O(1)}$ löst. Dann
gibt es auch einen Algorithmus, der 3-Exact Cover in $2^{o(\sqrt[4]{|F|})}\cdot|I|^{O(1)}$ löst. Nach Aufgabenteil 4, gibt es diesen nur, wenn die ETH nicht gilt.
\end{enumerate}
\end{document}