Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
94 KAPITEL 3. TURINGMASCHINEN<br />
sie kann das Ergebnis e<strong>in</strong>fach auf das Band schreiben. Allgeme<strong>in</strong> können wir Berechnungen<br />
von Funktionen von Σ ∗ nach Γ ∗ formalisieren, wobei Σ das Alphabet<br />
ist, <strong>in</strong> dem die E<strong>in</strong>gaben codiert werden, und Γ das Alphabet der Ausgaben.<br />
Def<strong>in</strong>ition. Wir sagen, e<strong>in</strong>e Tur<strong>in</strong>gmasch<strong>in</strong>e M berechnet die Funktion<br />
f : Σ ∗ → Γ ∗<br />
falls das E<strong>in</strong>gabealphabet von M die Menge Σ∪Γ enthält, die Masch<strong>in</strong>e M auf jede<br />
E<strong>in</strong>gabe w aus Σ ∗ hält und der Band<strong>in</strong>halt dann gleich f(w) ist.<br />
Beispiel 1. Die Funktion<br />
f(n) = 2n,<br />
wobei n unär (über Σ = {|}) dargestellt ist, wird von der folgenden TM berechnet:<br />
falls das erste Symbol # ist (also n = 0), hält die TM. Falls das erste Symbol | ist,<br />
löscht die Masch<strong>in</strong>e dieses Symbol, geht nach l<strong>in</strong>ks, schreibt | vor das letzte Symbol<br />
| am l<strong>in</strong>ken Wortrand, geht nach rechts und schreibt das gelöschte Symbol | wieder<br />
(q0, |) → (q1, #)<br />
(q1, #) → (q2, L)<br />
(q2, |) → (q2, L)<br />
h<strong>in</strong> usw.: (q2, #) → (q3, |)<br />
(q3, |) → (q3, R)<br />
(q3, #) → (q4, |)<br />
(q4, |) → (q0, R)<br />
Genauer, die TM<br />
M = ({q0, q1, q2, q3, q4, qF }, {0, 1}, δ, q0, qF ),<br />
deren Übergangsfunktion δ oben gegeben ist, berechnet die Funktion f(n) = 2n.<br />
Beispiel 2. Die Funktion<br />
f : Σ ∗ → {|} ∗<br />
der Länge der Worte<br />
f(s1s2 . . . sn) = n (unär dargestellt)<br />
wird von der folgenden TM berechnet:<br />
M = ({q0}, Σ ∪ {|}, δ, q0, q0),<br />
wobei δ wie folgt def<strong>in</strong>iert wird<br />
(q0, x) → (q0, |) für alle x ∈ Σ<br />
(q0, |) → (q0, R)<br />
Bemerkung. 1. Wie im Fall von Sprachenakzeptanz können wir auch für Funktionen<br />
den Begriff der TM modifizieren und zum Beispiel e<strong>in</strong>e Mehrband-TM<br />
benutzen. Es ist dann üblich, Band 1 als E<strong>in</strong>gabeband und Band 2 als Ausgabeband<br />
(mit Inhalt f(w), nachdem die TM hält) zu verwenden.<br />
2. Der F<strong>in</strong>alzustand spielt bei Berechnungen ke<strong>in</strong>e Rolle (und könnte, für diese<br />
Anwendung der TM, aus der Def<strong>in</strong>ition entfernt werden).<br />
3. Für Funktionen zweier (oder mehrerer) Variablen werden die verschiedenen<br />
Variablen vone<strong>in</strong>ander durch e<strong>in</strong>e leere Zelle getrennt. Also zum Beispiel e<strong>in</strong>e<br />
Funktion f(w1, w2) zweier Variabler aus Σ ∗ mit Werten <strong>in</strong> Γ ∗ wird von e<strong>in</strong>er<br />
TM berechnet, falls die TM auf jede E<strong>in</strong>gabe w1#w2 mit Band<strong>in</strong>halt f(w1, w2)<br />
hält.<br />
Beispiel 3. Addition. Wir wollen die Funktion<br />
f(n, m) = n + m (unär dargestellt)<br />
durch e<strong>in</strong>e TM berechnen: es genügt, das erste Symbol ” |“ zu streichen und die<br />
Lücke, die die zwei Variablen vone<strong>in</strong>ander trennt, durch ” |“ zu ersetzen: