ALP I Rekursive Funktionen

Ähnliche Dokumente
ALP I Primitiv-Rekursive Funktionen

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

Mächtigkeit von WHILE-Programmen

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Theorie der Informatik

Typen von Programmiersprachen

Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen

Primitiv rekursive und µ-rekursive Funktionen

Theoretische Informatik II

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -

Primitiv rekursive Funktionen

Funktionale Programmierung ALP I. Kombinatorische Logik (CL) SS Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Rekursive Funktionen Basisfunktionen

Primitiv rekursive und µ-rekursive Funktionen

Theorie der Informatik

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

1.3 Primitiv rekursive und µ-rekursive Funktionen

Einführung in die Theoretische Informatik

Theoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:...

GOTO simuliert Turingmaschinen

Theoretische Informatik II

Theoretische Informatik II

ALP I Turing-Maschine

Einführung in die Informatik I

Die primitiv rekursiven Funktionen

Mächtigkeit von WHILE-Programmen

Primitive Rekursion. Alexander Hölzle

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

Berechenbarkeit und Komplexität Vorlesung 11

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

VL-11: Primitiv rekursive Funktionen. (Berechenbarkeit und Komplexität, WS 2018) Gerhard Woeginger

Theoretische Informatik II

Grundlagen der Programmierung

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

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme

Theoretische Informatik II

Berechenbarkeits- und Komplexitätstheorie

Rekursive und primitiv-rekursive Funktionen

ALP I Turing-Maschine

Berechenbarkeit und Komplexität Vorlesung 10

Nachklausur zur Vorlesung

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme

Theoretische Informatik

Proseminar Theoretische Informatik - WS07/08 - Prof. Helmut Alt. I. Einleitung Berechnungsmodelle LOOP, WHILE, GOTO, rekursive Funktionen

Universität Hannover Fakultät für Elektrotechnik und Informatik Institut für Theoretische Informatik. Thema: von. Paul Krüger

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

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

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

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

Einführung in die Theoretische Informatik Tutorium IX

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

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

Grundbegriffe der mathematischen Logik

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

Einführung in die Theoretische Informatik

Induktive Beweise und rekursive Definitionen

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Kapitel III. Aufbau des Zahlensystems

LOOP-Programme: Syntaktische Komponenten

Theoretische Informatik SS 03 Übung 5

Induktive Beweise und rekursive Definitionen

Informatik Rechnerinterne Vorgänge: Programmstrukt. (Lsg.) Gierhardt

Funktionale Programmierung ALP I. Funktionen höherer Ordnung SS Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Grundlagen der Theoretischen Informatik II

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Die primitiv rekursiven Funktionen

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Programmierung und Modellierung

Primitiv rekursive Codier- und Decodierfunktionen

Theoretische Informatik SS 03 Übung 4

THEORETISCHE INFORMATIK UND LOGIK

Turing-Maschinen: Ein abstrakes Maschinenmodell

Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen

Syntax von LOOP-Programmen

Die Church-Turing-These

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Mitschrift BFS WS 13/14

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Kapitel 3: Berechnungstheorie Gliederung

Theoretische Informatik 1

Aufbau der natürlichen, ganzen, rationalen und surrealen Zahlen

Logik und Beweisbarkeit

Grundlagen der Theoretischen Informatik: Übung 10

Logische Grundlagen der Mathematik, WS 2014/15

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Einführung in die mathematische Logik

Algorithmen und Datenstrukturen (für ET/IT)

Einführung in die Theoretische Informatik A Lösungshinweise zur Klausur am

Einführung in die mathematische Logik

Satz von Rice. Lemma 39

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr

THEORETISCHE INFORMATIK UND LOGIK

Grundlagen der Programmierung (Vorlesung 24)

Transkript:

ALP I Rekursive Funktionen SS 2011

Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle Text λ-kalkül Kombinatorische Logik Allgemein rekursive Funktionen Register Maschinen Turing- Maschine While- Programme µ-rekursive Funktionen ALP II Theoretische Informatik I GOTO- Programme equiv. primitiv-rekursive Funktionen

Alle Beispiele, die wir in den letzten zwei Vorlesungen diskutiert haben, sind Beispiele aus der Menge der sogenannten primitiv-rekursiven Funktionen PR. Die primitiv-rekursiven Funktionen sind die einfachste Klasse von rekursiven Funktionen. Die PR-Funktionen sind eine Untermenge der Effektiv Berechenbaren Funktionen. Das bedeutet, es gibt rekursive Funktionen, die berechenbar sind aber nicht primitiv-rekursiv sind.

Motiviert von D. Hilbert haben vor allem K. Gödel (1906-1978) und Rózsa Péter (1905-1977) sich mit der Theorie der rekursiven Funktionen auseinandergesetzt sowie diese stark geprägt. Was kann alles mit primitiv-rekursiven Funktionen berechnet werden? Gibt es ein allgemeines Schema zur Definition beliebiger berechenbarer Funktionen?

(PR) Das Schema zur Definition beliebiger primitiv-rekursiver Funktionen besteht aus folgenden drei Hauptteilen: 1. Eine Reihe von Grundfunktionen. 2. Ein Ersetzungsmechanismus zur Definition von Funktionen ohne Rekursion (Funktionskomposition). 3. Ein Mechanismus zur Definition von primitivrekursiven Funktionen mit Rekursion (PR).

(PR) Die Klasse der PR-Funktionen N m N wird wie folgt induktiv definiert. I Grundfunktionen II Kompositionsschema III Rekursionsschema

I Grundfunktionen 1. Die Nullfunktion Z : N m N ist primitiv rekursiv Z(x 1,,x m ) = 0 2. Die Nachfolgerfunktion S : N N ist primitiv rekursiv S(n) = n+1 3. Die Projektionsfunktionen definiert durch π m i : N m N π m i (x 1,,x i,,x m ) = x i, 1 i m sind primitiv-rekursiv Beispiel: π 3 (a, b, c) = b 2

II Kompositionsschema Die Funktionskomposition ist primitiv-rekursiv. Das bedeutet, für alle primitiv-rekursiven Funktionen f : N m N und g 1,, g m : N n N ist die Funktion C : N n N, definiert durch C (x 1,...,x n ) = f (g 1 ( x 1,...,x n ),, g m ( x 1,...,x n )) auch primitiv rekursiv.

III Rekursionsschema Jede Funktion, die sich durch primitive Rekursion (Induktion) aus primitiv-rekursiven Funktionen definieren lässt, ist auch primitivrekursiv. Das bedeutet: Wenn g : N m N und h : N m+2 N primitiv-rekursive Funktionen sind, dann ist die folgende (induktiv definierte) Funktion R : N m+1 N R (0, x 1,...,x m ) = g(x 1,...,x m ) R (S(n), x 1,...,x m ) = h( R(n, x 1,...,x m ), n, x 1,...,x m ) ebenfalls primitiv rekursiv. S = Nachfolgerfunktion

Eine konstante Funktion, die eine beliebige Zahl n in der Konstante 3 abbildet, sieht wie folgt aus: k3 : N N k3 ( m ) = S(S(S(Z(m)))) = 3 Die Identitätsfunktion kann wie folgt definiert werden: id : N N id ( m ) = π 1 1 (m) = m

Können wir die Additionsfunktion auf eine Definition, die nur aus primitiv-rekursiven Funktionen besteht, zurückführen? aus I, II und III: add : N 2 N add 0 m add ( 0, m ) = m add (n+1) m = (add n m) +1 = g(m) add ( S(n), m ) = h(add (n, m), n, m) g und h müssen primitivrekursiv sein add ( 0, m ) = add ( S(n), m ) = π 1 (m) 1 S(π 3 (add (n, m), n, m)) 1

Vorgänger-Funktion: pred : N N Weil die primitiv-rekursiven Funktionen nur über die natürlichen Zahlen definierbar sind, wird der Vorgänger von 0 als gleich 0 definiert. pred 0 = 0 pred (n+1) = n pred ( 0 ) = g () pred ( S(n) ) = h (pred (n), n) pred ( 0 ) = Z () pred ( S(n) ) = π 2 ( pred (n), n ) 2

Die Multiplikation kann rekursiv über die Addition definiert werden. mult 0 m = 0 mult (n+1) m = (mult n m ) + m mult ( 0, m ) = g ( m ) mult ( S(n), m ) = h (mult (n, m), n, m) mult ( 0, m ) = Z ( m ) mult(s(n), m) = add (π 3 (mult(n, m),n,m), π 3 (mult (n,m),n,m)) 1 3

Eine mögliche Definition der Subtraktion sieht wie folgt aus: sub m 0 = m sub m n = pred (sub m (pred n)) sub 2 1 => pred (sub 2 (pred 1)) => pred (sub 2 0) => pred 2 => 1 sub 1 2 => pred (sub 1 (pred 2)) => pred (sub 1 1) => pred (pred (sub 1 0)) => pred (pred 1) => pred 0 => 0 Eine primitiv-rekursive Definition der Subtraktion sieht wie folgt aus: sub (0, m ) = π 1 (m) 1 sub (S(n), m) = pred (π 3 (sub(n, m),n,m)) 1

weitere Beispiele an der Tafel...