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.

3.2. MODIFIKATIONEN VON TURINGMASCHINEN 81<br />

Die Masch<strong>in</strong>e entscheidet <strong>in</strong> jedem Schritt abhängig vom Zustand und dem Inhalt<br />

beider Spuren (1) was der nächste Zustand wird und (2) ob sich der Kopf bewegt<br />

oder beide Spuren gleichzeitig überschrieben werden.<br />

E<strong>in</strong>e 2-Spur-TM ist eigentlich e<strong>in</strong>e TM im vorher def<strong>in</strong>ierten S<strong>in</strong>ne, deren Bandalphabet<br />

aus Paaren (s1, s2), mit s1 ∈ Σ1 und s2 ∈ Σ2, geformt wird. Die e<strong>in</strong>zige<br />

Ausnahme ist das Paar (#, #), das jetzt als Blank-Symbol dient. Also ist e<strong>in</strong>e 2-<br />

Spur-TM e<strong>in</strong>fach e<strong>in</strong>e TM mit dem E<strong>in</strong>gabealphabet<br />

Σ = Σ1 × Σ2 − {(#, #)}.<br />

Analoges gilt für k-spurige Masch<strong>in</strong>en, die auf der i-ten Spur Symbole aus Σi tragen<br />

(i = 1, . . .,k): das s<strong>in</strong>d also die ” normalen“ TM mit E<strong>in</strong>gabealphabet<br />

Σ = Σ1 × Σ2 × · · · × Σk − {(#, #, . . .,#)}<br />

und mit dem Blanksymbol (#, #, . . . , #).<br />

Beispiel 3. Primzahltest<br />

Wir zeigen, wie man e<strong>in</strong>e 3-spurige TM konstruiert, die die Sprache L aller Primzahlen<br />

(<strong>in</strong> b<strong>in</strong>ärer Darstellung) akzeptiert. Hiermit kann man auch gut die Idee<br />

von Tur<strong>in</strong>g illustrieren, dass jeder Algorithmus mit e<strong>in</strong>er TM automatisiert werden<br />

kann. Wir verwenden hier den primitiven Algorithmus, der jede Zahl n durch<br />

alle Testzahlen 2, 3, 4, . . ., n − 1 teilt und n akzeptiert, falls alle Divisionen e<strong>in</strong>en<br />

positiven Rest ergeben.<br />

EINGABESPUR<br />

TESTZAHLSPUR<br />

HILFSSPUR<br />

. . . 1 0 1 1 1<br />

. . .<br />

. . . 1 0 1<br />

. . .<br />

. . . 1 0 1 1 1<br />

⇑<br />

. . .<br />

q0<br />

Die Spuren der TM s<strong>in</strong>d (1) E<strong>in</strong>gabespur, die während der Berechnung unverändert<br />

bleibt, (2) Testzahlspur, die am Anfang mit 1 beschriftet wird und <strong>in</strong> jedem Berechnungsdurchgang<br />

um e<strong>in</strong>s vergrößert wird (sodass <strong>in</strong> dem ersten Berechnungsdurchgang<br />

durch 2 dividiert wird, im zweiten mit 3, usw.) und (3) e<strong>in</strong>e Hilfsspur. Wir<br />

schreiben am Anfang also die gegebene Zahl n = 1, 2, 3, . . . auf Spur 1, die Zahl 1<br />

auf Spur 2 und nichts auf Spur 3. Der Initialzustand q0 überprüft (durch Vergleich<br />

mit Spur 2), ob auf Spur 1 e<strong>in</strong>e Zahl n ≥ 2 steht. Im Fall von n = 0 oder n = 1,<br />

wird der Zustand q0 zu<br />

q−, e<strong>in</strong>em nicht-f<strong>in</strong>alen Haltezustand<br />

verändert. (Also werden 0 und 1 nicht akzeptiert.) Falls n ≥ 2 ist, werden Berechnungsdurchgänge<br />

rekursiv durchgeführt, die man wie folgt beschreiben kann:<br />

Anfang e<strong>in</strong>es Berechnungsdurchganges: Spur 1 wird auf Spur 3 kopiert. Die Zahl<br />

auf Spur 2 wird um 1 vergrößert. Die Spuren 1 und 2 werden verglichen und falls<br />

die Zahlen gleich s<strong>in</strong>d, wird der Zustand zu<br />

q+, e<strong>in</strong>em f<strong>in</strong>alen Haltezustand<br />

geändert (die E<strong>in</strong>gabe wird also akzeptiert, denn ke<strong>in</strong>e Zahl kle<strong>in</strong>er n, die n teilt,<br />

wurde gefunden).<br />

Rumpf e<strong>in</strong>es Berechnungsdurchganges: Die Zahl von Spur 3 wird durch die auf Spur<br />

2 dividiert (z.B. durch wiederholte Subtraktion).<br />

Ende e<strong>in</strong>es Berechnungsdurchganges: Jetzt steht auf Spur 3 der Rest der E<strong>in</strong>gabe<br />

modulo der Testzahl. Falls der Rest 0 ist, wird der Zustand zu q− verändert. Falls<br />

der Rest positiv ist, wird der Kopf nach l<strong>in</strong>ks zum ersten Symbol 1 von Spur 1<br />

geschoben und e<strong>in</strong> neuer Berechnungsdurchgang beg<strong>in</strong>nt.<br />

Es ist leicht e<strong>in</strong>zusehen, dass sich diese <strong>in</strong>formale Beschreibung der Tur<strong>in</strong>gmasch<strong>in</strong>e<br />

relativ e<strong>in</strong>fach durch e<strong>in</strong>e formal def<strong>in</strong>ierte TM realisieren lässt.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!