Mächtigkeit von WHILE-Programmen

Größe: px
Ab Seite anzeigen:

Download "Mächtigkeit von WHILE-Programmen"

Transkript

1 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 Berechenbarkeit und Komplexität 16. November / 33

2 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c 0 0 B a 0 0 c 1 B... Endliche Kontrolleinheit (Zustände Q, Programm δ) Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

3 Registermaschine (RAM) Programm Befehlszähler b Akkumulator c(0) c(1) c(2) c(3)... Speicher (unbeschränkt) Befehlssatz: LOAD, STORE, ADD, SUB, MULT, DIV, INDLOAD, INDSTORE, INDADD, INDSUB, INDMULT, INDDIV, CLOAD, CADD, CSUB, CMULT, CDIV, GOTO, IF c(0)? x THEN GOTO (wobei? aus {=, <, }), END Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

4 Eingeschränkte Registermaschine Programm Befehlszähler b Akkumulator c(0) c(1) c(2) c(3)... Speicher (# Register konstant) c(k) Befehlssatz: LOAD, STORE, CLOAD, CADD, CSUB, GOTO, IF c(0) 0 THEN GOTO, END Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

5 Turing-mächtige Programmiersprachen Definition Eine Programmiersprache wird als Turing-mächtig bezeichnet, wenn jede Funktion, die durch eine TM berechnet werden kann, auch durch ein Programm in dieser Programmiersprache berechnet werden kann. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

6 Die Programmiersprache WHILE Syntax Elemente eines WHILE-Programms Variablen x 0 x 1 x 2... Konstanten Symbole ; := + Schlüsselwörter WHILE DO END Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

7 Die Programmiersprache WHILE Syntax Induktive Definition Induktionsanfang Zuweisung Für jedes c { 1, 0, 1} ist die Zuweisung x i := x j + c ein WHILE-Programm. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

8 Die Programmiersprache WHILE Syntax Induktive Definition Induktionsschritte: Hintereinanderausführung Falls P 1 und P 2 WHILE-Programme sind, dann ist auch ein WHILE-Programm. P 1 ; P 2 WHILE-Konstrukt Falls P ein WHILE-Programm ist, dann ist auch ein WHILE-Programm. WHILE x i 0 DO P END Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

9 Die Programmiersprache WHILE Semantik Ein While-Programm P berechnet eine k-stellige Funktionen der Form f : N k N. Die Eingabe ist in den Variablen x 1,..., x k enthalten. Alle anderen Variablen werden mit 0 initialisiert. Das Resultat eines WHILE-Programms ist die Zahl, die sich am Ende der Rechnung in der Variable x 0 ergibt. Programme der Form x i := x j + c sind Zuweisungen des Wertes x j + c an die Variable x i (wobei 0 1 = 0). In einem WHILE-Programm P 1 ; P 2 wird zunächst P 1 und dann P 2 ausgeführt. Das Programm WHILE x i 0 DO P END hat die Bedeutung, dass P solange ausgeführt wird, bis x i den Wert 0 erreicht. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

10 Beispiel eines WHILE-Programms Was berechnet dieses WHILE-Programm? WHILE x 2 0 DO x 1 := x 1 + 1; x 2 := x 2 1 END; x 0 := x 1 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

11 Die Programmiersprache WHILE Mächtigkeit Satz Die Programmiersprache WHILE ist Turing-mächtig. Beweis: In einer Übungsaufgabe haben wir gezeigt, dass eine TM durch eine RAM mit konstant vielen Registern und eingeschränktem Befehlssatz simuliert werden kann. LOAD, CLOAD, STORE, CADD, CSUB, GOTO, IF c(0) 0 GOTO, END Wir müssen also nur noch zeigen, dass jede Funktion, die durch eine eingeschränkte RAM berechnet werden kann, auch durch ein WHILE-Programm berechnet werden kann. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

12 Beweis Turing-Mächtigkeit von WHILE-Programmen Sei Π ein beliebiges RAM-Programm mit eingeschränktem Befehlssatz, das aus l Zeilen besteht und k Register für natürliche Zahlen benutzt. Wir speichern den Inhalt von Register c(i), für 0 i k, in der Variable x i des WHILE-Programms. In der Variable x k+1 speichern wir zudem den Befehlszähler b der RAM ab. Die Variable x k+2 verwenden wir, um eine Variable zu haben, die immer den initial gesetzen Wert 0 enthält. Die einzelnen RAM-Befehle werden nun in Form von konstant vielen Zuweisungen der Form x i := x j + c mit c {0, 1} implementiert. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

13 Beweis Turing-Mächtigkeit von WHILE-Programmen RAM vs. WHILE LOAD, STORE x i := x j + c für CLOAD, CADD, CSUB, c { 1, 0, 1} GOTO P 1 ; P 2 IF c(0) 0 GOTO WHILE x i 0 DO P END END Der RAM-Befehl LOAD i wird beispielsweise ersetzt durch x 0 := x i + 0; x k+1 := x k Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

14 Beweis Turing-Mächtigkeit von WHILE-Programmen RAM vs. WHILE LOAD, STORE x i := x j + c für CLOAD, CADD, CSUB, c { 1, 0, 1} GOTO P 1 ; P 2 IF c(0) 0 GOTO WHILE x i 0 DO P END END Der RAM-Befehl CLOAD i wird analog ersetzt durch x 0 := x k+2 + 0; x 0 := x 0 + 1;... ; x 0 := x 0 + 1; }{{} i mal x k+1 := x k Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

15 Beweis Turing-Mächtigkeit von WHILE-Programmen RAM vs. WHILE LOAD, STORE x i := x j + c für CLOAD, CADD, CSUB, c { 1, 0, 1} GOTO P 1 ; P 2 IF c(0) 0 GOTO WHILE x i 0 DO P END END Den RAM-Befehl IF c(0) 0 GOTO j ersetzen wir durch das WHILE-Programm: x k+1 := x k+1 + 1; (b := b + 1) x k+3 := x 0 + 0; (help := c(0)) WHILE x k+3 0 DO (while help 0) x k+1 := x k+2 + 0; x k+1 := x k+1 + 1; + 1; }{{} (b := j) j mal x k+3 := x k (help := 0) END (end of while) Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

16 Beweis Turing-Mächtigkeit von WHILE-Programmen RAM vs. WHILE LOAD, STORE x i := x j + c für CLOAD, CADD, CSUB, c { 1, 0, 1} GOTO P 1 ; P 2 IF c(0) 0 GOTO WHILE x i 0 DO P END END Den RAM-Befehl END ersetzen wir durch das WHILE-Programm x k+1 = 0 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

17 Beweis Turing-Mächtigkeit von WHILE-Programmen Jede Zeile des RAM-Programms wird nun wie oben beschrieben in ein WHILE-Programm transformiert. Das WHILE-Programm für Zeile i bezeichnen wir mit P i. Wir betten P i in ein WHILE-Programm P i mit der folgenden Semantik ein: Falls x k+1 = i dann führe P i aus. Wie kann man P i implementieren? Übung Implementiere jeweils ein WHILE-Programm für die folgenden Fallunterscheidungen. 1 Falls x l = 0 ist, führe P aus, ansonsten Q. 2 Falls x k+1 = i dann führe P i aus. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

18 Beweis Turing-Mächtigkeit von WHILE-Programmen Nun fügen wir die WHILE-Programme P 1,..., P l zu einem WHILE-Programm P zusammen: x k+1 := 1; WHILE x k+1 0 DO END P 1 ;... ; P l P berechnet dieselbe Funktion wie Π. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

19 Ausblick: Die Programmiersprache LOOP Syntax Änderung im Vergleich zu WHILE-Programmen: Wir ersetzen das WHILE-Konstrukt durch ein LOOP-Konstrukt der folgenden Form: LOOP x i DO P END, wobei die Variable x i nicht in P vorkommen darf. Semantik Das Programm P wird x i mal hintereinander ausgeführt. Frage Sind LOOP-Programme Turing-mächtig? Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

20 Ausblick: Die Programmiersprache LOOP Mächigkeit Problem Welche Funktionen können durch LOOP-Programme berechnet werden? Exkurs: Rekursionstheorie Die folgenden Inhalte über primitiv rekursive und µ-rekursive Funktionen sind nicht klausurrelevant. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

21 Wie definiert man eine Funktion? Hilbert [1916, Über das Unendliche]: Die elementaren Hilfsmittel zur Bildung von Funktionen sind offenbar die Einsetzung (d.h. Ersetzung eines Argumentes durch eine neue Variable oder Funktion) und die Rekursion (nach dem Schema der Ableitung des Funktionswertes für n + 1 aus demjenigen für n). Man könnte meinen, daß zu diesen beiden Prozessen der Einsetzung und Rekursion noch andere elementare Definitionsmethoden hinzugenommen werden müßten [...] Es zeigt sich jedoch, daß alle solche Definitionen sich als Spezialfälle der Anwendung von Einsetzungen und Rekursionen darstellen lassen. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

22 Die Klasse der primitiv rekursiven Funktionen f : N N Basisfunktionen Nullfunktionen: o(x 1,..., x k ) = 0 Projektionen: p i (x 1,..., x i,..., x k ) = x i Nachfolgerfunktion: s(n) = n + 1 für n N Induktive Definition primitiv rekursiver Funktionen Primitiv rekursiv sind: 1 Basisfunktionen 2 Kompositionen primitiv rekursiver Funktionen f (x 1,..., x k ) = h(g 1 (x 1,..., x k ),..., g n (x 1,..., x k )) 3 Primitive Rekursionen primitiv rekursiver Funktionen f (0, x 1,..., x k ) = g(x 1,..., x k ) f (n + 1, x 1,..., x k ) = h(f (n, x 1,..., x k ), n, x 1,..., x k ) Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

23 Die Klasse der primitiv rekursiven Funktionen f : N N Beispiel: Addition add : N 2 N add(0, x) = x add(n + 1, x) = s(p 1 (add(n, x), n, x)) bzw. s(add(n, x)) Induktive Definition primitiv rekursiver Funktionen Primitiv rekursiv sind: 1 Basisfunktionen (Null, Projektionen, Nachfolgerfunktion) 2 Kompositionen primitiv rekursiver Funktionen f (x 1,..., x k ) = h(g 1 (x 1,..., x k ),..., g n (x 1,..., x k )) 3 Primitive Rekursionen primitiv rekursiver Funktionen f (0, x 1,..., x k ) = g(x 1,..., x k ) f (n + 1, x 1,..., x k ) = h(f (n, x 1,..., x k ), n, x 1,..., x k ) Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

24 Beispiele primitiv rekursiver Funktionen Multiplikation mult : N 2 N Subtraktion sub : N 2 N mult(0, x) = 0 mult(n + 1, x) = add(mult(n, x), x) sub(x, 0) = x sub(x, y + 1) = u(sub(x, y)) wobei u durch u(0) = 0 und u(n + 1) = n definiert ist. Analog: Division, Exponentiation, Fakultät, Binomialkoeffizient, Cantorsche Paarungsfunktion,... Sind alle Funktionen primitiv rekursiv? Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

25 Mächtigkeit primitiv rekursiver Funktionen Vermutung von Hilbert (1926): Die Klasse der primitiv rekursiven Funktionen stimmt mit der Klasse der rekursiven (berechenbaren) Funktionen überein. Ackermann (1929): Diese Vermutung stimmt nicht! Folgende Funktion ist nicht primitiv rekursiv (Beweis am Freitag). Definition Die Ackermannfunktion A : N 2 N ist folgendermaßen definert: A(0, n) = n + 1 für n 0 A(m + 1, 0) = A(m, 1) für m 0 A(m + 1, n + 1) = A(m, A(m + 1, n)) für m, n 0 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

26 Primitiv rekursive Funktionen und LOOP-Berechenbarkeit Satz Die Klasse der primitiv rekursiven Funktionen stimmt genau mit der Klasse der LOOP-berechenbaren Funktionen überein. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

27 Beweis: primitiv rekursiv LOOP-berechenbar Alle primitiv rekursiven Funktionen können als LOOP-Programm implementiert werden, denn Basisfunktionen sind offensichtlich LOOP-berechenbar Kompositionen primitiv rekursiver Funktionen werden durch Hintereinanderausführung der entsprechenden LOOP-Programme implementiert Und falls f durch primitive Rekursion definiert ist, d.h. in der Form f (0, x 1,..., x k ) = g(x 1,..., x k ) f (n + 1, x 1,..., x k ) = h(f (n, x 1,..., x k ), n, x 1,..., x k ) gegeben ist, verwenden wir das folgende LOOP-Programm: y := g(x 1,..., x k ); LOOP n DO y := h(y, n 1, x 1,..., x k ) END Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

28 Beweis: LOOP-berechenbar primitiv rekursiv Für die Umkehrrichtung benutzen wir eine bijektive Abbildung encode : N k N (z.b. die Cantorsche Tupelfunktion), um Modifikationen auf k Variablen als einstellige Funktion darzustellen. Man kann sich leicht veranschaulichen, dass die in der Übung vorgestellte Cantorsche Paarfunktion π : N 2 N mit ( ) x + y + 1 π(x, y) = + y 2 und ihre Erweiterung π (k) : N k N auf k-tupel natürlicher Zahlen durch primitiv rekursiv ist. π (k) (x 1,..., x k ) = π(π (k 1) (x 1,..., x k 1 ), x k ) Ebenso kann man die Umkehrfunktionen d i mit d i (encode(x 1,..., x i,..., x k )) = x i zum Dekodieren der einzelnen Elemente primitiv rekursiv definieren. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

29 Beweis: LOOP-berechenbar primitiv rekursiv Ein LOOP-Programm P der Form x i := x j ± c kann nun als primitiv rekursive Funktion g P (z) = encode(d 0 (z),..., d i 1 (z), d i (z)±c, d i+1 (z),..., d k (z)) geschrieben werden. Für die Hintereinanderausführung zweier Programme Q; R verwenden wir die Komposition g R (g Q (z)). Und LOOP x i DO Q END wird durch g LOOP (z) = h(d i (z), z) mit h(0, z) = z und h(n + 1, z) = g Q (h(n, z)) abgebildet. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

30 Primitiv rekursive Funktionen und LOOP-Berechenbarkeit Wir haben gezeigt: Satz Die Klasse der primitiv rekursiven Funktionen stimmt genau mit der Klasse der LOOP-berechenbaren Funktionen überein. Aber: Nicht alle Funktionen sind primitiv rekursiv. Wie sieht die Klasse der WHILE-/Turing-berechenbaren Funktionen aus? Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

31 µ-rekursive Funktionen Induktive Definition µ-rekursiver Funktionen µ-rekursiv sind: 1 Basisfunktionen (Nullfunktion, Projektionen, Nachfolgerfunktion) 2 Kompositionen µ-rekursiver Funktionen 3 Primitive Rekursionen µ-rekursiver Funktionen 4 µ-rekursionen µ-rekursiver Funktionen f (x 1,..., x k ) = µg := min{n g(n, x 1,..., x k ) = 0 wobei min{ } := und für alle m < n ist g(m, x 1,..., x k ) definiert}, Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

32 Turing-berechenbare Funktionen Satz Die Klasse der µ-rekursiven Funktionen stimmt genau mit der Klasse der WHILE-/TURING-berechenbaren Funktionen überein. Ein Programm P der Form WHILE x i 0 DO Q END wird als g P (z) = h(µ(d i h)(z), z) dargestellt, wobei h(n, z) wie im vorigen Beweis den Zustand der Programmvariablen z = encode(x 0,..., x k ) nach n Ausführungen von Q wiedergibt. Umgekehrt implementieren wir g = µf durch x 0 := 0; y := f (0, x 1,..., x n ); WHILE y 0 DO x 0 := x 0 + 1; y := f (x 0, x 1,..., x n ); END Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

33 Zusammenfassung TM RAM WHILE µ-rekursiv LOOP primitiv rekursiv + a b x k ( n k )... Ackermannfkt. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 16. November / 33

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

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

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

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

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

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

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

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

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

Registermaschine (RAM), Church-Turing-These

Registermaschine (RAM), Church-Turing-These Registermaschine (RAM), Church-Turing-These Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 21. Oktober 2010 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

Mehr

Berechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen

Berechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen Berechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 25. Oktober 2006 Was ist ein Problem? Informelle Umschreibung

Mehr

Registermaschine (RAM), Church-Turing-These. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Registermaschine (RAM), Church-Turing-These. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Registermaschine (RAM), Church-Turing-These Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 22 Registermaschinen (RAM) Programm b c(0) c(1) c(2) c(3) c(4)...

Mehr

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

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik 0 KIT 07.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am

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 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

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

Berechenbarkeit und Komplexität Vorlesung 3

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

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

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

Theoretische Grundlagen der Informatik. Vorlesung am 07. November INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 07. November INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 07.11.2017 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Frage Frage: Ist der

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

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

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

VL-05: Unentscheidbarkeit I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

VL-05: Unentscheidbarkeit I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger VL-05: Unentscheidbarkeit I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-05: Unentscheidbarkeit I 1/37 Organisatorisches Nächste Vorlesung: Donnerstag, November

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

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

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

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

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

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

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

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

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

Ü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

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

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

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

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Turing-Maschine, Berechenbarkeit INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

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

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

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

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

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

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

Unentscheidbare Probleme: Diagonalisierung

Unentscheidbare Probleme: Diagonalisierung Unentscheidbare Probleme: Diagonalisierung Prof Dr Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Oktober 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

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

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

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

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

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 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

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

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

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

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

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

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

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University,

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

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

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

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

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 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

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Teil II: Berechenbarkeit und Komplexität Algorithmen und Komplexität 22. November 2016 Berechenbarkeitstheorie RAM-Maschine 1: M 1 1 2: M 0 1 3: M 0 M 0 M 1 4: M 2 M 2 M 1 5: GOTO 3 IF M 2 > 0. M 2 : M

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

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Lösungen zur Vorlesung Berechenbarkeit und Komplexität Lehrstuhl für Informatik 1 WS 009/10 Prof. Dr. Berthold Vöcking 0.0.010 Alexander Skopalik Thomas Kesselheim Lösungen zur Vorlesung Berechenbarkeit und Komplexität. Zulassungsklausur Aufgabe 1: (a) Worin

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

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

Allgemeines Halteproblem Hilberts 10. Problem

Allgemeines Halteproblem Hilberts 10. Problem Allgemeines Halteproblem Hilberts 10. Problem Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen November 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

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 1

Theoretische Informatik 1 Theoretische Informatik 1 Teil 4 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Turingmaschinen Mehrband-TM Kostenmaße Komplexität 2 Mehrband-TM Kostenmaße

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

Unentscheidbare Probleme: Existenz, Diagonalsprache, Halteproblem

Unentscheidbare Probleme: Existenz, Diagonalsprache, Halteproblem Unentscheidbare Probleme: Existenz, Diagonalsprache, Halteproblem Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 25. Oktober 2010 Berthold Vöcking, Informatik

Mehr

Theoretische Informatik II

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

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

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

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

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

Härte von Hamilton-Kreis und TSP Überblick über die Komplexitätslandschaft

Härte von Hamilton-Kreis und TSP Überblick über die Komplexitätslandschaft Härte von Hamilton-Kreis und TSP Überblick über die Komplexitätslandschaft Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 5. Februar 2010 Berthold Vöcking, Informatik

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

NP-Vollständigkeit einiger Zahlprobleme

NP-Vollständigkeit einiger Zahlprobleme NP-Vollständigkeit einiger Zahlprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 22. Januar 2010 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

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

VL-08: Turing-Mächtigkeit. (Berechenbarkeit und Komplexität, WS 2018) Gerhard Woeginger

VL-08: Turing-Mächtigkeit. (Berechenbarkeit und Komplexität, WS 2018) Gerhard Woeginger VL-08: Turing-Mächtigkeit (Berechenbarkeit und Komplexität, WS 2018) Gerhard Woeginger WS 2018, RWTH BuK/WS 2018 VL-08: Turing-Mächtigkeit 1/46 Organisatorisches Nächste Vorlesung: Donnerstag, November

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

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Die Komplexitätsklasse P David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Äquivalenz von RM und TM Äquivalenz, Sätze Simulation DTM

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik 0 KIT 17.05.2010 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am

Mehr

Berechenbarkeit und Komplexität: Simulationen zwischen TM und RAM und die Church-Turing-These

Berechenbarkeit und Komplexität: Simulationen zwischen TM und RAM und die Church-Turing-These Berechenbarkeit und Komplexität: Simulationen zwischen TM und RAM und die Church-Turing-These Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 28. Oktober 2006 Simulation RAM

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

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

Algorithmen und Datenstrukturen I - Maschinenmodelle -

Algorithmen und Datenstrukturen I - Maschinenmodelle - Algorithmen und Datenstrukturen I - Maschinenmodelle - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 93 Kapitel 3 - Maschinenmodelle

Mehr

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p. Thorsten Timmer SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke Turing Maschine SS 2005 p. 1/35 Inhalt Einführung Formale Definition Berechenbare Sprachen und Funktionen Berechnung ganzzahliger

Mehr

Unentscheidbarkeit des Halteproblems: Unterprogrammtechnik

Unentscheidbarkeit des Halteproblems: Unterprogrammtechnik Unentscheidbarkeit des Halteproblems: Unterprogrammtechnik Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Oktober 2011 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr