1.3 Primitiv rekursive und µ-rekursive Funktionen

Ähnliche Dokumente
Primitiv rekursive und µ-rekursive Funktionen

Primitiv rekursive und µ-rekursive Funktionen

Mitschrift BFS WS 13/14

1.4 Die Ackermannfunktion

Primitiv rekursive Funktionen

Def.: Die Menge der LOOP-Programme ist induktiv wie folgt definiert:

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

Theorie der Informatik Einleitung. Theorie der Informatik Basisfunktionen und Einsetzung Primitive Rekursion. 14.

Theoretische Informatik II

8. Rekursive und primitiv rekursive Funktionen

Primitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

Theoretische Informatik SS 03 Übung 5

Grundlagen der Theoretischen Informatik II

Theorie der Informatik

LOOP-Programme 1. Def (Meyer/Ritchie). LOOP-Programme werden induktiv aufgebaut aus den (Basis-) Anweisungen. Führe P X-mal aus ) LOOP-Programme 2

6. Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

ALP I Rekursive Funktionen

GTI. Hannes Diener. 18. Juni. ENC B-0123,

Primitive Rekursion. Alexander Hölzle

Theorie der Informatik (CS206) Fortsetzung LOOP-Programme, primitiv-rekursive Funktionen

Berechenbarkeits- und Komplexitätstheorie

6. REKURSIVE FUNKTIONEN Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008

Programmieren für Fortgeschrittene

LOOP-Programme: Syntaktische Komponenten

Einführung in die Theoretische Informatik

Rekursive Funktionen Basisfunktionen

Aufgabentypen: Spickerblatt: kontextfrei (Typ 2): zusätzlich: u ist eine!"# v 1

Rekursive und primitiv-rekursive Funktionen

GTI. µ-rekursive Funktionen. Hannes Diener. 20. Juni 2. Juli. ENC B-0123,

4 Messbare Funktionen

Aufgaben und Lösungen Ausarbeitung der Übungsstunde zur Vorlesung Analysis I

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik SS 03 Übung 3

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen?

Automaten, Formale Sprachen und Berechenbarkeit I Wichtige Begriffe

Die primitiv rekursiven Funktionen

Kapitel 1. Grundlagen

Unterlagen zur Veranstaltung Algorithmen, Komplexität, Formale Sprachen WS 2005//06. Prof. Dr. R. Reischuk Institut für Theoretische Informatik

Theoretische Informatik SS 03 Übung 4

Einführung in die Informatik I

Kapitel 1. Grundlagen Mengen

Übung zur Vorlesung Berechenbarkeit und Komplexität

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Referat rekursive Mengen vs. rekursiv-aufzählbare Mengen

Logik für Informatiker. 1. Grundlegende Beweisstrategien. Viorica Sofronie-Stokkermans Universität Koblenz-Landau

Theoretische Informatik und Logik

Syntax von LOOP-Programmen

Die Church-Turing-These

σ-algebren, Definition des Maßraums

Einführung in Berechenbarkeit, Komplexität und Formale Sprachen

Terme. Dann ist auch f(t 1. Terme. Dann ist P (t 1

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

LOOP-Programme: Syntaktische Komponenten

Zusammenfassung Grundzüge der Informatik 4

(P3 ) Ist M D mit d M und S(M) M, dann gilt M = D.

Kapitel III. Aufbau des Zahlensystems

Lösungen der Übungsaufgaben von Kapitel 3

Die Ackermannfunktion

Mächtigkeit von WHILE-Programmen

Theoretische Informatik

TECHNISCHE UNIVERSITÄT MÜNCHEN

Theoretische Informatik 1

Mitschrift Mathematik, Vorlesung bei Dan Fulea, 2. Semester

Elemente der Algebra und Zahlentheorie Musterlösung, Serie 3, Wintersemester vom 15. Januar 2006

Unvollständigkeit der Arithmetik

2. Universelle Algebra

Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen

5 Stetigkeit und Differenzierbarkeit

Logik Vorlesung 10: Herbrand-Theorie

Wir haben eine Beziehung zwischen entscheidbar und rekursiv aufzählbar hergeleitet.

Technische Universität München Zentrum Mathematik. Übungsblatt 12

6.5 Die Taylor-Reihe. Start: Erinnerung an den Satz über die geometrische Reihe. Für die endliche geometrische Reihe gilt die Summenformel

Kapitel 1 Natürliche Zahlen

Berechenbarkeitsmodelle

2 Zufallsvariable, Verteilungen, Erwartungswert

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008

Berechenbarkeit/Entscheidbarkeit

Theoretische Grundlagen des Software Engineering

Grundlagen der Theoretischen Informatik

6 Polynominterpolation

Übung Theoretische Grundlagen

Gewöhnliche inhomogene Differentialgleichungen der 1. und 2. Ordnung. Christopher Schael

10 Extremwerte mit Nebenbedingungen

Stetigkeit. Definitionen. Beispiele

A N A L Y S I S I F Ü R T P H, U E ( ) 1. Übungstest (FR, ) (mit Lösung )

Surjektive, injektive und bijektive Funktionen.

Kapitel 10. Lineare Abbildungen Definition linearer Abbildungen Eigenschaften und Beispiele Alle linearen Abbildungen R n V Bild von Unterräumen

ε δ Definition der Stetigkeit.

WS 2009/10. Diskrete Strukturen

WURZEL Werkstatt Mathematik Polynome Grundlagen Teil II

WS 2009/10. Diskrete Strukturen

Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

DIE SÄTZE VON SCHUR-ZASSENHAUS UND P. HALL

1 Konvexe Funktionen. 1.1 Definition. 1.2 Bedingung 1.Ordnung. Konvexität und Operationen, die die Konvexität bewahren Seite 1

WS 2009/10. Diskrete Strukturen

18 Höhere Ableitungen und Taylorformel

Transkript:

Definition 1.11 Die Klasse der primitiv rekursiven Funktionen (a) Basisfunktionen: (1.) die konstanten Funktionen c (c N) (2.) die Projektionen Π m i (x 1,...,x m ) = x i (1 i m) (3.) die Nachfolgerfunktion s(n) = n + 1 (b) Abschlusseigenschaften: (4.) Komposition: g : N k N, h 1,...,h k : N m N : f(x 1,...,x m ) = g(h 1 (x 1,...,x m ),...,h k (x 1,...,x m )) (5.) Primitive Rekursion: g : N k N, h : N k+2 N : f(0, x 1,...,x k ) = g(x 1,...,x k ) f(n+1, x 1,...,x k ) = h(f(n, x 1,...,x k ), n, x 1,...,x k ) Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 45 / 309

Alle primitiv rekursiven Funktionen sind total und (intuitiv) berechenbar. Frage: Sind dies genau die totalen und berechenbaren Funktionen? Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 46 / 309

Beispiele: (1.) add : N 2 N : add(0, x) = x (= Π 1 1 (x)) add(n+1, x) = s(add(n, x))(= s(π 3 1 (add(n, x), n, x))) (2.) mult : N 2 N : mult(0, x) = 0 mult(n+1, x) = add(mult(n, x), x) = h(mult(n, x), n, x) mit h(u, v, w) = add(π 3 1 (u, v, w),π3 3 (u, v, w)) (3.) Ist f(v, w, x, y) prim. rek., so auch g(a, b, c) = f(b, b, c, a), denn: g(a, b, c) = f(π 3 2 (a, b, c),π3 2 (a, b, c),π3 3 (a, b, c),π3 1 (a, b, c)). Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 47 / 309

(4.) u(n) = max(n 1, 0) : u(0) = 0 u(n+1) = n (5.) sub(x, 0) = x sub(x, y + 1) = u(sub(x, y)) (= Π 2 2 (u(n), n)) Dann: sub(x, y) = max(x y, 0) = x y. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 48 / 309

(6.) ( ) n 2 = n(n 1) 2 : ( 0 ( 2) = 0, n+1 ) ( 2 = n ) 2 + n (7.) c : N 2 N : c(x, y) = ( x+y+1) ( 2 + x = add( s(add(x,y)) ),Π 2 1 (x, y)) x y 0 1 2 3 4 5 2 0 0 2 5 9 14 20 1 1 4 8 13 19 26 2 3 7 12 18 25 33 3 6 11 17 24 32 41 4 5 10 16 23 31 40 50 15 22 30 39 49 60 c ist Bijektion von N 2 auf N. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 49 / 309

Verallgemeinerung,..., : N k+1 N : n 0, n 1,...,n k := c(n 0, c(n 1,...,c(n k, 0)...)) Seien e, f : N N die Umkehrfunktionen zu c: e(c(x, y)) = x, f(c(x, y)) = y, c(e(n), f(n)) = n. Dann : d 0 (n) = e(n) d 1 (n) = e(f(n)). d k (n) = e(f(f(...f(n)...))) }{{} k-mal Es gilt: d i ( n 0, n 1,...,n k ) = n i (0 i k). Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 50 / 309

Lemma 1.12 Die Funktionen e und f sind primitiv rekursiv. P N ˆ= Prädikat P(n) n P gdw. P(n) gilt. Charakteristische { Funktion zu P: 1 falls P(n) χ P (n) = 0 sonst Definition P(n) ist prim. rekursiv gdw. χ P ist prim. rekursiv. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 51 / 309

Beschränkter max-operator: q(n) := max{ x n P(x)} := max({ x x n und P(x)} {0}). Lemma 1.13 Mit P ist auch q primitiv rekursiv. Beweis: q(0) = 0 { n+1 falls P(n+1) q(n+1) = q(n) sonst = q(n)+χ P (n+1) ((n+1) q(n)). Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 52 / 309

Beschränkter Existenzquantor: Q(n) gdw. x n : P(x) Dann : Q(0) gdw. P(0) Q(n+1) gdw. d.h. χ Q (0) = χ P (0) P(n+1) oder Q(n) χ Q (n+1) = χ P (n+1)+χ Q (n) χ P (n+1) χ Q (n) Lemma 1.14 Mit P ist auch Q primitiv rekursiv. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 53 / 309

Beweis zu e, f sind primitiv rekursiv: e (n, m, k) := max{ x n y k : c(x, y) = m} Beh. e ist primitiv rekursiv. Bew.: Definiere P(x, y, m) gdw. c(x, y) = m. Dann gilt: χ P (x, y, m) = 1 ((c(x, y) m)+(m c(x, y))), d.h., P ist primitiv rekursiv. Definiere Q(x, k, m) gdw. y k : c(x, y) = m gdw. y k : P(x, y, m). Q ist primitiv rekursiv nach Lemma 1.14. e (n, m, k) = max{ x n Q(x, k, m)}, also ist e primitiv rekursiv nach Lemma 1.13. Es gilt e (n, n, n) = max{ x n y n : c(x, y) = n} = e(n). f (n, m, k) := max{ y n x k : c(x, y) = m} Dann: f (n, n, n) = f(n). Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 54 / 309

Satz 1.15 Die Klasse der primitiv rekursiven Funktionen stimmt mit der Klasse der LOOP-berechenbaren Funktionen überein. Beweis: : Sei F : N r N LOOP-berechenbar. Es gibt ein LOOP-Programm P, das F berechnet. P enthalte die Variablen x 0, x 1,...,x k (k r). Behauptung: Es gibt eine prim. rekursive Funktion g P : N N: g P ( a 0, a 1,...,a k ) = b 0, b 1,...,b k, wobei a 0, a 1,...,a k die Werte von x 0, x 1,...,x k beim Start und b 0, b 1,...,b k die Werte von x 0, x 1,...,x k beim Halt von P sind. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 55 / 309

Beweis Induktion über den Aufbau von P: (i) x i := x j ± c g P (n) = d 0 (n),...,d i 1 (n), d j (n)±c, d i+1 (n),...,d k (n) (ii) Q; R g P (n) = g R (g Q (n)) (iii) LOOP x i DO Q END g P (n) = h(d i (n), n) mit h(0, x) = x h(n+1, x) = g Q (h(n, x)) d.h. h(n, x) = g Q (g Q (...(g }{{ Q (x))...) } n-mal Nun gilt: F(n 1,...,n r ) = d 0 (g P ( 0, n 1,...,n r, 0,...,0 )). }{{} k r Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 56 / 309

: Sei F primitiv rekursiv. Behauptung: Es gibt ein LOOP-Programm, das F berechnet. Beweis: Ind. über den Aufbau von F: (i) Basisfunktionen : LOOP-berechenbar. (ii) F(n 1,...,n m ) = g(h 1 (x 1,...,x m ),...,h k (x 1,...,x m )): P F aus P g und P h1,...,p hk. (iii) F(0, x 1,...,x r ) = g(x 1,...,x r ) F(n+1, x 1,...,x r ) = h(f(n, x 1,...,x r ), n, x 1,...,x r ) P F : y := g(x 1,...,x r ); ( mit P g ) k := 0; LOOP n DO y := h(y, k, x 1,...,x r );( mit P h ) k := k + 1 END Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 57 / 309

Definition 1.16 (µ-operator) Sei f : N k+1 N. Definiere g : N k N durch Anwendung des µ-operators auf f: g(x 1,...,x k ) = min{ n f(n, x 1,...,x k ) = 0 und m < n : f(m, x 1,...,x k ) N} Dabei: min := undefiniert. Bezeichnung: g = µf. Beispiel: f(x, y) = 1. Dann: g(y) := µf(y) = min{ n f(n, y) = 0} = Ω (undef. Funktion) Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 58 / 309

Beispiel: f(x, y) = (y + 1) (x + 1) 2. g(y) = µf(y) = min{ n f(n, y) = 0 und m < n : f(m, y) N} = min{ n (y + 1) (n+1) 2 = 0} : n = 0 : (y + 1) (n+1) 2 = y, also: g(0) = 0, n = 1 : (y + 1) (n+1) 2 = y 3, also: g(y) = 1 für 1 y 3, n = 2 : (y + 1) (n+1) 2 = y 8, also: g(y) = 2 für 4 y 8. Damit: g(y) := µf(y) = min{ n (n+1) 2 > y } = max{ n n 2 y } = y. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 59 / 309

Definition 1.17 Die Klasse der µ-rekursiven Funktionen (a) Basisfunktionen : konstante Funktionen, Π m i, s. (b) Abschluss: Komposition, prim. Rekursion, µ-operator. Satz 1.18 Die Klasse der µ-rekursiven Funktionen stimmt mit der Klasse der WHILE-berechenbaren Funktionen überein. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 60 / 309

Beweis: Es bleibt, den µ-operator und die WHILE-Schleife zu betrachten. : WHILE-Programm: WHILE x i 0 DO Q END Die Funktion h(n, x) liefert den Zustand der Programmvariablen x = x 0,...,x k nach n Ausführungen von Q. Dann: g P (x) = h(µ(d i h)(x), x), wobei µ(d i h)(x) = min{ n d i h(n, x) = 0 und m < n : d i h(m, x) N}. Mit h ist dann g P µ-rekursiv. : Sei g(x) = µf(x). Nach I.V. gibt es ein WHILE-Programm für f. P g : x 0 := 0; y := f(0, x 1,...,x k ); WHILE y 0 DO x 0 := x 0 + 1; y := f(x 0, x 1,...,x k ); END Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 61 / 309

Satz 1.19 (Kleene) Für jede n-stellige µ-rekursive Funktion f gibt es zwei (n+1)-stellige, primitiv rekursive Funktionen p und q, sodass sich f wie folgt darstellen lässt: f(x 1,...,x n ) = p(x 1,...,x n,µq(x 1,...,x n )). Beweis: Sei f µ-rekursiv. WHILE-Programm, das f berechnet WHILE-Programm mit nur einer WHILE-Schleife, das f berechnet prim. rek. Funktionen p und q, die f wie oben darstellen. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 62 / 309