mirror of
https://github.com/janishutz/eth-summaries.git
synced 2026-01-13 02:38:25 +00:00
[TI] Cleaner structure
This commit is contained in:
52
semester3/ti/main/parts/03_turing_machines/00_intro.tex
Normal file
52
semester3/ti/main/parts/03_turing_machines/00_intro.tex
Normal file
@@ -0,0 +1,52 @@
|
||||
% Starts on Page 94 (= 108 in PDF)
|
||||
\subsection{Das Modell der Turingmaschine}
|
||||
Eine Turingmaschine (oft auch Turing-Maschine geschrieben) besteht informell aus
|
||||
\begin{enumerate}[label=(\roman*)]
|
||||
\item einer endlichen Kontrolle, die das Programm enthält
|
||||
\item einem Arbeitsband unendlicher Länge (das es Erlaubt, im Vergleich zum EA, Daten zu speichern)
|
||||
\item einem Lese-/Schreibkopf, der sich in beide Richtungen auf dem Band bewegen kann
|
||||
\end{enumerate}
|
||||
Formaler:
|
||||
\begin{definition}[]{Turingmaschine (TM)}
|
||||
Eine \bi{Turingmaschine} ist eine $7$-Tupel $M = (Q, \Sigma, \Gamma, \delta, q_0, \qacc, \qrej)$, wobei:
|
||||
\begin{enumerate}[label=(\roman*)]
|
||||
\item $Q$ ist die \bi{Zustandsmenge}
|
||||
\item $\Sigma$ ist das \bi{Eingabealphabet} mit $\cent, \textvisiblespace \notin \Sigma$
|
||||
\item $\Gamma$ ist das \bi{Arbeitsalphabet} mit $\Sigma \subseteq \Gamma$, $\cent, \textvisiblespace \in \Gamma$ und $\Gamma \cap Q = \emptyset$
|
||||
($\cent$ = Startmarker, $\textvisiblespace$ = Blanksymbol)
|
||||
\item $\delta : (Q - \{ \qacc, \qrej \}) \times \Gamma \longrightarrow Q \times \Gamma \times \{ L, R, N \}$ ist die \bi{Übergangsfunktion von $M$},
|
||||
wobei $\{ L, R, N \}$ die möglichen Bewegunsrichtungen des Lese-/Schreibkopfs sind
|
||||
und hat die Eigenschaft $\delta(q, \cent) \in Q \times \{ \cent \} \times \{ R, N \}$ für alle $q \in Q$
|
||||
\item $q_0$ ist der \bi{Anfangszustand}
|
||||
\item $\qacc$ ist der \bi{akzeptierende Zustand} (genau einer in jedem $M$)
|
||||
\item $\qrej$ ist der \bi{verwerfende Zustand} (genau einer in jedem $M$)
|
||||
\end{enumerate}
|
||||
Eine \bi{Konfiguration} $C$ von $M$ ist ein Element aus $\text{Konf}(M) = \{ \cent \} \cdot \Gamma^* \cdot Q \cdot \Gamma^+ \cup Q \cdot \{ \cent \} \cdot \Gamma^+$
|
||||
(wobei $\cdot$ die Konkatenation ist)
|
||||
|
||||
Eine \bi{Startkonfiguration} für ein Eingabewort $x$ ist $q_0\cent x$
|
||||
|
||||
Ein \bi{Schritt von $M$} ist eine Relation $\bigvdash{M}{}$ auf der Menge der Konfigurationen, also $\bigvdash{M}{} \subseteq \text{Konf}(M) \times \text{Konf}(M)$.
|
||||
|
||||
$\mathcal{L}_{RE} = \{ L(M) \divides M \text{ ist eine Turingmaschine} \}$
|
||||
|
||||
Der Rest der Definition findet sich auf Seiten 96 - 98 (= Seiten 110 - 112 im PDF)
|
||||
\end{definition}
|
||||
Turingmaschinen, die immer halten, repräsentieren Algorithmen, die immer terminieren und die richtige Ausgabe liefern.
|
||||
Rekursive Sprachen und entscheidbare Entscheidungsprobleme sind algorithmisch erkennbar, respektive lösbar.
|
||||
|
||||
Es gibt auch definitionen der TM, die ohne Startmarker $\cent$ auskommen, bei denen ist das Arbeitsband in beide Richtungen unendlich.
|
||||
|
||||
Graphisch stellt man Turingmaschinen folgendermassen dar:
|
||||
Wir haben wieder einen Graphen mit gerichteten Kanten.
|
||||
Für $\delta(q, a) = (p, b, X)$ mit $q, p \in Q$, $a, b \in \Sigma$ und $X \in \{ L, R, N \}$ werden die Kanten mit folgendem Format beschriftet:
|
||||
$q \rightarrow a, X$.
|
||||
|
||||
Mit einem TM die Sprache $\{ 0^n 1^n \divides n \in \N \}$ erkennen kann man nun, indem man jeweils das linkeste und rechteste Symbol durch ein anderes Symbol ersetzt,
|
||||
beispielsweise, wenn das Eingabealphabet $\Sigma = \{ 0, 1 \}$, dann könnte man $\Gamma$ das Symbol $2$ hinzufügen, mit dem man jedes bearbeitete Symbol ersetzt.
|
||||
|
||||
Im Buch wird als Beispiel auf Seite 99ff (= Seite 114ff im PDF) ein komplexeres Wort gewählt,
|
||||
bei welchem ein Zeichen $a \in \alphabetbool$ durch $(a, B) \in \alphabetbool \times \{ A, B \}$ ersetzt wird,
|
||||
da wir zwei Phasen haben und zwischen denen unterscheiden wollen können.
|
||||
|
||||
% 113
|
||||
@@ -0,0 +1,88 @@
|
||||
\newsection
|
||||
\subsection{Mehrband-Turingmaschinen und Church'sche These}
|
||||
Die Turingmaschinen sind das Standardmodell der Berechenbarkeitstheorie, aber benötigen einige Modifikationen, um wirklich geeignet zu sein
|
||||
(da das Von-Neumann Modell physisch unterschiedliche CPU, Eingabemedium und Speicher für Programme und Daten fordert, aber die TM ein gemeinsames Eingabemedium und Speicher hat).
|
||||
|
||||
Eine $k$-Band-Turingmaschine (für $k \in \N_0$) hat folgende Komponenten:
|
||||
\begin{itemize}
|
||||
\item eine endliche Kontrolle (= Programm)
|
||||
\item ein endliches Band mit einem Lesekopf
|
||||
\item $k$ Arbeitsbänder, jedes mit eigenem Lese-/Schreibkopf
|
||||
\end{itemize}
|
||||
Zu Beginn ist die MTM in folgender Situation:
|
||||
\begin{itemize}
|
||||
\item Das Eingabeband enthält $\cent w \$$, wobei $\cent$ und $\$$ die linke / rechte Seite der Eingabe markieren
|
||||
\item Der Lesekopf des Eingabebands zeigt auf $\cent$
|
||||
\item Alle Arbeitsbänder beinhalten $\cent \text{\textvisiblespace\textvisiblespace} \ldots$ und deren Lese-/Schreibköpfe zeigen auf $\cent$
|
||||
\item Die endliche Kontrolle ist im Anfangszustand $q_0$
|
||||
\end{itemize}
|
||||
Alle $k + 1$ Köpfe dürfen sich während der Berechnung in beide Richtungen bewegen (solange das nicht out-of-bounds geht).
|
||||
Zudem darf der Lesekopf nicht schreiben, also beleibt der Inhalt des Eingabebands gleich.
|
||||
|
||||
Gleich wie bei einer TM ist das Arbeitsalphabet der Arbeitsbänder $\Gamma$ und alle Felder der Arbeitsbänder sind von links nach rechts nummeriert, wobei $0$ bei $\cent$ liegt.
|
||||
|
||||
Eine Konfiguration einer $k$-Band-TM $M$ ist $(q, w, i, u_1, i_1, u_2, i_2, \ldots, u_k, i_k) \in Q \times \word \times \N \times (\Gamma^* \times \N)^k$,
|
||||
wobei $q$ der Zustand ist, der Inhalt des Eingabebands ist $\cent w \$$, der Lesekopf zeigt auf das $i$-te Feld,
|
||||
für $j \in \{ 1, 2, \ldots, k \}$ ist der Inhalt des $j$-ten Bandes $\cent u_k \text{\textvisiblespace} \ldots$ und $i_j \leq |u_j|$ ist die Position des Feldes.
|
||||
|
||||
Ein Berechnungsschritt von $M$ kann mit
|
||||
\rmvspace
|
||||
\begin{align*}
|
||||
\delta: Q \times (\Sigma \cup \{ \cent, \$ \}) \times \Gamma^k \rightarrow Q \times \{ L, R, N \} \times (\Gamma \times \{ L, R, N \})^k
|
||||
\end{align*}
|
||||
|
||||
\drmvspace
|
||||
dargestellt werden, wobei die Argumente $(q, a, b_1, \ldots, b_k)$ der aktuelle Zustand $q$, das gelesene Eingabesymbol $a$ und die $k$ Symbole $b_i \in \Gamma$,
|
||||
auf welchen die Köpfe der Arbeitsbänder stehen.
|
||||
|
||||
Die Eingabe $w$ wird von $M$ akzeptiert, falls $M$ den Zustand $\qacc$ erreicht und falls $M$ den Zustand $\qrej$ erreicht oder nicht terminiert, wird die Eingabe verworfen.
|
||||
|
||||
\vspace{0.3cm}
|
||||
\hrule
|
||||
\vspace{0.2cm}
|
||||
|
||||
Wir sagen, dass eine Maschine $A$ äquivalent zu einer Maschine $B$ ist, falls für jede Eingabe $x \in \wordbool$ gilt:
|
||||
$A \text{ $<$property$>$ } x \Longleftrightarrow B \text{ $<$property$>$ } x$ mit
|
||||
$<$property$> \ \in \{ \text{akzeptiert}, \text{ verwrift}, \text{ arbeitet unendlich lange auf} \}$, also ist $L(A) = L(B)$
|
||||
|
||||
\inlinelemma Zu jeder TM $A$ existiert eine zu $A$ äquivalente $1$-Band-TM $B$
|
||||
|
||||
\inlinelemma Zu jeder Mehrband-Turingmaschine $A$ existiert eine zu $A$ äquivalente TM $B$
|
||||
|
||||
Die Beweise dazu finden sich auf Seite 107, beziehungsweise Seite 109 (= 121 \& 123 im PDF).
|
||||
|
||||
In diesem Kurs müssen wir glücklicherweise meist nicht Beweise der Äquivalenz durchführen, wie auch nicht dass die TM die gewünschte Tätigkeit realisiert.
|
||||
|
||||
\inlinedef Zwei Maschinenmodelle (Maschinenklassen) $\mathcal{A}$ und $\mathcal{B}$ sind äquivalent wenn beides zutrifft:
|
||||
\begin{enumerate}[label=(\roman*)]
|
||||
\item für jede Maschine $A \in \mathcal{A}$ eine zu $A$ äquivalente Maschine $B \in \mathcal{B}$ existiert
|
||||
\item für jede Maschine $C \in \mathcal{B}$ eine zu $C$ äquivalente Maschine $D \in \mathcal{A}$ existiert
|
||||
\end{enumerate}
|
||||
|
||||
\inlinetheorem Die Maschinenmodelle von Turingmaschinen und Mehrband-Turingmaschinen sind äquivalent
|
||||
|
||||
\inlineproof Impliziert von Lemmas \ref{lemma:4-1} und \ref{lemma:4-2}
|
||||
|
||||
Um zu beweisen, dass Turing-Maschinen äquivalent zu höheren Programmiersprachen sind argumentiert man über die Existenz eines Interpreters für TM.
|
||||
|
||||
|
||||
% ────────────────────────────────────────────────────────────────────
|
||||
\subsubsection{Church'sche These}
|
||||
\begin{center}
|
||||
\fbox{
|
||||
\parbox{16cm}{
|
||||
\textit{Die Turingmaschinen sind die Formalisierung des Begriffes ``Algorithmus'', das heisst,
|
||||
die Klasse der rekursiven Sprachen (der entscheidbaren Entscheidungsproblem)
|
||||
stimmt mit der Klasse der algorithmisch (automatisch) erkennbaren Sprache überein
|
||||
}
|
||||
}
|
||||
}
|
||||
\end{center}
|
||||
Die These ist nicht beweisbar, da dazu der Begriff des Algorithmus formalisiert werden müsste, was er bekanntlich nicht ist.
|
||||
|
||||
Dies führt zu einer interessanten Situation, in welcher es \textit{theoretisch} möglich wäre, dass jemand ein stärkeres Modell findet, als die TM sind,
|
||||
eines nämlich, welches Entscheidungsprobleme lösen kann, die die TM nicht kann.
|
||||
|
||||
Wir nehmen also (wie in vielen Bereichen der Physik (die Relativitätstheorie ist ein gutes Beispiel) und Mathematik) und postulieren sie als Axiom.
|
||||
|
||||
\shade{Orange}{Fun fact} Die Church'sche These ist das Einzige informatikspezifische Axiom.
|
||||
@@ -0,0 +1,43 @@
|
||||
\newpage
|
||||
\subsection{Nichtdeterministische Turingmaschinen}
|
||||
Die Ideen sind hier sehr ähnlich wie der Übergang zwischen deterministischen und nichtdeterministischen Endlichen Automaten.
|
||||
|
||||
\begin{definition}[]{Nichtdeterministische Turingmaschine (NTM)}
|
||||
\begin{scriptsize}
|
||||
Hier werden nur die wichtigsten Unterschiede aufgezeigt. Formale Definition auf Seiten 113ff. (= Seiten 127ff im PDF) im Buch.
|
||||
\end{scriptsize}
|
||||
|
||||
Die Übergangsfunktion geht wieder in die Potenzmenge, also gilt:
|
||||
\rmvspace
|
||||
\begin{align*}
|
||||
\delta : (Q - \{ \qacc, \qrej \}) \times \Gamma \rightarrow \mathcal{P}(Q \times \Gamma \times \{ L, R, N \})
|
||||
\end{align*}
|
||||
|
||||
\rmvspace
|
||||
und $\delta(p, \cent) \subseteq (\{ (q, \cent, X) \divides q \in Q, X \in \{R, N\} \})$\\
|
||||
|
||||
Die von der NTM $M$ akzeptierte Sprache ist:
|
||||
\rmvspace
|
||||
\begin{align*}
|
||||
L(M) = \{ w \in \word \divides q_0\cent w \bigvdash{M}{*}y\qacc z \text{ für irgendwelche } y, z \in \Gamma^* \}
|
||||
\end{align*}
|
||||
\end{definition}
|
||||
Ein gutes Beispiel für eine NTM findet sich auf Seiten 114ff. im Buch (= Seite 128ff. im PDF)
|
||||
|
||||
|
||||
\begin{definition}[]{Berechnungsbaum}
|
||||
Ein Berechnungsbaum $T_{M, x}$ von $M$ (eine NTM) auf $x$ (Wort aus Eingabealphabet von $M$) ist ein (potentiell un)gerichteter Baum mit einer Wurzel:
|
||||
\begin{enumerate}[label=\textit{(\roman*)}]
|
||||
\item Jeder Knoten von $T_{M, x}$ ist mit einer Konfiguration beschriftet
|
||||
\item Die Wurzel ist der einzige Knoten mit $\deg_{\text{in}}(v) = 0$, ist die Startkonfiguration $q_0\cent x$
|
||||
\item Jeder mit $C$ beschriftete Knoten hat genauso viele Kinder wie $C$ Nachfolgekonfigurationen hat und die Kinder sind mit diesen Nachfolgekonfigurationen markiert.
|
||||
\end{enumerate}
|
||||
\end{definition}
|
||||
Diese Bäume können natürlich auch für nichtdeterministischen MTM verwendet werden.
|
||||
|
||||
Im Vergleich zu den Berechnungsbäumen von NEA sind die Bäume von NTM nicht immer endlich.
|
||||
|
||||
\inlinetheorem Sei $M$ eine NTM. Dann existiert eine TM $A$, so dass $L(M) = L(A)$
|
||||
und falls $M$ keine unendlichen Berechnungen auf Wörtern aus $(L(M))^C$ hat, dann hält $A$ immer.
|
||||
|
||||
\inlineproof Auf Seite 117 im Buch (= 131 im PDF). Die Idee zur Umwandlung von $M$ in die TM $A$ ist, dass $A$ Breitensuche im Berechnungsbaum von $M$ durchführt.
|
||||
Reference in New Issue
Block a user