diff --git a/semester3/ti/parts/05_complexity/00_intro.tex b/semester3/ti/parts/05_complexity/00_intro.tex index e69de29..fb87316 100644 --- a/semester3/ti/parts/05_complexity/00_intro.tex +++ b/semester3/ti/parts/05_complexity/00_intro.tex @@ -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 |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 $\tct{f(n)}$ eine untere Schranke für die Zeitkomplexität von $K$ ist. +\end{definition} diff --git a/semester3/ti/parts/05_complexity/01_class_p.tex b/semester3/ti/parts/05_complexity/01_class_p.tex index e69de29..ac1a6a6 100644 --- a/semester3/ti/parts/05_complexity/01_class_p.tex +++ b/semester3/ti/parts/05_complexity/01_class_p.tex @@ -0,0 +1,86 @@ +\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 $t : \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 $s : \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. + +% TODO: Possibly include construction guide here + +\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} diff --git a/semester3/ti/parts/05_complexity/02_non-deterministic-complexity.tex b/semester3/ti/parts/05_complexity/02_non-deterministic-complexity.tex index e69de29..2c52ad1 100644 --- a/semester3/ti/parts/05_complexity/02_non-deterministic-complexity.tex +++ b/semester3/ti/parts/05_complexity/02_non-deterministic-complexity.tex @@ -0,0 +1,2 @@ +\newpage +\subsection{Nichtdeterministische Komplexitätsmasse} diff --git a/semester3/ti/ti-summary.pdf b/semester3/ti/ti-summary.pdf index f1ec0a1..94f0b0f 100644 Binary files a/semester3/ti/ti-summary.pdf and b/semester3/ti/ti-summary.pdf differ diff --git a/semester3/ti/ti-summary.tex b/semester3/ti/ti-summary.tex index 726e763..43afa1b 100644 --- a/semester3/ti/ti-summary.tex +++ b/semester3/ti/ti-summary.tex @@ -10,6 +10,8 @@ \newcommand{\qrej}{q_{\text{reject}}} \newcommand{\ldiag}{L_{\text{diag}}} \newcommand{\lempty}{L_{\text{empty}}} +\renewcommand{\tc}{\text{Time}} +\newcommand{\spc}{\text{Space}} \begin{document} \startDocument @@ -103,6 +105,10 @@ \section{Komplexitätstheorie} \stepcounter{subsection} \input{parts/05_complexity/00_intro.tex} +\input{parts/05_complexity/01_class_p.tex} +\input{parts/05_complexity/02_non-deterministic-complexity.tex} +\input{parts/05_complexity/03_class-np.tex} +\input{parts/05_complexity/04_np-completeness.tex} \end{document}