theoretische Informatik

Angelegt Freitag 20 Februar 2026


Rice's Theorem ist ein grundlegendes Ergebnis in der Theorie der berechenbaren Funktionen und der Automatentheorie. Es wurde vom Mathematiker Henry Gordon Rice im Jahr 1954 formuliert. Das Theorem besagt:


Jede nicht-triviale Eigenschaft von partiell rekurrierenden (d.h. berechenbaren) Funktionen ist unentscheidbar.


Um dieses Theorem zu verstehen, müssen wir einige Begriffe klären:


  1. Partiell rekurriere Funktionen: Dies sind Funktionen, für die es einen Algorithmus gibt, der sie berechnet. Allerdings muss dieser Algorithmus nicht unbedingt für alle Eingaben terminieren. Wenn er terminiert, liefert er das richtige Ergebnis.
  2. Nicht-triviale Eigenschaft: Eine Eigenschaft einer Funktion ist nicht-trivial, wenn sie weder von allen Funktionen noch von keiner Funktion erfüllt wird. Zum Beispiel:

◦ Die Eigenschaft "die Funktion terminiert für alle Eingaben" ist trivial, da es nur sehr wenige (wenn überhaupt) Funktionen gibt, die diese Eigenschaft erfüllen.
◦ Die Eigenschaft "die Funktion terminiert für keine Eingabe" ist ebenfalls trivial, da sie von allen nicht-terminierenden Funktionen erfüllt wird.
◦ Ein Beispiel für eine nicht-triviale Eigenschaft wäre "die Funktion terminiert mit dem Wert 42 bei der Eingabe 17".


Implikationen des Theorems:



Beispiel:



Zusammengefasst sagt Rice's Theorem, dass es viele interessante Fragen über Algorithmen und Funktionen gibt, die nicht algorithmisch beantwortet werden können.


Es gibt mehrere grundlegende Theoreme in der Berechenbarkeitstheorie, die ähnlich tiefgreifend sind wie Rice's Theorem. Hier sind einige der wichtigsten:


  1. Church-Turing-These:

◦ Diese These besagt, dass die Menge der berechenbaren Funktionen (d.h. der Funktionen, für die es einen Algorithmus gibt) genau der Menge der Funktionen entspricht, die von einem Turing-Maschine berechnet werden können.
◦ Sie ist fundamental, weil sie eine abstrakte Definition von Berechenbarkeit mit einer konkreten Maschine verbindet.


  1. Unentscheidbarkeits-Theorem (Gödel's Unvollständigkeitssatz):

◦ Kurt Gödel zeigte in seinen Unvollständigkeitssätzen, dass es für jedes formale System, das stark genug ist, um die Arithmetik zu beschreiben, unentscheidbare Aussagen gibt.
◦ Dies bedeutet, dass es immer wahrheitsfähige Aussagen gibt, die nicht innerhalb des Systems bewiesen oder widerlegt werden können.


  1. Halteproblem (Halting Problem):

◦ Alan Turing bewies, dass das Problem, ob ein gegebenes Programm bei einer bestimmten Eingabe terminiert oder nicht, unentscheidbar ist.
◦ Dies ist ein spezifisches Beispiel für eine unentscheidbare Eigenschaft und zeigt die Grenzen der Berechenbarkeit auf.


  1. Rice-Shapiro-Theorem:

◦ Eine Verallgemeinerung von Rice's Theorem, das sich mit der Unentscheidbarkeit von Eigenschaften von Formalen Sprachen beschäftigt.
◦ Es besagt, dass jede nicht-triviale Indexmenge (d.h. eine Menge von Indizes von Maschinen, die bestimmte Sprachen erzeugen) unentscheidbar ist.


  1. Kleene's s-m-n-Theorem:

◦ Dieses Theorem ist grundlegend für den Beweis der Unentscheidbarkeit vieler Eigenschaften und besagt, dass man aus einem Index einer Funktion mit zwei Variablen Indizes für Funktionen ableiten kann, die eine Variable auf einen festen Wert fixieren.


  1. Myhill-Shepherdson-Theorem:

◦ Dieses Theorem besagt, dass es eine universelle Turing-Maschine gibt, die alle anderen Turing-Maschinen simulieren kann.
◦ Es ist eng mit der Church-Turing-These verbunden und zeigt, dass es keine "mächtigere" Maschine als eine Turing-Maschine geben kann.


Diese Theoreme sind grundlegend, weil sie die Grenzen dessen aufzeigen, was algorithmisch gelöst werden kann. Sie zeigen, dass es Probleme gibt, die nicht durch Algorithmen gelöst werden können, und liefern daher wichtige Einblicke in die Natur der Berechenbarkeit.


Eine Turing-Maschine ist ein theoretisches Modell, das von Alan Turing 1936 eingeführt wurde, um den Begriff eines Algorithmus zu formalisieren. Sie besteht aus mehreren grundlegenden Komponenten:


  1. Zustandsmenge (Q)
    • Eine endliche Menge von Zuständen, in denen sich die Maschine befinden kann.
    • Einer der Zustände ist der Anfangszustand (q₀), und einer oder mehrere sind Endzustände (q_accept, q_reject).

  1. Alphabet (Γ)
    • Eine endliche Menge von Symbolen, aus denen die Bänder der Maschine bestehen.
    • Das Alphabet umfasst das Eingabealphabet (Σ) und mindestens ein weiteres Symbol (das so genannte "Leerzeichen" oder "Blank", ␣), das nicht im Eingabealphabet enthalten ist.

  1. Band (T)
    • Ein unendliches Band, das in diskrete Zellen unterteilt ist.
    • Jede Zelle enthält ein Symbol aus dem Alphabet Γ.
    • Das Band kann nach links und rechts "unendlich" sein, aber in der Praxis wird es als endlich betrachtet, mit einer festen Anzahl von Zellen.

  1. Lese-/Schreibkopf (H)
    • Ein Lese- und Schreibkopf, der sich auf einer bestimmten Zelle des Bands befindet.
    • Der Kopf kann das Symbol in der aktuellen Zelle lesen und ein neues Symbol in dieser Zelle schreiben.
    • Er kann sich eine Zelle nach links oder rechts bewegen.

  1. Übergangsregeln (δ)
    • Eine endliche Menge von Übergangsregeln, die angeben, was die Maschine tun soll, wenn sie sich in einem bestimmten Zustand befindet und ein bestimmtes Symbol auf dem Band liest.
    • Jede Regel hat die Form: (q, a) → (q', b, D), wobei:

◦ q ist der aktuelle Zustand,
◦ a ist das gelesene Symbol,
◦ q' ist der nächste Zustand,
◦ b ist das zu schreibende Symbol,
◦ D ist die Richtung, in die sich der Kopf bewegen soll (links: L, rechts: R, oder bleiben: S).
Beispiel:


Angenommen, eine Turing-Maschine hat folgende Komponenten:

◦ (q₀, 1) → (q₁, ␣, R)
◦ (q₀, 0) → (q_accept, 0, S)
◦ (q₁, 0) → (q_accept, 0, S)


Funktionsweise:

  1. Die Maschine startet im Anfangszustand q₀ mit dem Kopf auf der ersten Zelle des Bands.
  2. Sie liest das Symbol in der aktuellen Zelle und wendet die entsprechende Übergangsregel an.
  3. Sie schreibt ein neues Symbol, bewegt den Kopf und wechselt in einen neuen Zustand.
  4. Dieser Prozess wird wiederholt, bis die Maschine einen Endzustand (q_accept oder q_reject) erreicht.

Die Turing-Maschine ist ein grundlegendes Modell für Berechenbarkeit, da sie zeigt, dass alle Algorithmen mit einem einfachen, mechanischen Gerät simuliert werden können.