mirror of
https://github.com/janishutz/eth-summaries.git
synced 2026-01-12 14:18:23 +00:00
[TI] Cleaner structure
This commit is contained in:
50
semester3/ti/main/parts/04_computability/00_intro.tex
Normal file
50
semester3/ti/main/parts/04_computability/00_intro.tex
Normal file
@@ -0,0 +1,50 @@
|
||||
\subsection{Diagonalisierung}
|
||||
Wir definieren $\text{KodTM}$ als die \textit{Menge der binären Kodierungen aller Turingmaschinen}.
|
||||
Wir haben $\text{KodTM} \subseteq \wordbool$ und die obere Schranke der Kardinalität ist $|\wordbool|$, da es unendlich viele Turingmaschinen gibt.
|
||||
|
||||
Im Folgenden wird wieder Cantor's Diagonalisierungsmethode verwendet
|
||||
\begin{recall}[]{Cantor's Diagonalization Argument}
|
||||
% TODO: Finish
|
||||
\TODO Finish
|
||||
\end{recall}
|
||||
|
||||
\inlinedef $A$ und $B$ sind Mengen. Dann ist $|A| \leq |B|$ falls eine \textit{injektive} Funktion $f$ von $A$ nach $B$ existiert;
|
||||
$|A| = |B|$ falls $|A| \leq |B|$ und $|B| \leq |A|$ (es existiert eine Bijektion);
|
||||
$|A| < |B|$ falls $|A| \leq |B|$ und keine injektive Abbildung von $B$ nach $A$ existiert.
|
||||
|
||||
Um zu zeigen, dass es nicht rekursiv aufzählbare (also von Turingmaschinen nicht erkennbare) Sprachen gibt.
|
||||
Also müssen wir laut Definition \ref{definition:5-1} nur zeigen, dass keine Injektion von $\wordbool$ nach $\mathcal{L}_{RE}$ existiert.
|
||||
|
||||
\fancydef{Abzählbarkeit} $A$ heisst abzählbar, falls $A$ endlich ist oder $|A| = |\N|$
|
||||
|
||||
\inlinelemma Sei $\Sigma$ ein beliebiges Alphabet. Dann ist $\word$ abzählbar
|
||||
|
||||
\inlinetheorem Die Menge $\text{KodTM}$ der Turingmaschinenkodierungen ist abzählbar
|
||||
|
||||
\inlinelemma $(\N - \{ 0 \}) \times (\N - \{ 0 \})$ ist abzählbar. Die Idee ist dieselbe wie für $|Q^+| = |\N|$, nämlich, dass wir jedem Element einen Index zuordnen können.
|
||||
|
||||
\inlinetheorem $\Q^+$ ist abzählbar. Die Idee für den Beweis ist eine Bijektion nach obiger Menge zu finden.
|
||||
|
||||
\inlinetheorem $[0, 1] \subseteq \R$ ist nicht abzählbar. Dies kann mit Cantor's Diagonalization Argument bewiesen werden.
|
||||
|
||||
\inlinetheorem $\mathcal{P}(\wordbool)$ ist nicht abzählbar
|
||||
|
||||
\inlinecorollary $|\text{KodTM}| < |\mathcal{P}(\wordbool)|$ und es existieren also unendlich viele nicht rekursiv aufzählbare Sprachen.
|
||||
|
||||
Um für eine spezifische Sprache zu beweisen, dass sie rekursiv aufzählbar ist, können wir einfach eine Turingmaschine konstruieren.
|
||||
Für eine Beweis dafür, dass eine Sprache nicht rekursiv aufzählbar ist können wir folgende Methode verwenden. Sei dazu mit $d_{ij} = 1 \Longleftrightarrow M_i \text{ akzeptiert } w_j$
|
||||
\begin{align*}
|
||||
L_{\text{diag}} & = \{ w \in \wordbool \divides w = w_i \text{ für ein } i \in \N - \{ 0 \} \text{ und } M_i \text{ akzeptiert } w_i \text{ nicht} \} \\
|
||||
& = \{ w \in \wordbool \divides w = w_i \text{ für ein } i \in \N - \{ 0 \} \text{ und } d_{ii} = 0 \}
|
||||
\end{align*}
|
||||
|
||||
\inlinetheorem $L_{\text{diag}} \notin \mathcal{L}_{RE}$
|
||||
\inlineproof Zum Widerspruch nehmen wir an, dass $L_\text{diag} \in \mathcal{L}_{RE}$.
|
||||
Dann gilt, dass $L_\text{diag} = L(M)$ für eine Turingmaschine $M$.
|
||||
$M$ ist eine Turingmaschine in der kanonischen Ordnung der Turingmaschinen, also existiert ein $i \in \N - \{ 0 \}$, so dass $M = M_i$.
|
||||
|
||||
Dies führt zu einem Widerspruch, denn $L_\text{diag}$ kann nicht gleich $L(M_i)$ sein, da
|
||||
\begin{align*}
|
||||
w_i \in L_\text{diag} \Longleftrightarrow d_{ii} = 0 \Longleftrightarrow w_i \notin L(M_i)
|
||||
\end{align*}
|
||||
also ist $w_i$ genau dann in $L_\text{diag}$ wenn $w_i$ \textit{nicht} in $L(M_i)$ ist. (= in genau einer der Sprachen $L_\text{diag}$ oder $L(M_i)$)
|
||||
75
semester3/ti/main/parts/04_computability/01_reduction.tex
Normal file
75
semester3/ti/main/parts/04_computability/01_reduction.tex
Normal file
@@ -0,0 +1,75 @@
|
||||
\newpage
|
||||
\subsection{Die Methode der Reduktion}
|
||||
% TODO: Add guide for reducing languages
|
||||
\fancydef{Rekursiv reduzierbare Sprache} Eine Sprache $L_1 \subseteq \word_1$ ist auf $L_2 \subseteq \word_2$ rekursiv reduzierbar, geschrieben $L_1 \leq_R L_2$,
|
||||
falls $L_2 \in \cL_R \Rightarrow L_1 \in \cL_R$.
|
||||
|
||||
\shade{teal}{Intuition:} $L_2$ ist bezüglich der algorithmischen Lösbarkeit mindestens so schwer wie $L_1$. $\cL_R$ ist die Menge aller rekursiv reduzierbaren Sprachen.
|
||||
Ist also $L_2$ lösbar, so muss auch $L_1$ lösbar sein.
|
||||
|
||||
\fancydef{EE-reduzierbare Sprache} $L_1$ ist auf $L_2$ \bi{EE-reduzierbar}, geschrieben $L_1 \leq_{EE} L_2$, wenn eine TM $M$ existiert,
|
||||
die eine Abbildung $f_M : \word_1 \rightarrow \word_2$ mit der Eigenschaft $x \in L_1 \Leftrightarrow f_M(x) \in L_2$ für alle $x \in \word_1$ berechnet.
|
||||
Anders ausgedrückt: die TM $M$ reduziert die Sprache $L_1$ auf die Sprache $L_2$
|
||||
|
||||
\inlinelemma Falls $L_1 \leq_{EE} L_2$, dann auch $L_1 \leq_R L_2$. \inlineproof Im Buch auf Seite 135 (= 148 im PDF)
|
||||
|
||||
Wir müssen also nur zeigen, dass $L_1 \leq_{EE} L_2$ um zu zeigen, dass $L_1 \leq_R L_2$
|
||||
|
||||
\inlinelemma Für jede Sprache $L \subseteq \word$ gilt: $L \leq_R L^C$ und $L^C \leq_R L$
|
||||
|
||||
\inlinecorollary $(L_\text{diag})^C \notin \cL_R$
|
||||
\inlineproof Folgt davon, dass $L_\text{diag} \notin \cL_{RE}$ (was heisst, dass $L_\text{diag} \notin \cL_R$)
|
||||
und nach Lemma 5.4 $L_\text{diag} \leq_R (L_\text{diag})^C$ und das umgekehrte gelten muss.
|
||||
|
||||
\inlinelemma $(\ldiag)^C \in \cL_{RE}$
|
||||
\inlineproof Auf Seite 137 (= 150 im PDF) wird eine Turingmaschine aufgezeigt, die $(L_\text{diag})^C$ akzeptiert.
|
||||
|
||||
\inlinecorollary $(\ldiag)^C \in \cL_{RE} - \cL_R$ und daher $\cL_R \subsetneq \cL_{RE}$
|
||||
|
||||
Folgende Sprachen sind nicht rekursiv, liegen aber in $\cL_{RE}$
|
||||
|
||||
\fancydef{Universelle Sprache} $L_U = \{ \text{Kod}(M)\# w \divides w \in \wordbool \text{ und TM } M \text{ akzeptiert } w \}$
|
||||
|
||||
\fancytheorem{Universelle TM} Eine TM $U$, so dass $L(U) = L_U$, also gilt $L_U \in \cL_{RE}$\\
|
||||
%
|
||||
\inlineproof Auf Seite 138 (= 151 im PDF)
|
||||
|
||||
Was dies bedeutet, es existiert eine TM ohne Haltegarantie, die eine beliebige Turingmaschine auf einer gegebenen Eingabe simulieren kann.
|
||||
Untenstehendes Resultat bedeutet, dass man das Resultat der Berechnung einer TM $M$ auf einer Eingabe $x$ anders berechnen kann, als die Berechnung von $M$ auf $x$ zu simulieren.
|
||||
|
||||
\inlinetheorem $L_U \notin \cL_R$
|
||||
|
||||
Wenn jetzt aber $M$ unendlich lange auf $x$ arbeitet, so wissen wir nicht, ob wir die Simulation beenden können. Dies führt zum Halteproblem
|
||||
|
||||
\begin{definition}[]{Halteproblem}
|
||||
Das Halteproblem ist das Entscheidungsproblem $(\{ 0, 1, \# \}, L_H)$ mit
|
||||
\begin{align*}
|
||||
L_H = \{ \text{Kod}(M)\# x \divides x \in \{ 0, 1 \}^* \text{ und } M \text{ hält auf } x \}
|
||||
\end{align*}
|
||||
\end{definition}
|
||||
|
||||
Dies scheint vorerst nicht ein allzu grosses Problem zu sein, jedoch besagt das nächste Resultat, dass es keinen Algorithmus gibt,
|
||||
der testen kann, ob ein gegebenes Programm immer terminiert.
|
||||
|
||||
\inlinetheorem $L_H \notin \cL_R$
|
||||
\inlineproof Auf Seiten 140 - 142 (153 - 155 im PDF)
|
||||
|
||||
Betrachten wir die Sprache $\lempty = \{ \text{Kod}(M) \divides L(M) = \emptyset \}$, die die Kodierungen aller Turingmaschinen enthält,
|
||||
die die leere Menge (kein Wort) akzeptieren. Es gilt
|
||||
\rmvspace
|
||||
\begin{align*}
|
||||
(\lempty)^C = \{ x \in \wordbool \divides x \notin \text{Kod}(\overline{M}) \forall \text{ TM } \overline{M} \text{ oder } x = \text{Kod}(M) \text{ und } L(M) \neq \emptyset \}
|
||||
\end{align*}
|
||||
|
||||
\drmvspace
|
||||
\inlinelemma $(\lempty)^C \in \cL_{RE}$
|
||||
\inlineproof Auf Seiten 142 - 143 (155 - 156 im PDF)
|
||||
|
||||
\inlinelemma $(\lempty)^C \notin \cL_R$
|
||||
|
||||
Wir haben als wiederum die Nichtexistenz eines Algorithmus zur Überprüfung, ob ein gegebenes Programm die leere Menge akzeptiert.
|
||||
Ein Beweis dazu findet sich auf Seiten 143 und 144 im Buch (156 - 157 im PDF)
|
||||
|
||||
\inlinecorollary $\lempty \notin \cL_R$
|
||||
|
||||
\inlinecorollary $L_{EQ} = \{ \text{Kod}(M)\# \text{Kod}(\overline{M}) \divides L(M) = L(\overline{M}) \}$ ist nicht entscheidbar (also $L_{EQ} \notin \cL_R$)
|
||||
18
semester3/ti/main/parts/04_computability/02_rice.tex
Normal file
18
semester3/ti/main/parts/04_computability/02_rice.tex
Normal file
@@ -0,0 +1,18 @@
|
||||
\subsection{Der Satz von Rice}
|
||||
\inlinedef $L$ heisst \bi{semantisch nichttriviales Entscheidungsproblem über Turingmaschinen}, falls folgende Bedingungen gelten:
|
||||
\begin{enumerate}[label=(\roman*)]
|
||||
\item Es gibt eine TM $M_1$, so dass $\text{Kod}(M_1) \in L$ (also $L \neq \emptyset$)
|
||||
\item Es gibt eine TM $M_2$, so dass $\text{Kod}(M_2) \notin L$ (also sind nicht alle Kodierungen in $L$)
|
||||
\item für zwei TM $A$ und $B$: $L(A) = L(B) \Rightarrow \text{Kod}(A) \in L \Leftrightarrow \text{Kod}(B) \in L$
|
||||
\end{enumerate}
|
||||
|
||||
Sei $L_{H, \lambda} = \{ \text{Kod}(M) \divides M \text{ hält auf } \lambda \}$ ein spezifisches Halteproblem.
|
||||
|
||||
\inlinelemma $L_{H, \lambda} \notin \cL_R$
|
||||
\inlineproof Auf Seite 146 im Buch (= 159 im PDF)
|
||||
|
||||
\begin{theorem}[]{Satz von Rice}
|
||||
Jedes semantisch nichttriviale Entscheidungsproblem über Turingmaschinen ist unentscheidbar.
|
||||
\end{theorem}
|
||||
\inlineproof Ausführlich im Buch auf Seiten 146 - 149 beschrieben (= 159 - 162 im PDF)
|
||||
\stepcounter{subsection}
|
||||
@@ -0,0 +1,6 @@
|
||||
\subsection{Die Methode der Kolmogorov-Komplexität}
|
||||
\inlinetheorem Das Probelem, für jedes $x \in \wordbool$ die Kolmogorov-Komplexität $K(x)$ von $x$ zu berechnen ist algorithmisch unlösbar.
|
||||
|
||||
\inlinelemma Falls $L_H \in \cL_R$, dann existiert ein Algorithmus zur Berechnung der Kolmogorov-Komplexität $K(x)$ für jedes $x\in \wordbool$
|
||||
|
||||
% TODO: See if we need to do these kinds of proofs and if so, elaborate
|
||||
Reference in New Issue
Block a user