[TI] Cleaner structure

This commit is contained in:
2025-12-29 11:58:11 +01:00
parent e909c263e7
commit 48de9c445e
37 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
\subsection{Komplexitätsmasse}
\begin{definition}[]{Zeitkomplexität}
Sei $M$ eine Mehrband-TM oder TM, die immer hält, $x \in \word$ und $D = C_1, C_2, \ldots, C_k$ die Berechnung von $M$ auf $x$, deren Zeitkomplexität definiert ist durch:
\rmvspace
\begin{align*}
\tc_M(x) = k - 1
\end{align*}
\rmvspace
also durch die Anzahl der Berechnungsschritte in $D$
Die Zeitkomplexität der TM $M$ ist dabei definiert durch:
\drmvspace
\begin{align*}
\tc_M(n) = \max\{ \tc_M(x) \divides x \in \Sigma^n \}
\end{align*}
\end{definition}
Wir können weiterhin die big-O-notation verwenden um den Worstcase anzugeben.
\begin{definition}[]{Speicherplatzkomplexität}
Sei $C = (q, x, i, \alpha_1, i_1, \alpha_2, i_2, \ldots, \alpha_k, i_k)$ mit $0 \leq i \leq |x| + 1$ und $0 \leq i_j \leq |\alpha_j|$
für $j = 1, \ldots, k$ eine Konfiguration von $M$, welche eine $k$-Band TM ist.
\bi{Die Speicherplatzkomplexität von} $C$ ist
\rmvspace
\begin{align*}
\spc_M(C) = \max\{ |\alpha_i| \divides i = 1, \ldots, k \}
\end{align*}
\rmvspace
Für die Berechnung $C_1, C_2, \ldots, C_l$ von $M$ auf $x$ haben wir:
\rmvspace
\begin{align*}
\spc_M(x) = \max\{ \spc_M(C_i) \divides i = 1, \ldots, l \}
\end{align*}
\rmvspace
Und die \bi{Speicherplatzkomplexität von} $M$ ist
\rmvspace
\begin{align*}
\spc_M(n) = \max\{ \spc_M(x) \divides x \in \Sigma^n \}
\end{align*}
\end{definition}
Es ist auch möglich $\spc_M(n)$ als eine Summe zu definieren, aber laut Lemma \ref{lemma:4-2} wissen wir, dass man eine $k$-Band-TM mit einer $1$-Band-TM simulieren kann.
\inlinelemma Sei $k \in \N$. Für jede $k$-Band-TM $A$, die immer hält existiert eine äquivalente $1$-Band-TM $B$, so dass $\spc_B(n) \leq \spc_A(n)$
\inlinelemma Für jede $k$-Band-TM $A$, existiert eine äquivalente $k$-Band-TM $B$, so dass $L(A) = L(B)$ und $\spc_B(n) \leq \frac{\spc_A(n)}{2} + 2$
\inlinedef Wir notieren mit der big-O-notation folgendermassen: Falls $r \in \tco{f(n)}$, so wächst $r$ asymptotisch nicht schneller als $f$.
Äquivalent für $s \in \tcl{g(n)}$ und $l \in \tct{h(n)}$ sagen wir asymptotisch mindestens so (gleich) schnell.
Falls $\limni \frac{f(n)}{g(n)} = 0$, dann wächst $g$ asymptotisch schneller als $f$ und $f(n) = o(g(n))$
% TODO: Check if above really is a typo (pretty sure it is)
\inlinetheorem Es existiert ein Entscheidungsproblem $(\alphabetbool, L)$, so dass für jede MTM $A$, die $(\alphabetbool, L)$ entscheidet,
eine MTM $B$ existiert, die es auch entscheidet und für die gilt: $\tc_B(n) \leq \log_2(\tc_A(n))$ für alle $n \in \N$
\begin{definition}[]{Schranken, Optimal}
$\tco{g(n)}$ ($\tcl{f(n)}$) ist eine \bi{obere (untere) Schranke für die Zeitkomplexität von} $L$,
falls eine MTM $A$ ($B$) existiert, die $L$ entscheidet und $\tc_A(n) \in \tco{g(n)}$ ($\tc_B(n) \in \tcl{f(n)}$)
Eine MTM $C$ heisst \bi{optimal für} $L$, falls $\tc_C(n) \in \tco{f(n)}$ gilt und $\tcl{f(n)}$ eine untere Schranke für die Zeitkomplexität von $L$ ist.
\end{definition}

View File

@@ -0,0 +1,84 @@
\newpage
\subsection{Komplexitätsklassen und die Klasse P}
\begin{definition}[]{Komplexitätsklasen}
Für alle Funktionen $f, g : \N \rightarrow \R^+$ definieren wir:
\begin{align*}
\text{TIME}(f) & = \{ L(B) \divides B \text{ ist eine MTM mit } \tc_B(n) \in \tco{f(n)} \} \\
\text{SPACE}(g) & = \{ L(A) \divides A \text{ ist eine MTM mit } \spc_A(n) \in \tco{g(n)} \} \\
\text{DLOG} & = \text{SPACE}(\log_2(n)) \\
\text{P} & = \bigcup_{c \in \N} \text{TIME}(n^c) \\
\text{PSPACE} & = \bigcup_{c \in \N} \text{SPACE}(n^c) \\
\text{EXPTIME} & = \bigcup_{d \in \N} \text{TIME}(2^{n^d})
\end{align*}
\end{definition}
\inlinelemma Für alle $t : \N \rightarrow \R^+$ gilt $\text{TIME}(t(n)) \subseteq \text{SPACE}(t(n))$
\inlinecorollary $\text{P} \subseteq \text{PSPACE}$
\begin{definition}[]{Platz- und Zeitkonstruierbarkeit}
Eine Funktion $s : \N \rightarrow \N$ heisst \bi{platzkonstruierbar}, falls eine $1$-Band-TM $M$ existiert, so dass
\begin{enumerate}
\item $\spc_M(n) \leq s(n) \smallhspace \forall n \in \N$
\item für jede Eingabe $0^n$ für $n \in \N$, generiert $M$ das Wort $0^{s(n)}$ auf ihrem Arbeitsband und hält in $\qacc$
\end{enumerate}
\vspace{0.25cm}
Eine Funktion $t : \N \rightarrow \N$ heisst \bi{zeitkonstruierbar}, falls eine MTM $A$ existiert, so dass
\begin{enumerate}
\item $\tc_A(n) \in \tco{t(n)}$
\item für jede Eingabe $0^n$ für $n \in \N$, generiert $A$ das Wort $0^{t(n)}$ auf dem ersten Arbeitsband und hält in $\qacc$
\end{enumerate}
\end{definition}
Wichtig ist, dass wir hier nicht \textit{zwingend} eine $1$-Band-TM konstruieren müssen, eine MTM geht auch.
\inlinelemma Sei $s$ platzkonstruierbar und $M$ eine MTM mit $\spc_M(x) \leq s(|x|) \ \forall x \in L(M)$.
Dann existiert MTM $A$ mit $L(A) = L(M)$ und $\spc_A(n) \leq s(n)$, es gilt also $\spc_A(y) \leq s(|y|) \ \forall y \in \Sigma_M$
\inlinelemma Sei $t$ zeitkonstruierbar und $M$ eine MTM mit $\tc_M(x) \leq t(|x|) \ \forall x \in L(M)$.
Dann existiert eine MTM $A$ mit $L(A) = L(M)$ und $\tc_A(n) \in \tco{t(n)}$
\inlinetheorem Für jede Funktion $s$ mit $s(n) \geq \log_2(n)$ gilt $\text{SPACE}(s(n)) \subseteq \bigcup_{c\in \N} \text{TIME}(c^{s(n)})$
Obiger Satz trifft auch für $s(n)$-platzbeschränkten TM zu, die nicht halten, aber nur, wenn $s(n)$ platzkonstruierbar ist.
\inlinecorollary $\text{DLOG} \subseteq \text{P}$ und $\text{PSPACE} \subseteq \text{EXPTIME}$
Die Korollare \ref{corollary:6-1} und \ref{corollary:6-2} geben zusammen $\text{DLOG} \subseteq \text{P} \subseteq \text{PSPACE} \subseteq \text{EXPTIME}$
\inlinetheorem Für $s_1, s_2 : \N \rightarrow \N$ mit folgenden Eigenschaften:
\drmvspace
\begin{multicols}{3}
\begin{enumerate}
\item $s_2(n) \geq \log_2(n)$
\item $s_2$ ist platzkonstruierbar
\item $s_1(n) = o(s_2(n))$
\end{enumerate}
\end{multicols}
\drmvspace\rmvspace
Dann gilt: $\text{SPACE}(s_1) \subsetneq \text{SPACE}(s_2)$
\inlinetheorem Für $t_1, t_2 : \N \rightarrow \N$ mit folgenden Eigenschaften:
\drmvspace
\begin{multicols}{2}
\begin{enumerate}
\item $t_2$ ist platzkonstruierbar
\item $t_1(n) \cdot \log_2(t_1(n)) = o(t_2(n))$
\end{enumerate}
\end{multicols}
\drmvspace\rmvspace
Dann gilt: $\text{TIME}(s_1) \subsetneq \text{TIME}(s_2)$
In den Sechzigerjahren entstand folgende ``Definition'' von parktisch lösbaren Problemen:
\begin{center}
\fbox{
\parbox{16cm}{
\textit{Ein Problem ist praktisch lösbar genau dann, wenn ein polynomialer Algorithmus zu seiner Lösung existiert.
Die Klasse P ist die Klasse der praktisch entscheidbaren Probleme}
}
}
\end{center}

View File

@@ -0,0 +1,65 @@
\newpage
\subsection{Nichtdeterministische Komplexitätsmasse}
\begin{definition}[]{Zeit- und Speicherkomplexität}
Sei $M$ eine NMTM oder MTM und $x \in L(M) \subseteq \word$. $\tc_M(x)$ ist die länge einer kürzesten akzeptierenden Berechnung von $M$ auf $x$
und $\tc_M(n) = \max(\{ \tc_M(x) \divides x \in L(M) \text{ und }|x| = n \} \cup \{ 0 \} )$.
\vspace{0.25cm}
$\spc_M(C_i)$ ist die Speicherkomplexität von Konfiguration $C_i$ und $\spc_M(C) = \max\{ \spc_M(C_i) \divides i = 1, 2, \ldots, m \}$.
Zudem ist $\spc_M(x) = \min\{ \spc_M(C) \divides C \text{ ist akzeptierende Berechnung von $M$ auf } x \}$.
Ausserdem ist $\spc_M(n) = \max(\{ \spc_M(x) \divides x \in L(M) \text{ und } |x| = n \} \cup \{ 0 \})$
\end{definition}
\begin{definition}[]{Komplexitätsklassen}
Für alle $f, g : \N \rightarrow \R^+$ definieren wir:
\begin{align*}
\text{NTIME}(f) & = \{ L(M) \divides M \text{ ist eine NMTM mit } \tc_M(n) \in \tco{f(n)} \} \\
\text{NSPACE}(g) & = \{ L(M) \divides M \text{ ist eine NMTM mit } \spc_M(n) \in \tco{g(n)} \} \\
\text{NLOG} & = \text{NSPACE}(\log_2(n)) \\
\text{NP} & = \bigcup_{c \in \N} \text{NTIME}(n^c) \\
\text{NPSPACE} & = \bigcup_{c \in \N} \text{NSPACE}(n^c)
\end{align*}
\end{definition}
\inlinelemma Für alle $t$ und $s$ mit $s(n) \geq \log_2(n)$ gilt: $\text{NTIME}(t) \subseteq \text{NSPACE}(t)$, $\text{NSPACE}(s) \subseteq \bigcup_{c \in \N} \text{NTIME}(c^{s(n)})$
\inlinetheorem Für jedes $t : \N \rightarrow \R^+$ und jedes platzkonstruierbare $s$ mit $s(n) \geq \log_2(n)$ gilt:
\rmvspace
\begin{multicols}{2}
\begin{enumerate}[label=(\roman*)]
\item $\text{TIME}(t) \subseteq \text{NTIME}(t)$
\item $\text{SPACE}(t) \subseteq \text{NSPACE}(t)$
\item $\text{NTIME}(s(n)) \subseteq \text{SPACE}(s(n)) \subseteq \bigcup_{c \in \N} \text{TIME}(c^{s(n)})$
\end{enumerate}
\end{multicols}
\drmvspace
\inlinecorollary $\text{NP} \subseteq \text{PSPACE}$
\inlinetheorem Für jede platzkonstruierbare Funktion $s$ mit $s(n) \geq \log_2(n)$ gilt
\rmvspace
\begin{align*}
\text{NSPACE}(s(n)) \subseteq \bigcup_{c \in \N} \text{TIME}(c^{s(n)})
\end{align*}
\drmvspace
\inlinecorollary $\text{NLOG} \subseteq \text{P}$ und $\text{NPSPACE} \subseteq \text{EXPTIME}$
\fancytheorem{Satz von Savitch} Sei $s$ mit $s(n) \geq \log_2(n)$ eine platzkonstruierbare Funktion. Dann gilt:
\rmvspace
\begin{align*}
\text{NSPACE}(s(n)) \subseteq \text{SPACE}(s(n)^2)
\end{align*}
\drmvspace
\inlinecorollary $\text{PSPACE} = \text{NPSPACE}$
Aus den obigen Resultaten resultiert die Komplexitätsklassenhierarchie der sequentiellen Berechnungen:
\begin{align*}
\text{DLOG} \subseteq \text{NLOG} \subseteq \text{P} \subseteq \text{NP} \subseteq \text{PSPACE} \subseteq \text{EXPTIME}
\end{align*}

View File

@@ -0,0 +1,35 @@
\newpage
\subsection{Die Klasse NP und Beweisverifikation}
Da praktische Lösbarkeit eines Problems mit polynomieller Zeit verbunden wird, ist es wichtig zu wissen, welche Probleme in polynomieller Zeit lösbar sind und welche nicht.
Der Vergleich zwischen den Klassen $P$ und $NP$ ist äquivalent zu der Frage, ob es einfacher ist, gegebene Beweise zu verifizieren, als sie herzustellen.
Betrachten wir folgendes: Sei $L = SAT$, wobei
\rmvspace
\begin{align*}
SAT = \{ x \in \words{logic} \divides x \text{ kodiert eine erfüllbare Formel in CNF} \}.
\end{align*}
\drmvspace
Dann ist die Aussage $\Phi \in SAT$ äquivalent zu der Behauptung ``$\Phi$ ist eine erfüllbare Formel in CNF''
Für nichtdeterministische Berechnungen nennen wir $\alpha_1, \ldots, \alpha_n$ \bi{Zertifikate} für eine Aussage $\Xi$, falls für diese $\Xi(\alpha_1, \ldots, \alpha_n)$ hält.
\begin{definition}[]{Verifizierer}
Sei $L \subseteq \word$ und $p : \N \rightarrow \N$.
Eine MTM $A$ ist ein $p$-Verifizierer und $V(A) = L$, falls $A$ mit folgenden Eigenschaften auf allen Eingaben aus $\word \times \wordbool$ arbeitet:
\begin{enumerate}[label=(\roman*)]
\item $\tc_A(w, x) \leq p(|w|)$ für jede Eingabe $(w, x) \in \word \times \wordbool$
\item Für jedes $w \in L$ existiert ein $x \in \wordbool$, so dass $|x| \leq p(|w|)$ und $(w, x) \in L(A)$. $x$ ist \bi{Zeugen} (oder \bi{Beweis}) der Behauptung $w \in L$
\item Für jedes $y \notin L$ gilt $(y, z) \notin L(A)$ für alle $z \in \wordbool$
\item Falls $p(n) \in \tco{n^k}$ für ein $k \in \N$, so ist $p$ ein \bi{Polynomialzeit-Verifizierer}. Die Klasse ist
\vspace{-0.8pc}
\begin{align*}
VP = \{ V(A) \divides A \text{ ist ein Polynomialzeit-Verifizierer } \}
\end{align*}
\end{enumerate}
\end{definition}
\inlinetheorem $VP = NP$
Der Beweis für obiges Resultat ist auf Seiten 193 - 194 im Buch (= 205 - 206 im PDf) zu finden

View File

@@ -0,0 +1,124 @@
\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)$, $|y| \leq p_U(|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}
\newpage
Ein Optimierungsproblem $U$ ist also in $NPO$, falls
\rmvspace
\begin{enumerate}[noitemsep]
\item man effizient überprüfen kann, ob ein gegebenes Wort ein Problemfall von $U$ ist
\item die Grösse der Lösungen polynomiell in der Grösse des Problemfalls (Eingabe) und in polynomieller Zeit verifizert werden kann,
ob $y$ eine zulässige Lösung für einen gegebenen Problemfall ist
\item man die Kosten der zulässigen Lösung effizient berechnen kann
\end{enumerate}
$\text{MAX-SAT}$ liegt in $NPO$
\begin{definition}[]{PO}
$PO$ ist die Klasse von Optimierungsproblemen $U = (\Sigma_I, \Sigma_O, L, \cM, \text{cost}, \text{goal})$, so dass
\begin{enumerate}[label=(\roman*)]
\item $U \in NPO$
\item $\exists$ polynomieller Algorithmus $A$, so dass $A(x)$ für jedes $x \in L$ die optimale Lösung für $x$ ist.
\end{enumerate}
\end{definition}
\begin{definition}[]{Schwellenwert-Sprache}
Die Schwellenwert-Sprache für $U$ (ein Optimierungsproblem aus $NPO$) ist
\rmvspace
\begin{align*}
\text{Lang}_U = \{ (x, a) \in L \times \wordbool \divides \text{Opt}_U(x) \leq \text{Nummer}(a) \}
\end{align*}
\rmvspace
mit $\text{Opt}_U(x)$ die optimale Lösung, falls $\text{goal} = \text{Minimum}$, und
\rmvspace
\begin{align*}
\text{Lang}_U = \{ (x, a) \in L \times \wordbool \divides \text{Opt}_U(x) \leq \text{Nummer}(a) \}
\end{align*}
\rmvspace
falls $\text{goal} = \text{Maximum}$
Wir sagen, dass $U$ \bi{NP-schwer} ist, falls $\text{Lang}_U$ NP-schwer ist.
\end{definition}
\inlinelemma Falls ein Optimierungsproblem $U \in PO$, dann $\text{Lang}_U \in P$
\inlinetheorem Sei $U \in NPO$. Falls $U$ NP-schwer ist und $P \neq NP$, dann $U \notin PO$
\inlinelemma MAX-SAT ist NP-schwer.
\inlinelemma MAX-CL (Das Problem der maximalen Clique) ist NP-schwer
Um zu zeigen, dass solche Probleme $U$ NP-schwer sind, reicht es zu zeigen, dass $\text{Lang}_U$ NP-schwer ist, was wir mit einer $P$-Reduktion machen können.