This commit is contained in:
team3
2026-07-20 22:34:19 +02:00
commit d988d850dd
177 changed files with 2032708 additions and 0 deletions

858
lernmaterial/fundament.tex Normal file
View File

@@ -0,0 +1,858 @@
\documentclass[11pt]{article}
\input{style.tex}
\title{\textbf{AAK -- Fundament}\\[0.4em]
\large Komplexitätstheorie und Approximation ohne Beweise\\[0.2em]
\normalsize Grundwissen zu Serie 9--13 und Skript Kapitel 6--7}
\author{Klausurvorbereitung \glqq Analyse von Algorithmen und Komplexität\grqq{} (CAU Kiel)}
\date{Sommersemester 2026}
\begin{document}
\maketitle
\noindent\textbf{Wie du dieses Dokument benutzt.}
Dieses PDF baut das Fundament auf: alle Begriffe, Probleme und Resultate des
Klausurstoffs -- bewusst \emph{ohne} Beweise. Zu jedem Satz steht höchstens eine
einzeilige Beweisidee. Arbeite es von vorne nach hinten durch. Wenn alles sitzt,
nimm dir \textbf{Uebung.pdf} vor: Dort lernst du die Beweistechniken und
trainierst die konkreten Klausur-Aufgabentypen.
\medskip
\noindent\textbf{Klausurstoff:} Serien 9--13 und Skript Kapitel 6 (Komplexitätstheorie)
und 7 (Approximative Algorithmen). Mehr kommt nicht dran.
\tableofcontents
\newpage
% ==================================================================
\section{Grundbegriffe: Sprachen und Entscheidungsprobleme}
% ==================================================================
Die Komplexitätstheorie klassifiziert, \emph{wie schwer} Probleme sind.
Ausgangspunkt: Für viele Probleme (z.\,B. Clique) kennt man nur Algorithmen mit
exponentieller Laufzeit. Der naive Clique-Algorithmus (teste alle $k$-elementigen
Teilmengen) braucht im schlimmsten Fall mindestens $2^{|V|/2}$ Schritte
(Lemma~6.2 im Skript). Die Frage \glqq Geht es schneller?\grqq{} führt auf P, NP
und die NP-Vollständigkeit.
\begin{defbox}{Alphabet, Wort, Sprache}
\begin{itemize}
\item Ein \emph{Alphabet} $\Sigma$ ist eine endliche Menge von Symbolen.
\item $\Sigma^*$ ist die Menge aller endlichen Wörter über $\Sigma$; $|x|$ ist die Länge von $x$.
\item Eine Teilmenge $L \subseteq \Sigma^*$ heißt \emph{Sprache}.
\end{itemize}
\end{defbox}
\begin{defbox}{Entscheidungsproblem}
Ein \emph{Entscheidungsproblem} ist ein Tripel $(L, U, \Sigma)$ mit Sprachen
$L \subseteq U \subseteq \Sigma^*$. Ein Algorithmus $A$ \emph{entscheidet} $L$
(bzgl. $U$), wenn für alle $x \in U$ gilt:
$x \in L \Rightarrow A(x) = 1$ und $x \notin L \Rightarrow A(x) = 0$.
Meist ist $U = \Sigma^*$. Die Antwort ist immer \emph{Ja oder Nein}.
\end{defbox}
Jedes konkrete Problem wird als Sprache kodiert. Beispiel Cliquenproblem:
\begin{align*}
\problem{Clique} = \{\, u\#v \mid\; & u \text{ kodiert Adjazenzmatrix von } G,\ v \text{ kodiert } k,\\
& G \text{ hat Clique mit } k \text{ Knoten} \,\}.
\end{align*}
Dabei hat $u$ Länge $O(|V|^2)$ und $v$ Länge $O(\log |V|)$ -- Zahlen werden
\emph{binär} kodiert, sind also exponentiell größer als ihre Kodierungslänge.
Das wird bei SubSet Sum wichtig.
\begin{defbox}{Laufzeit}
$T_A(x)$ ist die Anzahl der Operationen von Algorithmus $A$ auf Eingabe $x$.
Die Worst-Case-Laufzeit für Eingabelänge $n$ ist
$T_A(n) = \max\{\,T_A(x) \mid x \in \Sigma^*,\ |x| = n\,\}$.
\end{defbox}
\begin{merke}
Klausuraufgaben arbeiten fast immer mit \emph{Entscheidungsvarianten}:
Aus einem Optimierungsproblem (\glqq finde minimales Vertex Cover\grqq) wird
eine Ja/Nein-Frage mit Schranke (\glqq gibt es ein Vertex Cover mit $\le k$
Knoten?\grqq).
\end{merke}
% ==================================================================
\section{Die Klassen P und NP}
% ==================================================================
\subsection{P: effizient lösbar}
\begin{defbox}{Klasse P}
$\Pclass$ ist die Menge aller Sprachen, die ein (deterministischer) Algorithmus
in polynomieller Zeit entscheidet:
\[
\Pclass = \{\, L \subseteq \Sigma^* \mid \exists\, \text{Algorithmus } A,\;
T_A(n) = O(n^d) \text{ mit } d = O(1),\; A \text{ entscheidet } L \,\}.
\]
\end{defbox}
Intuition: $\Pclass$ = \glqq effizient lösbar\grqq. Beispiele: Sortieren,
kürzeste Wege, minimale Spannbäume, Matching.
\subsection{NP: effizient überprüfbar}
Für NP gibt es \textbf{zwei gleichwertige Definitionen}. Beide musst du kennen --
die Klausur SS23 hat genau diesen Dreischritt (Zertifikat, Verifizierer, NTM)
abgefragt.
\medskip\noindent\textbf{Weg 1: Verifizierer und Zertifikat.}\par
\begin{defbox}{Verifizierer, Zertifikat}
Ein Algorithmus $A$ auf $\Sigma^* \times \Sigma^*$ heißt \emph{Verifizierer}
für $L$, wenn
\[
L = \{\, x \in \Sigma^* \mid \exists\, c \in \Sigma^* \text{ mit } A(x,c) = 1 \,\}.
\]
Ein Wort $c$ mit $A(x,c) = 1$ heißt \emph{Zertifikat} für $x \in L$.
$A$ ist ein \emph{polynomieller} Verifizierer, wenn es für jedes $x \in L$ ein
Zertifikat $c$ gibt mit $T_A(x,c) = O(|x|^d)$ für eine Konstante $d$.
\end{defbox}
\begin{defbox}{Klasse NP}
$\NP = \{\, L \subseteq \Sigma^* \mid \text{es existiert ein polynomieller
Verifizierer für } L \,\}$.
\end{defbox}
Intuition: Eine Lösung zu \emph{finden} mag schwer sein -- eine vorgelegte
Lösung zu \emph{prüfen} ist leicht. Das Zertifikat ist die vorgelegte Lösung.
\begin{bsp}{Typische Zertifikate}
\begin{center}
\begin{tabular}{lll}
\toprule
Problem & Zertifikat & Prüfung \\
\midrule
$k$-\problem{Clique} & Knotenmenge $C \subseteq V$ & alle Paare in $E$? $|C| \ge k$? \\
\problem{SAT} & Belegung $\psi$ & wertet $\alpha$ zu true aus? \\
\problem{Vertex Cover} & Knotenmenge $C$ & jede Kante überdeckt? $|C| \le k$? \\
\problem{SubSet Sum} & Teilmenge $S$ & $\sum_{j \in S} c_j = K$? \\
\problem{Hamiltonkreis} & Permutation $\pi$ & alle Folgekanten in $E$? \\
\bottomrule
\end{tabular}
\end{center}
Das Zertifikat ist polynomiell lang, die Prüfung läuft in Polynomialzeit.
\end{bsp}
\medskip\noindent\textbf{Weg 2: Nichtdeterminismus.}\par
Ein \emph{nichtdeterministischer Algorithmus} darf in jedem Schritt
\glqq raten\grqq{} (mehrere Rechenwege). Er entscheidet $L$, wenn
(i) jedes $w \in L$ mindestens einen akzeptierenden Rechenweg hat,
(ii) jeder akzeptierende Rechenweg polynomiell lang ist und
(iii) für $w \notin L$ \emph{jeder} Rechenweg ablehnt.
Muster: \emph{Rate die Lösung, prüfe sie deterministisch.}
\begin{defbox}{Nichtdeterministische Turingmaschine (NDTM)}
$M = (Q, \Gamma, q_0, \delta, F)$ mit endlicher Zustandsmenge $Q$,
Arbeitsalphabet $\Gamma \supset \Sigma$, Startzustand $q_0$, Endzuständen
$F \subset Q$ und Übergangsfunktion
\[
\delta:\; Q \times \Gamma \;\longrightarrow\; 2^{\,Q \times \Gamma \times \{-1,0,1\}}.
\]
Zu $(q,a)$ kann es also \emph{mehrere} (oder keine) Übergänge geben.
Eine \emph{Konfiguration} $uqav$ speichert Bandinschrift, Zustand $q$ und
Arbeitsfeld $a$; $C \vdash C'$ bezeichnet den Übergang zur Folgekonfiguration.
Eine Berechnung $C_0, \dots, C_k$ \emph{akzeptiert}, wenn $C_k$ eine
Stopkonfiguration mit Zustand in $F$ ist.
$L \in \NP \iff$ eine NDTM akzeptiert $L$ in nichtdeterministischer
polynomieller Zeit. Ist $|\delta(q,a)| \le 1$ überall, heißt $M$
\emph{deterministisch} (DTM); $L \in \Pclass \iff$ eine DTM entscheidet $L$ in
polynomieller Zeit.
\end{defbox}
\begin{satzbox}{Äquivalenz der NP-Definitionen}
Die Definition über Verifizierer und die über NDTMs beschreiben dieselbe
Klasse $\NP$.\\[0.3em]
\emph{Beweisidee:} Die Folge der Rateschritte einer NDTM \emph{ist} ein
Zertifikat; umgekehrt rät die NDTM das Zertifikat (Phase 1) und simuliert den
Verifizierer (Phase 2).
\end{satzbox}
\begin{satzbox}{$\Pclass \subseteq \NP$}
Jede Sprache in $\Pclass$ liegt auch in $\NP$.\\[0.3em]
\emph{Beweisidee:} Der entscheidende Algorithmus ist ein Verifizierer, der das
Zertifikat einfach ignoriert.
\end{satzbox}
\begin{merke}
Ob $\Pclass = \NP$ gilt, ist \textbf{offen} -- eines der sieben
Millennium-Probleme (Clay Institute, 1~Mio.~Dollar). Alles Weitere
(NP-Vollständigkeit, ETH) ist der Umgang mit dieser Unwissenheit.
\end{merke}
% ==================================================================
\section{Reduktionen, NP-Schwere, NP-Vollständigkeit}
% ==================================================================
\subsection{Polynomielle Reduktionen}
\begin{defbox}{Polynomielle Reduktion $L_1 \redp L_2$}
Seien $L_1 \subseteq \Sigma_1^*$, $L_2 \subseteq \Sigma_2^*$.
Eine Funktion $f: \Sigma_1^* \to \Sigma_2^*$ mit
\[
w \in L_1 \iff f(w) \in L_2 \qquad \forall\, w \in \Sigma_1^*
\]
heißt \emph{Transformation} von $L_1$ auf $L_2$. Sie heißt \emph{polynomiell},
wenn ein Algorithmus $f(w)$ in polynomieller Zeit berechnet (dann ist auch
$|f(w)| \le \poly(|w|)$). Notation: $L_1 \redp L_2$
(\glqq $L_1$ ist polynomiell reduzierbar auf $L_2$\grqq).
\end{defbox}
Intuition: $L_1 \redp L_2$ heißt \emph{\glqq $L_2$ ist mindestens so schwer wie
$L_1$\grqq} -- wer $L_2$ lösen kann, kann damit auch $L_1$ lösen.
\begin{warnung}
\textbf{Die Richtung der Reduktion} ist der häufigste Fehler.
Um zu zeigen, dass ein \emph{neues} Problem $Y$ schwer ist, reduzierst du ein
\emph{bekanntes} schweres Problem $X$ \emph{auf} $Y$: also $X \redp Y$
(\glqq bekannt $\redp$ neu\grqq). Die Reduktion nimmt eine $X$-Instanz und baut
daraus eine $Y$-Instanz -- niemals umgekehrt.
\end{warnung}
\begin{satzbox}{Transitivität}
$L_1 \redp L_2$ und $L_2 \redp L_3$ $\Rightarrow$ $L_1 \redp L_3$.\\[0.3em]
\emph{Beweisidee:} Reduktionen hintereinanderschalten; die Ausgabe der ersten
ist polynomiell groß, also bleibt die Komposition polynomiell.
\end{satzbox}
\subsection{NP-schwer und NP-vollständig}
\begin{defbox}{NP-schwer, NP-vollständig}
\begin{itemize}
\item $L_0$ heißt \emph{NP-schwer} $\iff$ $\forall L \in \NP:\; L \redp L_0$.
\item $L_0$ heißt \emph{NP-vollständig} $\iff$ $L_0 \in \NP$ \textbf{und} $L_0$ ist NP-schwer.
\end{itemize}
\end{defbox}
\begin{merke}
Eselsbrücke: \emph{NP-schwer} = untere Schranke (mindestens so schwer wie alles
in NP). \emph{$\in \NP$} = obere Schranke (nicht schwerer als NP).
\emph{NP-vollständig} = beides. Es gibt NP-schwere Probleme, die nicht in NP
liegen -- z.\,B. das Halteproblem (Abschnitt~\ref{sec:halt}).
\end{merke}
\begin{satzbox}{NP-vollständig und P=NP}
Sei $L_0$ NP-vollständig. Dann gilt: $\Pclass = \NP \iff L_0 \in \Pclass$.\\[0.3em]
\emph{Beweisidee ($\Leftarrow$):} Für beliebiges $L \in \NP$ schalte die
Reduktion $L \redp L_0$ vor den Polynomialzeit-Algorithmus für $L_0$.
\end{satzbox}
Konsequenz: Findet jemand für \emph{ein} NP-vollständiges Problem einen
Polynomialzeit-Algorithmus, kollabiert alles: $\Pclass = \NP$. Solange das
nicht passiert, gilt ein NP-Vollständigkeitsbeweis als starkes Indiz, dass es
keinen effizienten Algorithmus gibt.
\begin{satzbox}{Vererbungskorollar -- das wichtigste Werkzeug}
Ist $L_0$ NP-vollständig, $L_0 \redp L_1$ und $L_1 \in \NP$, so ist $L_1$
NP-vollständig.\\[0.3em]
\emph{Beweisidee:} $L \redp L_0 \redp L_1$ für alle $L \in \NP$ (Transitivität).
\end{satzbox}
Dieses Korollar ist das Standardwerkzeug der Klausur: Statt \glqq alle $L \in
\NP$\grqq{} zu betrachten, reicht \emph{eine} Reduktion von einem bekannten
NP-vollständigen Problem plus der Nachweis $L_1 \in \NP$.
\subsection{Der Startpunkt: Satz von Cook--Levin}
\begin{satzbox}{Cook (1971) / Levin (1973)}
\problem{SAT} ist NP-vollständig.\\[0.3em]
\emph{Beweisidee:} Für beliebiges $L \in \NP$ mit NDTM $M$ wird die Berechnung
von $M$ auf $u$ als KNF-Formel $\alpha_u$ kodiert:
$\alpha_u = \alpha_{\text{Anfang}} \wedge \alpha_{\text{Ende}} \wedge
\alpha_{\text{Eindeutig}} \wedge \alpha_{\text{Übergang}}$ mit Variablen für
\glqq Zustand zur Zeit $t$\grqq, \glqq Arbeitsfeld zur Zeit $t$\grqq,
\glqq Bandinhalt Feld $i$ zur Zeit $t$\grqq. Erfüllende Belegungen entsprechen
genau akzeptierenden Berechnungen; die Formel hat polynomielle Größe
$O(T(n)^3 \log T(n))$.
\end{satzbox}
Ab hier werden alle weiteren NP-Vollständigkeitsbeweise per Reduktionskette aus
SAT aufgebaut (Kapitel~\ref{sec:landkarte}).
% ==================================================================
\section{Problemkatalog}\label{sec:katalog}
% ==================================================================
Alle Probleme des Klausurstoffs im Steckbrief-Format. Präge dir zu jedem ein:
Eingabe, Frage, Status, und \emph{woher} die NP-Vollständigkeit kommt.
\subsection{Logik-Probleme}
\begin{problembox}{SAT}
\textbf{Gegeben:} Boolescher Ausdruck $\alpha = C_1 \wedge \dots \wedge C_m$ in
konjunktiver Normalform (KNF): Klauseln $C_i$ sind Disjunktionen von Literalen
($x_j$ oder $\neg x_j$).\\
\textbf{Entscheide:} Gibt es eine erfüllende Belegung der Variablen?\\
\textbf{Status:} NP-vollständig (Cook--Levin). \emph{Das} Ur-Problem.
\end{problembox}
\begin{problembox}{3-SAT}
\textbf{Gegeben:} KNF-Formel mit \emph{höchstens 3 Literalen pro Klausel}.\\
\textbf{Entscheide:} Erfüllbar?\\
\textbf{Status:} NP-vollständig, via $\problem{SAT} \redp \problem{3-SAT}$
(lange Klauseln mit Hilfsvariablen aufspalten).
Startpunkt fast aller ETH-Reduktionen. Variante \problem{3-SAT$'$}
(\emph{genau} 3 Literale) ist ebenfalls NP-vollständig.
\end{problembox}
\begin{problembox}{MAX-3-SAT (Optimierungsproblem)}
\textbf{Gegeben:} KNF-Formel, jede Klausel mit 3 Literalen.\\
\textbf{Gesucht:} Belegung $\beta$, die die Anzahl $v(\beta)$ erfüllter
Klauseln maximiert.\\
\textbf{Status:} Optimierungsvariante von 3-SAT; in der Klausur als
\emph{Approximationsaufgabe} (Güte-2-Algorithmus, siehe
Abschnitt~\ref{sec:approx-max3sat}).
\end{problembox}
\subsection{Graphprobleme}
\begin{problembox}{$k$-Clique}
\textbf{Gegeben:} Ungerichteter Graph $G = (V,E)$, Zahl $k \ge 1$.
Eine \emph{Clique} ist $C \subseteq V$ mit $\{u,v\} \in E$ für alle $u \ne v$
aus $C$.\\
\textbf{Entscheide:} Existiert eine Clique mit $|C| \ge k$?\\
\textbf{Status:} NP-vollständig, via $\problem{SAT} \redp \problem{$k$-Clique}$
(Vorlesungsbeweis -- auswendig können!).
\end{problembox}
\begin{bsp}{Clique}
\setlength{\unitlength}{0.9cm}
\begin{center}
\begin{picture}(3.6,2.4)(-0.3,-0.2)
\put(0,1){\circle*{0.12}}\put(-0.3,1){\small $1$}
\put(1,2){\circle*{0.12}}\put(1,2.15){\small $2$}
\put(2,1){\circle*{0.12}}\put(2.1,1.15){\small $3$}
\put(1.5,0){\circle*{0.12}}\put(1.4,-0.35){\small $4$}
\put(3,0){\circle*{0.12}}\put(3.1,-0.2){\small $5$}
\put(0,1){\line(1,1){1}} % 1-2
\put(0,1){\line(1,0){2}} % 1-3
\put(1,2){\line(1,-1){1}} % 2-3
\put(2,1){\line(-1,-2){0.5}} % 3-4
\put(2,1){\line(1,-1){1}} % 3-5
\end{picture}
\end{center}
$C = \{1,2,3\}$ ist eine Clique der Größe 3; $\{2,3,4\}$ nicht (Kante
$\{2,4\}$ fehlt).
\end{bsp}
\begin{problembox}{Independent Set (IS)}
\textbf{Gegeben:} $G = (V,E)$, Zahl $k$. Ein \emph{Independent Set} ist
$I \subseteq V$ ohne Kante zwischen zwei Knoten aus $I$.\\
\textbf{Entscheide:} Gibt es ein Independent Set mit $|I| \ge k$?\\
\textbf{Status:} NP-vollständig -- $C$ ist Clique in $G$ $\iff$ $C$ ist
Independent Set im Komplementgraphen $\bar{G}$.
\end{problembox}
\begin{problembox}{Vertex Cover (VC)}
\textbf{Gegeben:} $G = (V,E)$, Zahl $k$. Ein \emph{Vertex Cover} ist
$C \subseteq V$, sodass jede Kante mindestens einen Endpunkt in $C$ hat.\\
\textbf{Entscheide:} Gibt es ein Vertex Cover mit $|C| \le k$?\\
\textbf{Status:} NP-vollständig, via $\problem{Clique} \redp \problem{VC}$.
\end{problembox}
\begin{merke}
\textbf{Dualitätsdreieck} (Kern vieler Aufgaben): In $G$ mit $n$ Knoten gilt
\begin{align*}
C \text{ ist Clique der Größe } k \text{ in } G
&\iff C \text{ ist IS der Größe } k \text{ in } \bar{G}\\
&\iff V \setminus C \text{ ist VC der Größe } n-k \text{ in } \bar{G}.
\end{align*}
Merksatz: \emph{Vertex Cover = Komplement eines Independent Set}
(in demselben Graphen), \emph{Clique = Independent Set im Komplementgraphen}.
\end{merke}
\begin{problembox}{$k$-Color (Färbungsproblem)}
\textbf{Gegeben:} $G = (V,E)$, Zahl $k$. Eine \emph{$k$-Färbung} ist
$f: V \to \{1,\dots,k\}$ mit $f(u) \ne f(v)$ für alle $\{u,v\} \in E$.\\
\textbf{Entscheide:} Ist $G$ $k$-färbbar?\\
\textbf{Status:} NP-vollständig, via $\problem{3-SAT} \redp \problem{$k$-Color}$
(Konstruktion mit $n+1$ Farben, Knoten $x_i, \bar{x}_i, v_i$, Klauselknoten
$F_j$ und Zentrum $z$). Auch \problem{3-Color} ist NP-vollständig.
\end{problembox}
\begin{problembox}{Hamiltonkreis (HK) und Hamiltonpfad}
\textbf{Gegeben:} $G = (V,E)$ ungerichtet (Aussage gilt auch gerichtet).\\
\textbf{Entscheide:} Gibt es einen Kreis, der jeden Knoten \emph{genau einmal}
besucht (formal: Permutation $\pi$ mit $\{v_{\pi(i)}, v_{\pi(i+1)}\} \in E$
zyklisch)?\\
\textbf{Status:} NP-vollständig, via $\problem{3-SAT}' \redp \problem{HK}$
(Gadget-Konstruktion mit A-/B-Komponenten; nur Beweisskizze im Skript).
\problem{Hamiltonpfad} (Pfad statt Kreis) ist ebenfalls NP-vollständig;
Klausur SS23 verlangte die Reduktionen zwischen beiden in \emph{beide}
Richtungen.
\end{problembox}
\begin{problembox}{TSP (Traveling Salesman, Entscheidungsvariante)}
\textbf{Gegeben:} Knoten $\{1,\dots,n\}$, Distanzen $d(i,j)$, Schranke $L$.\\
\textbf{Entscheide:} Gibt es eine Rundreise (jeder Knoten genau einmal) mit
Länge $\le L$?\\
\textbf{Status:} NP-vollständig, via $\problem{HK} \redp \problem{TSP}$
(Kanten $\mapsto$ Distanz 1, Nicht-Kanten $\mapsto |V|+1$, $L = |V|$).
Bleibt NP-vollständig im metrischen Fall ($\Delta$-Ungleichung).
Als Optimierungsproblem zentral in Kapitel~\ref{sec:approx}.
\end{problembox}
\begin{problembox}{Feedback Vertex Set (FVS)}
\textbf{Gegeben:} \emph{Gerichteter} Graph $G = (V,E)$, Zahl $k$.\\
\textbf{Entscheide:} Gibt es $X \subseteq V$ mit $|X| \le k$, sodass
$G \setminus X$ kreisfrei ist?\\
\textbf{Status:} NP-vollständig, via $\problem{VC} \redp \problem{FVS}$
(Serie 9/10: jede ungerichtete Kante wird zu zwei antiparallelen Bögen).
\end{problembox}
\begin{problembox}{$\Delta$-Cover (Dreiecksüberdeckung)}
\textbf{Gegeben:} $G = (V,E)$ ungerichtet, Zahl $k$.\\
\textbf{Entscheide:} Gibt es $C_\Delta \subseteq V$, $|C_\Delta| \le k$, das
\emph{jede 3-Clique} (Dreieck) von $G$ trifft?\\
\textbf{Status:} NP-vollständig, via $\problem{VC} \redp \Delta\problem{-Cover}$
(Serie 11: jede Kante zu einem Dreieck aufblasen).
\end{problembox}
\begin{problembox}{Dominating Set}
\textbf{Gegeben:} $G = (V,E)$, Zahl $k$.\\
\textbf{Entscheide:} Gibt es $D \subseteq V$, $|D| \le k$, sodass jeder Knoten
in $D$ liegt oder einen Nachbarn in $D$ hat?\\
\textbf{Status:} NP-vollständig. In Klausuren als NP-Zugehörigkeits- und
ETH-Beispiel (Reduktion von 3-SAT vorgegeben).
\end{problembox}
\begin{problembox}{Longest Path}
\textbf{Gegeben:} $G = (V,E)$, Zahl $k$.\\
\textbf{Entscheide:} Gibt es einen einfachen Pfad der Länge $\ge k$?\\
\textbf{Status:} NP-vollständig (verallgemeinert Hamiltonpfad). In der Klausur
SS23 als NP-Zugehörigkeits-Aufgabe (Zertifikat/Verifizierer/NTM).
\end{problembox}
\subsection{Mengen- und Zahlprobleme}
\begin{problembox}{3-dimensionales Matching (3-DM)}
\textbf{Gegeben:} Mengen $U, V, W$ mit $|U| = |V| = |W|$ und
$T \subseteq V \times W \times U$.\\
\textbf{Entscheide:} Gibt es $M \subseteq T$ mit $|M| = |U|$, sodass keine zwei
Tripel in einer Komponente übereinstimmen?\\
\textbf{Status:} NP-vollständig, via $\problem{SAT} \redp \problem{3-DM}$
(Gadgets: $a/b$-Knoten für Variablensetzung, $v/w$ für Klauselwahl, $c/d$ als
Garbage Collection).
\end{problembox}
\begin{problembox}{3-Exact Cover (3-EC)}
\textbf{Gegeben:} Familie $F = \{S_1, \dots, S_n\}$ von 3-elementigen
Teilmengen einer Menge $U$ mit $|U| = 3m$.\\
\textbf{Entscheide:} Gibt es $m$ Mengen aus $F$, die $U$ exakt überdecken
(disjunkt, Vereinigung $= U$)?\\
\textbf{Status:} NP-vollständig -- jede 3-DM-Instanz \emph{ist} eine
3-EC-Instanz (Uminterpretation).
\end{problembox}
\begin{problembox}{SubSet Sum}
\textbf{Gegeben:} Ganze Zahlen $c_1, \dots, c_n$ und Zielwert $K$.\\
\textbf{Entscheide:} Gibt es $S \subseteq \{1,\dots,n\}$ mit
$\sum_{j \in S} c_j = K$?\\
\textbf{Status:} NP-vollständig, via $\problem{3-EC} \redp \problem{SubSet Sum}$
(Mengen als Bitvektoren zur Basis $n+1$).
\textbf{Klausur-Spitzenreiter:} In jeder Altklausur taucht eine
SubSet-Sum-Variante auf.
\end{problembox}
\begin{problembox}{Partition}
\textbf{Gegeben:} Ganze Zahlen $c_1, \dots, c_n$.\\
\textbf{Entscheide:} Gibt es $S$ mit
$\sum_{j \in S} c_j = \tfrac{1}{2}\sum_{j=1}^n c_j$?\\
\textbf{Status:} NP-vollständig, via $\problem{SubSet Sum} \redp
\problem{Partition}$ (zwei Zusatzzahlen $N - K$ und $K + 1$).
\end{problembox}
\begin{problembox}{Rucksackproblem (Knapsack, Entscheidungsvariante)}
\textbf{Gegeben:} $n$ Gegenstände mit Größen $c_j$ und Profiten $p_j$,
Kapazität $K$, Zielprofit $P$.\\
\textbf{Entscheide:} Gibt es $S$ mit $\sum_{j \in S} c_j \le K$ und
$\sum_{j \in S} p_j \ge P$?\\
\textbf{Status:} NP-vollständig -- SubSet Sum ist der Spezialfall $c_j = p_j$,
$P = K$. Als Optimierungsproblem zentral in Kapitel~\ref{sec:approx}
(Greedy, FPTAS).
\end{problembox}
\begin{problembox}{Hitting Set}
\textbf{Gegeben:} Universum $U$, Teilmengen $F_1, \dots, F_r \subseteq U$,
Zahl $k$.\\
\textbf{Entscheide:} Gibt es $S \subseteq U$, $|S| \le k$, mit
$S \cap F_i \ne \emptyset$ für alle $i$ (\glqq $S$ trifft jede Menge\grqq)?\\
\textbf{Status:} NP-vollständig; via $\problem{3-SAT} \redp \problem{Hitting
Set}$ (Serie 13). Standard-Beispiel für ETH-Lower-Bounds.
\end{problembox}
\begin{problembox}{Set Cover}
\textbf{Gegeben:} Universum $U$, Mengen $S_1, \dots, S_r \subseteq U$, Zahl $k$.\\
\textbf{Entscheide:} Gibt es $\le k$ Mengen, deren Vereinigung $U$ ist?\\
\textbf{Status:} NP-vollständig; dual zu Hitting Set (Klausur SS23:
$\problem{Set Cover} \redp \problem{Hitting Set}$ für ETH-Schranken).
\end{problembox}
\subsection{Scheduling}
\begin{problembox}{$P\,\|\,C_{\max}$ (Scheduling auf identischen Maschinen)}
\textbf{Gegeben:} $n$ Jobs mit Laufzeiten $p_1, \dots, p_n$, $m$ identische
Maschinen.\\
\textbf{Gesucht:} Partition der Jobs in $B_1, \dots, B_m$ mit minimalem
\emph{Makespan} $\Cmax = \max_i \sum_{J_j \in B_i} p_j$.\\
\textbf{Status:} NP-vollständig schon für $m = 2$ (Reduktion von
\problem{Partition}). Zentrale Approximationsalgorithmen: List Scheduling,
LPT (Kapitel~\ref{sec:approx}).
\end{problembox}
% ==================================================================
\section{Die Reduktionslandkarte}\label{sec:landkarte}
% ==================================================================
Alle NP-Vollständigkeitsbeweise des Stoffs hängen an dieser Kette
(Pfeil $=$ \glqq wird reduziert auf\grqq):
\begin{center}
\begin{tabular}{ccccc}
& & $\boxed{\textbf{\problem{SAT}}}$ \; {\footnotesize (Cook--Levin)} & & \\[0.5em]
$\swarrow$ & & $\downarrow$ & & $\searrow$ \\[0.5em]
$\problem{3-SAT}$ & & $\problem{$k$-Clique}$ & & $\problem{3-DM}$ \\[0.5em]
$\downarrow$ & & $\downarrow$ & & $\downarrow$ \\[0.5em]
$\problem{$k$-Color}$ & & $\problem{IS}$, $\problem{VC}$ & & $\problem{3-EC}$ \\[0.5em]
& & $\downarrow$ & & $\downarrow$ \\[0.5em]
$\problem{3-SAT}' \to \problem{HK} \to \problem{TSP}$ & & $\problem{FVS}$, $\Delta$\problem{-Cover} & & $\problem{SubSet Sum}$ \\[0.5em]
& & & & $\downarrow$ \\[0.5em]
& & & & $\problem{Partition} \to P\,\|\,\Cmax$;\; $\problem{Knapsack}$ \\
\end{tabular}
\end{center}
\medskip
Die Konstruktionsideen im Überblick (Details und Beweise in Uebung.pdf):
\begin{center}
\footnotesize
\begin{tabular}{lll}
\toprule
Reduktion & Kernidee der Konstruktion & Quelle \\
\midrule
$\problem{SAT} \redp \problem{3-SAT}$ & lange Klauseln per Hilfsvariablen-Kette aufspalten & Skript 6.25 \\
$\problem{SAT} \redp \problem{$k$-Clique}$ & Knoten $[i,j]$ pro Literal; Kanten = konsistent, andere Klausel & Skript 6.26 \\
$\problem{3-SAT} \redp \problem{$k$-Color}$ & $n{+}1$ Farben; Clique $\{v_1,\dots,v_n,z\}$ erzwingt Setzung & Skript 6.28 \\
$\problem{Clique} \redp \problem{VC}$ & Komplementgraph; $C$ Clique $\iff V \setminus C$ VC, $k' = n-k$ & Präsenz 10 \\
$\problem{VC} \redp \problem{FVS}$ & Kante $\to$ zwei antiparallele Bögen (2-Kreise) & Serie 10 \\
$\problem{VC} \redp \Delta\problem{-Cover}$ & Kante $\{u,v\} \to$ Dreieck $\{v_e, u, v\}$ & Serie 11 \\
$\problem{SAT} \redp \problem{3-DM}$ & Variablen-Rad, Klausel-Tripel, Garbage Collection & Skript 6.30 \\
$\problem{3-DM} \redp \problem{3-EC}$ & Uminterpretation (Tripel = 3er-Mengen) & Skript 6.31 \\
$\problem{3-EC} \redp \problem{SubSet Sum}$ & Mengen als Bitvektoren zur Basis $n{+}1$; kein Übertrag & Skript 6.32 \\
$\problem{SubSet Sum} \redp \problem{Partition}$ & Zusatzzahlen $N{-}K$ und $K{+}1$ & Skript 6.33 \\
$\problem{3-SAT}' \redp \problem{HK}$ & A-Komponenten (XOR), B-Komponenten (Klauseln) & Skript 6.42 \\
$\problem{HK} \redp \problem{TSP}$ & Kanten Distanz 1, Nicht-Kanten $|V|{+}1$, $L = |V|$ & Skript 7.2 \\
$\problem{Partition} \redp P2\,\|\,\Cmax$ & Zahlen = Jobs; Makespan $\tfrac12\sum c_j$? & Skript 7.23 \\
$\problem{3-SAT} \redp \problem{SubSet Sum}$ (streng) & Ziffern zur Basis 10; $|A| = O(m)$ -- für ETH & Skript 6.40 \\
\bottomrule
\end{tabular}
\end{center}
% ==================================================================
\section{ETH: Exponentialzeit-Hypothese und untere Schranken}\label{sec:eth}
% ==================================================================
NP-Vollständigkeit sagt nur \glqq vermutlich nicht polynomiell\grqq. Die ETH
ist eine \emph{stärkere} Annahme, mit der man konkrete exponentielle
\emph{untere Laufzeitschranken} herleitet. In \textbf{jeder} Altklausur ist die
letzte Aufgabe eine ETH-Aufgabe.
\begin{defbox}{Klein-o-Notation}
$f(x) = o(g(x)) \iff$ für \emph{jedes} $c > 0$ gilt ab einem $x_0$:
$|f(x)| \le c \cdot |g(x)|$; äquivalent $f(x)/g(x) \to 0$.
Beispiele: $\sqrt{n} = o(n)$, $n/\log n = o(n)$, aber $\delta n \ne o(n)$ für
festes $\delta > 0$. Ein \glqq $2^{o(n)}$-Algorithmus\grqq{} ist also einer,
der \emph{subexponentiell} in $n$ läuft.
\end{defbox}
\begin{satzbox}{Exponentialzeit-Hypothese (ETH; Impagliazzo, Paturi, Zane 2001)}
Es existiert ein $\delta > 0$, sodass \problem{3-SAT} mit $n$ Variablen und $m$
Klauseln \emph{nicht} in Zeit $2^{\delta n} (n+m)^{O(1)}$ gelöst werden kann.\\[0.3em]
Äquivalent formuliert: Es gibt keinen $2^{o(n)} \cdot \poly$-Algorithmus für
\problem{3-SAT}. (Unbewiesene Annahme; alle bekannten 3-SAT-Algorithmen
brauchen $c^n$, derzeit bestes $c \approx 1{,}307$.)
\end{satzbox}
\begin{satzbox}{Sparsification-Lemma}
Unter der ETH existiert $\delta' > 0$, sodass \problem{3-SAT} nicht in Zeit
$2^{\delta' m} (n+m)^{O(1)}$ lösbar ist -- also auch kein
$2^{o(m)}$-Algorithmus (Schranke in der \emph{Klauselzahl} $m$).
\end{satzbox}
\begin{merke}
Warum braucht man das Lemma? Die ETH spricht über $n$ (Variablen). Reduktionen
erzeugen Instanzgrößen aber oft abhängig von $m$ (Klauseln). Es gilt zwar
$n \le 3m$ (jede Variable komme vor), aber $m$ kann bis $O(n^3)$ groß sein --
eine $2^{o(m)}$-Schranke folgt daher \emph{nicht} direkt aus der ETH. Das
Sparsification-Lemma schließt genau diese Lücke.
In Klausurlösungen: Immer wenn dein Parameter an $m$ hängt, das
Sparsification-Lemma zitieren.
\end{merke}
\begin{satzbox}{ETH-Konsequenzen (Skript 6.37--6.40)}
Unter Annahme der ETH gibt es keinen $2^{o(n)} \cdot \poly$-Algorithmus für:
\problem{3-Color} ($n = $ Knotenzahl; via Reduktion mit $O(n+m)$ Knoten),
\problem{Clique}, \problem{Vertex Cover}, \problem{Independent Set},
sowie \problem{SubSet Sum} und \problem{Partition} ($n = $ Anzahl Zahlen;
via strenger Reduktion mit $|A| = O(m)$ Items).
\end{satzbox}
Das Beweisschema (Kontraposition) lernst du in Uebung.pdf, Kapitel 5:
\emph{Gäbe es einen $2^{o(\text{Parameter})}$-Algorithmus für das Zielproblem,
ergäbe die Reduktion einen $2^{o(m)}$-Algorithmus für 3-SAT -- Widerspruch zum
Sparsification-Lemma.} Entscheidend ist, die Parameter der konstruierten
Instanz (Knoten, Kanten, $k$, \dots) durch $n$ und $m$ abzuschätzen.
% ==================================================================
\section{Approximative Algorithmen}\label{sec:approx}
% ==================================================================
Wenn exakte Lösungen (vermutlich) exponentielle Zeit brauchen, berechnet man in
Polynomialzeit \emph{beweisbar gute Näherungen}.
\subsection{Gütebegriff und Approximationsschemata}
\begin{defbox}{Multiplikative (Worst-Case-)Güte}
Sei $A$ ein Algorithmus für ein Optimierungsproblem, $\OPT(I)$ der optimale
Wert zu Instanz $I$. $A$ hat Güte $\alpha$, wenn für \emph{alle} Instanzen $I$:
\begin{itemize}
\item Minimierungsproblem: $A(I) \le \alpha \cdot \OPT(I)$ \quad (z.\,B. TSP, VC, $\Cmax$),
\item Maximierungsproblem: $A(I) \ge \tfrac{1}{\alpha} \cdot \OPT(I)$ \quad (z.\,B. Knapsack, MAX-3-SAT).
\end{itemize}
Die Güte ist \emph{scharf}, wenn es Instanzen gibt, die den Faktor (beliebig
genau) erreichen.
\end{defbox}
\begin{defbox}{PTAS, EPTAS, FPTAS}
Eine Familie $(A_\varepsilon)$ von Algorithmen mit Güte $1 + \varepsilon$ für
jedes $\varepsilon > 0$ heißt
\begin{itemize}
\item \emph{PTAS} (polynomielles Approximationsschema): Laufzeit polynomiell in
$n$ für jedes feste $\varepsilon$ (z.\,B. $O(n^{1/\varepsilon})$),
\item \emph{EPTAS}: Laufzeit $f(1/\varepsilon) \cdot \poly(n)$
(z.\,B. $2^{O(1/\varepsilon \log^2(1/\varepsilon))} + O(n)$ für $P\,\|\,\Cmax$),
\item \emph{FPTAS}: Laufzeit polynomiell in $n$ \emph{und} $1/\varepsilon$
(z.\,B. $O(n^3/\varepsilon)$ für Knapsack). Stärkste Form.
\end{itemize}
\emph{Pseudo-polynomiell} heißt eine Laufzeit, die polynomiell in den
\emph{Zahlenwerten} der Eingabe ist (z.\,B. $O(n^2 p_{\max})$ beim
Knapsack-DP) -- aber exponentiell in der Kodierungslänge.
\end{defbox}
\subsection{TSP: $\Delta$TSP$_1$ und Christofides}
\begin{satzbox}{Allgemeines TSP ist nicht approximierbar}
Für das allgemeine TSP gibt es \emph{keinen} Approximationsalgorithmus mit
beschränkter Güte $\alpha$, außer $\Pclass = \NP$.\\[0.3em]
\emph{Beweisidee:} Reduktion von \problem{HK}: Nicht-Kanten bekommen Distanz
$\infty$ (bzw. $\alpha |V| + 1$); ein $\alpha$-Approximationsalgorithmus könnte
dann Hamiltonkreise erkennen. (Klausuraufgabe SS23!)
\end{satzbox}
Deshalb: \emph{metrisches TSP} ($\Delta$-TSP) mit symmetrischen Distanzen und
Dreiecksungleichung $d(i,j) \le d(i,k) + d(k,j)$. Bleibt NP-vollständig, ist
aber approximierbar.
\begin{rezept}{Algorithmus $\Delta$TSP$_1$ (MST-Verdopplung) -- Güte 2}
\begin{enumerate}
\item Berechne minimalen Spannbaum $T$ von $K_n$ mit Distanzen $d$.
\item Verdopple alle Kanten von $T$ $\to$ Multigraph $G$ (alle Grade gerade).
\item Bestimme Eulerkreis $K$ in $G$.
\item Kürze $K$ zu Rundreise $R$ ab (bereits besuchte Knoten überspringen).
\end{enumerate}
Güte-Argument (nur Idee): $w(T) \le \OPT$ (Tour minus Kante = Spannbaum),
$d(K) = 2w(T)$, Abkürzen verlängert wegen $\Delta$-Ungleichung nicht.
Also $d(R) \le 2\,\OPT$. Schranke ist asymptotisch scharf (Stern-Beispiel:
$\OPT = n$, Ausgabe $2n - 2$).
\end{rezept}
\begin{defbox}{Eulerkreis}
Ein \emph{Eulerkreis} in einem Multigraphen besucht jede \emph{Kante} genau
einmal. Existenzkriterium: $G$ zusammenhängend und \emph{jeder Knoten hat
geraden Grad} (Königsberger Brückenproblem).
\end{defbox}
\begin{bsp}{$\Delta$TSP$_1$ durchgerechnet (Skript-Beispiel 7.7)}
$V = \{A,B,C,D,E\}$; optimale Tour $[C,B,D,E,A,C]$ mit Länge 8.
Der MST hat Gewicht 6 (Kanten $CB$, $BA$ je 1, $CD$, $AE$ je 2).
Verdopplung: Multigraph mit Gewicht 12.
Eulerkreis $K = [C,A,E,A,C,B,C,D,C]$, Abkürzen liefert
$R = [C,A,E,B,D,C]$ mit Länge 10 $\le 2 \cdot 8$.
\end{bsp}
\begin{rezept}{Algorithmus $\Delta$TSP$_2$ (Christofides) -- Güte 1{,}5}
\begin{enumerate}
\item Berechne minimalen Spannbaum $T$.
\item $X :=$ Knoten mit \emph{ungeradem} Grad in $T$ ($|X|$ ist gerade).
\item Berechne ein perfektes Matching $K$ mit minimalem Gewicht auf $X$
(geht in $O(|V|^3)$, Lawler 1976).
\item $G := T + K$ (alle Grade gerade), Eulerkreis, abkürzen.
\end{enumerate}
Güte-Argument (nur Idee): Die optimale Tour zerfällt auf $X$ in zwei Matchings
$M_1, M_2$ mit $d(M_1) + d(M_2) \le \OPT$; also $d(K) \le \OPT/2$ und
$d(R) \le w(T) + d(K) \le 1{,}5\,\OPT$. Auch diese Schranke ist asymptotisch
scharf (Leiter-Beispiel, Präsenzserie 12: Rate $\to 3/2 - 1/n$).
\end{rezept}
\begin{warnung}
Klausur-Klassiker: \emph{Warum braucht Christofides die
$\Delta$-Ungleichung?} Beim Abkürzen des Eulerkreises darf der Weg nicht länger
werden -- das garantiert nur die Dreiecksungleichung. Und: Das Matching wird
auf den \emph{ungerad-gradigen Knoten des MST} gebildet, nicht auf allen.
\end{warnung}
\subsection{Knapsack: Greedy, MGA, FPTAS}
\begin{rezept}{Greedy GA -- Güte unbeschränkt!}
Sortiere nach Profitdichte $p_i/w_i$ absteigend; nimm jeden Gegenstand, der
noch passt. Laufzeit $O(n \log n)$.\\[0.3em]
\textbf{Aber:} Instanz $(w_0,p_0) = (1,1)$, $(w_1,p_1) = (B, B-1)$:
GA nimmt Gegenstand 0 (Dichte 1), Gewinn 1; optimal ist $B-1$.
Güte $\ge B - 1$, also \emph{keine} konstante Güte.
\end{rezept}
\begin{rezept}{Modified Greedy MGA -- Güte 2}
Berechne $S_1$ mit GA \emph{und} $S_2 = \{$Gegenstand mit maximalem
Einzelprofit$\}$; gib die bessere Lösung aus.\\[0.3em]
Güte-Argument (nur Idee): Die fraktionale Relaxierung packt nach Dichte und
schneidet beim \emph{Split-Item} $k{+}1$ ab:
$\OPT \le \OPT_f \le \mathrm{GA}(I) + p_{k+1} \le \mathrm{GA}(I) + p_{\max}
\le 2 \cdot \mathrm{MGA}(I)$.
\end{rezept}
\begin{satzbox}{Sahni-Algorithmus $A_k$ ($k$-Enumeration)}
Probiere alle Teilmengen $S$ mit $|S| \le k$ als Vorplatzierung, fülle mit GA
auf, nimm das Beste. Güte $\le 1 + 1/k$, Laufzeit $O(n^{k+1})$ -- ein PTAS.
\end{satzbox}
\begin{satzbox}{FPTAS für Knapsack (Profit-Skalierung)}
Skaliere Profite $p_i' = \lfloor p_i / K \rfloor$ mit
$K = \frac{\varepsilon\, p_{\max}}{(1+\varepsilon)\,n}$, löse mit dem
pseudopolynomiellen DP ($O(n^2 p'_{\max})$), gib dessen Lösung aus.
Laufzeit $O(n^3/\varepsilon)$, Güte $1 + \varepsilon$.\\[0.3em]
\emph{Idee:} Durch Abrunden verliert jede Lösung höchstens $K$ pro Item, also
$\le Kn$ gesamt; wegen $\OPT \ge p_{\max}$ ist der relative Fehler $\le \varepsilon$.
\end{satzbox}
\subsection{Scheduling: List Scheduling und LPT}
\begin{rezept}{List Scheduling -- Güte $2 - \frac{1}{m}$}
Gehe die Jobs in Listenreihenfolge durch; weise jeden Job der Maschine mit
aktuell \emph{kleinster Last} zu.\\[0.3em]
Güte-Argument (nur Idee): Sei $J_k$ der letzte Job auf der vollsten Maschine.
Bis zu seinem Start waren alle Maschinen beschäftigt:
$\mathrm{LS}(I) - p_k \le \frac{1}{m}\sum_i p_i \le \OPT$ und $p_k \le \OPT$
ergeben $\mathrm{LS}(I) \le (2 - \frac{1}{m})\OPT$. Die Schranke wird von
konkreten Instanzen erreicht (Klausuraufgabe: solche Instanzen konstruieren!).
\end{rezept}
\begin{rezept}{LPT Scheduling -- Güte $\frac{4}{3} - \frac{1}{3m}$}
\emph{Longest Processing Time first}: Sortiere die Jobs absteigend
($p_1 \ge p_2 \ge \dots$), dann List Scheduling.\\[0.3em]
Beweis über minimales Gegenbeispiel: Dort wäre $p_n > \OPT/3$, also höchstens
2 Jobs pro Maschine im Optimum; per Austausch-Transformationen wird das
Optimum in einen LPT-Schedule überführt -- Widerspruch. Auch $4/3 - 1/(3m)$
wird asymptotisch erreicht.
\end{rezept}
\begin{bsp}{List Scheduling vs. LPT, $m = 2$}
Jobs mit Zeiten $(1, 1, 2)$ in Listenreihenfolge:
List Scheduling legt die beiden Einsen auf $M_1$ und $M_2$, die 2 dann auf
$M_1$ $\Rightarrow \Cmax = 3$. Optimal ist $\{2\}/\{1,1\}$ mit $\OPT = 2$.
Die Rate ist $3/2 = 2 - \frac{1}{m}$ -- die Schranke wird exakt erreicht.
LPT sortiert zuerst: $(2,1,1)$ ergibt $\Cmax = 2 = \OPT$.
\end{bsp}
\begin{satzbox}{EPTAS für $P\,\|\,\Cmax$}
Für jedes $\varepsilon > 0$ gibt es $A_\varepsilon$ mit
$A_\varepsilon(I) \le (1+\varepsilon)\OPT(I)$ und Laufzeit
$2^{O(1/\varepsilon \cdot \log^2 (1/\varepsilon))} + O(n)$.
\end{satzbox}
\subsection{MAX-3-SAT: Güte 2}\label{sec:approx-max3sat}
\begin{rezept}{Komplementäre Belegungen -- Güte 2}
Werte die Formel unter $\beta_0$ (alle Variablen false) und $\beta_1$ (alle
true) aus; gib die bessere Belegung zurück.\\[0.3em]
Warum das funktioniert: Jede Klausel enthält ein positives oder ein negatives
Literal, wird also von $\beta_0$ \emph{oder} $\beta_1$ erfüllt. Daher
$v(\beta_0) + v(\beta_1) \ge m$, also $\max \ge m/2 \ge \OPT/2$.
(Beweis + scharfe Instanz: Uebung.pdf -- war Klausuraufgabe SoSe 23.)
\end{rezept}
% ==================================================================
\section{Halteproblem und Unentscheidbarkeit}\label{sec:halt}
% ==================================================================
\begin{problembox}{HALT$_{\text{TM}}$ (Halteproblem)}
\textbf{Gegeben:} Kodierung $\langle M, w \rangle$ einer DTM $M$ und eines
Wortes $w$.\\
\textbf{Entscheide:} Hält $M$ auf $w$ (erreicht eine Stopkonfiguration)?\\
\textbf{Status:} \emph{Unentscheidbar} -- kein Algorithmus löst es, egal mit
welcher Laufzeit. Trotzdem \textbf{NP-schwer} (Serie 11): via
$\problem{SAT} \redp \problem{HALT}_{\text{TM}}$; konstruiere $M_\varphi$, die
alle Belegungen durchprobiert und genau dann hält, wenn eine erfüllende
existiert.
\end{problembox}
\begin{merke}
HALT$_{\text{TM}}$ ist NP-schwer, aber \emph{nicht} NP-vollständig -- es liegt
nicht in NP (nicht einmal entscheidbar). Wichtig ist die Pointe der Reduktion:
$M_\varphi$ läuft womöglich ewig, aber die \emph{Konstruktion} von
$\langle M_\varphi, \varepsilon \rangle$ aus $\varphi$ ist polynomiell -- nur
darauf kommt es an. (In den Altklausuren kam das Thema nie dran; Serienstoff
ist es trotzdem.)
\end{merke}
% ==================================================================
\section{Wahr oder falsch? Die Logik-Merkkiste}
% ==================================================================
Aussagen aus den Präsenzserien 10/11 -- ideale Selbstkontrolle:
\begin{center}
\small
\begin{tabular}{p{7.9cm}cp{4.4cm}}
\toprule
Aussage & W/F & Begründung \\
\midrule
Jedes Problem, das eine NDTM in Polyzeit löst, löst auch eine DTM in Polyzeit. &
F$^*$ & Das wäre $\Pclass = \NP$; gilt nur, falls $\Pclass = \NP$. \\
\addlinespace
$A$ NP-schwer $\Rightarrow A \in \Pclass$ ausgeschlossen? / $A$ NP-schwer
$\Rightarrow A \in \NP$? & F & NP-schwer sagt nichts über Zugehörigkeit zu NP
(Bsp. Halteproblem). $A \in \Pclass$ würde $\Pclass = \NP$ implizieren. \\
\addlinespace
$L \in \NP$ und $L \redp \problem{3-SAT}$ $\Rightarrow$ $L$ NP-vollständig. &
F & Gegenbeispiel $L = \emptyset$ bzw. jedes einfache $L$: reduzierbar
\emph{auf} 3-SAT heißt nicht schwer. \\
\addlinespace
$L \redp \problem{3-SAT}$ und $\problem{3-SAT} \redp L$ $\Rightarrow$ $L$
NP-vollständig. & W & $\problem{3-SAT} \redp L$ gibt NP-Schwere;
$L \redp \problem{3-SAT}$ gibt $L \in \NP$. \\
\addlinespace
$L$ NP-vollständig: $L \in \Pclass \iff \Pclass = \NP$. & W & Satz 6.16. \\
\addlinespace
Es ist möglich, dass $\problem{3-SAT} \in \Pclass$ und
$\problem{Clique} \notin \Pclass$. & F & $\problem{Clique} \redp
\problem{3-SAT}$ (3-SAT ist NP-vollständig); aus $\problem{3-SAT} \in \Pclass$
folgt $\problem{Clique} \in \Pclass$. \\
\addlinespace
Wenn die ETH falsch ist, gilt $\Pclass = \NP$. & F & ETH falsch heißt nur:
3-SAT in $2^{o(n)}$ -- das kann immer noch superpolynomiell sein
(z.\,B. $2^{\sqrt{n}}$). Umgekehrt gilt aber: $\Pclass = \NP \Rightarrow$ ETH
falsch. \\
\bottomrule
\end{tabular}
\end{center}
{\footnotesize $^*$ genauer: nicht beweisbar wahr; äquivalent zu $\Pclass = \NP$.}
\begin{merke}
\textbf{Weiter geht's mit Uebung.pdf:} Dort stehen die Schritt-für-Schritt-Rezepte
für alle sechs Klausur-Aufgabentypen, die vier Vorlesungsbeweise in voller
Länge, alle Reduktionen der Serien mit Musterbeweis -- und Selbsttest-Aufgaben
aus echten Klausuren.
\end{merke}
\end{document}