18.09.2013 Aufrufe

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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:

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!