Μ-Rekursion
μ-rekursive Funktionen spielen in der theoretischen Informatik eine Rolle, insbesondere in Zusammenhang mit Berechenbarkeit. Sie stellt eine Erweiterung der primitiv-rekursiven Funktionen dar. Im Gegensatz zu den primitiv-rekursiven Funktionen können mit μ-rekursiven Funktionen insbesondere auch Funktionen dargestellt werden, die nicht total, sondern partiell sind. Daher werden die μ-rekursiven Funktionen oft auch partiell-rekursive Funktionen genannt. Es gibt in der Klasse der μ-rekursiven Funktionen aber auch Funktionen, die total und nicht primitiv-rekursiv sind. Ein berühmtes Beispiel dafür ist die Ackermann-Funktion.
Eigenschaften
Die Klasse der μ-rekursiven Funktionen (von ) umfasst:
- alle konstanten Funktionen:
- alle Projektionen:
- die Nachfolgefunktion:
und ist abgeschlossen gegenüber:
- der Komposition: falls
- Primitiver Rekursion: falls
- Anwendung des μ-Operators
Definition des μ-Operators
Für eine Funktion ist die Funktion definiert durch:
Einfach gehalten heißt das, dass μf(x) das kleinste y mit f(y,x) = 0 ist, so dass f(y',x) definiert ist für alle y' < y.
μ nennt man μ-Operator. Jede μ-rekursive Funktion entspricht einer WHILE-Schleife (vgl. WHILE-Programm) und umgekehrt.
Simulation der TM mit μ-Rekursiven Funktionen
TM= Turing Maschine
Es lässt sich Beweisen dass eine TM durch die μ-Rekursiven Funktionen simuliert werden kann. Es lässt sich auch beweisen dass die Menge der μ-Rekursiven Funktionen genau der Menge der Turing-Berechenbaren Funktionen entspricht.
Beweis-Idee für die Simulation der TM mit μ-Rekursiven Funktionen:
Man kann zeigen, dass sich die Konfiguration einer TM durch 3 Zahlen a,b,c darstellen lässt. Genau so kann eine Funktion (eine bijektive Abbildung ) definiert werden, die eine geeignete Kodierung der TM ist.
Nehmen wir also eine Primitiv-Rekursive Funktion die eine geeignete Kodierung der TM liefert für die Eingabe "x" nach n Berechnungsschritten.
Eine zweite Primitiv-Rekursive Funktion die für eine Kodierung als Ergebnis 0 liefert falls einen Endzustand der TM representiert, und ansonsten 1.
dann ergibt die Anzahl der Schritte die eine TM zur Berechnung bis zum Ende benötigt.
also bekommen wir mit die Berechnung der TM in einem Endzustand bei der Eingabe .