init
This commit is contained in:
242
lernmaterial/probeklausur2.tex
Normal file
242
lernmaterial/probeklausur2.tex
Normal file
@@ -0,0 +1,242 @@
|
||||
\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}
|
||||
Reference in New Issue
Block a user