Grundlagen der Theoretischen Informatik II

Ähnliche Dokumente
1.3 Primitiv rekursive und µ-rekursive Funktionen

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

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

Primitiv rekursive und µ-rekursive Funktionen

Theoretische Informatik SS 03 Übung 5

Einführung in die Theoretische Informatik

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Einführung in die Theoretische Informatik

LOOP-Programme: Syntaktische Komponenten

Theoretische Informatik II

Falls H die Eingabe verwirft, so wissen wir, dass M bei Eingabe w nicht hält. M hält im verwerfenden Haltezustand. Beweis:

Primitiv rekursive Funktionen

Nachklausur zur Vorlesung

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:

Einführung in die Theoretische Informatik

Typen von Programmiersprachen

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Einführung in die Theoretische Informatik

8. Rekursive und primitiv rekursive Funktionen

Grundlagen der Programmierung

1.5 Turing-Berechenbarkeit

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

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

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

1.5 Turing-Berechenbarkeit

Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11)

Berechenbarkeit und Komplexität

6.2 µ-rekursive Funktionen R p (N) (partiell rekursive Funktionen)

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Probleme über Sprachen. Teil II.

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -

Überblick. 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Boolsche Algebra

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

Mitschrift BFS WS 13/14

Grundlagen der Theoretischen Informatik

7. Beispiele primitiv rekursiver Funktionen

Unentscheidbarkeitssätze der Logik

GOTO simuliert Turingmaschinen

1.4 Die Ackermannfunktion

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

Definition der Kolmogorov-Komplexität I

Programmieren für Fortgeschrittene

ALP I Rekursive Funktionen

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

3. Klausur Einführung in die Theoretische Informatik Seite 1 von Welches der folgenden klassischen Probleme der Informatik ist entscheidbar?

Theorie der Informatik

Berechenbarkeits- und Komplexitätstheorie

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen der Informatik

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

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

Grundlagen der Theoretischen Informatik

Nachklausur zur Vorlesung Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik. Inhalte der Lehrveranstaltung. Definition (Boolesche Algebra) Einführung in die Logik

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

Übungen zum Vorkurs Mathematik für Studienanfänger Ein leeres Produkt ist gleich 1, eine leere Summe 0. ***

Übungen zum Vorkurs Mathematik für Studienanfänger Ein leeres Produkt ist gleich 1, eine leere Summe 0. ***

Berechenbarkeit. Script, Kapitel 2

Theoretische Informatik SS 03 Übung 3

Mathematische Rekursion

Berechenbarkeit/Entscheidbarkeit

Numerische Verfahren und Grundlagen der Analysis

2 Mengen, Relationen, Funktionen

Theoretische Informatik 1

Kapitel 5. Entscheidbarkeit und Berechenbarkeit. 5.1 Entscheidbarkeit

Übungen zum Vorkurs Mathematik für Studienanfänger Ein leeres Produkt ist gleich 1, eine leere Summe 0. ***

Primitive Rekursion. Alexander Hölzle

Einführung in die Theoretische Informatik

Einführung in die Informatik I

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Beispiel einer nicht berechenbaren Funktion: Busy Beaver

Einführung in die Informatik I

Einführung in die Informatik 2

Vortrag 20: Kurze Vektoren in Gittern

Grundlagen der Theoretischen Informatik

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

Übungen zum Vorkurs Mathematik für Studienanfänger 2009 ***

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

1. Welche der folgenden Aussagen zur Verifikation nach Hoare ist richtig?

Endliche Automaten können wahlweise graphisch oder tabellarisch angegeben werden.

Grundlagen: Algorithmen und Datenstrukturen

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

2. Schriftliche Leistungskontrolle

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

Einführung in die mathematische Logik

Semantik von Programmiersprachen SS 2017

Grundlagen der Theoretischen Informatik

Analysis für Informatiker

Theoretische Informatik

Grundlagen der Theoretischen Informatik

Einführung in die mathematische Logik

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Theoretische Informatik Mitschrift

Theoretische Informatik II

Berechenbarkeit und Komplexität Vorlesung 11

Inhalt Kapitel 2: Rekursion

Grundlagen der Theoretischen Informatik

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Grundlagen der Informatik Kapitel 19. Harald Krottmaier Sven Havemann

Primitiv rekursive und µ-rekursive Funktionen

Theorie der Informatik

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep

Transkript:

1 Grundlagen der Theoretischen Informatik II Till Mossakowski Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg Sommersemester 2015

2 Prädikate Eine Funktion, die nur die Werte 0 und 1 annimmt, nennen wir Prädikat. Beispiele: iszero(0) = 1 iszero(m + 1) = 0 positive(0) = 0 positive(m + 1) = 1 greater than or equal(n, m) = iszero(minus(m, n))

3 Operationen auf Prädikaten Negation ( ): minus(1, p(n 1,...,n k )) Disjunktion ( ): positive(p(n 1,...,n k ) + q(n 1,...,n k )) Konjunktion ( ): p(n 1,...,n k ) q(n 1,...,n k ) Beispiel: equal(m, n) = greater than or equal(n, m) greater than or equal(m, n)

4 Funktionsdefinition durch endliche Fallunterscheidung { g(n1,...,n f (n 1,...,n k ) = k ) falls p(n 1,...,n k ) h(n 1,...,n k ) sonst f (n 1,...,n k ) = p(n 1,...,n k ) g(n 1,...,n k ) + ( p(n 1,...,n k )) h(n 1,...,n k )

5 Beispiel: Division (div) mit Rest (rem) rem(0, n) = 0 rem(m + 1,n) = { 0 f. equal(rem(m,n),pred(n)) rem(m,n) + 1 sonst div(0, n) = 0 div(m + 1,n) = { div(m,n) + 1 f. equal(rem(m,n),pred(n)) div(m, n) sonst

6 Weitere Beispiele für primitiv rekursive Funktionen: (m + 1)-niedrigstwertige Ziffer der Darstellung von n zur Basis p: digit(m,n, p) = div(rem(n, p m+1 ), p m ) Prädikat für Ungeradheit: odd(n) = digit(0,n,2)

7 Endliche Konjunktion und Disjunktion von Prädikaten q(n 1,..,n l,m) = p(n 1,..,n l,0) p(n 1,..,n l,1) p(n 1,..,n l,m) q(n 1,...,n l,0) = p(n 1,...,n l ), wobei p(n 1,...,n l ) = p(n 1,...,n l,0) q(n 1,...,n l,m + 1) = h(n 1,...,n l,m,q(n 1,...,n l,m)), wobei h(x 1,...,x l,y,z) = p(x 1,...,x l,succ(y)) z Analog: p(n 1,...,n l,0) p(n 1,...,n l,1) p(n 1,...,n l,m).

8 Beschränkte Existenzquantifizierung { 1 0 k n : p(n1,...,n q(n 1,...,n l,n) = l,k) = 1 0 sonst Beschränkte Allquantifizierung { 1 0 j n : p(n1,...,n q(n 1,...,n l,n) = l, j) = 1 0 sonst

9 Beschränkte Minimalisierung f (n 1,...,n l,b) = µ (m b)[g(n 1,...,n l,m) = 1] das kleinste m b, so dass g(n 1,...,n l,m) = 1 = falls ein solches m b existiert 0 sonst f (n 1,...,n l,0) = 0 f (n 1,...,n l,b + 1) b + 1 falls g(n 1,...,n l,0) 1 f (n 1,...,n l,b) = 0 = g(n 1,...,n l,b + 1) = 1 f (n 1,...,n l,b) sonst

10 Beispiel: Fibonacci-Zahlen 0 1 1 2 3 5 8 13 21 34 55 89... F(0) = 0 F(1) = 1 F(n) = F(n 1) + F(n 2) G(0) = c(0, 1) G(n + 1) = h(n, G(n)), wobei h(x, z) = c(r(z), r(z) + l(z)) wobei l(c(n 1,n 2 )) = n 1 und r(c(n 1,n 2 )) = n 2. F(n) = l( G(n) )

11 c, l und r: Jede natürliche Zahl n besitzt eine eindeutige Primfaktorzerlegung p e 1 1 pe 2 2 pe k k Die Zahl e i heißt der Exponent von p i in der Primfaktorzerlegung von n. Sei der Exponent von p in der Primfaktorzerlegung primexp(n, p) = von n, falls p eine Primzahl ist 0 sonst c(n 1,n 2 ) = 2 n1 3 n 2 l(n) = primexp(n,2) r(n) = primexp(n,3)

12 µ-rekursive Funktionen Unbeschränkte Minimalisierung Seien k 0 und g eine (k + 1)-stellige Funktion. Wir definieren eine k-stellige partielle Funktion f (n 1,...,n k ) durch µ m[g(n 1,...,n k,m) = 0] das kleinste m, so dass g(n 1,...,n k,m) = 0 = falls ein solches m existiert undefiniert sonst f = µ(g)

13 Definition: Eine Funktion g : N k+1 0 N 0 heißt regulär, falls das folgende Verfahren für alle n 1,...,n k N 0 terminiert: 1 m 0 2 while (g(n 1,...,n k,m) 0) 3 do m m + 1 4 return m

Definition: Eine Funktion heißt µ-rekursiv, falls sie zu den Basisfunktionen gehört oder aus diesen durch endlich viele Anwendungen von Substitution und primitiver Rekursion und endlich viele Anwendungen der unbeschränkten Minimalisierung auf reguläre Funktionen erzeugt werden kann. 14

15 Partielle µ-rekursive Funktionen Unbeschränkte Minimalisierung Sei g eine (k + 1)-stellige partielle Funktion. Wir definieren eine k-stellige partielle Funktion f (n 1,...,n k ) = µ m[g(n 1,...,n k,m) = 0] wie folgt: f (n 1,...,n k ) = n falls (1) g(n 1,...,n k,i) ist für alle 0 i n definiert und (2) g(n 1,...,n k,n) = 0 und (3) g(n 1,...,n k,i) 0 für alle 0 i < n Falls kein solches n existiert, so ist f (n 1,...,n k ) undefiniert. f = µ(g)

Definition: Eine partielle Funktion heißt µ-rekursiv, falls sie zu den Basisfunktionen gehört oder aus diesen durch endlich viele Anwendungen von Substitution, primitiver Rekursion und unbeschränkter Minimalisierung erzeugt werden kann. 16

Grammatikberechenbarkeit 17 Definition: Sei G = (V,Σ,R,S) eine Grammatik und sei f : Σ Σ eine Funktion. G berechnet f, falls für alle v,w Σ gilt: SwS G v genau dann wenn v = f (w) Die Funktion f heißt dann durch eine Grammatik berechenbar.

18 Definition: Eine partielle Funktion f : N k 0 N 0 heißt durch eine Grammatik berechenbar, falls es eine Grammatik G = (V,{0,1,#,...},R,S) gibt, so dass für alle n 1,n 2,...,n k,m N 0 gilt f (n 1,n 2,...,n k ) = m g.d.w. S bin(n 1 )#bin(n 2 )#...#bin(n k ) S G bin(m)

19 Beispiel: succ : N 0 N 0 G = ({S,C,F},{0,1,#},R,S) R: 0S 0C 1S 1C 0C F1 1C C0 1F F1 0F F0 SC 1 SF ε S101S G S101C G S10C0 G S1F10 G SF110 G 110

Äquivalenz der Berechenbarkeitsbegriffe 20 Satz: Eine partielle Funktion f : N k 0 N 0 ist Turing- berechenbar genau dann wenn sie eine partielle µ-rekursive Funktion ist genau dann wenn sie eine while-berechenbare partielle Funktion ist genau dann wenn sie eine durch eine Grammatik berechenbare partielle Funktion ist.