mirror of
https://github.com/janishutz/eth-summaries.git
synced 2025-11-27 03:24:22 +00:00
75 lines
3.5 KiB
TeX
75 lines
3.5 KiB
TeX
\newpage
|
|
\subsection{NP-Vollständigkeit}
|
|
Es sind mittlerweile über 3000 Probleme bekannt, für welche wir keinen Algorithmus kennen, der in polynomieller Zeit läuft.
|
|
Es ist aber bis jetzt niemandem gelungen, eine höhere untere Schranke für alle zu beweisen, als $\tcl{n}$.
|
|
|
|
Wie bereits bei der Berechenbarkeit benutzen wir eine Reduktion.
|
|
Falls jedes Problem aus $NP$ effizient auf ein Problem $L \in NP$ reduzierbar ist, so ist $L$ schwer.
|
|
|
|
\begin{definition}[]{Polynomielle Reduktion}
|
|
$L_1 \subseteq \word_1$ ist \bi{polynomiell reduzierbar auf} $L_2 \subseteq \word_2$, geschrieben $L_1 \leq_p L_2$,
|
|
falls eine polynomielle TM $A$ existiert, die für jedes Wort $x \in \word_1$ ein Word $A(x) \in \word_2$ berechnet, so dass
|
|
\rmvspace
|
|
\begin{align*}
|
|
x \in L_1 \Longleftrightarrow A(x) \in L_2
|
|
\end{align*}
|
|
|
|
\drmvspace
|
|
$A$ wird eine polynomielle Reduktion von $L_1$ auf $L_2$ genannt.
|
|
\end{definition}
|
|
Wieder bedeutet $L_1 \leq_p L_2$, dass $L_2$ mindestens so schwer ist wie $L_1$
|
|
|
|
\begin{definition}[]{$NP$-Schwer}
|
|
Eine Sprache $L$ ist \bi{$NP$-Schwer}, falls für alle $L' \in NP$ gilt $L' \leq_p L$.
|
|
|
|
Eine Sprache $L$ ist \bi{$NP$-Vollständig}, falls
|
|
\drmvspace
|
|
\begin{multicols}{2}
|
|
\begin{enumerate}[label=\textit{(\roman*)}]
|
|
\item $L \in NP$
|
|
\item $L$ $NP$-Schwer ist.
|
|
\end{enumerate}
|
|
\end{multicols}
|
|
\end{definition}
|
|
|
|
|
|
\inlinelemma Falls $L \in P$ und $L$ ist $NP$-schwer, dann gilt $P = NP$
|
|
|
|
\fancytheorem{Cook} $SAT$ ist $NP$-Vollständig
|
|
|
|
Der Beweis hierfür liefert eine grobe Struktur für weitere Beweise dieser Art und ist auf Seiten 199 - 205 im Buch (= Seiten 211 - 217 im PDF) zu finden.
|
|
Jedoch sind diese Beweise sehr gross und deshalb nicht prüfungsrelevant.
|
|
|
|
|
|
\inlinelemma Falls $L_1 \leq_p L_2$ und $L_1$ ist $NP$-Schwer, so ist auch $L_2$ $NP$-Schwer
|
|
|
|
Betrachten wir folgende Sprachen:
|
|
\begin{align*}
|
|
SAT & = \{ \Phi \divides \Phi \text{ ist eine erfüllbare Formel in CNF} \} \\
|
|
CLIQUE & = \{ (G, k) \divides G \text{ ist ein ungerichteter Graph, der eine $k$-clique enthält} \} \\
|
|
VC & = \{ (G, k) \divides G \text{ ist ein ungerichteter Graph mit einer Kontenüberdeckung der Mächtigkeit höchstens } k \}
|
|
\end{align*}
|
|
Wir erinnern uns daran, dass eine Kontenüberdeckung eines Graphen $G = (V, E)$ jede Menge von Konten $U \subseteq V$ ist,
|
|
so dass jede Kante aus $E$ mindestens einen Endpunkt in $U$ hat.
|
|
|
|
\inlinelemma $SAT \leq_p CLIQUE$
|
|
|
|
\inlinelemma $CLIQUE \leq_p VC$
|
|
|
|
\inlinelemma $SAT \leq_p 3SAT$, wobei wir beim $3SAT$-Problem bestimmen wollen, ob eine Formel in $3CNF$ (CNF, aber alle Klauseln enthalten höchstens $3$ Variabeln) erfüllbar ist.
|
|
|
|
|
|
\begin{definition}[]{$NPO$}
|
|
$NPO$ ist die Klasse der Optimierungsprobleme, mit $U = (\Sigma_I, \Sigma_O, L, \cM, \text{cost}, \text{goal}) \in NPO$, falls folgende Bedingungen erfüllt sind:
|
|
\begin{enumerate}[label=\textit{(\roman*)}]
|
|
\item $L \in P$
|
|
\item Es existiert ein Polynom $p_U$, so dass
|
|
\begin{enumerate}[label=(\alph*)]
|
|
\item Für jedes $x \in L$ und jedes $y \in \cM(x)$
|
|
\item es existiert ein polynomieller Algorithmus $A$, der für jedes $y \in \word_O$ und jedes $x \in L$ mit $|y| \leq p_U(|x|)$ entscheidet,
|
|
ob $y \in \cM(x)$ oder nicht
|
|
\end{enumerate}
|
|
\item Die Funktion $\text{cost}$ kann man in polynomieller Zeit berechnen.
|
|
\end{enumerate}
|
|
\end{definition}
|