\documentclass[11pt,a4paper]{article} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage[utf8]{inputenc} \usepackage[margin=2.5cm]{geometry} \usepackage{amsmath,amssymb} \usepackage{xcolor} \usepackage{tikz} \setlength{\parskip}{0.4em} \setlength{\parindent}{0pt} \emergencystretch=1.5em \definecolor{shadecolor}{gray}{0.94} % ---- graue Box fuer Pseudocode/Problem-Boxen (nur mit xcolor) ---- \makeatletter \newsavebox{\shadedbox} \newenvironment{shaded}% {\par\smallskip\noindent \begin{lrbox}{\shadedbox}% \begin{minipage}{\dimexpr\linewidth-2\fboxsep\relax}}% {\end{minipage}\end{lrbox}% \colorbox{shadecolor}{\usebox{\shadedbox}}\par\smallskip} \makeatother % ---- alphabetische Aufzaehlung a) b) c) ohne enumitem ---- \renewcommand{\theenumi}{\alph{enumi}} \renewcommand{\labelenumi}{\theenumi)} % ---- Makros ---- \newcommand{\problem}[1]{\textsc{#1}} \newcommand{\redp}{\le_p} \newcommand{\NP}{\textsf{NP}} \newcommand{\true}{\textsf{wahr}} \newcommand{\false}{\textsf{falsch}} \tikzset{knoten/.style={circle,draw,thick,minimum size=6.5mm,inner sep=1pt}} % ---- Aufgabenkopf: Nummer + Titel + Punkte, jede Aufgabe auf neuer Seite ---- \newcommand{\aufgabe}[2]{\clearpage \noindent{\large\textbf{Aufgabe #1}}\hfill\textbf{(#2)}\par\nobreak \noindent\rule{\linewidth}{0.4pt}\par\medskip} \begin{document} % ================= Kopf ================= \begin{center} {\large\textbf{Christian-Albrechts-Universität zu Kiel}}\\[2pt] Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität\\ Prof.\ Dr.\ K.\ Jansen\\[10pt] {\large\textbf{Probeklausur 2 -- Analyse von Algorithmen und Komplexität}}\\[3pt] SS 2026 \end{center} \medskip \begin{center} Name:\ \underline{\hspace{3.5cm}}\qquad Matrikel-Nr.:\ \underline{\hspace{3.5cm}} \end{center} \medskip \noindent\textit{Hinweise:} \begin{itemize} \item Bearbeiten Sie \textit{alle} Aufgaben. \item Sie haben 10 Minuten Einlesezeit. Danach haben Sie \textbf{120 Minuten} Zeit für die Klausurbearbeitung. \item Erlaubte Hilfsmittel: Ein doppelseitig handschriftlich beschriebenes Blatt Papier DIN A4, (bunte) Stifte (kein Rot, kein Grün, kein Bleistift). \item Die Klausur besteht aus \textbf{5 Aufgaben}, die alle \textbf{10 Punkte} wert sind. \item Zum Bestehen müssen mindestens \textbf{18 Punkte} erreicht werden. \item Aufgabe 5 gibt zusätzlich \textbf{10 Bonuspunkte}. Insgesamt können also \textbf{50 Punkte plus 10 Bonuspunkte} erreicht werden. \end{itemize} % ====================================================================== \aufgabe{1 \quad ANWENDUNG -- LPT}{5 + 2 + 3 Punkte} Wir betrachten das Scheduling-Problem $P\,\|\,C_{\max}$: $n$ Jobs mit Bearbeitungszeiten $p_1,\dots,p_n \in \mathbb{Q}_{>0}$ sollen auf $m$ identische Maschinen verteilt werden, sodass der Makespan $C_{\max}$ (die maximale Maschinenlast) minimal ist. Der Algorithmus \problem{LPT} sortiert die Jobs zunächst \emph{absteigend} nach Bearbeitungszeit und legt sie dann in dieser Reihenfolge nacheinander jeweils auf die aktuell am wenigsten belastete Maschine (\problem{ListScheduling}); bei Gleichstand wird die Maschine mit dem kleinsten Index gewählt. \begin{enumerate} \item Wenden Sie \problem{LPT} auf die folgende Instanz mit $m = 3$ Maschinen an. Geben Sie die Sortierung, die Platzierungen mit dem jeweiligen Lastvektor $(M_1, M_2, M_3)$, den resultierenden Schedule (grafisch oder als Belegungsliste) sowie den Makespan an. \begin{center} \begin{tabular}{|l|c|c|c|c|c|c|c|}\hline Job $j$ & 1 & 2 & 3 & 4 & 5 & 6 & 7\\\hline Bearbeitungszeit $p_j$ & 5 & 5 & 4 & 4 & 3 & 3 & 3\\\hline \end{tabular} \end{center} \item Welche (multiplikative) approximative Güte hat der Algorithmus \problem{LPT} in Abhängigkeit von der Maschinenzahl $m$? \item Geben Sie eine Instanz mit $m = 2$ Maschinen an, bei der einfaches \problem{ListScheduling} (ohne Vorsortierung, in der angegebenen Job-Reihenfolge) die Güte $2 - \tfrac1m$ erreicht. Geben Sie sowohl den von \problem{ListScheduling} erzeugten Makespan als auch den optimalen Makespan an. \end{enumerate} % ====================================================================== \aufgabe{2 \quad VORLESUNGSBEWEIS -- TRANSITIVITÄT}{10 Punkte} Beweisen Sie den folgenden aus der Vorlesung bekannten Satz. Seien $L_1, L_2, L_3$ Entscheidungsprobleme. Aus $L_1 \redp L_2$ und $L_2 \redp L_3$ folgt $L_1 \redp L_3$. Gehen Sie in Ihrem Beweis insbesondere auf die Konstruktion der Reduktion, die Korrektheit (beide Richtungen der Äquivalenz) und die polynomielle Laufzeit ein. % ====================================================================== \aufgabe{3 \quad NP-VOLLSTÄNDIGKEIT}{10 Punkte} Wir betrachten die folgende Variante von \problem{SubsetSum}. \textbf{Problem: SubsetSum-ohne-Dreierpotenzen}\\ \textbf{Eingabe:} Zahlen $c_1, \dots, c_n \in \mathbb{N}_{>0}$ und ein Zielwert $K \in \mathbb{N}$, wobei keine der Größen $c_i$ eine Dreierpotenz ist, d.h.\ $c_i \notin \{3^t \mid t \in \mathbb{N}_0\} = \{1, 3, 9, 27, \dots\}$ für alle $i \in [n]$.\\ \textbf{Entscheide:} Existiert eine Teilmenge $S \subseteq \{1, \dots, n\}$ mit $\sum_{i \in S} c_i = K$? Zeigen Sie, dass \problem{SubsetSum-ohne-Dreierpotenzen} NP-vollständig ist. Sie dürfen verwenden, dass \problem{SubsetSum} (ohne Einschränkung an die Itemgrößen) NP-vollständig ist. % ====================================================================== \aufgabe{4 \quad ETH}{1 + 4 + 1 + 4 Punkte} \textbf{Problem: $k$-\problem{IndependentSet}}\\ \textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$ und eine Zahl $k \in \mathbb{N}_{\ge 1}$.\\ \textbf{Entscheide:} Existiert $S \subseteq V$ mit $|S| \ge k$, sodass $\{v,u\} \notin E$ für alle $v, u \in S$ mit $v \ne u$? Betrachten Sie folgende Reduktion von $k$-\problem{Clique} auf $k$-\problem{IndependentSet}. Für eine Eingabe $(G = (V,E), k)$ bilde die Instanz $(G' = (V, \bar E), k')$ mit \[ \bar E = \{\{v,u\} \mid v, u \in V,\ v \ne u,\ \{v,u\} \notin E\} \quad(\text{Komplementgraph}), \qquad k' = k. \] \begin{enumerate} \item Geben Sie die Anzahl der Knoten $|V'|$ und die Anzahl der Kanten $|E'|$ für die resultierende $k$-\problem{IndependentSet}-Instanz in Abhängigkeit von der originalen $k$-\problem{Clique}-Instanz an. \item Beweisen Sie Laufzeit-Lower-Bounds für $k$-\problem{IndependentSet} bezüglich der Knotenzahl $|V'|$ und der Kantenzahl $|E'|$ basierend auf der ETH und der oben beschriebenen Reduktion.\\ \textit{Hinweis:} Unter der ETH ist $k$-\problem{Clique} weder in $2^{o(|V|)} \cdot |I|^{O(1)}$ noch in $2^{o(\sqrt{|E|})} \cdot |I|^{O(1)}$ lösbar. \end{enumerate} \medskip \textbf{Problem: \problem{SubsetSum}}\\ \textbf{Eingabe:} Zahlen $c_1, \dots, c_n$ und ein Zielwert $K$.\\ \textbf{Entscheide:} Existiert $S \subseteq \{1, \dots, n\}$ mit $\sum_{j \in S} c_j = K$? Betrachten Sie folgende Reduktion von \problem{3-ExactCover} (3-EC) auf \problem{SubsetSum}. Bei \problem{3-ExactCover} sind eine Grundmenge $U$ und eine Familie $F = \{S_1, \dots, S_{|F|}\}$ von Dreiermengen $S_j \subseteq U$ gegeben; gesucht ist eine exakte Überdeckung von $U$. Die Reduktion erzeugt \emph{pro Menge $S_j \in F$ ein Item} $c_j$, kodiert als Zahl zur Basis $(n+1)$, wobei $n = $ Anzahl der Items $= |F|$ ist (Ziffer $1$ an den drei Stellen der Elemente von $S_j$). Der Zielwert $K$ ist die Zahl mit Ziffer $1$ an allen $|U|$ Stellen. \begin{enumerate}\setcounter{enumi}{2} \item Geben Sie die Itemzahl $n$ der resultierenden \problem{SubsetSum}-Instanz in Abhängigkeit von der originalen \problem{3-ExactCover}-Instanz an. \item Beweisen Sie einen Laufzeit-Lower-Bound für \problem{SubsetSum} bezüglich der Itemzahl $n$ basierend auf der ETH und der oben beschriebenen Reduktion.\\ \textit{Hinweis:} Unter der ETH ist \problem{3-ExactCover} weder in $2^{o(\sqrt{|U|})} \cdot |I|^{O(1)}$ noch in $2^{o(\sqrt[4]{|F|})} \cdot |I|^{O(1)}$ lösbar. \end{enumerate} % ====================================================================== \aufgabe{5 \quad APPROXIMATIVE ALGORITHMEN -- 2ApproxVC}{2 + 5 + 3 + (10) Punkte} Beim Problem \problem{VertexCover} ist ein ungerichteter Graph $G = (V,E)$ gegeben; gesucht ist eine möglichst kleine Knotenmenge $C \subseteq V$, die jede Kante abdeckt, d.h.\ $u \in C$ oder $v \in C$ für jede Kante $\{u,v\} \in E$. Wir betrachten den folgenden Approximationsalgorithmus, der die Kanten in einer gegebenen Reihenfolge durchläuft. \begin{shaded} \ttfamily\small \textbf{Algorithmus 2ApproxVC($G = (V,E)$)}\\ 1\quad $C \leftarrow \emptyset$\\ 2\quad \textbf{foreach} Kante $\{u,v\} \in E$ (in gegebener Reihenfolge) \textbf{do}\\ 3\quad\quad \textbf{if} $u \notin C$ \textbf{and} $v \notin C$ \textbf{then}\\ 4\quad\quad\quad $C \leftarrow C \cup \{u, v\}$\\ 5\quad\quad \textbf{fi}\\ 6\quad \textbf{od}\\ 7\quad \textbf{return} $C$ \end{shaded} \begin{enumerate} \item Wenden Sie \problem{2ApproxVC} auf den folgenden Graphen $G$ an. Die Kanten werden in dieser Reihenfolge durchlaufen: \[ \{1,2\},\ \{1,3\},\ \{2,3\},\ \{3,4\},\ \{4,5\},\ \{4,6\},\ \{5,6\}. \] Geben Sie den Ablauf (welche Kanten führen zu einer Aufnahme?) sowie die Größe $|C|$ der berechneten Überdeckung an. \begin{center} \begin{tikzpicture} \node[knoten] (1) at (-2.6, 1.2) {$1$}; \node[knoten] (2) at (-2.6,-1.2) {$2$}; \node[knoten] (3) at (-1.0, 0.0) {$3$}; \node[knoten] (4) at ( 1.0, 0.0) {$4$}; \node[knoten] (5) at ( 2.6, 1.2) {$5$}; \node[knoten] (6) at ( 2.6,-1.2) {$6$}; \draw (1) -- (2); \draw (1) -- (3); \draw (2) -- (3); \draw (3) -- (4); \draw (4) -- (5); \draw (4) -- (6); \draw (5) -- (6); \end{tikzpicture} \end{center} \item Zeigen Sie, dass \problem{2ApproxVC} die (multiplikative) Güte $2$ hat, also $|C| \le 2 \cdot |C^\ast|$ für ein minimales Vertex Cover $C^\ast$ gilt. \item Betrachten Sie den Kreis $C_n$ auf $n$ Knoten für \emph{gerades} $n$. Wie groß ist ein minimales Vertex Cover von $C_n$, und welche Kantenreihenfolge führt zur schlechtesten Approximationsrate von \problem{2ApproxVC}? Geben Sie diese Rate an. \item \textbf{BONUS:} Geben Sie eine Instanzfamilie an, deren Approximationsrate von \problem{2ApproxVC} (bei ungünstigster Kantenreihenfolge) gegen $2$ konvergiert, und weisen Sie dies nach. \end{enumerate} \end{document}