Mitschrift BFS WS 13/14

Größe: px
Ab Seite anzeigen:

Download "Mitschrift BFS WS 13/14"

Transkript

1 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 Studenten erarbeitet. Es ist somit offensichtlich inoffiziell und erhebt weder einen Anspruch auf Korrektheit noch auf Vollständigkeit. Burkhard Ringlein Benedikt Lorch

2 Inhaltsverzeichnis 4 Primitive und µ-rekursion LOOP-, WHILE- und die GOTO-Berechenbarkeit Definition primitiv rekursiver und µ-rekursiver Funktionen Die Ackermann-Funktion Zusammenfassung Berechenbarkeit Halteproblem universelle Turing-Maschine NP-Vollständigkeit Nichtdeterminisus Formale Sprachen

3 4 Primitive und µ-rekursion 4.1 LOOP-, WHILE- und die GOTO-Berechenbarkeit Variablen: x 1, x 2, x 3,... Konstanten: 0, 1, 2,... Trennsymbole: ;, := Operationszeichen: +, 1 Schlüsselwörter: LOOP, DO, END Induktive Definition von LOOP-Programmen: Wertzuweisungen: x j := x j + c c ist eine (bel.) Konstante aus N = 0, 1, 2... x j := x j c Also sind auch: x i := x j [+0] 2 und x i := c[+x j ] 2 mögliche Wertzuweisungen. Sind P 1 und P 2 LOOP-Programme, so ist auch P 1 ; P 2 ein LOOP-Programm. Ist P ein LOOP Programm, ist auch LOOP x i DO P END ein LOOP-Programm. Bei Eingabe n 1,..., n k N stehen diese Zahlen in x 1,..., x k, alle anderen Variablen x i sind mit 0 initialisiert. Am Ende der Rechnung steht die Ausgabe in x 1. Bedeutung von + und ist klar. P 1 ; P 2 : führe erst P 1 aus, dann P 2 LOOP x i DO P END : Führe P sooft hintereinander aus, wie der Wert von x i zu Beginn 2 der LOOP-Schleife ist. Definition 4.1 Eine Funktion f: N k N heisst LOOP-berechenbar, falls es ein LOOP-Programm P gibt, das f berechnet, so dass zu Beginn n 1,...n k inx 1,..., x k stehen und zum Schluss f(n 1,...n k ) in x 1 steht. LOOP-berechenbare Funktionen sind total. Frage: Sind alle total berechenbare Funktionen LOOP-berechenbar? 3 ein paar Programmiertricks: IF x i = 0 T HEN P END kann durch ein LOOP-Programm simuliert werden. 1 modifiziertes minus : [max(a b, 0) =: a b] 2 für Formale Korrektheit: x j := 0undx j wird nie wieder benutzt 2 Wie richtige for-schleifen (vor C) 3 Antwort vorweg: NEIN! siehe Ackermann-Funktion 1

4 1 y:=1; LOOP x_i DO y:= 0 END; 3 LOOP y DO P END; x 3 := x 1 + x 2 ebenso: 1 x_3 := x_1 [ + 0]; LOOP x_2 DO x_3 := x_3 +1 END; 4 Somit können wir auch mehrere Variablen addieren. z.b.: Multiplikation: x 3 := x 1 x 2 x_3 := 0; 2 LOOP x_2 DO x_3 := x_3 + x_1 END; MOD, DIV gehen entsprechend. WHILE-Programme sind LOOP-Programme mit dem zusätzlichen Konstrukt WHILE x j 0 DO P END; P wird solange wiederholt, wie x i nicht 0 ist. LOOP x DO P END: 2 y:= x; WHILE y 0 DO y := y 1; P END Definition 4.2 Eine Funktion f : N k heist WHILE-berechenbar, wenn es ein WHILE-Programm gibt, das f berechnet im Sinne wie bei Def Satz 4.3 Jede WHILE-berechenbare Funktion kann von einer det. 1-Band-TM berechnet werden. 6 GOTO-Programme: Anweisungen: A i, Marken M i M 1 : A 1 ; M 2 : A 2 ;...; M k : A k Wertzuweisungen: x j := x j + c x i = x j c unbedingter Sprung: goto M i bedingter Sprung: IF x j = c T HEN GOT O M j Ende: HALT WHILE x j 0DO P END; entspricht: 4 [ + 0] formal wieder ganz korrekt 5 Vorweg: Wobei WHILE ist mächtiger als LOOP: jede LOOP kann in ein WHILE überführt werden, umgekehrt jedoch nicht immer. 6 Beweis ist mit unserem Wissen kein Problem: z.b.: Funktion gleich auf TM simulieren oder Funktion in ein C-Programm schreiben, da schon bewiesen, dass c-programme auf TMs simuliert werden können. 2

5 1 M 1 : IF x i = 0 THEN GOTO M 2 ; P; 3 GOTO M 1 ; M 2 : HALT; Jedes WHILE-Programm kann in ein GOTO-Programm umgewandelt werden. Nun: GOTO-Programme in WHILE Programme verwandeln. GOTO-Programm: M 1 : A 1 ; M 2 : A 2 ;...; M k : A k count:=1; 2 WHILE count 0 DO IF count = 1 THEN A 1 END; 4 IF count = 2 THEN A 2 END;... 6 IF count = k THEN A k END; END; x j := x l ± c; count := count + 1 falls A i = (x j := x l ± c) count := j fallsa A i = (GOT O M j ) i = ( ) falls A i = (IF x j = c T HEN GOT O M j ) count := falls A i = (HALT ) ( ): 1 IF x_j = c THEN count :=j 3 ELSE count := count +1 5 END; Satz 4.4 Jedes GOTO-Programm kann durch ein WHILE-Programm mit nur einer WHILE-Schleife simuliert werden. Satz 4.5 (Kleensche Normalform für WHILE-Programme) Jede WHILE-berechenbare Funktion kann durch ein WHILE-Programm mit maximal einem WHILE- Konstrukt berechnet werden. Beweis: Beliebiges WHILE-Programm GOTO-Programm WHILE-Programm. 7 7 T M RAM GOT O W HILE LOOP 3

6 4.2 Definition primitiv rekursiver und µ-rekursiver Funktionen Definition 4.6 Die Klasse der primitiv rekursiven Funktionen ist induktiv definiert: 1. Die konstanten Funktionen sind primitiv rekursiv f(x) = 7 f(x, y, z, a, b) = 7 f() = Die Projektionen sind primitiv Rekursiv π2(x, 3 y, z) = y 3. Die Nachfolge-Funktion s(n) = n + 1 ist primitiv rekursiv 4. Jede Funktion, die durch Einsetzten von primitiv rekursiven Funktionen entsteht, ist primitiv rekursiv h(a, b, x, y, d) = f(a, b, g(x, y), d) 5. Jede Funktion, die durch primitive Rekursion aus primitiv rekursiven Funktionen entsteht, ist primitiv rekursiv f(0,,, ) = g(,, ) f(n + 1,,, ) = h(f(n,...),...,..) einige Beispiele: 1 add(x,y) = x + y add : N 2 N add(0,x) = π1 1(x) 3 add(n+1,x) = s(add(n,x)) 5 mult(0,x) = 0 mult(n+1,x) = add(mult(n,x),x) 7 u(n) = max(n-1, 0) 9 u(0) = 0 u(n+1) = n 11 sub ist unser modifiziertes Minus : 13 sub(x,0) = x sub(x,y+1) = u(sub(x,y)) a b 15 auch Kodierungsfunktion: c(x,y) = ( x+y+1) 2 + x = 1 (x + y + 1)(x + y) + x 2 17 ist primitiv rekursiv sind die Basisfunktionen 4

7 c(x, y) ist eine bijektive Abbildung von N 2 nach N 9 < z, x, y >= c(z, c(x, y)) < n 0, n 1,..., n k >= c(n 0, c(n 1,..., c(n k, 0))...) f(c(x, y)) = y e(c(x, y)) = x z.b. : f(18) = 2 e(18) = 3 d 0 (n) = e(n) (= n 0 ) d 1 (n) = e(f(n) (= n 1 ) d k (n) = e(f(f(f(n))) ) k mal. Wenn e und f primitiv rekursiv sind, sind es auch d i. Ein Prädikat P(x) ist primitiv rekursiv, falls die charakteristische Funktion primitiv rekursiv ist. q(n) = max{x x n, P (x) = 1} beschränkte Maximumsbildung existiert das Maximum nicht, so ist q(n) = 0 q(0) = 0 { n + 1 falls P (n + 1) = 1 q(n + 1) == q(n) sonst 9 N ist hier wieder N {0} 5

8 = q(n) + P (n + 1)(n + 1 q(n)) Ist P(x) primitiv rekursiv, so ist es auch q(n). Beschränkter Existenzquantor: Q(n) es gibt ein xin0,..., n : P(x) = 1 Q(0) = P (0) Q(n + 1) = P (n + 1) + Q(n) (P n + 1) Q(n) e (n, m, k) = max{x x n, y k : e(n) = e (n, n, n) c(x, y) = m} ist primitiv rekursiv f (n, m, k) = max{y y n, y k : c(x, y) = m} f(n) = f (n, n, n) Satz 4.7 Die Klasse der primitiv rekursiven Funktionen ist genau die Klasse der LOOP-berechenbaren Funktionen. Beweis: f: N r N sei LOOP-berechenbar, mitttels LOOP-Programm P x 1,..., x r enthalten die Eingabe x 0 soll f(x 1,...x n ) enthalten Ziel: g P (< a 0, a 1,..., a r > ) =< b 0, b 1,..., b k > n g p ist eine primitiv rekursiv, wobei b 0,..., b k die Inhalte der Register x 0,...x k sind nach Ausführung von P. Falls F von der Form ist: x i := x j ± c g p (n) = < d 0 (n),..., d i 1 (n), d i (n) ± c, d i+1 (n),..., d k (n) > Falls P von der Form ist: P 1 ; P 2 : g p (n) = g P2 (g P1 (n)) Falls P von der Form ist: LOOP x i DO Q END Hilfsfunktion: h(0, x) = x. h(n, x) = g Q (...g Q (g Q (g Q ( x)))) n mal h(n + 1, x) = g Q (h(g Q (h(n, x)), x)) g P (n) = h(d i (n), n) f(n 1,...n r ) = d 0 (g p (< 0, n 1,..., n r, 0,...0 >)) k r Gegeben sei eine primitiv rekursive Funktion f ; 6

9 Ziel: Angabe eines Loop-Programms, das f berechnet 10. Sei f durch primitive Rekursion gegeben, d.h. f(0, x) = g(x) [Rekursionsende] f(n + 1, x) = h(f(n, x), n, x) 1 x 1 := n; z := 0; 3 x 0 := g(x); LOOP n DO 5 z := z+1; x 0 := h(x 0, z, x) 7 END //in x 0 steht f(n, x)// Der µ-operator macht aus einer (k + 1)-stelligen Fkt. f eine k-stellige wie folgt: µf(x 1,..., x k ) = min{n f(n, x 1,...x k ) = 0 und m < n ist f(m, x 1,..., x k )definiert}. 11 Definition 4.8 Die Klasse der µ-rekursiven Funktionen ist die Klasse von (eventuell partiellen) Funktionen, welche die Basisfunktionen enthält, abgeschlossen unter Einsetzung, primitiver Rekursion und Anwendung des µ- Operators ist. Satz 4.9 Die Klasse der µ-rekursiven Funktionen ist genau die Klasse der berechenbaren Funktionen (d.h. Turingberechenbaren Funktionen). Beweis: Sei f berechenbar durch ein WHILE 12 -Programm P. Falls P von der Form WHILE x i 0 DO Q END h(0, x) = x, h(n + 1, x) = g Q (h(n, x)) 13 g p (x) = h(µ(d i h)(x), x) besagt, wie oft die WHILE-Schleife durchlaufen wird, bis x i = 0 ist. Sei f durch µ-operator definiert. WHILE-Programm angeben, das f berechnet: x 0 := 0; 2 y := f(0,x) WHILE y 0 DO 4 x 0 := x 0 + 1; y := h(x 0, x) 10 reine Programmieraufgabe ; An dieser Stelle ist in Schönig s Buch ein Fehler 11 Konvention: min ist undefiniert 12 wie schon gezeigt: ist ja äquivalent einer Turing-Maschine 13 ggf. partiell 7

10 6 END //in x 0 steht f(n, x)// 14 Satz 4.10 (Normalformsatz von Kleene) Berechenbare Funktionen benötigen den µ-operator maximal einmal. 4.3 Die Ackermann-Funktion Definition 4.11 (Ackermann-Funktion) Kopie der Folie von der Vorlesungsseite 15 : ack(1, y) = y + 2 ack(2, y) = 2 y + 3 ack(x,y) ist Turing-berechenbar 16 und damit auch µ-rekursiv. ack(x,y) ist total. ack(x,y) ist nicht primitiv rekursiv. 14 was ist jetzt das besondere am µ-operator: µ-operator sucht die erste Stelle, sodass das Abbruch-Kriterium der rekursiven-funktion erfüllt ist. ( Mathematische Beschreibung von WHILE ) Zur Erinnerung: Berechenbar heißt nicht, dass das Ergebnis auch erlebbar ist (siehe P-NP) 8

11 Zu einem LOOP-Programm P sei : f p (n) = max{ i 0 n i n i n } i 0 Die n i sind die konkreten Eingaben für P. Die n i sind die Inhalte der Variablen, nachdem P mit den n i gestartet worden und fertig ist 17. Lemma 4.12 Für jedes LOOP-Programm P gibt es eine Zahl k P, so dass für alle n gilt: f P (n) ack(k P, n) P k p n N 0 : f P (n) ack(k p, n) Beweis: Induktiv über den Aufbau von LOOP-Programmen. Falls P von der Form x i := x j ± c ist: OBdA ist c {0, 1} 18 f P (n) 2 n + 1 ack( 2 k P, n) Falls P von der Form P 1 ; P 2 ist: Per Induktionsannahme gibt es k P1 und k P2 mit f P1 ack(k P1, n) f P2 ack(k P2, n) Mit k 3 := max{k P1 1, k P2 } f P (n) f P2 (f P1 (n)) 19 ack(k P2, ack(k P1, n)) ack(k P3, ack(k P3 + 1, n)) = ack(k P3 + 1, n + 1) ack(k P3 + 2, n) k p := max{k P1 1, k P2 } + 2 Falls P von der Form LOOP x i DO Q END ist. Sei k Q die zahl mit f q (n) ack(k q, n) OBdA: x i kommt in Q nicht vor. 20 Sei m (m n) die Zahl, so dass m Schleifendurchläufe die größte Summe i 0 n i erzeugt. m = 0 : f P (n) = n < ack(0, n) = n + 1 m = 1 : f P (n) f Q (n) ack(k Q, n) m 2 : f P (n) f Q (...f Q (f Q (n m))...) + m m Mal ack(k Q, f Q (f Q (...f Q (n m)...))) + m m 1 Mal 17 Somit: Was auch immer P mit den Eingaben n i ausrechnet, kann nicht größer als f p(n) sein. 18 ersetze x i := x j + 3 durch x i := x j + 1; x i := x j + 1; x i := x j + 1; usw. 19 Die Laufzeit ist natürlich transitiv: O(n 2 ) O(n 3 ) = O(n 6 ) 20 D.h. wie richtige for-schleifen: Es steht am Anfang fest, wie oft die Schleife läuft. 9

12 ack(k Q, ack(k Q,...ack(k Q, n m)...)) + m m f P (n) ack(k Q, ack(k Q,...ack(k Q, n m)...)) m Mal ack(k Q,...ack(k Q, ack(k Q + 1, n m))) = ack(k Q + 1, n 1) ack(k Q + 1, n) k P Satz 4.13 ack(x,y) ist nicht LOOP-berechenbar, und somit auch nicht primitiv rekursiv. Beweis: Diagonalisierung Annahme: ack(x,y) ist LOOP-berechenbar durch P. Dann ist auch g(n) = ack(n, m) duch P LOOPberechenbar. g(n) f P (n) ack(k P, n) 21 Für n = k P g(k P ) f P (k P ) ack(k P, k P ) = g(k P ) 21 aus Lemma

13 5 Zusammenfassung viel Energie für die Klausur reinstecken 5.1 Berechenbarkeit Turing-Maschine normaler Computer 1 Church-Turing-These Typ-0-Sprachen µ-rekursion (primitiv Rekursiv/LOOP-Programme, Ackermann-Funktion) Halteproblem Zentral, es gibt Probleme, die nicht entschieden werden können. [Reduktionen ] Die ganzen Bauer bauen immer neue Maschinen, Computer gibt es immer nur einmal universelle Turing-Maschine. z.b.: die Ackermann-Funktion ist berechenbar, aber nicht für Menschen-berechenbar NP-Vollständigkeit Nichtdeterminisus Quintessenz für den Alltag: wenn man ein NP-Problem lösen will, sollte man von exakten Lösungen Abstand nehmen. 5.2 Formale Sprachen Grammatiken: Typ-0,..., Typ-3 Typ-2-Grammatiken: kontextfreie Sprachen, als Grundlage für Programmiersprachen Chomsky-NF CYK-Algorithmus Kellerautomaten 1 Eigentlich kann die Turingmaschiene mit ihrem unendlichen Speicher mehr 2 Die Ackermann-Funktion ist der BusyBeaver der primitiv-rekursiven Funktionen 11

14 Pumping-Lemma für kontextfreie-sprachen 3 Typ-3-Sprachen: reguläre-sprachen, als Grundlage der lexikalischen Analyse z.b.: {a n b n n 0} / L 3 : Das sind die Grundlagen auf denen wir 4 stehen... 3 hauptsächlich als Indikator für nicht-kontextfreiheit 4 als wissenschaftlich ausgebildete Informatiker 12

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

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

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

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

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

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

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

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

Primitiv rekursive und µ-rekursive Funktionen

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

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

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

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

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

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

(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

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

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

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

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

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

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

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

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

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

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

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

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

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

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

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

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

Turing-Maschinen: Ein abstrakes Maschinenmodell

Turing-Maschinen: Ein abstrakes Maschinenmodell Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen

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

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

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine

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

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

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

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine

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

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

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

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

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

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

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

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

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

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

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

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

Theorie der Informatik (CS206) Fortsetzung LOOP-Programme, primitiv-rekursive Funktionen Theorie der Informatik (CS206) Fortsetzung LOOP-Programme, primitiv-rekursive Funktionen 26. März 2012 Proff Malte Helmert und Christian Tschudin Departement Mathematik und Informatik, Universität Basel

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

Nachklausur zur Vorlesung

Nachklausur zur Vorlesung Lehrstuhl für Theoretische Informatik Prof. Dr. Markus Lohrey Grundlagen der Theoretischen Informatik Nachklausur Nachklausur zur Vorlesung Grundlagen der Theoretischen Informatik WS 2016/17 / 27. Februar

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

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

Rekursive Funktionen Basisfunktionen

Rekursive Funktionen Basisfunktionen Rekursive Funktionen Basisfunktionen die nullstellige Funktion Z, die den konstanten Wert 0 liefert, die Funktion S : N N, bei der jeder natürlichen Zahl ihr Nachfolger zugeordnet wird, die Funktion P

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

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

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

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

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

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

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

Theorie der Informatik (CS206) Turingmaschine, LOOP-Programme, primitiv-rekursive Fkt, GOTO-Prog

Theorie der Informatik (CS206) Turingmaschine, LOOP-Programme, primitiv-rekursive Fkt, GOTO-Prog Theorie der Informatik (CS206) Turingmaschine, LOOP-Programme, primitiv-rekursive Fkt, GOTO-Prog 25. März 2013 Proff Malte Helmert und Christian Tschudin Departement Mathematik und Informatik, Universität

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

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

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

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. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

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

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing

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

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

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

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

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

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

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

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

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

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

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

Nachklausur zur Vorlesung Einführung in die Theoretische Informatik

Nachklausur zur Vorlesung Einführung in die Theoretische Informatik Universität Heidelberg 11. Oktober 2012 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Dipl.-Math. Thorsten Kräling Nachklausur zur Vorlesung Einführung in die Theoretische Informatik Musterlösungen

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Lektion 10: Entscheidbarkeit Kurt-Ulrich Witt Wintersemester 2013/14 Kurt-Ulrich Witt Theoretische Informatik Lektion 10 1/15 Inhaltsverzeichnis Kurt-Ulrich Witt Theoretische Informatik

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

Carlos Camino Einführung in die Theoretische Informatik SS 2015

Carlos Camino Einführung in die Theoretische Informatik SS 2015 Themenüberblick Dies ist eine Art Checkliste für die Klausurvorbereitung. Zu jedem Thema im Skript sind hier ein paar Leitfragen aufgelistet. Besonders nützlich sind die Tabellen und Abbildungen auf den

Mehr

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto 26.09.2011 Fachbereich Elektrotechnik/Informatik Universität Kassel Klausur zur Vorlesung Theoretische Informatik: Berechenbarkeit und Formale Sprachen SS 2011 Name:................................

Mehr

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 5. Algorithmen K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 21. Okt. 2015 1. Berechne 2 n. Zu lösende Probleme 2. Berechne die Fakultät einer nat. Zahl: n! = 1 * 2 *... n 3. Entscheide,

Mehr

Unentscheidbarkeit. 1. Wann sind Sprachen unentscheidbar? 1, A 0, A } = {

Unentscheidbarkeit. 1. Wann sind Sprachen unentscheidbar? 1, A 0, A } = { Unentscheidbarkeit 1. Wann sind Sprachen unentscheidbar? Eine Menge A heisst entscheidbar, falls die charakteristische Funktion von A, nämlich A : {0,1}, berechenbar ist, d.h. gilt: A = { 1, A 0, A } Eine

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

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

Grundbegriffe der Mathematischen Logik Hausaufgabenteil der Prüfung mit Lösungen

Grundbegriffe der Mathematischen Logik Hausaufgabenteil der Prüfung mit Lösungen Übungen zu Grundbegriffe der Mathematischen Logik Hausaufgabenteil der Prüfung mit Lösungen Teil I Rekursionstheorie Aufgabe 1. elche (totale) unktion f : N 2 N wird von dieser Registermaschine berechnet?

Mehr