From 848f3628712c4d69399a7bcb40ad5f2fb726be00 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 24 Oct 2025 17:20:48 +0200 Subject: [PATCH] [TI] Finish turing machines section --- .../01_multi-band-church-thesis.tex | 61 ++++++++++++++++++- .../02_non-deterministic.tex | 43 +++++++++++++ 2 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 semester3/ti/parts/03_turing_machines/02_non-deterministic.tex diff --git a/semester3/ti/parts/03_turing_machines/01_multi-band-church-thesis.tex b/semester3/ti/parts/03_turing_machines/01_multi-band-church-thesis.tex index 9e19a0a..710c183 100644 --- a/semester3/ti/parts/03_turing_machines/01_multi-band-church-thesis.tex +++ b/semester3/ti/parts/03_turing_machines/01_multi-band-church-thesis.tex @@ -25,9 +25,64 @@ Eine Konfiguration einer $k$-Band-TM $M$ ist $(q, w, i, u_1, i_1, u_2, i_2, \ldo 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 $\delta: Q \times (\Sigma \cup \{ \cent, \$ \}) \times \Gamma^k \rightarrow Q \times \{ L, R, N \} \times (\Gamma \times \{ L, R, N \})^k$ - 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$, +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. -% Page 120 + +\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. diff --git a/semester3/ti/parts/03_turing_machines/02_non-deterministic.tex b/semester3/ti/parts/03_turing_machines/02_non-deterministic.tex new file mode 100644 index 0000000..18c3633 --- /dev/null +++ b/semester3/ti/parts/03_turing_machines/02_non-deterministic.tex @@ -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.