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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

5.2. DAS HALTEPROBLEM 123<br />

Also überprüft M0, ob die E<strong>in</strong>gabe die Form c(M)w hat (siehe Bemerkung <strong>in</strong> 5.1),<br />

und falls das der Fall ist, simuliert sie die universale Tur<strong>in</strong>gmasch<strong>in</strong>e Mu. Die E<strong>in</strong>gabe<br />

v wird genau dann von M0 akzeptiert, wenn v = c(M)w und Mu (akzeptierend<br />

oder nicht akzeptierend) auf die E<strong>in</strong>gabe v hält. Äquivalent dazu ist: genau dann,<br />

wenn M auf die E<strong>in</strong>gabe w hält. Kürzer: L(M0) = Lhalt.<br />

Satz 2 (Unentscheidbarkeit des Halteproblems). Die Sprache Lhalt ist nicht rekursiv.<br />

Beweis. Die Annahme, dass Lhalt rekursiv ist, führt zu e<strong>in</strong>em Widerspruch: es<br />

folgt, dass die Sprache<br />

Lcode = {w; w = c(M) für e<strong>in</strong>e Tur<strong>in</strong>gmasch<strong>in</strong>e M mit w /∈ L(M)}<br />

rekursiv-aufzählbar ist. Das ist aber falsch, siehe Beispiel 2 <strong>in</strong> Kapitel 3.3.<br />

Sei Mhalt e<strong>in</strong>e TM, die Lhalt akzeptiert und auf jede E<strong>in</strong>gabe hält. Dann lässt sich<br />

<strong>in</strong> der Tat e<strong>in</strong>e TM konstruieren, die die Sprache Lcode akzeptiert:<br />

w EINGABE <br />

Hat w die Form<br />

w = c(M) für<br />

e<strong>in</strong>e TM M?<br />

TURINGMASCHINE Mcode<br />

JA<br />

Akzeptiert<br />

<br />

Mhalt E<strong>in</strong>gabe<br />

ww?<br />

JA<br />

Akzeptiert<br />

<br />

Mu E<strong>in</strong>gabe<br />

ww?<br />

<br />

<br />

<br />

NEIN NEIN NEIN<br />

w nicht akzeptiert w akzeptiert w akzeptiert<br />

Das heißt, dass die Tur<strong>in</strong>gmasch<strong>in</strong>e Mcode e<strong>in</strong>e E<strong>in</strong>gabe w wie folgt berechnet:<br />

JA <br />

w nicht<br />

akzeptiert<br />

1. Mcode überprüft, ob w = c(M) für e<strong>in</strong>e Tur<strong>in</strong>gmasch<strong>in</strong>e M gilt (siehe Bemerkung<br />

<strong>in</strong> 5.1).<br />

2. Falls ja, wiederholt Mcode die E<strong>in</strong>gabe und schreibt also<br />

auf das Band.<br />

ww = c(M)w<br />

3. Jetzt simuliert Mcode die Masch<strong>in</strong>e Mhalt bis sie hält.<br />

(a) Falls Mhalt die E<strong>in</strong>gabe ww nicht akzeptiert, hält Mcode und akzeptiert<br />

w. In diesem Fall hält nämlich die Masch<strong>in</strong>e M nicht auf die E<strong>in</strong>gabe w<br />

(denn c(M)w /∈ Lhalt); also wird w von M nicht akzeptiert – es folgt<br />

w ∈ Lcode.<br />

(b) Falls Mhalt akzeptiert, simuliert Mcode die universale TM auf dieselbe<br />

E<strong>in</strong>gabe ww. Da c(M)w ∈ Lhalt gilt, hält M auf die E<strong>in</strong>gabe w, also hält<br />

die universale TM auf die E<strong>in</strong>gabe c(M)w. Mcode akzeptiert genau dann,<br />

wenn Mu nicht akzeptiert.<br />

Die Tur<strong>in</strong>gmasch<strong>in</strong>e Mcode hält auf jede E<strong>in</strong>gabe: der erste Schritt hält (denn die<br />

Sprache aller Codes ist rekursiv, siehe 5.1), der zweite hält nach unserer Voraussetzung<br />

von Mhalt, und der letzte hält, denn Mu erhält nur solche E<strong>in</strong>gaben ww, die<br />

von Mhalt akzeptiert werden, das heißt E<strong>in</strong>gaben c(M)w mit w = c(M), so dass M<br />

auf w hält (oder äquivalent: Mu hält auf die E<strong>in</strong>gabe c(M)w = ww).<br />

Welche E<strong>in</strong>gaben w akzeptiert Mcode? Genau die der Form w = c(M), wobei entweder

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!