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 Aussage über einen gegebenen Algorithmus beweisen oder widerlegen. Daher gibt es kein allgemeines Verfahren, das für jeden Algorithmus feststellen kann, ob die von ihm beschriebene Funktion eine gewünschte, in einer üblichen formalen Sprache gegebene Eigenschaft hat. Der Satz von Rice zeigt, dass es kein solches Entscheidungsverfahren auch für andere nichttriviale Eigenschaften gibt.
Inhaltsverzeichnis |
Formale Fassung [Bearbeiten]
Es sei R die Menge aller Turing-berechenbaren Funktionen und S eine nichtleere, echte Teilmenge davon. Außerdem sei eine Kodierung vorausgesetzt, die einem Codewort w die dadurch codierte Turingmaschine
zuordnet. Dann ist die Sprache
nicht entscheidbar.
Aus die von
berechnete Funktion liegt in
folgt, dass äquivalente Turingmaschinen entweder beide in
liegen oder keine von beiden. Man sagt auch, dass
eine semantische Eigenschaft von Turingmaschinen ist.
Beispiele [Bearbeiten]
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.
Beweisidee [Bearbeiten]
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
berechnet.
Nun betrachtet man für einen beliebigen Algorithmus
den folgenden Algorithmus:
- Funktion
(x): - simuliere
mit Eingabe w - simuliere
mit Eingabe x und gib das Ergebnis aus
Er hat folgende Eigenschaften:
- Der Übergang von
zu
ist berechenbar. Es gibt also eine berechenbare Funktion g, so dass
für alle w gilt. - Falls
bei Eingabe von w terminiert, berechnet
dieselbe Funktion wie
, also f. Andernfalls berechnet
die überall undefinierte Funktion
. Aufgrund der getroffenen Annahmen bedeutet das, dass die von
berechnete Funktion genau dann in S liegt, wenn
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.
Analogon für rekursiv aufzählbare Eigenschaften [Bearbeiten]
Auf eine analoge Weise lassen sich die rekursiv aufzählbaren semantischen Eigenschaften von Turing-Maschinen charakterisieren.[2] Sei
eine Menge rekursiv aufzählbarer Mengen. Dann ist die Sprache
genau dann rekursiv aufzählbar, wenn es eine rekursiv aufzählbare Menge
von Gödelnummern endlicher Mengen mit folgender Eigenschaft gibt:
enthält genau die rekursiv aufzählbaren Mengen, die eine endliche Teilmenge
haben, deren Gödelnummer
in
liegt:
Dass eine solche Menge
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
gibt, die bereits alle Elemente einer schon aufgezählten endlichen Menge
ausgegeben hat, gibt man
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.
Siehe auch [Bearbeiten]
Literatur [Bearbeiten]
- Hartley Rogers: Theory of recursive functions and effective computability. McGraw-Hill, 1967.
Einzelnachweise [Bearbeiten]
- ↑ Henry Gordon Rice: Classes of recursively enumerable sets and their decision problems. In: Transactions of the American Mathematical Society. 74, 1953, S. 358-366, doi:10.2307/1990888.
- ↑ Rogers 1967, 324

(x):
für alle w gilt.
