27.11.2014 Aufrufe

Automaten, Formale Sprachen und Berechenbarkeit I

Automaten, Formale Sprachen und Berechenbarkeit I

Automaten, Formale Sprachen und Berechenbarkeit I

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!