\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}
