Turingmaschinen

Turingmaschine ohne Arbeitsband

M=(Q,Σ,Γ,δ,q0,B,F) \large M=\left(Q,~\Sigma,~\Gamma, ~\delta, ~q_{0}, ~B, ~F\right) 

ZuständeQQ

q0q_0 Anfangszustand

FF Endzustände

EingabesymboleΣΓ\Sigma \sub \Gamma

Symbole im Eingabewort (bevor es bearbeitet wurde).

Ansonsten ist das Verhalten undefiniert.

BandsymboleΓ\Gamma

Symbole im Eingabewort + die zum Überschreiben, zB. BB

Übergangsfunktionδ\delta

Wenn deterministisch DTM:

δ:Q×ΓQ×Γ×{L,R,S} \delta: Q \times \Gamma \longmapsto Q \times \Gamma \times\{L, R, S\} (max. 1 Element aus der Zielmenge)

δ(q,X)=(p,Y,D)\delta(q, X)=(p, Y, D)

Wenn nicht deterministisch NTM:

δ(q,X)={(q1,Y1,D1),(q2,Y2,D2),,(qk,Yk,Dk)} \delta(q, X)=\left\{\left(q_{1}, Y_{1}, D_{1}\right),\left(q_{2}, Y_{2}, D_{2}\right), \ldots,\left(q_{k}, Y_{k}, D_{k}\right)\right\} 

Was die Maschine tut:

Am Anfang ist der Kopf an der linkest möglichen Zelle.

Das Band ist links und rechts unendlich und mit Blanks gefüllt.

Basierend auf Zustand, Eingabe Xi\small X_i aus Band

  1. Wechsel Zustand
  1. Schreibe in Zelle
  1. Bewege Kopf

Unterschiede zwischen Turingmaschinen

Alle Varianten von Turingmaschinen sind gleich mächtig.

Es gibt zu jeder NTM eine DTM.

DTM können dazu dienen Funktionen zu berechnen wenn man das Band als Input und als Output sieht.

NTM können dazu dienen Wörter zu erzeugen indem man mit einem leeren Band anfängt.

Akzeptanz von Sprachen

Konfiguration

qX1X2Xi1XiXi+1Xnq X_{1} X_{2} \ldots X_{i-1} X_{i} X_{i+1} \ldots X_{n}

Alternative Darstellung

qq aktuelle Position vom Kopf (ließt Element rechts davon)

XX Bandsymbole / Abschnitt des Bandes wo nicht unendlich viele Blanks sind.

Akzeptierte SpracheL(M)L(M)

Deterministische Turingmaschine

Sprache LL wird von MM akzeptiert, wenn ein Endzustand erreicht wird:

L(M)={wΣq0wαpβ,pF,α,βΓ} L(M)=\left\{w \in \Sigma^{*} \mid q_{0} w \Rightarrow^{*} \alpha p \beta, \quad p \in F, \quad \alpha, \beta \in \Gamma^{*}\right\} 

Nicht-Deterministische Turingmaschine

Sprache LL wird von MM akzeptiert, wenn es möglich ist einen Endzustand zu erreichen.

Die Turingmaschine hält immer an, wenn sie einen Endzustand erreicht:

Endzustand mit ww erreichen bzw Wort akzeptieren \Rarr Anhalten

wL(M)\small w \in L(M) \Rarr Anhalten

Das Anhalten bei einem Endzustand ist die Abbildung:

δ(qF,X)=undefined \small \delta(q \textcolor{pink}{\in F}, X) = \text{undefined} 

Turingmaschine mit Arbeitsband

M=(Q,T,Γ,δ,q0,{Z0,Z1,Z2},B,F) \large M=\left(Q, T, \Gamma, \delta, q_{0},\left\{Z_{0}, Z_{1}, Z_{2}\right\}, B, F\right) 

ZuständeQQ

q0q_0 Anfangszustand

FF Endzustände

Eingabeband SymboleTT(nur lesen)

Symbole im Eingabewort sein können

Arbeitsband SymboleΓ\Gamma(lesen, schreiben)

Symbole im Eingabewort + die zum Schreiben wie BB

Übergangsfunktionδ\delta

Wenn deterministisch DTM: (max. 1 Element aus der Zielmenge)

δ:Q×T×ΓQ×Γ×{L,R,S}×{L,R,S} \delta: Q \times T \times \Gamma\longmapsto Q \times \Gamma \times \{L, R, S\}\times\{L, R, S\} 

δ(q,a,X)=(p,Y,DE,DA)\delta(q, a, X)=\left(p, Y, D_{E}, D_{A}\right)

Zustandqp\small q \mapsto p

Eingabebanda\small a

ArbeitsbandXY\small X \mapsto Y

Position auf EingabebandDE\small D_E

Position auf ArbeitsbandDA\small D_A

Wenn nicht deterministisch NTM:

δ(q,a,X)={(q1,Y1,DE1,DA1),(q2,Y2,DE2,DA2),(qk,Yk,DEk,DAk)} \delta(q, a, X)=\{\left(q_1, Y_1, D_{E1}, D_{A1}\right), \left(q_2, Y_2, D_{E2}, D_{A2}\right),\dots \left(q_k, Y_k, D_{Ek}, D_{Ak}\right)\} 

Bregenzungssymbole

Z0Z_0 Begrenzung Arbeitsband links

Z1,Z2Z_1,~Z_2 Begrenzung Eingabeband

Eingeschränkte Varianten

Normalform von DTM

Nur 1 Endzustand

Arbeitsband nach Ausführung und Akzeptanz leer

Letzter Übergang:

δ(x,Z2,Z0)=(f,Z0,S,R) \small \delta(x, Z_{2}, Z_{0})=\left(f, Z_{0}, S, R\right) wobeix\small xbeliebiger Zustand

Linear beschränkter Automat LBA

= EA + beschränkter RAM (Arbeitsband)

Arbeitsband darf max. linear so viel Platz beanspruchen wie Eingabewort.

A=cE+d\small |\text{A}| = c\cdot |\text{E}| + d

Kellerautomat KA (Pushdown automaton)

= EA + Stack

Nie nach links in Eingabeband: DE={R,S}\small D_E = \{R, S\}

Leseschreibkopf darf links davon nur Nicht-Blank-Symbole haben, rechts davon nur Blank-Symbole.

Akzeptierte Sprache

Zwei Möglichkeiten zu definieren

  1. In Endzustand
  1. Stack ist leer

Endlicher Automat EA

Nützt Arbeitsband nicht

δ:Q×TQ×{L,R,S}\delta: Q \times T \longmapsto Q \times \{L, R, S\}

δ(q,a)=(p,DE)\delta(q, a)=\left(p, D_{E}\right)

Alternativerweise - auch zugleich Kellerautomat (mit unbenutztem Stack)

δ:Q×T{ε}Q\delta: Q \times T \cup \{\varepsilon\} \longmapsto Q

δ(q,a)=p\delta(q, a)=p

δ(q,aT)=p\delta(q, a\in T)=pzu interpretieren alsδ(q,a,R)\small \delta(q, a, R)

δ(q,aε)=p\delta(q, a \in \varepsilon)=pzu interpretieren alsδ(q,a,S)\small \delta(q, a, S)