Automaten, Formale Sprachen und Berechenbarkeit I
Automaten, Formale Sprachen und Berechenbarkeit I
Automaten, Formale Sprachen und Berechenbarkeit I
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
146 KAPITEL 6. BERECHENBARE FUNKTIONEN<br />
Projektionsfunktionen π n i<br />
: N n → N mit π n i (x 1 , ..., x n ) = x i (für 1 ≤ i ≤ n).<br />
Konstruktionen<br />
Einsetzen Wenn g : N k → N <strong>und</strong> h i : N n → N primitiv rekursive Funktionen sind, dann<br />
ist auch f : N n → N mit f(x 1 , ..., x n ) = g(h 1 (x), . . . , h k (x)) primitiv rekursiv.<br />
Primitive Rekursion Wenn g : N n → N <strong>und</strong> h : N n+2 → N primitiv rekursive Funktionen<br />
sind, so ist auch f : N n+1 → N mit<br />
f(x, 0) = g(x)<br />
Terminierung<br />
f(x, k + 1) = h(x, k, f(x, k)) Rekursion<br />
ebenfalls primitiv rekursiv.<br />
Ähnlich wie bei der (reinen) FOR-Schleife, ist bei bei der primitiven Rekursion die Anzahl<br />
der rekursiven Aufrufe begrenzt: für f(x, n) wird f genau n mal rekursiv aufgerufen. Aller<br />
primitiv rekursiven Funktionen sind also tolal. Und man kann sich relativ leicht überlegen, daß<br />
die primitiv rekursiven Funktionen genau die FOR-berechenbaren Funktionen sind:<br />
Satz 6.8 (Primitiv rekursiv = FOR-berechenbar) Die Menge der primitiv rekursiven Funktionen<br />
ist genau die Menge der FOR-berechenbaren Funktionen.<br />
Frage:<br />
Welches Rekursionsprinzip liefert uns genau die WHILE-berechenbaren Funktionen?<br />
Antwort:<br />
4.2 Die µ-rekursiven Funktionen<br />
Für eine Funktion: g : N n+1 → N bezeichnet µg : N n → N eine Funktion mit:<br />
{ min{k ∈ N | g(x, k) = 0 ∧ g(x, j) ∈ N für alle j ≤ k}<br />
(µg)(x) =<br />
<strong>und</strong>efiniert, falls min nicht existiert<br />
µg(x) bezeichnet also den kleinsten Index k, für den g(x, k) = 0 gilt <strong>und</strong> für den für alle j < k<br />
der Wert g(x, j) definiert ist.<br />
Der µ-Operator macht also aus einer n + 1-stelligen Funktion g eine n-stellige Funktion f = µg. Der<br />
µ-Operator ist also streng genommen ein Funktional f = µ(g), wobei die Klammern meist weggelassen<br />
werden – wie oben.<br />
Definition 6.9 (µ-rekursive Funktionen)<br />
Die Menge der µ-rekursive Funktionen ist induktiv definiert:<br />
- Jede primitiv rekursive Funktion ist µ-rekursiv.<br />
- Wenn g <strong>und</strong> h 1 , ..., h k µ-rekursiv sind, dann ist auch f : N n → N mit f(x) = g(h 1 (x), . . . , h k (x))<br />
µ-rekursiv.<br />
- Wenn g µ-rekursiv ist, dann ist auch die Funktion µg µ-rekursiv.<br />
Satz 6.10 (µ-rekursive Funktionen = WHILE-berechenbar)<br />
Die Menge der µ-rekursive Funktionen entspricht genau der Menge der WHILE-berechenbaren<br />
Funktionen.