% =====================================================================
%  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}
