Primitiv rekursive und µ-rekursive Funktionen

Größe: px
Ab Seite anzeigen:

Download "Primitiv rekursive und µ-rekursive Funktionen"

Transkript

1 Primitiv rekursive und µ-rekursive Funktionen Loop-, While- und Goto-Programme sind vereinfachte imperative Programme und stehen für imperative Programmiersprachen, bei denen Programme als Folgen von Befehlen aufgefaßt werden. Parallel dazu gibt es jedoch auch funktionale Programme, deren Hauptbestandteil die Definition rekursiver Funktionen ist. Es gibt auch Berechnungsbegriffe, die sich eher an funktionalen Programmen orientieren. Zum Beispiel: λ-kalkül (Alonzo Church, 1932) µ-rekursive und primitiv rekursive Funktionen (werden hier in der Vorlesung betrachtet) 105

2 Primitiv rekursive Funktionen Wir definieren nun Klassen von (totalen) Funktionen der Form f : N k N. Definition primitiv rekursive Funktionen Die Klasse der primitiv rekursive Funktionen ist induktiv wie folgt definiert: Alle konstanten Funktionen der Form k m : N N : n m (für ein festes m N) sind primitiv rekursiv. Alle Projektionen der Form π k i : N k N : (n 1,..., n k ) n i sind primitiv rekursiv. Die Nachfolgerfunktion s : N N : n n + 1 ist primitiv rekursiv. Wenn g : N k N und f 1,..., f k : N r N primitiv rekursiv sind, dann ist auch die Abbildung f : N r N mit f (n 1,..., n r ) = g(f 1 (n 1,..., n r ),..., f k (n 1,..., n r )) primitiv rekursiv (Einsetzung/Komposition), 106

3 Primitiv rekursive Funktionen Definition primitiv rekursive Funktionen (Fortsetzung) Jede Funktion f, die durch primitive Rekursion aus primitiv rekursiven Funktionen entsteht, ist primitiv rekursiv. Das heißt f : N k+1 N muss folgende Gleichungen erfüllen (für primitiv rekursive Funktionen g : N k N, h : N k+2 N): f (0, n 1,..., n k ) = g(n 1,..., n k ) f (n + 1, n 1,..., n k ) = h(f (n, n 1,..., n k ), n, n 1,..., n k ) Anschaulich: bei primitiver Rekursion wird die Definition von f (n + 1,... ) zurückgeführt auf f (n,... ). Das bedeutet, dass primitive Rekursion immer terminiert. Berechnungsmodell analog zu Loop-Programmen. 107

4 Primitiv rekursive Funktionen Beispiele für primitiv rekursive Funktionen: Additionsfunktion Die Funktion add : N 2 N : (m, n) m + n ist primitiv rekursiv. add(0, n) = n add(m + 1, n) = s(add(m, n)) Multiplikationsfunktion Die Funktion mult : N 2 N : (m, n) m n ist primitiv rekursiv. mult(0, n) = 0 mult(m + 1, n) = add(mult(m, n), n) 108

5 Primitiv rekursive Funktionen Dekrementierung Die Funktion dec : N N : n max(0, n 1) ist primitiv rekursiv. dec(0) = 0 dec(n + 1) = n Subtraktion Die Funktion sub : N 2 N : (m, n) max{0, m n} ist primitiv rekursiv. sub(m, 0) = m sub(m, n + 1) = dec(sub(m, n)) 109

6 Primitiv rekursive Funktionen Binomialkoeffizient Die Funktion N N : n ( n 2) ist primitiv rekursiv. ( ) 0 = 0 2 ( ) ( ) n + 1 n = + n 2 2 Durch Komposition folgt, dass auch die Abbildung ( ) m + n + 1 c : N 2 N : (m, n) m + 2 primitiv rekursiv ist. 110

7 Primitiv rekursive Funktionen Die Funktion c : N 2 N: m = n = Beachte: c(m, n) = m + m+n i=1 i. Die Abbildung c ist eine Bijektion von N 2 nach N (Paarungsfunktion). Die Funktion c kann verwendet werden, um beliebige (k + 1)-Tupel von natürlichen Zahlen durch eine Zahl zu kodieren: n 0 = c(n 0, 0) n 0, n 1,..., n k = c(n 0, n 1, n 2,..., n k ) Die Abbildung (n 0, n 1,..., n k ) n 0, n 1,..., n k ist dann auch primitiv rekursiv (für jedes feste k). 111

8 Primitiv rekursive Funktionen Es seien l : N N und r : N N die eindeutigen Funktionen mit: m, n N : l(c(m, n)) = m und r(c(m, n)) = n Wir werden nun zeigen, dass die Funktionen l und r ebenfalls primitiv rekursiv sind. Mit diesen lassen sich dann auch primitiv rekursive Dekodierfunktionen für kodierte (k + 1)-Tupel definieren, die d i ( n 0, n 1,..., n k ) = n i erfüllen: d 0 (n) = l(n) d 1 (n) = l(r(n)). d k (n) = l(r k (n)) 112

9 Primitiv rekursive Funktionen Definition beschränkter min-operator Sei P : N k+1 {0, 1} ein Prädikat und q : N k+1 N Funktion mit { 0 falls P(i, n) = 0 für alle 0 i n q(n, n) = min{i P(i, n) = 1} sonst. Dann sagen wir, daß q durch den beschränkten min-operator aus P hervorgeht. Lemma Wenn P primitiv rekursiv ist, dann ist auch q primitiv rekursiv. 113

10 Primitiv rekursive Funktionen Lemma Wenn P primitiv rekursiv ist, dann ist auch q primitiv rekursiv. Wir zeigen dies zunächst für die Funktion q : N k+1 N mit { q 0 falls P(i, n) = 0 für alle 0 i n (n, n) = min{i P(i, n) = 1} + 1 sonst q (0, n) = P(0, n) q (n + 1, n) = q (n, n) + (1 q (n, n)) P(n + 1, n) (n + 1) Es gilt q(n, n) = q (n, n) 1 114

11 Primitiv rekursive Funktionen Definition beschränkter Existenzquantor Seien P, Q : N k+1 {0, 1} Prädikate mit { 1 falls x n : P(x, n) = 1 Q(n, n) = 0 sonst. Dann sagen wir, daß Q durch den beschränkten Existenzquantor aus P hervorgeht. Lemma Wenn P primitiv rekursiv ist, dann ist auch Q primitiv rekursiv. Die Funktion q : N k+1 N mit { q 0 falls P(i, n) = 0 für alle 0 i n (n, n) = min{i P(i, n) = 1} + 1 sonst ist primitiv rekursiv und es gilt Q(n, n) = 1 (1 q (n, n)) 115

12 Primitiv rekursive Funktionen Nun können wir zeigen, dass die Umkehrfunktionen l und r von c : N 2 N primitiv rekursiv sind. Das Prädikat C : N 3 {0, 1} mit C(x, y, z) = 1 gdw. c(x, y) = z ist primitiv rekursiv: ( ) ( ) C(x, y, z) = 1 (c(x, y) z) 1 (z c(x, y)). Deshalb sind auch die Funktionen l und r mit primitiv rekursiv. Schließlich gilt: l (k, m, n) = min{x k y m : C(x, y, n) = 1} r (k, m, n) = min{y k x m : C(x, y, n) = 1} l(n) = l (n, n, n) und r(n) = r (n, n, n). 116

13 Primitiv rekursive Funktionen Lemma 20 (Loop-Programm primitiv rekursiv) Jede Loop-berechenbare Funktion f : N r N ist primitiv rekursiv. Beweis: Es gibt k r und ein Loop-Programm P, in dem keine Variable x i mit i k vorkommt, mit n 0,..., n r 1 N : f (n 0,..., n r 1 ) = π 0 ([P] k (n 0,..., n r 1, 0,..., 0)). Definiere die Funktion g P : N N mit n 0,..., n k 1 N : g P ( n 0,..., n k 1 ) = [P] k (n 0,..., n k 1 ). Wir werden zeigen, daß g P primitiv rekursiv ist. Wegen f (n 0,..., n r 1 ) = d 0 (g P ( n 0,..., n r 1, 0,..., 0 )) ist dann auch f primitiv rekursiv. 117

14 Primitiv rekursive Funktionen Fall 1. P = (x i := x j θd): g P (n) = d 0 (n),..., d i 1 (n), d j (n)θd, d i+1 (n),..., d k 1 (n) mit d = d = k d (n) falls d N und d = d l (n) falls d = x l. Fall 2. P = (Q; R): g P (n) = g R (g Q (n)). Fall 3. P = (Loop x i Do Q End): Definiere zunächst die primitiv rekursive Funktion h durch Dann gilt also h(n, m) = g n Q (m). Es gilt somit h(0, m) = m h(n + 1, m) = g Q (h(n, m)) g P (x) = h(d i (x), x). 118

15 Primitiv rekursive Funktionen Satz 21 (Loop-Programm primitiv rekursiv) Eine Funktion f : N r N ist genau dann Loop-berechenbar, wenn sie primitiv rekursiv ist. Es reicht die Implikation zu beweisen.durch Induktion über den Aufbau von f zeigen wir, dass f Loop-berechenbar ist. Fall 1: f ist eine der Basisfunktionen (konstante Funktionen, Projektionen, Nachfolgerfunktion). Dann ist f offensichtlich Loop-berechenbar. Fall 2: Es gibt primitiv rekursive Funktionen g, f 1,..., f k mit f (n 1,..., n r ) = g(f 1 (n 1,..., n r ),..., f k (n 1,..., n r )). Nach Induktionsvoraussetzung existieren Loop-Programme G, F 1,..., F k, die g, f 1,..., f k berechen. Dann berechnet das folgende Loop-Programm die Funktion f : 119

16 Primitiv rekursive Funktionen y 0 := x 0 ;... ; y r 1 := x r 1 ; (sichern der Argumente) F 1 ; z 0 := x 0 ; (jetzt gilt z 0 = f 1 (x 0,..., x r 1 )) x 0 := y 0 ;... ; x r 1 := y r 1 ; (rekonstruieren der Argumente) F 2 ; z 1 := x 0 ; (jetzt gilt z 1 = f 2 (x 0,..., x r 1 )). x 0 := y 0 ;... ; x r 1 := y r 1 ; (rekonstruieren der Argumente) F k ; z k 1 := x 0 ; (jetzt gilt z k 1 = f k (x 0,..., x r 1 )) x 0 := z 0 ;... ; x k 1 := z k 1 ; (jetzt gilt x i = f i+1 (x 0,..., x r 1 )) G 120

17 Primitiv rekursive Funktionen Fall 3: f entsteht aus g und h durch primitive Rekursion. Es gibt also primitiv rekursive Funktionen g : N r 1 N und h : N r+1 N mit f (0, n 1,..., n r 1 ) = g(n 1,..., n r 1 ) f (n + 1, n 1,..., n r 1 ) = h(f (n, n 1,..., n r 1 ), n, n 1,..., n r 1 ) Die Funktion f lässt sich dann durch das folgende (Pseudocode-) Loop-Programm berechnen: y := g(x 1,..., x r 1 ); k := 0; Loop x 0 Do y := h(y, k, x 1,..., x r 1 ); k := k + 1 End Unter Verwendung von Loop-Programmen für g und h sowie Zwischenspeicherung ähnlich zu Fall 2 kann dieser Pseudocode in ein Loop-Programm für f umgesetzt werden. 121

18 Zwischenbilanz TM Goto While Loop prim. rek. 122

19 µ-rekursive Funktionen Wir werden eine weitere Klasse von Funktionen definieren, die gleichmächtig zu While-Programmen, Goto-Programmen und Turingmaschinen ist. Definition µ-operator Sei f : N k+1 N eine partielle Funktion. Dann ist µf : N k N definiert durch µf (x 1,..., x k ) = min{n f (n, x 1,..., x k ) = 0 und Dabei gilt min = undefiniert. m < n : f (m, x 1,..., x k ) definiert} 123

20 µ-rekursive Funktionen Intuitive Berechnung von µf ( n) (falls f berechenbar ist): Berechne f (0, n), f (1, n),... bis ein n gefunden wird mit f (n, n) = 0. In diesem Augenblick gib n als Funktionswert zurück. Dieser Algorithmus terminiert nicht, falls f (m, n) undefiniert ist (ohne, dass vorher einmal der Funktionswert gleich 0 war) oder der Funktionswert 0 nie erreicht wird. In diesem Fall ist µf ( n) undefiniert. Analogie zu While-Programmen: es ist nicht klar, ob die Abbruchbedingung jemals erfüllt wird. 124

21 µ-rekursive Funktionen Definition µ-rekursive Funktionen Alle konstanten Funktionen k m : N N : n m, alle Projektionen πi k : N k N : (n 1,..., n k ) n i und die Nachfolgerfunktion s : N N : n n + 1 sind µ-rekursiv. Sind g : N k N und f 1,..., f k : N r N µ-rekursiv, so auch f : N r N mit f ( n) = g(f 1 ( n),..., f k ( n)) (wobei f ( n) genau dann definiert ist, wenn f i ( n) für alle i definiert ist und wenn g auf diesen Werten definiert ist). Jede partielle Funktion f, die durch primitive Rekursion aus µ-rekursiven Funktionen entsteht, ist µ-rekursiv. Ist f µ-rekursiv, so auch µf. 125

22 µ-rekursive Funktionen Durch den µ-operator können nun auch echt partielle Funktionen erzeugt werden. Überall undefinierte Funktion Die partielle Funktion Ω: N N mit Ω(n) = undefiniert für alle n N ist µ-rekursiv. Es gilt f (m, n) := k 1 (π1 2 (m, n)) = 1 für alle m, n N und f ist µ-rekursiv. Dann gilt Ω = µf und Ω ist µ-rekursiv. 126

23 µ-rekursive Funktionen Weiteres Beispiel: Wurzelfunktion Die Funktion sqrt : N N mit sqrt(n) = n ist µ-rekursiv. (Dabei rundet... eine reelle Zahl auf die nächstgrößere (oder gleiche) ganze Zahl auf.) Sei f (m, n) = n m m. (beachte: die Multiplikationsfunktion und Subtraktionsfunktion sind primitiv rekursiv und damit µ-rekursiv). Dann gilt sqrt = µf. Diese Funktion ist jedoch auch primitiv rekursiv. Intuition: bei Berechnung von sqrt(n) sind immer höchstens n Iterationen notwendig.) 127

24 µ-rekursive Funktionen Lemma 22 (While-Programm µ-rekursiv) Jede While-berechenbare partielle Funktion ist µ-rekursiv. Beweis: Es genügt, den Beweis von Lemma 20 um die While-Schleife zu erweitern. Sei also P = (While x i 0 Do Q End) ein While-Programm, in dem die Variablen x j für j k nicht vorkommen. Wir müssen zeigen, dass g P : N N : n 0, n 1,..., n k 1 [P] k (n 0,..., n k 1 ) µ-rekursiv ist (vgl. Folie 116). Nach Induktion ist dies für g Q bereits der Fall. 128

25 µ-rekursive Funktionen Sei also P = (While x i 0 Do Q End) ein While-Programm, in dem die Variablen x j für j k nicht vorkommen. Wir müssen zeigen, dass g P : N N : n 0, n 1,..., n k 1 [P] k (n 0,..., n k 1 ) µ-rekursiv ist (vgl. Folie 116). Nach Induktion ist dies für g Q bereits der Fall. Die Funktion h : N 2 N : (n, m) gq n (m) ist µ-rekursiv (vgl. Beweis von Lemma 20 (Fall 3)) Dann ist auch k : N 2 N : (n, m) d i (h(n, m)) µ-rekursiv und es gilt g P (x) = h((µk)(x), x),d.h. auch g P ist µ-rekursiv. 129

26 µ-rekursive Funktionen Satz 23 (While-Programm µ-rekursiv) Eine partielle Funktion f : N r N ist genau dann While-berechenbar, wenn sie µ-rekursiv ist. Wegen Lemma 22 reicht es, die Implikation zu beweisen. Hierzu müssen wir den Beweis von Satz 21 um den µ-operator erweitern. Sei also f = µg : N r N für eine µ-rekursive Funktion g : N r+1 N. Dann kann f durch das folgende (Pseudocode-) While-Programm berechnet werden: x 0 := 0; y := g(0, x 1,..., x r ); While y 0 Do x 0 := x 0 + 1; y := g(x 0, x 1,..., x r ); End Unter Verwendung eines While-Programms für g kann dieser Pseudocode in ein While-Programm für f umgesetzt werden. 130

27 Bilanz Goto TM While µ-rek. Loop prim. rek. Insbesondere sind also 4 Berechnungsbegriffe äquivalent, was die Churchsche These stützt: Churchsche These Die im intuitiven Sinne berechenbaren Funktionen sind genau die durch die formale Definition der Turingmaschinen berechenbaren. Wir wissen auch, daß es While-berechenbare Funktionen gibt, die nicht Loop-berechenbar sind (denn diese sind total). 131

28 Totale While-berechenbare Funktionen Frage: Ist jede totale While-berechenbare Funktion auch Loop-berechenbar? Totale, nicht Loop-berechenbare Funktionen Es gibt totale (Turing-)berechenbare Funktionen, die nicht Loop-berechenbar sind. Wir zeigen die Existenz solcher Funktionen durch einen Diagonalisierungsbeweis. 132

29 Totale While-berechenbare Funktionen Diagonalisierungsbeweis: 1. Schritt: Wir sehen Loop-Programme als Wörter über einem endlichen Alphabet Σ (bestehend aus den Zeichen :=, +,, Loop, x 0, x 1,... ) an. Damit kann man sie längen-lexikographisch anordnen und erhält eine Aufzählung aller Loop-Programme. 2. Schritt: Die Funktion p, die einer natürlichen Zahl n das n-te Loop-Programm in dieser Aufzählung zuordnet, ist berechenbar. Beispielsweise kann man nacheinander alle Wörter aus Σ längen-lexikographisch geordnet aufzählen, überprüfen, ob sie gültige Loop-Programme sind und das n-te gültige Programm ausgeben. 133

30 Totale While-berechenbare Funktionen 3. Schritt: Wir definieren eine Funktion g : N N, die bei Eingabe von n folgende Berechnungsschritte durchführt Das Loop-Programm P = p(n) wird mit n als Eingabe, d.h. n in der Variablen x 0, alle anderen Variablen mit 0 belegt, gestartet. Der bei Terminierung in der Variablen x 0 befindliche Wert wird um eins inkrementiert und ist dann der Funktionswert g(n).das heißt g(n) = π 0 ([P] k (n, 0,..., 0)) + 1 (wobei die Variablen x i für i k in P nicht vorkommen). Diese Funktion ist total, da jedes Loop-Programm terminiert. Sie ist auch Turing-berechenbar(zumindest nach der Churchschen These, man kann es aber auch formal beweisen) und daher While-berechenbar. 134

31 Totale While-berechenbare Funktionen 4. Schritt: Wir zeigen nun, dass g nicht Loop-berechenbar sein kann. Angenommen, es gibt ein Loop-Programm P, das g berechnet. Sei i der Index von P in der Aufzählung, d.h. P = p(i). Es gilt aufgrund der Wahl von P und der Definition von g: π 0 ([P] k (i, 0,..., 0)) = g(i) = π 0 ([P] k (i, 0,..., 0)) + 1 Das ist jedoch ein Widerspruch! 135

32 Totale While-berechenbare Funktionen Die Ackermann-Funktion ist das klassische Beispiel einer totalen While-, aber nicht Loop-berechenbaren Funktion Ackermannfunktion a: N 2 N (Ackermann 1928) a(0, y) = y + 1 a(x, 0) = a(x 1, 1), falls x > 0 a(x, y) = a(x 1, a(x, y 1)), falls x, y > 0 136

33 Totale While-berechenbare Funktionen Wertetabelle der Ackermannfunktion für kleine Werte: y = a(x, y) x = y + 1 x = y + 2 x = y + 3 x = y+3 3 x = > }{{} 3 y + 3 Zweier... Lemma 24 Die Ackermannfunktion ist total und While-berechenbar. Beweis siehe z.b. [Schöning]

34 Totale While-berechenbare Funktionen Sei P ein Loop Programm, in dem keine Variable x i mit i k vorkommt. Für ein Tupel (n 1,..., n k ) N k schreiben wir im folgenden (n1,..., n k ) = n n k. Dann definieren wir f P (n) = max{ [P] k (n 1,..., n k ) n 1,..., n k N, (n 1,..., n k ) n}. Lemma 25 Für jedes Loop Programm P gibt es eine Zahl l, so dass für alle n N gilt: f P (n) < a(l, n). Beweis siehe z.b. [Schöning]. 138

35 Totale While-berechenbare Funktionen Satz 26 (Ackermann-Funktion) Die Ackermann-Funktion ist total, While-berechenbar, aber nicht Loop-berechenbar. Angenommen die Ackermannfunktion a wäre Loop-berechenbar. Dann ist auch die Funktion g : N N mit g(n) = a(n, n) Loop-berechenbar. Sei P ein Loop-Programm mit n N : g(n) = π 0 ([P] k (n, 0,..., 0)). Nach Lemma 25 existiert eine Konstante l mit Für n = l folgt dann n N : f P (n) < a(l, n). g(l) = π 0 ([P] k (l, 0,..., 0)) f P (l) < a(l, l) = g(l). Dies ist ein Widerspruch. 139

1.3 Primitiv rekursive und µ-rekursive Funktionen

1.3 Primitiv rekursive und µ-rekursive Funktionen 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

Mehr

Primitiv rekursive und µ-rekursive Funktionen

Primitiv rekursive und µ-rekursive Funktionen Primitiv rekursive und µ-rekursive Funktionen Slide 1 Primitiv rekursive und µ-rekursive Funktionen Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Primitiv rekursive

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 15. primitive Rekursion und µ-rekursion Malte Helmert Gabriele Röger Universität Basel 22. April 2015 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen und rekursive Funktionen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 16. November 2010 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit Die Programmiersprache LOOP (i) Syntaktische Komponenten: Variable: x 0, x 1, x 2,... Konstanten: 0, 1, 2,... Trennsymbole: ; := Operationszeichen: + Schlüsselwörter: LOOP DO END (ii) LOOP-Programme: Wertzuweisungen:

Mehr

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

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 Primitive Rekursion Basisfunktionen: Konstante Funktion: const Stelligkeit. Wert des Ergebnisses. Unabhängig von den Parametern. const (,, pr,(g,h) (,)) Stelligkeit. Projektion: proj Gibt die Komponente

Mehr

Typen von Programmiersprachen

Typen von Programmiersprachen Typen von Programmiersprachen Berechenbarkeitstheorie: Formalisierung des intuitiven Berechenbarkeitsbegriffs man kann vier Typen von Programmiersprachen zum Berechnen von Zahlenfunktionen unterscheiden:

Mehr

Mitschrift BFS WS 13/14

Mitschrift BFS WS 13/14 Mitschrift BFS WS 13/14 Stand: 4. Juni 2014 Dieses Skript zum Teil Primitive und µ-rekursion der Vorlesung Berechenbarkeit und Formale Sprachen im Wintersemester 2013/14 bei Prof. Wanka wurde von untenstehenden

Mehr

Syntax von LOOP-Programmen

Syntax von LOOP-Programmen LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:

Mehr

Berechenbarkeits- und Komplexitätstheorie

Berechenbarkeits- und Komplexitätstheorie Berechenbarkeits- und Komplexitätstheorie Verschiedene Berechenbarkeitsbegriffe, Entscheidbarkeit von Sprachen, Wachstumsordnungen und Komplexitätsklassen Inhaltsübersicht und Literatur Verschiedene Berechenbarkeitsbegriffe:

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 4.2 Rekursive Funktionen 1. Primitiv- und µ-rekursive Funktionen 2. Analyse und Programmierung 3. Äquivalenz zu Turingmaschinen Berechenbarkeit auf N ohne Maschinenmodelle

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 13. LOOP-, WHILE- und GOTO-Berechenbarkeit Malte Helmert Gabriele Röger Universität Basel 9. April 2014 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale

Mehr

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

GTI. Hannes Diener. 18. Juni. ENC B-0123, GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.

Mehr

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

Proseminar Theoretische Informatik - WS07/08 - Prof. Helmut Alt. I. Einleitung Berechnungsmodelle LOOP, WHILE, GOTO, rekursive Funktionen Proseminar Theoretische Informatik - WS07/08 - Prof. Helmut Alt I. Einleitung Berechnungsmodelle LOOP, WHILE, GOTO, rekursive Funktionen Berechenbarkeitsmodelle Welchen Sinn haben diese? Wie kann man effizient

Mehr

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

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N induktiv

Mehr

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

Theorie der Informatik Einleitung. Theorie der Informatik Basisfunktionen und Einsetzung Primitive Rekursion. 14. Theorie der Informatik 16. April 2014 14. primitive Rekursion und µ-rekursion Theorie der Informatik 14. primitive Rekursion und µ-rekursion 14.1 Einleitung 14.2 Basisfunktionen und Einsetzung Malte Helmert

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Theoretische Informatik SS 03 Übung 4

Theoretische Informatik SS 03 Übung 4 Fakten aus Übung 3 Theoretische Informatik SS 03 Übung 4 In Übung 3 wurden einigen Fakten bewiesen, die für diese Übung benötigt werden. Folgende Konstrukte können mit LOOP-Programmen simuliert werden:

Mehr

ALP I Primitiv-Rekursive Funktionen

ALP I Primitiv-Rekursive Funktionen ALP I Primitiv-Rekursive Funktionen WS 2012/2013 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle λ-kalkül Kombinatorische Logik Allgemein

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Primitiv rekursive Funktionen

Primitiv rekursive Funktionen Primitiv rekursive Funktionen Primitiv rekursive Funktionen Historisch: Die Einführung der primitiven Rekursivität war ein erster (und erfolgloser) Versuch, den Begriff der Berechenbarkeit (oft synonym

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 15. Ackermannfunktion Malte Helmert Gabriele Röger Universität Basel 28. April 2014 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale Sprachen III. Berechenbarkeitstheorie

Mehr

ALP I Rekursive Funktionen

ALP I Rekursive Funktionen ALP I Rekursive Funktionen SS 2011 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle Text λ-kalkül Kombinatorische Logik Allgemein rekursive

Mehr

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

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Mächtigkeit von LOOP-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Die Programmiersprache LOOP Syntax Elemente eines LOOP-Programms Variablen

Mehr

Alternative Berechnungsmodelle

Alternative Berechnungsmodelle Proseminar Theoretische Informatik 01.12.2015 Alternative Berechnungsmodelle Andreas Berg, Pascal Müller, Marius Schidlack Wolfgang Mulzer 1 Der Berechenbarkeitsbegriff 1.1 intuitive Berechenbarkeit Als

Mehr

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

Def.: Die Menge der LOOP-Programme ist induktiv wie folgt definiert: 3. LOOP-, WHILE- und GOTO-Berechenbarkeit 3.1 LOOP-Programme Komponenten: Variablen: x 0, x 1, x 2,, y, z, Konstanten: 0, 1, 2, Trennsymbole: ; := Operationszeichen: +, - Schlüsselwörter: LOOP, DO, END

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 8 18. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Grundlagen der Theoretischen Informatik: Übung 10

Grundlagen der Theoretischen Informatik: Übung 10 Grundlagen der Theoretischen Informatik: Übung 10 Joachim Selke Fachgebiet Theoretische Informatik Universität Hannover 20. Januar 2005 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f

Mehr

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2.1 Definition 2.2 Loop-Programme 2.3 While Programme 2.4 While Programme und rekursive Funktionen Im Wesentlichen: Tafel! Maschinenmodell

Mehr

GOTO simuliert Turingmaschinen

GOTO simuliert Turingmaschinen GOTO simuliert Turingmaschinen Wir wissen bisher: LOOP ( GOTO = WHILE TM Jetzt zeigen wir, dass auch WHILE = TM gilt: Die Turingmaschine M =(Z,,,,z 1,, E) berechne f. Wir simulieren M mit einem GOTO-Programm

Mehr

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

GTI. µ-rekursive Funktionen. Hannes Diener. 20. Juni 2. Juli. ENC B-0123, GTI µ-rekursive Funktionen Hannes Diener ENC B-0123, diener@math.uni-siegen.de 20. Juni 2. Juli 1 / 31 µ-rekursive Funktionen Kommen wir als nächstes zu unserem dritten Ansatz zur Berechenbarkeit. Diesmal

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Prof. Meer, Dr. Gengler Aufgabenblatt 12 Besprechung in KW 03 / Abgabe in KW 04 Heften Sie unbedingt alle Blätter Ihrer Lösung zusammen und geben Sie oben auf dem ersten Blatt Ihren

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK THEORETISCHE INFORMATIK UND LOGIK 3. Vorlesung: WHILE und LOOP Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 12. April 2017 Was bisher geschah... Grundbegriffe, die wir verstehen und erklären

Mehr

Theoretische Informatik SS 03 Übung 5

Theoretische Informatik SS 03 Übung 5 Theoretische Informatik SS 03 Übung 5 Aufgabe 1 Im Buch von Schöning ist auf S. 106-108 beschrieben, wie eine Turing-Maschine durch ein GOTO-Programm simuliert werden kann. Zeigen Sie, wie dabei die Anweisungen

Mehr

Grundlagen der Theoretischen Informatik II

Grundlagen der Theoretischen Informatik II 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,

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 9 2. Juli 2010 Einführung in die Theoretische

Mehr

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

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 29. November 2007 Turing-mächtige

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

Mehr

Die primitiv rekursiven Funktionen

Die primitiv rekursiven Funktionen Priv.-Doz. Dr.rer.nat.habil. Karl-Heinz Niggl Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Theoretische Informatik Fachgebiet Komplexitätstheorie und Effiziente

Mehr

1.4 Die Ackermannfunktion

1.4 Die Ackermannfunktion a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =

Mehr

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

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK Was bisher geschah... Grundbegriffe, die wir verstehen und erklären können: DTM, NTM, Entscheider, Aufzähler, berechenbar/entscheidbar, semi-entscheidbar, unentscheidbar, Church-Turing-These THEORETISCHE

Mehr

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

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen? Einige Fragen Ziel: Wir suchen Antworten auf die folgenden Fragen: Wie kann man das intuitiv Berechenbare formal fassen? Was ist ein Algorithmus? Welche Indizien hat man dafür, dass ein formaler Algorithmenbegriff

Mehr

2.5 Die Ackermannfunktion

2.5 Die Ackermannfunktion Die zweistellige Ackermannfunktion definieren wir so: a(0, y) =y + 1 2.5 Die Ackermannfunktion a(x, 0) =a(x 1, 1) für x > 0 a(x, y) =a(x 1, a(x, y 1)) für x, y > 0 Die Ackermann-Funktion ist wohldefiniert

Mehr

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

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt

Mehr

Primitiv rekursive Codier- und Decodierfunktionen

Primitiv rekursive Codier- und Decodierfunktionen Primitiv rekursive Codier- und Decodierfunktionen Paarungsfunktionen, Codierung von Zahlenfolgen 6.26 Definition Die Cauchysche Paarungsfunktion, : N 2 N wird definiert durch x, y = ((x + y)(x + y + 1)

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c

Mehr

Logik und Beweisbarkeit

Logik und Beweisbarkeit Logik und Beweisbarkeit VL 10 Martin Mundhenk Univ. Jena, Institut für Informatik 22. Januar 2019 Vorlesung 11: Beweissysteme 3. Berechenbarkeitstheorie VL08: URM-berechenbare Funktionen und die These

Mehr

8. Rekursive und primitiv rekursive Funktionen

8. Rekursive und primitiv rekursive Funktionen 8. Rekursive und primitiv rekursive Funktionen In diesem Abschnitt führen wir eine weitere (letzte) Formalisierung des Berechenbarkeitskonzeptes für Funktionen über den natürlichen Zahlen ein. Hatten wir

Mehr

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

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 13. November 2006 Turing-mächtige

Mehr

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

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr 6.4 Entscheidbarkeit Wortproblem Leerheit Äquivalenz Schnittproblem Typ 3 ja ja ja ja DCFL ja ja ja nein (*) Typ 2 ja ja nein (*) nein Typ 1 ja nein (*) nein nein Typ 0 nein (*) nein nein nein (*) Diese

Mehr

Unentscheidbarkeitssätze der Logik

Unentscheidbarkeitssätze der Logik Unentscheidbarkeitssätze der Logik Elmar Eder () Unentscheidbarkeitssätze der Logik 1 / 30 Die Zahlentheorie ist nicht formalisierbar Satz (Kurt Gödel) Zu jedem korrekten formalen System der Zahlentheorie

Mehr

Halteproblem/Kodierung von Turing-Maschinen

Halteproblem/Kodierung von Turing-Maschinen Halteproblem/Kodierung von Turing-Maschinen Unser Ziel ist es nun zu zeigen, dass das sogenannte Halteproblem unentscheidbar ist. Halteproblem (informell) Eingabe: Turing-Maschine M mit Eingabe w. Frage:

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Berechenbarkeit und Komplexität Vorlesung SS 2013 1. Einführung I. Berechenbarkeitsbegriff, typische Fragen: wann ist eine Funktion berechenbar? wie lässt sich der intuitive Berechenbarkeitsbegriff formal

Mehr

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

LOOP-Programme 1. Def (Meyer/Ritchie). LOOP-Programme werden induktiv aufgebaut aus den (Basis-) Anweisungen. Führe P X-mal aus ) LOOP-Programme 2 LOOP-Programme 1 LOOP-Programme verwenden (jeweils) endlich viele Variablen aus VAR := {X 0,X 1,X 2,...}, oft nur mit X,Y,Z,U,V,W bezeichnet, die als Register fungieren. Slide 1 Def (Meyer/Ritchie). LOOP-Programme

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Programmieren für Fortgeschrittene

Programmieren für Fortgeschrittene Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme Wintersemester 2011/12 Programmieren für Fortgeschrittene Rekursive Spezifikationen Die folgende

Mehr

(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie

(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie (Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie 1) Schreiben Sie ein LOOP-Programm, das die Funktion f: N \ {0} N, f (n) = n n berechnet. Sie dürfen in Ihrem Programm die Multiplikation

Mehr

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theoretische Informatik für Wirtschaftsinformatik und Lehramt Theoretische Informatik für Wirtschaftsinformatik und Lehramt Höhere Programmiermodelle Priv.-Doz. Dr. Stefan Milius stefan.milius@fau.de Theoretische Informatik Friedrich-Alexander Universität Erlangen-Nürnberg

Mehr

Berechenbarkeit und Komplexität Vorlesung 10

Berechenbarkeit und Komplexität Vorlesung 10 Berechenbarkeit und Komplexität Vorlesung 10 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 27. November 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 27.

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 4.3 Rekursive Funktionen 1. Primitiv- und µ-rekursive Funktionen 2. Analyse und Programmierung 3. Äquivalenz zu Turingmaschinen Berechenbarkeit ohne Maschinenmodell Welche

Mehr

Relativierte Berechnungen und die arithmetische Hierachie

Relativierte Berechnungen und die arithmetische Hierachie Berechenbarkeit und Komplexität Wintersemester 2010/2011 1 Relativierte Berechnungen und die arithmetische Hierachie Relativierte Berechnungen und Orakel Definition 1 Eine Menge A ist entscheidbar mit

Mehr

Theoretische Informatik II

Theoretische Informatik II Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Wintersemester 2007/2008 B. Beckert Theoretischen Informatik II: WS 2007/08 1 / 175 Dank Diese Vorlesungsmaterialien basieren

Mehr

Berechenbarkeit. Serie 4. Die Seminaraufgaben werden in den Übungen vom bis besprochen.

Berechenbarkeit. Serie 4. Die Seminaraufgaben werden in den Übungen vom bis besprochen. Universität Leipzig Institut für Informatik Sommersemester 2018 Prof. Dr. Andreas Maletti Gustav Grabolle Mirko Schulze Aufgaben zur Lehrveranstaltung Berechenbarkeit Serie 4 Hinweise: Abgabeschluss für

Mehr

Die Ackermannfunktion

Die Ackermannfunktion Die Ackermannfunktion Slide 1 Die Ackermannfunktion Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Die Ackermannfunktion Slide 2 Eine Frage zu Anfang Ist jede intuitiv

Mehr

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

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I µ-rekursive Funktionen WS 2012/2013 Primitiv-rekursive Funktionen Jede primitiv-rekursive Funktion ist Loop-berechenbar. Das bedeutet, dass jede PR-Funktion in der Loop-Programmiersprache formuliert

Mehr

Satz von Rice. Lemma 39

Satz von Rice. Lemma 39 Unentscheidbarkeit Satz von Rice Das nächste Resultat zeigt, dass jede Eigenschaft der von einer Turing-Maschine berechneten Funktion unentscheidbar ist. Das bedeutet, es gibt keine Methode, mit der man

Mehr

Berechenbarkeitsmodelle

Berechenbarkeitsmodelle Berechenbarkeit 2 Endliche Automaten erkennen nicht alle algorithmisch erkennbaren Sprachen. Kontextfreie Grammatiken erzeugen nicht alle algorithmisch erzeugbaren Sprachen. Welche Berechnungsmodelle erlauben

Mehr

Primitive Rekursion. Alexander Hölzle

Primitive Rekursion. Alexander Hölzle Primitive Rekursion Alexander Hölzle 14.01.2007 Inhaltsverzeichnis Motivation i 1 Rekursive Funktionen 1 1.1 Nicht berechenbare Funktionen........................ 1 1.2 Primitiv rekursive Funktionen.........................

Mehr

ALP I Turing-Maschine

ALP I Turing-Maschine ALP I Turing-Maschine Teil I WS 2012/2013 Äquivalenz vieler Berechnungsmodelle Alonzo Church λ-kalkül Kombinatorische Logik Alan Turing Turing-Maschine Mathematische Präzisierung Effektiv Berechenbare

Mehr

Umgekehrt kann eine Datenbank-Instanz in eine konjunktive Anfrage umgewandelt werden: hasairport. ans. fly n 1 n 2 n 3 n 2 Bonn n 4.

Umgekehrt kann eine Datenbank-Instanz in eine konjunktive Anfrage umgewandelt werden: hasairport. ans. fly n 1 n 2 n 3 n 2 Bonn n 4. der Chase, jetzt formal... Datenbank-Instanzen 1 Wir fixieren drei unendliche, paarweise disjunkte Mengen, null und V. ist der zugrunde gelegte Domain. null = {n 1, n 2,...} ist die Menge der Null-Werte.

Mehr

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

6. Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen 6. Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N

Mehr

Berechenbarkeit und Komplexität Vorlesung 11

Berechenbarkeit und Komplexität Vorlesung 11 Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7.

Mehr

Semantik von Programmiersprachen SS 2017

Semantik von Programmiersprachen SS 2017 Lehrstuhl für Programmierparadigmen Denis Lohner Sebastian Ullrich denis.lohner@kit.edu sebastian.ullrich@kit.edu Semantik von Programmiersprachen SS 2017 http://pp.ipd.kit.edu/lehre/ss2017/semantik Lösungen

Mehr

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

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger Organisatorisches VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger Nächste Vorlesung: Mittwoch, November 29, 14:15 15:45 Uhr, Roter Hörsaal Webseite: http://algo.rwth-aachen.de/lehre/ws1718/buk.php

Mehr

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

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-11: LOOP und WHILE Programme I 1/46 Organisatorisches Nächste Vorlesung: Mittwoch,

Mehr

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

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008 Problemseminar Komplexitätstheorie und Kryptographie Martin Huschenbett Student am Institut für Informatik an der Universität Leipzig 30. Oktober 2008 1 / 33 Gliederung 1 Randomisierte Algorithmen und

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Berechenbarkeit und Komplexität Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2010/11 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien und Übungsblätter

Mehr

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

VL-11: Primitiv rekursive Funktionen. (Berechenbarkeit und Komplexität, WS 2018) Gerhard Woeginger VL-11: Primitiv rekursive Funktionen (Berechenbarkeit und Komplexität, WS 2018) Gerhard Woeginger WS 2018, RWTH BuK/WS 2018 VL-11: Primitiv rekursive Funktionen 1/48 Organisatorisches Nächste Vorlesung:

Mehr

Die Church-Turing-These

Die Church-Turing-These Die Church-Turing-These Elmar Eder () Die Church-Turing-These 1 / 12 Formale Systeme Formale Systeme µ-partiellrekursive Funktionen Logikkalküle SLD-Resolution (Prolog) Chomsky-Grammatiken Turing-Maschinen

Mehr

Einführung in die Theoretische Informatik Tutorium IX

Einführung in die Theoretische Informatik Tutorium IX Einführung in die Theoretische Informatik Tutorium IX Michael R. Jung 16. & 17. 12. 2014 EThI - Tutorium IX 1 1 Entscheidbarkeit, Semi-Entscheidbarkeit und Unentscheidbarkeit 2 EThI - Tutorium IX 2 Definitionen

Mehr

Universelle Maschinen und universelle Funktionen

Universelle Maschinen und universelle Funktionen Universelle Maschinen und universelle Funktionen UNIVERSELLE FUNKTIONEN DEFINITION. Sei F eine Klasse von partiellen Funktionen über N. Eine partielle Funktion ϕ (n+1) ist n-universell für F, wenn (i)

Mehr

Kapitel 1. Grundlagen

Kapitel 1. Grundlagen Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig

Mehr

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theoretische Informatik für Wirtschaftsinformatik und Lehramt Theoretische Informatik für Wirtschaftsinformatik und Lehramt Entscheidungsprobleme Priv.-Doz. Dr. Stefan Milius stefan.milius@fau.de Theoretische Informatik Friedrich-Alexander Universität Erlangen-Nürnberg

Mehr

Informatik III. Arne Vater Wintersemester 2006/ Vorlesung

Informatik III. Arne Vater Wintersemester 2006/ Vorlesung Informatik III Arne Vater Wintersemester 2006/07 11. Vorlesung 30.11.2006 1 Beziehungen zwischen den Sprachen Jede reguläre Sprache ist eine kontextfreie Sprache. Jede kontextfreie Sprache ist eine entscheidbare

Mehr

Berechenbarkeit. Script, Kapitel 2

Berechenbarkeit. Script, Kapitel 2 Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen

Mehr

Einführung in die Berechenbarkeitstheorie

Einführung in die Berechenbarkeitstheorie Einführung in die Berechenbarkeitstheorie Timo Kötzing 4. November 2013 1 Einleitung Dieses Dokument bietet eine kurze Einführung in die Grundlagen der Berechenbarkeitstheorie (für eine Ausführliche Behandlung

Mehr

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

Theoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:... Theoretische Informatik II WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch 1. Teilklausur 11. 12. 2007 Persönliche Daten bitte gut leserlich ausfüllen! Vorname:... Nachname:... Matrikelnummer:...

Mehr

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen

Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen Wahlpflichtfach Bachelor Informatik 4. Semester Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen Kurt-Ulrich Witt Sommersemester 2011 Kurt-Ulrich Witt Diskrete Mathematik Lektion 4 1/33 Inhaltsverzeichnis

Mehr

3.5 Schnelle Fouriertransformation (FFT, DFT)

3.5 Schnelle Fouriertransformation (FFT, DFT) 3.5 Schnelle Fouriertransformation (FFT, DFT) 3.5.1 Grundlagen Ein Polynom P = i a ix i C[x] vom Grad n ist eindeutig durch seine Koeffizienten a i bestimmt, d.h. man hat eine Bijektion {Polynome C[x]

Mehr