Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
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