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.

Kapitel 5<br />

Unentscheidbare Probleme<br />

Es gibt wichtige praktische Fragen, die sich von ke<strong>in</strong>em Algorithmus lösen lassen.<br />

Beispiel: die Entscheidung, ob e<strong>in</strong> gegebenes Programm (sagen wir <strong>in</strong> PASCAL)<br />

auf e<strong>in</strong>e gegebene E<strong>in</strong>gabedatei hält. Es wäre von größter praktischer Bedeutung,<br />

e<strong>in</strong>en Algorithmus zur Verfügung zu haben, der als E<strong>in</strong>gabe e<strong>in</strong> Paar (P, D) hat,<br />

wobei P e<strong>in</strong> PASCAL-Programmcode und D e<strong>in</strong>e Datei für P ist, und das die<br />

richtige Ausgabe ” hält“ oder ” hält nicht“ ergibt. Solch e<strong>in</strong> Algorithmus existiert aber<br />

nicht. Das beweisen wir für e<strong>in</strong>e Variante, die (statt mit PASCAL-Programmen) mit<br />

Tur<strong>in</strong>gmasch<strong>in</strong>en arbeitet. Außerdem zeigen wir weitere Beispiele unentscheidbarer<br />

Probleme.<br />

Der formale Beweis, dass es ” vernünftige“ und wichtige Fragen gibt, die e<strong>in</strong>fach ke<strong>in</strong><br />

Algorithmus lösen kann, ist e<strong>in</strong>es der wichtigsten Ergebnisse <strong>in</strong> diesem <strong>Skript</strong>, denn<br />

daraus folgt, dass man bei dem Versuch, e<strong>in</strong>e Aufgabe zu lösen, immer darauf achten<br />

muss, dass die Aufgabe ke<strong>in</strong>e Variante e<strong>in</strong>es unlösbaren Problems ist. Wir beg<strong>in</strong>nen<br />

aber mit e<strong>in</strong>em positiven Ergebnis: es gibt e<strong>in</strong>e universelle Tur<strong>in</strong>gmasch<strong>in</strong>e, also<br />

e<strong>in</strong>e, die (wie moderne Rechner) programmiert werden kann.<br />

5.1 Universelle Tur<strong>in</strong>gmasch<strong>in</strong>e<br />

Wir konstruieren jetzt e<strong>in</strong>e universelle (oder ” programmierbare“) TM, die bei E<strong>in</strong>gaben<br />

der Form<br />

(c, w) c – Algorithmus, w – Datei<br />

die Datei w entsprechend des Algorithmus c berechnet. Da wir Algorithmen als<br />

Tur<strong>in</strong>gmasch<strong>in</strong>en <strong>in</strong>terpretieren, können wir genauer sagen: e<strong>in</strong>e universelle Tur<strong>in</strong>gmasch<strong>in</strong>e<br />

Mu erhält als E<strong>in</strong>gabe e<strong>in</strong> Wort<br />

c(M)w,<br />

wobei c(M) e<strong>in</strong>e passende Codierung der (beliebigen) Tur<strong>in</strong>gmasch<strong>in</strong>e M und w<br />

e<strong>in</strong> (beliebiges) E<strong>in</strong>gabewort für M ist. Dann berechnet Mu die E<strong>in</strong>gabe und liefert<br />

genau dasselbe Ergebnis, das die Masch<strong>in</strong>e M auf E<strong>in</strong>gabe w liefert. Das können<br />

wir entweder <strong>in</strong> der Akzeptor-Variante <strong>in</strong>terpretieren, also Mu hält genau dann<br />

auf c(M)w, wenn M auf w hält, und dann akzeptiert Mu genau dann, wenn M<br />

akzeptiert, oder <strong>in</strong> der Rechner-Variante, also Mu führt für c(M)w zu der gleichen<br />

Ausgabe wie M für w. Es zeigt sich, dass die Masch<strong>in</strong>e Mu, die wir jetzt beschreiben,<br />

beide Rollen erfüllt.<br />

117

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!