\documentclass[11pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman,provide=*]{babel} \usepackage{amsmath,amssymb,amsthm} \usepackage{geometry} \usepackage{enumitem} \usepackage{fancyhdr} \usepackage{array} \usepackage{framed} \usepackage{xcolor} \geometry{a4paper,left=2.5cm,right=2.5cm,top=2.6cm,bottom=2.5cm} \setlength{\headheight}{15pt} % ------- Grafik-Beschreibungs-Box (ersetzt Original-Grafiken) ------- \definecolor{grafikbg}{gray}{0.94} \colorlet{shadecolor}{grafikbg} \newenvironment{grafik}% {\par\medskip\begin{shaded}\noindent\textbf{[Grafik-Beschreibung]}\par\nobreak\smallskip\itshape}% {\end{shaded}\medskip} % ------- Aufgaben-Kopf ------- \newcommand{\aufgabe}[2]{\medskip\noindent\textbf{Aufgabe #1}\hfill\textbf{(#2)}\par\smallskip} % ------- Kopf einer Klausur ------- \newcommand{\klausurkopf}[3]{% % #1 = Datum, #2 = Namezeile (true/false), #3 = Hinweisliste \thispagestyle{footeronly} \begin{minipage}[t]{0.18\textwidth} \raisebox{-1.0cm}{\fbox{\parbox[t]{2.6cm}{\centering\scriptsize CAU-Siegel\\[2pt]\textit{(rundes Universitäts\-siegel mit Schrift ``SIGILLUM ACADEMIAE'' und Wappenfigur)}}}} \end{minipage}\hfill \begin{minipage}[t]{0.80\textwidth} \textbf{\large CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL}\\[2pt] Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität\\ Prof.\ Dr.\ K.\ Jansen\\[6pt] \hfill #1 \end{minipage} \vspace{6pt} \begin{center} \textbf{\large Modulprüfung zur Vorlesung}\\[2pt] \textbf{\large »Analyse von Algorithmen und Komplexität -- Komplexitätsteil«}\\[6pt] SS 2025 \end{center} \medskip \begin{center} #2 \end{center} \vspace{1.2cm} \noindent\textit{Hinweise:} \begin{itemize}[leftmargin=1.4em,itemsep=1pt,topsep=2pt] #3 \end{itemize} } % ------- Fußzeilen / Kopfzeilen ------- \newcommand{\fusstext}{\scriptsize Klausur »Analyse von Algorithmen und Komplexität -- Komplexitätsteil«} \fancypagestyle{footeronly}{% \fancyhf{} \renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt} \fancyfoot[L]{\fusstext}\fancyfoot[R]{\scriptsize Seite \thepage} } \fancypagestyle{juli}{% \fancyhf{} \renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt} \fancyhead[L]{\small Name:\ \underline{\hspace{3.2cm}}\qquad Matrikel-Nr.:\ \underline{\hspace{3.2cm}}} \fancyfoot[L]{\fusstext}\fancyfoot[R]{\scriptsize Seite \thepage} } \fancypagestyle{okt}{% \fancyhf{} \renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt} \fancyhead[L]{\small Matrikel-Nr.:\ \underline{\hspace{3.2cm}}} \fancyfoot[L]{\fusstext}\fancyfoot[R]{\scriptsize Seite \thepage} } \setlength{\parindent}{0pt} \setlength{\parskip}{4pt} \begin{document} %====================================================================== % KLAUSUR 1 — 22. Juli 2025 — SS 2025 %====================================================================== \klausurkopf{22.\ Juli 2025}% {Name:\ \underline{\hspace{3.5cm}}\qquad Matrikel-Nr.:\ \underline{\hspace{3.5cm}}}% {% \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 Einsichtnahme: \textbf{2.\ September 2025, 10 bis 11 Uhr}. Der Raum für die Einsicht wird noch bekannt gegeben. \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. } \pagestyle{juli} \newpage \aufgabe{1 \quad ANWENDUNG -- CHRISTOFIDES' ALGORITHMUS}{6 + 4 Punkte} Gegeben sei folgender Graph $G = (V,E)$: \begin{grafik} Ungerichteter, kantengewichteter Graph mit vier Knoten $a, b, c, d$ (Anordnung ungefähr: $a$ oben, $b$ und $c$ in der Mitte, $d$ unten). Es handelt sich um einen vollständigen Graphen $K_4$ mit sechs Kanten. Die in der Figur ablesbaren Kantengewichte sind: $2,\ 1,\ 4,\ 4,\ 5,\ 3$. Die genaue Kante-zu-Gewicht-Zuordnung ist der Originalzeichnung zu entnehmen; der Graph dient als Eingabe für Christofides ($\Delta$TSP2) mit Startknoten $a$. \end{grafik} \begin{enumerate}[label=\alph*),leftmargin=1.6em] \item Wenden Sie den Algorithmus von Christofides ($\Delta$TSP2) auf den Graphen $G$ mit Startknoten $a$ an. Geben Sie dabei alle Graphen an, die in Zwischenschritten entstehen. Erwähnen Sie ebenfalls Schritte, die bei dieser Anwendung zu keiner Änderung führen, die der Algorithmus aber überprüfen muss. \item Für die Korrektheit des Algorithmus von Christofides werden zwei zusätzliche Eigenschaften für die Eingabe des Travelling-Salesperson-Problems benötigt. Nennen Sie die Eigenschaften und geben Sie jeweils eine Eingabe an, welche die Eigenschaft nicht erfüllt. Sie dürfen auch eine Eingabe nennen, welche beide Eigenschaften nicht erfüllt. Geben Sie auch die Güte des Algorithmus an. \end{enumerate} \newpage \aufgabe{2 \quad VORLESUNGSBEWEIS -- DEFINITION NP}{2 + 8 Punkte} Beweisen Sie folgende Aussage: \[ \{L \subseteq \Sigma^* \mid \exists\ \text{NDTM } M \text{ über Alphabet } \Gamma \supset \Sigma \text{ und ein Polynom } T \text{ mit } M \text{ akzeptiert } L \] \[ \text{in nicht-deterministischer Zeit } T\} \subseteq \{L \subseteq \Sigma^* \mid \exists\ \text{polynomieller Verifizierer für } L\} \] Ausformuliert bedeutet das: Sei $L \subseteq \Sigma^*$ also eine Sprache, für die eine NDTM $M$ über einem Alphabet $\Gamma \supset \Sigma$ und ein Polynom $T$ existiert, sodass $L$ von $M$ in nicht-deterministischer Zeit $T$ entschieden wird. Nun müssen Sie folgende Aussage beweisen: Es existiert ein polynomieller Verifizierer für $L$. \begin{enumerate}[label=\alph*),leftmargin=1.6em] \item Geben Sie dafür zunächst für die Sprache $L$, die durch folgende NDTM $M$ akzeptiert wird, einen polynomiellen Verifizierer an, der in analoger Weise arbeitet. Die NDTM $M$ erhält als Eingabe einen ungerichteten Graphen $G = (V,E)$ und eine Zahl $k \in \mathbb{N}_0$. \begin{shaded} \ttfamily\small $M(G = (V,E),\ k)$\\ 1.\quad Rate nicht-deterministisch eine Menge von Knoten $C \subseteq V$.\\ 2.\quad Für alle $\{u,v\} \in E$: Falls $u \notin C$ und $v \notin C$, verwerfe.\\ 3.\quad Falls $|C| > k$, verwerfe.\\ 4.\quad Akzeptiere. \end{shaded} \item Führen Sie nun einen allgemeingültigen Beweis. \end{enumerate} \newpage \aufgabe{3 \quad NP-VOLLSTÄNDIGKEIT}{2 + 8 Punkte} Wir betrachten folgendes Problem: \textbf{Problem: $k$-CLIQUE-DEG-3}\\ \textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$, sodass jeder Knoten mindestens Grad 3 hat, also $\deg(v) \ge 3$ für alle $v \in V$. Weiter ist eine Zahl $k \in \mathbb{N}_{>0}$ gegeben.\\ \textbf{Entscheide:} Existiert eine Clique $C \subseteq V$ mit $|C| \ge k$? \begin{enumerate}[label=\alph*),leftmargin=1.6em] \item Zeigen Sie, dass $k$-CLIQUE für $k \in \{1,2,3,4\}$ in polynomieller Zeit lösbar ist durch Angabe von polynomiellen Algorithmen. \item Zeigen Sie, dass $k$-CLIQUE-DEG-3 NP-vollständig ist. \end{enumerate} \newpage \aufgabe{4 \quad ETH}{1+4+1+4 Punkte} \textbf{Problem: NAE-4-SAT}\\ \textbf{Eingabe:} $n$ Variablen $x_1,\dots,x_n$ und $m$ Klauseln $C_1,\dots,C_m$, wobei $|C_i| \le 4$ für alle $i \in [m]$.\\ \textbf{Entscheide:} Existiert eine Belegung $\varphi$, sodass für jede Klausel $C_i$ Literale $y,z \in C_i$ mit $\varphi(y) \ne \varphi(z)$ existieren? Betrachten Sie folgende Reduktion von 3-SAT auf NAE-4-SAT. Für eine gegebene 3-SAT-Instanz mit Variablen $x_1,\dots,x_n$ und Klauseln $C_1,\dots,C_m$ konstruieren wir eine NAE-4-SAT-Instanz wie folgt. Die Variablen sind $x_1,\dots,x_n,w$, wobei $w$ eine frische Variable ist, also $w \ne x_i$ für alle $i \in [n]$. Für jedes $i \in [m]$ nehmen wir die Klausel $C_i \cup \{w\}$ hinzu. \begin{enumerate}[label=\alph*),leftmargin=1.6em] \item Geben Sie die Anzahl der Variablen und die Anzahl der Klauseln für die resultierende NAE-4-SAT-Instanz in Abhängigkeit von der originalen 3-SAT-Instanz an. \item Beweisen Sie Lower Bounds für NAE-4-SAT bezüglich Anzahl der Variablen und Anzahl der Klauseln basierend auf der ETH und der oben beschriebenen Reduktion. \end{enumerate} \medskip \textbf{Problem: SETSPLITTING}\\ \textbf{Eingabe:} Eine Grundmenge $S$ und Teilmengen $F_1,\dots,F_r \subseteq S$.\\ \textbf{Entscheide:} Existiert eine Partition von $S$ in $S_1$ und $S_2$ ($S = S_1 \mathbin{\dot\cup} S_2$), sodass $F_i \cap S_1 \ne \emptyset \ne F_i \cap S_2$ für alle $i \in [r]$? Betrachten Sie folgende Reduktion von NAE-4-SAT auf SETSPLITTING. Für eine NAE-4-SAT-Instanz mit $n$ Variablen $x_1,\dots,x_n$ und $m$ Klauseln $C_1,\dots,C_m$ definiere $S = \{x_i, \bar x_i \mid i \in [n]\}$ als Grundmenge. Die Teilmengen $F_1,\dots,F_r$ ergeben sich folgendermaßen. Für jedes $i \in [n]$ nehmen wir die Teilmenge $\{x_i, \bar x_i\} \subseteq S$. Zusätzlich fügen wir für jede Klausel $C_i$ aus NAE-4-SAT die Teilmenge $C_i \subseteq S$ hinzu. \begin{enumerate}[label=\alph*),leftmargin=1.6em,start=3] \item Geben Sie die Größe der Grundmenge $S$ und die Anzahl der Teilmengen $r$ für die resultierende SETSPLITTING-Instanz in Abhängigkeit von der originalen NAE-4-SAT-Instanz an. \item Beweisen Sie Lower Bounds für SETSPLITTING bezüglich Größe der Grundmenge und Anzahl der Teilmengen basierend auf der ETH und der oben beschriebenen Reduktion. \end{enumerate} \newpage \aufgabe{5 \quad APPROXIMATIVE ALGORITHMEN -- SCHEDULING}{1 + 1 + 8 + (10) Punkte} Wir betrachten das Parallel-Task-Scheduling-Problem. Dabei sind $n$ Jobs $J$ und $m$ Maschinen gegeben. Hier hat jeder Job $j \in [n]$ eine Ausführungszeit $p_j \in \mathbb{Q}_{>0}$ und belegt dabei gleichzeitig $q_j \in [m]$ Maschinen. Es wird ein valider Schedule (keine zwei verschiedenen Jobs belegen gleichzeitig dieselbe Maschine) gesucht mit minimaler Makespan, also ein Schedule, bei dem alle Jobs möglichst früh abgearbeitet sind. \begin{shaded} \ttfamily\small \textbf{Algorithmus LISTSCHEDULING($J,m$)}\\ 1\quad \textbf{foreach} $i \in [m]$ \textbf{do}\\ 2\quad\quad $C_i \leftarrow 0$\\ 3\quad \textbf{od}\\ 4\quad \textbf{foreach} $j \in [n]$ \textbf{do}\\ 5\quad\quad Sortiere Maschinen, so dass $C_i \le C_{i+1}$, für alle $i \in [m-1]$\\ 6\quad\quad Platziere Job $j$ zum frühestmöglichen Zeitpunkt $C' \leftarrow \max_{i \le q_j}\{C_i\}$\\ 7\quad\quad \textbf{foreach} $i \in [q_j]$ \textbf{do}\\ 8\quad\quad\quad $C_i \leftarrow C' + p_j$\\ 9\quad\quad \textbf{od}\\ 10\quad \textbf{od}\\ 11\quad \textbf{return} $\max_{i \in [m]} C_i$ \end{shaded} \begin{enumerate}[label=\alph*),leftmargin=1.6em] \item Wenden Sie den Algorithmus auf folgende Instanz an. Geben Sie dabei den Schedule am Ende des Algorithmus an. Die Instanz hat $n = 4$ Jobs und $m = 3$ Maschinen, dabei sind die Jobs $J$ durch folgende Tabelle gegeben. \begin{center} \begin{tabular}{|l|c|c|c|c|}\hline Job & 1 & 2 & 3 & 4\\\hline Ausführungszeit $p$ & 1 & 1 & 2 & 3\\\hline Maschinenbedarf $q$ & 1 & 3 & 2 & 1\\\hline \end{tabular} \end{center} \item Welche Worst-Case-Güte hat der LISTSCHEDULING-Algorithmus, wenn $q_j = 1$ für alle Jobs $j \in [n]$ gilt? \item Zeigen Sie $\text{LISTSCHEDULING}(I) \le \mathrm{OPT}(I) + \frac{1}{2} p_{\max}$ für alle Instanzen $I$ mit $\frac{1}{3}m < q_j \le \frac{1}{2}m$ für alle $j \in [n]$. Hier beschreibt $p_{\max} = \max_{j \in [n]} p_j$ die maximale Ausführungszeit in der Instanz. \item \textbf{BONUS:} Sei $k \in \mathbb{N}_{\ge 2}$. Welche Güte hat LISTSCHEDULING für alle Instanzen $I$ mit $\frac{1}{k+1}m < q_j \le \frac{1}{k}m$ für alle $j \in [n]$? Beweisen Sie diese Güte. \end{enumerate} %====================================================================== % KLAUSUR 2 — 14. Oktober 2025 — SS 2025 %====================================================================== \newpage \setcounter{page}{1} \klausurkopf{14.\ Oktober 2025}% {Matrikel-Nr.:\ \underline{\hspace{3.5cm}}}% {% \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 Einsichtnahme: \textbf{6.\ November 2025, 09:30 bis 10:30 Uhr}. Der Raum für die Einsicht wird noch bekannt gegeben. \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. } \pagestyle{okt} \newpage \aufgabe{1 \quad ANWENDUNG -- $\Delta$TSP1}{5+1+2+2 Punkte} Gegeben sei folgender Graph $G = (V,E)$: \begin{grafik} Gerichtet/asymmetrisch gewichteter Graph mit fünf Knoten $a, b, c, d, e$ (Anordnung ungefähr: $c$ oben links, $d$ oben rechts, $a$ links/Mitte, $b$ rechts/Mitte, $e$ unten). Die Gewichte stehen an der nach außen gerichteten Kantenseite. Die in der Figur ablesbaren Gewichtszahlen sind: $2,\ 4,\ 3,\ 4,\ 3,\ 4,\ 1,\ 5,\ 1,\ 2$ (verteilt auf die Kanten zwischen den fünf Knoten). Die genaue Zuordnung Kante$\,\to\,$Gewicht ist der Originalzeichnung zu entnehmen; für $\Delta$TSP1 wird von $a$ als Startknoten ausgegangen. \end{grafik} \begin{enumerate}[label=\alph*),leftmargin=1.6em] \item Wenden Sie den Algorithmus $\Delta$TSP1 auf den Graphen $G$ mit Startknoten $a$ an. Geben Sie dabei alle Graphen an, die in Zwischenschritten entstehen. Geben Sie außerdem die Länge der berechneten Rundreise an. \item Welche Güte hat der Algorithmus $\Delta$TSP1? \item Ist das Entscheidungsproblem zum TSP in P? Begründen Sie Ihre Antwort kurz. \item Ist die folgende Aussage wahr? Begründen Sie Ihre Antwort kurz.\\ Wenn der Algorithmus $\Delta$TSP1 eine multiplikative Güte von $1{,}5$ besitzt, dann bedeutet das, dass $\frac{d(R)}{\mathrm{OPT}(I)} \ge 1{,}5$ für eine Instanz $I$ und die Länge der vom Algorithmus für $I$ berechneten Rundreise $d(R)$ gilt. \end{enumerate} \newpage \aufgabe{2 \quad VORLESUNGSBEWEIS -- NP-VOLLSTÄNDIGKEIT}{10 Punkte} Beweisen Sie den folgenden aus der Vorlesung bekannten Satz. Sei $L_0$ eine NP-vollständige Sprache. Falls $L_0 \in P$, dann gilt auch $P = NP$. \newpage \aufgabe{3 \quad NP-VOLLSTÄNDIGKEIT}{10 Punkte} Wir betrachten folgendes Problem: \textbf{Problem: $k$-COLOR-PRECOLORING}\\ \textbf{Eingabe:} Ein ungerichteter Graph $G = (V,E)$ und eine Zahl $k \in \mathbb{N}_{>0}$ sowie paarweise verschiedene Knoten $v_1,\dots,v_k \in V$.\\ \textbf{Entscheide:} Existiert eine Färbung der Knoten $f : V \to [k]$, sodass $f(v_i) = i$ für alle $i \in [k]$ und $f(v) \ne f(u)$ für alle $\{v,u\} \in E$? Zeigen Sie, dass $k$-COLOR-PRECOLORING NP-vollständig ist. \newpage \aufgabe{4 \quad ETH}{1+4+1+4 Punkte} \textbf{Problem: COVERCLIQUE}\\ \textbf{Eingabe:} Ein (ungerichteter) Graph $G = (V,E)$ und eine Zahl $k \in \mathbb{N}_{\ge 1}$.\\ \textbf{Entscheide:} Existieren $k$ paarweise disjunkte Cliquen $C_1,\dots,C_k$, die alle Knoten überdecken? Formeller: Existieren $C_1,\dots,C_k \subseteq V$, so dass $V = \bigcup_{i=1}^{k} C_i$ mit $\{\{v,u\} \mid v,u \in C_i,\ v \ne u\} \subseteq E$ für alle $i \in [k]$ und $C_i \cap C_j \ne \emptyset \Rightarrow i = j$ für alle $i,j \in [k]$? Betrachten Sie folgende Reduktion von $k$-COLOR auf COVERCLIQUE: Für eine Eingabe $(G = (V,E), k)$ erstelle die Instanz $(G' = (V, \bar E), k)$, wobei $\bar E$ die invertierte Kantenmenge ist, also $\bar E = \{\{v,u\} \mid v,u \in V,\ v \ne u,\ \{v,u\} \notin E\}$. \begin{enumerate}[label=\alph*),leftmargin=1.6em] \item Geben Sie die Anzahl der Knoten und die Anzahl der Kanten für die resultierende COVERCLIQUE-Instanz in Abhängigkeit von der originalen $k$-COLOR-Instanz an. \item Beweisen Sie Laufzeit-Lower-Bounds für COVERCLIQUE bezüglich Anzahl der Knoten und Anzahl der Kanten basierend auf der ETH und der oben beschriebenen Reduktion.\\ \textit{Hinweis:} $k$-COLOR kann unter Annahme der ETH nicht in $2^{o(|V|)} \cdot |I|^{O(1)}$ gelöst werden. \end{enumerate} \medskip \textbf{Problem: $\Delta$COVER}\\ \textbf{Eingabe:} Ein (ungerichteter) Graph $G = (V,E)$ und eine Zahl $k \in \mathbb{N}_0$.\\ \textbf{Entscheide:} Besitzt der Graph eine Dreiecksüberdeckung $C_\Delta \subseteq V$ mit $|C_\Delta| \le k$? $C_\Delta$ ist eine Dreiecksüberdeckung, wenn für alle $v,u,w \in V$ mit $\{v,u\},\{v,w\},\{u,w\} \in E$ gilt, dass $\{v,u,w\} \cap C_\Delta \ne \emptyset$. Betrachten Sie folgende Reduktion von VERTEXCOVER auf $\Delta$COVER, bekannt aus der Übung: Für eine Instanz von VERTEXCOVER $(G = (V,E), k)$ bilde die Instanz $(G' = (V', E'), k)$ mit $V' = V \cup \{v_e \mid e \in E\}$ und $E' = E \cup \{\{v_e, e_1\}, \{v_e, e_2\} \mid e = \{e_1, e_2\} \in E\}$. \begin{enumerate}[label=\alph*),leftmargin=1.6em,start=3] \item Geben Sie die Anzahl der Knoten und die Anzahl der Kanten für die resultierende $\Delta$COVER-Instanz in Abhängigkeit von der originalen VERTEXCOVER-Instanz an. \item Beweisen Sie Laufzeit-Lower-Bounds für $\Delta$COVER bezüglich Anzahl der Knoten und Anzahl der Kanten basierend auf der ETH und der oben beschriebenen Reduktion. \end{enumerate} \newpage \aufgabe{5 \quad APPROXIMATIVE ALGORITHMEN -- STRIP PACKING}{2 + 3 + 5 + (10) Punkte} \textbf{Problem: STRIPPACKING}\\ \textbf{Eingabe:} Eine Folge $L = (r_1,\dots,r_n)$ von Rechtecken mit Breite $w(r_i)$ und Höhe $h(r_i)$, so dass $h(r_i) \ge h(r_{i+1})$ für alle $i \in \{1,\dots,n-1\}$; ein Streifen mit Breite 1 und unbeschränkter Höhe.\\ \textbf{Ausgabe:} Eine Packung dieser Rechtecke in den Streifen so, dass sich keine zwei Rechtecke überlappen und die Höhe des gepackten Streifens minimal ist. Der folgende Algorithmus für das StripPacking-Problem geht die Rechtecke nacheinander durch und packt sie von links nach rechts ganz unten auf den Streifen, bis kein Platz mehr ist. Dann geht er eine Stufe höher, also über das erste gepackte Rechteck ganz links, und packt auf dieser Höhe nach dem gleichen Prinzip weiter: \begin{shaded} \ttfamily\small \textbf{Algorithmus NEXT FIT DECREASING HEIGHT (NFDH)($L$)}\\ 1\quad Stufe $s \leftarrow 1$\\ 2\quad \textbf{foreach} $i \leftarrow 1,\dots,n$ \textbf{do}\\ 3\quad\quad Falls in Stufe $s$ noch Platz ist, packe Rechteck $r_i$ (links-justiert) auf diese Stufe.\\ 4\quad\quad Ansonsten, setze $s \leftarrow s+1$ und packe dann Rechteck $r_i$ (links-justiert) auf Stufe $s$.\\ 5\quad \textbf{od} \end{shaded} \begin{enumerate}[label=\alph*),leftmargin=1.6em] \item Gegeben sei die folgende Beispielinstanz sowie eine Packung, erzeugt von NFDH. Geben Sie eine optimale Packung an sowie die Approximationsrate des Algorithmus in diesem Fall. \begin{center} \begin{tabular}{|l|c|c|c|c|c|}\hline Rechteck & 1 & 2 & 3 & 4 & 5\\\hline Höhe $h(r_i)$ & 1 & 1 & 1 & 1 & 1\\\hline Breite $w(r_i)$ & $\tfrac{1}{2}$ & $\tfrac{1}{4}$ & $\tfrac{1}{2}$ & $\tfrac{1}{4}$ & $\tfrac{1}{2}$\\\hline \end{tabular} \end{center} \begin{grafik} Dargestellte NFDH-Packung im Breite-1-Streifen (alle Rechtecke haben Höhe 1, es entstehen also volle Stufen der Höhe 1): Stufe 1 (unten) enthält Rechteck 1 (Breite $\tfrac12$) links-justiert und daneben Rechteck 2 (Breite $\tfrac14$); Rechteck 3 (Breite $\tfrac12$) passt nicht mehr in Stufe 1, daher Stufe 2 mit Rechteck 3 (Breite $\tfrac12$) und daneben Rechteck 4 (Breite $\tfrac14$); Rechteck 5 (Breite $\tfrac12$) beginnt Stufe 3. Es werden also drei Stufen benutzt, die Gesamthöhe der NFDH-Packung ist $3$. \end{grafik} \item Zeigen Sie: Es existieren Eingaben $L_n = (r_1,\dots,r_n)$ mit \[ \lim_{n \to \infty} \frac{\text{NFDH}(L_n)}{\mathrm{OPT}(L_n)} = 2. \] \item Zeigen Sie, dass für jede Eingabeinstanz $L = (r_1,\dots,r_n)$ von Rechtecken mit $h(r_i) = 1$ gilt: \[ \text{NFDH}(L) \le 2 \cdot \mathrm{OPT}(L) + 1. \] \item \textbf{BONUS:} Zeigen Sie, dass für jede Eingabeinstanz $L = (r_1,\dots,r_n)$ von Rechtecken mit $h(r_i) \le 1$ gilt: \[ \text{NFDH}(L) \le 2 \cdot \mathrm{OPT}(L) + 1. \] \end{enumerate} \end{document}