Satz von Rice

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

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, eine beliebige nicht-triviale Eigenschaft einer Turing-Maschine (oder eines Algorithmus in einem anderen Berechenbarkeitsmodell) algorithmisch zu entscheiden.

Für spezielle Klassen von Algorithmen ist es zwar möglich - auch automatisiert - einzelne Eigenschaften nachzuweisen. Es gibt jedoch kein allgemeines Verfahren, das für jeden Algorithmus feststellen kann, ob die von ihm beschriebene Funktion ein gewünschtes, in einer üblichen formalen Sprache gegebenes Verhalten zeigt.

Satz[Bearbeiten]

Es sei \mathcal P die Menge aller partiellen Turing-berechenbaren Funktionen und \emptyset \neq \mathcal S \subsetneq \mathcal P eine nicht-leere, echte Teilmenge davon. Außerdem sei eine effektive Nummerierung vorausgesetzt, die einer natürlichen Zahl n \in \N die dadurch codierte Turing-Maschine M_n zuordnet.

Dann ist die Menge \mathcal C(\mathcal S) = \left\{ n \mid \text{die von }M_n\text{ berechnete Funktion liegt in } \mathcal S \right\} nicht entscheidbar.

Nach Konstruktion liegen Indizes äquivalenter Turing-Maschinen entweder alle in \mathcal C( \mathcal S) oder alle im Komplement. Man sagt auch, dass \mathcal S eine semantische Eigenschaft von Turing-Maschinen beschreibt, entsprechend heißt \mathcal C ( \mathcal S) eine semantische Menge.

Beispiele[Bearbeiten]

Aus dem Satz von Rice folgt beispielsweise, dass es keinen Algorithmus gibt, der für jede Turing-Maschine entscheidet, ob sie für jede Eingabe hält. \mathcal S = \mathcal R ist hierbei die Menge aller total berechenbaren Funktionen.

Ebenso ist es nicht entscheidbar, ob eine Turing-Maschine eine vorgegebene Funktion f \in \mathcal P berechnet. \mathcal S = \{f\} 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 ist eine Many-One-Reduktion des speziellen Halteproblems K auf \mathcal C(\mathcal S) für beliebiges nicht-triviales \mathcal S. Er wird hier durch Pseudocode skizziert.

Es sei \emptyset \neq \mathcal S \subsetneq \mathcal P nicht-trivial. O.B.d.A. liegt die überall undefinierte Funktion \bot nicht in \mathcal S. Sei weiter f \in \mathcal S beliebig (hier geht ein, dass \mathcal S nicht-trivial ist). Ferner werde f durch die Turing-Maschine M_f berechnet.

Man betrachte für eine beliebigen Turing-Maschine M_n den folgenden Algorithmus:

Funktion N_n(x):
simuliere M_n mit Eingabe n
simuliere anschließend M_f mit Eingabe x
Ausgabe


Er hat folgende Eigenschaften:

  • Die Gödelnummer von N_n ist aus n berechenbar. Dies geschehe durch die Funktion g \in \mathcal P, d.h. \forall x;n \in \N \colon M_{g(n)}(x) = N_n(x)
  • Falls M_n auf der Eingabe n terminiert, berechnet N_n dieselbe Funktion wie M_f (also gerade f).
  • Andernfalls berechnet N_n die überall undefinierte Funktion \bot (diese ist notwendig von f verschieden).
  • Nach Voraussetzung liegt also die von N_n berechnete Funktion genau dann in \mathcal S, wenn die Berechnung von M_n(n) terminiert.

Wäre nun \mathcal C (\mathcal S) durch eine Turing-Maschine entscheidbar, so würde man durch Davorschalten eines Algorithmus für g schließlich zu einem Algorithmus zur Lösung des speziellen Halteproblems gelangen. Da dies nicht möglich ist, kann \mathcal C (\mathcal S) auch nicht entscheidbar sein.

Analogon für rekursiv aufzählbare Eigenschaften[Bearbeiten]

Auf eine analoge Weise lassen sich die rekursiv aufzählbaren (r.e.) semantischen Eigenschaften von Turing-Maschinen charakterisieren.[2] Sei \mathcal S \subseteq \mathcal P(\N) ein System von r.e. Mengen. Dann ist die Indexmenge

\mathcal C(\mathcal S) = \left\{ n \mid \text{die von }M_n\text{ erkannte Menge liegt in }\mathcal S \right\}

genau dann selbst r.e., wenn es eine r.e. Menge \mathcal{D} von Gödelnummern endlicher Mengen mit folgender Eigenschaft gibt:

\forall A \subseteq \N \colon A \in S \Leftrightarrow (A \text{ rekursiv aufzählbar}\ \and\ \exists D \subseteq_{fin} \N \colon (\#D \in \mathcal{D} \wedge D \subseteq A))

Das heißt \mathcal S enthält genau die rekursiv aufzählbaren Mengen, die eine endliche Teilmenge D haben, deren Gödelnummer \#D in \mathcal{D} liegt.

Dass eine solche Menge \mathcal C(\mathcal S) rekursiv aufzählbar ist, ist leicht einzusehen. Man startet dazu nacheinander die Berechnungen aller Turingmaschinen und gleichzeitig eine Aufzählung von \mathcal{D}. Immer wenn es eine Turing-Maschine M_n gibt, die bereits alle Elemente einer schon aufgezählten endlichen Menge D ausgegeben hat, gibt man n 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.

Literatur[Bearbeiten]

  •  Hartley Rogers: Theory of recursive functions and effective computability. McGraw-Hill, 1967.

Einzelnachweise[Bearbeiten]

  1.  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.
  2. Rogers 1967, 324