init
This commit is contained in:
914
nachgenerierte tex dateien/alle_serien_2026.tex
Normal file
914
nachgenerierte tex dateien/alle_serien_2026.tex
Normal 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}
|
||||
Reference in New Issue
Block a user