Satz von Rice
Der Satz von Rice ist ein Ergebnis der Theoretischen Informatik. Benannt wurde der Satz nach Henry Gordon Rice, der ihn 1953 veröffentlichte.[1] Er besagt, dass es unmöglich ist, irgendeinen nichttrivialen Aspekt des funktionalen Verhaltens einer Turingmaschine (oder eines Algorithmus in einem anderen Algorithmenmodell) algorithmisch zu entscheiden.
Es ist zwar teilweise möglich, eine Eigenschaft eines speziellen Algorithmus zu beweisen, und dies lässt sich auch automatisieren, doch lässt sich aufgrund des gödelschen Unvollständigkeitssatzes nicht jede wahre Aussage über einen gegebenen Algorithmus beweisen. Daher gibt es kein allgemeines Verfahren, das für jeden Algorithmus feststellen kann, ob die von ihm beschriebene Funktion eine gewünschte Eigenschaft hat. Der Satz von Rice zeigt, dass es ein solches Entscheidungsverfahren sogar für keine nichttriviale Eigenschaft gibt.
Inhaltsverzeichnis |
[Bearbeiten] Formale Fassung
Es sei R die Klasse aller Turing-berechenbaren Funktionen und S eine beliebige nichttriviale (das bedeutet S ≠ ø und S ≠ R) Teilmenge davon. Außerdem ist eine Kodierung, die einem Codewort w die dadurch codierte Turingmaschine Mw zuordnet, vorausgesetzt. Dann ist die Sprache
- C(S) = { w | die von Mw berechnete Funktion liegt in S }
nicht entscheidbar.
Aus "die von Mw berechnete Funktion liegt in S" folgt, dass äquivalente Turingmaschinen entweder beide in C(S) liegen oder keine von beiden. Man sagt auch, dass S eine semantische Eigenschaft von Turingmaschinen ist.
[Bearbeiten] Beispiele
Aus dem Satz von Rice folgt beispielsweise, dass es keinen Algorithmus gibt, der für jede Turingmaschine entscheidet, ob sie für jede Eingabe hält. S ist hierbei die Menge aller totalen (überall definierten) Funktionen.
Ebenso ist es nicht entscheidbar, ob eine Turingmaschine eine vorgegebene Funktion berechnet. S enthält dann nur diese eine Funktion. Daraus folgt, dass erst recht das Problem der Programmäquivalenz nicht entscheidbar ist.
Auch lässt es sich nicht entscheiden, ob die berechnete Funktion etwa injektiv, surjektiv oder monoton ist.
[Bearbeiten] Beweisidee
Der Beweis arbeitet mit einer Reduktion des speziellen Halteproblems auf C(S) für ein beliebiges nicht triviales S. Er wird hier durch Pseudocode skizziert.
Es sei S eine nichttriviale Teilmenge von R. Da der Übergang zum Komplement keinen Unterschied für die Entscheidbarkeit macht, kann man ohne Beschränkung der Allgemeinheit annehmen, dass die überall undefinierte Funktion
nicht in S enthalten ist. Sei f eine beliebige Funktion aus S. (An dieser Stelle geht ein, dass S nicht trivial ist.) Ferner werde f durch die Turingmaschine Mf berechnet.
Nun betrachtet man für einen beliebigen Algorithmus Mw den folgenden Algorithmus:
- function Nw(x):
- simuliere Mw mit Eingabe w
- simuliere Mf mit Eingabe x und gib das Ergebnis aus
Er hat folgende Eigenschaften:
- Der Übergang von Mw zu Nw ist berechenbar. Es gibt also eine berechenbare Funktion g, so dass Mg(w) = Nw für alle w gilt.
- Falls Mw bei Eingabe von w terminiert, berechnet Nw dieselbe Funktion wie Mf, also f. Andernfalls berechnet Nw die überall undefinierte Funktion
. Aufgrund der getroffenen Annahmen bedeutet das, dass die von Nw berechnete Funktion genau dann in S liegt, wenn Mw bei Eingabe von w terminiert.
Wenn es nun einen Algorithmus für die Sprache C(S) gäbe, so würde man durch Davorschalten eines Algorithmus für g zu einem Algorithmus zur Lösung des speziellen Halteproblems gelangen. Da dies nicht möglich ist, kann C(S) nicht entscheidbar sein.
[Bearbeiten] Analogon für rekursiv aufzählbare Eigenschaften
Auf eine analoge Weise lassen sich die rekursiv aufzählbaren semantischen Eigenschaften von Turing-Maschinen charakterisieren.[2] Sei S eine Menge rekursiv aufzählbarer Mengen. Dann ist die Sprache
- C(S) = { w | die von Mw erkannte Menge liegt in S }
genau dann rekursiv aufzählbar, wenn es eine rekursiv aufzählbare Menge
von Gödelnummern endlicher Mengen mit folgender Eigenschaft gibt: S enthält genau die rekursiv aufzählbaren Mengen, die eine endliche Teilmenge D haben, deren Gödelnummer #D in
liegt:
Dass eine solche Menge S rekursiv aufzählbar ist, ist leicht einzusehen. Man startet dazu nacheinander die Berechnungen aller Turingmaschinen und gleichzeitig eine Aufzählung von
. Immer wenn es eine Turingmaschine Mw gibt, die bereits alle Elemente einer schon aufgezählten endlichen Menge D ausgegeben hat, gibt man w aus. Dass alle anderen Mengen nicht rekursiv aufzählbar sein können, lässt sich ähnlich dem Satz von Rice durch die Unlösbarkeit des Halteproblems zeigen.
[Bearbeiten] Siehe auch
[Bearbeiten] Literatur
- Hartley Rogers: Theory of recursive functions and effective computability. McGraw-Hill, 1967.
