31.01.2014 Aufrufe

Skriptes - Uni Bremen - Universität Bremen

Skriptes - Uni Bremen - Universität Bremen

Skriptes - Uni Bremen - Universität Bremen

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.

Primitiv rekursive Funktionen und µ-rekursive Funktionen<br />

14. Primitiv rekursive Funktionen und µ-rekursive<br />

Funktionen<br />

Sowohl die LOOP-berechenbaren Funktionen als auch die WHILE-berechenbaren Funktionen<br />

lassen sich auch auf gänzlich andere Weise definieren, wobei nicht der Mechanismus<br />

der Berechnung, sondern die Funktion selbst in den Mittelpunkt gestellt wird.<br />

Genauer gesagt betrachten wir die Klasse der sogenannten primitiv rekursiven Funktionen,<br />

die sich als identisch zu den LOOP-berechenbaren Funktionen herausstellen, und die<br />

Klasse der µ-rekursiven Funktionen, die sich als identisch zu den WHILE-berechenbaren<br />

Funktionen herausstellen. Beide Klassen waren historisch unter den ersten betrachteten<br />

Berechnungsmodellen und spielen in der Theorie der Berechenbarkeit und der Komplexitätstheorie<br />

noch heute eine wichtige Rolle. Insbesondere kann man sie als mathematisches<br />

Modell von funktionalen Programmiersprachen auffassen. Auch in diesem Kapitel<br />

betrachten wir ausschliesslich k-stellige Funktionen f : Æ k → Æ.<br />

Primitiv Rekursive Funktionen<br />

Die Klasse der primitiv rekursiven Funktionen besteht aus den Funktionen, die man aus<br />

den folgenden Grundfunktionen durch Anwenden der folgenden Operationen erhält.<br />

Grundfunktionen:<br />

1. Konstante Nullfunktionennull k beliebiger Stelligkeitk ≥ 0, also z.B. die dreistellige<br />

Funktion null 3 mit null 3 (x 1 ,x 2 ,x 3 ) = 0 für alle x 1 ,x 2 ,x 3 .<br />

2. Projektionsfunktionen proj k→i beliebiger Stelligkeit k auf das i-te Argument, 1 ≤<br />

i ≤ k, z.B. die dreistellige Funktion proj 3→1 für die Projektion auf das erste Argument,<br />

also proj 3→1 (x 1 ,x 2 ,x 3 ) = x 1 für alle x 1 ,x 2 ,x 3 .<br />

3. Die einstellige Nachfolgerfunktion succ.<br />

Operationen:<br />

1. Komposition (Einsetzung) von Funktionen.<br />

Genauer gesagt entsteht eine k-stellige Funktion f aus k-stelligen Funktionen<br />

h 1 ,...,h n unter Anwendung eine n-stelligen Funktion g wenn<br />

2. Primitive Rekursion.<br />

f(x 1 ,...,x k ) = g(h 1 (x 1 ,...,x k ),...,h n (x 1 ,...,x k ))<br />

Primitive Rekursion bedeutet hier einen rekursiven Abstieg über das erste Funktionsargument,<br />

also darf f(n + 1,...) definiert werden unter Verwendung von<br />

f(n,...). Um das etwas präziser zu machen sei g eine k-stellige Funktion und<br />

115

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!