Grundlagen der Theoretischen Informatik: Übung 10

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Theoretischen Informatik: Übung 10"

Transkript

1 Grundlagen der Theoretischen Informatik: Übung 10 Joachim Selke Fachgebiet Theoretische Informatik Universität Hannover 20. Januar 2005

2 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f : N k 0 N 0, also eine Funktion mit k natürlichen Zahlen als Eingabe und einer natürlichen Zahl als Ausgabe

3 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f : N k 0 N 0, also eine Funktion mit k natürlichen Zahlen als Eingabe und einer natürlichen Zahl als Ausgabe derartige Funktionen sind mit speziellen (deterministischen) Turing-Maschinen berechenbar

4 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f : N k 0 N 0, also eine Funktion mit k natürlichen Zahlen als Eingabe und einer natürlichen Zahl als Ausgabe derartige Funktionen sind mit speziellen (deterministischen) Turing-Maschinen berechenbar zu Beginn der Rechnung stehen die Eingabezahlen binär kodiert (bei mehreren Eingabezahlen durch ein spezielles Trennzeichen getrennt) auf dem Arbeitsband, nach der Rechnung steht dort die Ausgabe

5 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f : N k 0 N 0, also eine Funktion mit k natürlichen Zahlen als Eingabe und einer natürlichen Zahl als Ausgabe derartige Funktionen sind mit speziellen (deterministischen) Turing-Maschinen berechenbar zu Beginn der Rechnung stehen die Eingabezahlen binär kodiert (bei mehreren Eingabezahlen durch ein spezielles Trennzeichen getrennt) auf dem Arbeitsband, nach der Rechnung steht dort die Ausgabe f muß nicht für alle möglichen Eingaben definiert sein bei allen undefinierten Eingabewerten gerät die Turing-Maschine in eine Endlosschleife

6 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f : N k 0 N 0, also eine Funktion mit k natürlichen Zahlen als Eingabe und einer natürlichen Zahl als Ausgabe derartige Funktionen sind mit speziellen (deterministischen) Turing-Maschinen berechenbar zu Beginn der Rechnung stehen die Eingabezahlen binär kodiert (bei mehreren Eingabezahlen durch ein spezielles Trennzeichen getrennt) auf dem Arbeitsband, nach der Rechnung steht dort die Ausgabe f muß nicht für alle möglichen Eingaben definiert sein bei allen undefinierten Eingabewerten gerät die Turing-Maschine in eine Endlosschleife Anmerkung: Mit Turing-Maschinen lassen sich natürlich auch Funktionen g : Σ Γ berechnen, wobei Σ und Γ Alphabete sind

7 Beispiel: Division f (a, b) := a b Berechnung von f (12, 3): Arbeitsband: 1100#11 Berechnung Arbeitsband: 100

8 Beispiel: Division f (a, b) := a b Berechnung von f (12, 0): Arbeitsband: 1100#0 Berechnung Endlosschleife

9 Programmiersprachen: LOOP, WHILE, GOTO möchte man das Berechnungsverfahren für eine bestimmte Funktion f exakt beschreiben, so kann man natürlich eine konkrete Turing-Maschinen angeben, die f berechnet

10 Programmiersprachen: LOOP, WHILE, GOTO möchte man das Berechnungsverfahren für eine bestimmte Funktion f exakt beschreiben, so kann man natürlich eine konkrete Turing-Maschinen angeben, die f berechnet dies ist aber in der Regel sehr umständlich und nur schwer lesbar (viele Zustände und Zustandsübergänge)

11 Programmiersprachen: LOOP, WHILE, GOTO möchte man das Berechnungsverfahren für eine bestimmte Funktion f exakt beschreiben, so kann man natürlich eine konkrete Turing-Maschinen angeben, die f berechnet dies ist aber in der Regel sehr umständlich und nur schwer lesbar (viele Zustände und Zustandsübergänge) eine alternative Möglichkeit sind Programmiersprachen

12 Programmiersprachen: LOOP, WHILE, GOTO möchte man das Berechnungsverfahren für eine bestimmte Funktion f exakt beschreiben, so kann man natürlich eine konkrete Turing-Maschinen angeben, die f berechnet dies ist aber in der Regel sehr umständlich und nur schwer lesbar (viele Zustände und Zustandsübergänge) eine alternative Möglichkeit sind Programmiersprachen diese sind darauf ausgelegt, daß Menschen damit leicht Programme schreiben können die Verständlichkeit der Anweisungen steht im Vordergrund

13 Programmiersprachen: LOOP, WHILE, GOTO möchte man das Berechnungsverfahren für eine bestimmte Funktion f exakt beschreiben, so kann man natürlich eine konkrete Turing-Maschinen angeben, die f berechnet dies ist aber in der Regel sehr umständlich und nur schwer lesbar (viele Zustände und Zustandsübergänge) eine alternative Möglichkeit sind Programmiersprachen diese sind darauf ausgelegt, daß Menschen damit leicht Programme schreiben können die Verständlichkeit der Anweisungen steht im Vordergrund wir betrachten im folgenden drei sehr einfache Programmiersprachen zur Berechung von Funktionen ähnlich wie Turing-Maschinen: LOOP, WHILE und GOTO

14 Die Programmiersprache LOOP wie bei Turing-Maschinen soll eine Funktion f : N k 0 N 0 berechnet werden

15 Die Programmiersprache LOOP wie bei Turing-Maschinen soll eine Funktion f : N k 0 N 0 berechnet werden es gibt in LOOP-Programmen unendlich viele Variablen: x 0, x 1, x 2,...

16 Die Programmiersprache LOOP wie bei Turing-Maschinen soll eine Funktion f : N k 0 N 0 berechnet werden es gibt in LOOP-Programmen unendlich viele Variablen: x 0, x 1, x 2,... jede dieser Variablen kann einen Wert aus N 0 speichern

17 Die Programmiersprache LOOP wie bei Turing-Maschinen soll eine Funktion f : N k 0 N 0 berechnet werden es gibt in LOOP-Programmen unendlich viele Variablen: x 0, x 1, x 2,... jede dieser Variablen kann einen Wert aus N 0 speichern die k Eingabewerte sind zu Beginn jedes LOOP-Programms in den Variablen x 1, x 2,..., x k gespeichert

18 Die Programmiersprache LOOP wie bei Turing-Maschinen soll eine Funktion f : N k 0 N 0 berechnet werden es gibt in LOOP-Programmen unendlich viele Variablen: x 0, x 1, x 2,... jede dieser Variablen kann einen Wert aus N 0 speichern die k Eingabewerte sind zu Beginn jedes LOOP-Programms in den Variablen x 1, x 2,..., x k gespeichert alle anderen Variablen haben zu Beginn den Wert 0

19 Die Programmiersprache LOOP wie bei Turing-Maschinen soll eine Funktion f : N k 0 N 0 berechnet werden es gibt in LOOP-Programmen unendlich viele Variablen: x 0, x 1, x 2,... jede dieser Variablen kann einen Wert aus N 0 speichern die k Eingabewerte sind zu Beginn jedes LOOP-Programms in den Variablen x 1, x 2,..., x k gespeichert alle anderen Variablen haben zu Beginn den Wert 0 am Ende des Programms muß der Ausgabewert in der Variablen x 0 gespeichert sein dafür ist das LOOP-Programm zuständig

20 Die Programmiersprache LOOP Beginn: x 0 x 1 x 2 x k 1 x k x k+1 x k+2 0 Eingabe 0 0 Berechnung durch das LOOP-Programm Ende: x 0 x 1 x 2 x k 1 x k x k+1 x k+2 Ausgabe???????

21 Die Programmiersprache LOOP während der Berechnung kann der Inhalt der Variablen verändert werden

22 Die Programmiersprache LOOP während der Berechnung kann der Inhalt der Variablen verändert werden mit dem Befehl x 2 := x wird beispielsweise in der Variablen x 2 der um 75 erhöhte Wert der Variablen x 6 gespeichert enthält x 6 etwa den Wert 25, so bekommt x 2 den Wert 100 zugewiesen

23 Die Programmiersprache LOOP während der Berechnung kann der Inhalt der Variablen verändert werden mit dem Befehl x 2 := x wird beispielsweise in der Variablen x 2 der um 75 erhöhte Wert der Variablen x 6 gespeichert enthält x 6 etwa den Wert 25, so bekommt x 2 den Wert 100 zugewiesen genauso ist auch x 167 := x 1 12 möglich, hier wird dann subtrahiert negative Werte werden dabei zu 0

24 Die Programmiersprache LOOP während der Berechnung kann der Inhalt der Variablen verändert werden mit dem Befehl x 2 := x wird beispielsweise in der Variablen x 2 der um 75 erhöhte Wert der Variablen x 6 gespeichert enthält x 6 etwa den Wert 25, so bekommt x 2 den Wert 100 zugewiesen genauso ist auch x 167 := x 1 12 möglich, hier wird dann subtrahiert negative Werte werden dabei zu 0 derartige Befehle lassen sich natürlich für beliebige Variablen und Zahlen (aus N 0 ) formulieren

25 Die Programmiersprache LOOP während der Berechnung kann der Inhalt der Variablen verändert werden mit dem Befehl x 2 := x wird beispielsweise in der Variablen x 2 der um 75 erhöhte Wert der Variablen x 6 gespeichert enthält x 6 etwa den Wert 25, so bekommt x 2 den Wert 100 zugewiesen genauso ist auch x 167 := x 1 12 möglich, hier wird dann subtrahiert negative Werte werden dabei zu 0 derartige Befehle lassen sich natürlich für beliebige Variablen und Zahlen (aus N 0 ) formulieren LOOP-Programme entstehen durch die Ausführung mehrerer Befehle hintereinander

26 Die Programmiersprache LOOP während der Berechnung kann der Inhalt der Variablen verändert werden mit dem Befehl x 2 := x wird beispielsweise in der Variablen x 2 der um 75 erhöhte Wert der Variablen x 6 gespeichert enthält x 6 etwa den Wert 25, so bekommt x 2 den Wert 100 zugewiesen genauso ist auch x 167 := x 1 12 möglich, hier wird dann subtrahiert negative Werte werden dabei zu 0 derartige Befehle lassen sich natürlich für beliebige Variablen und Zahlen (aus N 0 ) formulieren LOOP-Programme entstehen durch die Ausführung mehrerer Befehle hintereinander dies ist mit dem Zeichen ; möglich Beispiel: x 2 := x ; x 167 := x 1 12

27 Die Programmiersprache LOOP seinen Namen verdankt LOOP einem Schleifen-Befehl

28 Die Programmiersprache LOOP seinen Namen verdankt LOOP einem Schleifen-Befehl Beispiel: LOOP x 7 DO... END (... ist dabei eine beliebige Folge von LOOP-Befehlen)

29 Die Programmiersprache LOOP seinen Namen verdankt LOOP einem Schleifen-Befehl Beispiel: LOOP x 7 DO... END (... ist dabei eine beliebige Folge von LOOP-Befehlen) hat x 7 vor der Ausführung dieses Befehls beispielsweise den Wert 11, so werden die durch... angedeuteten Befehle genau 11-mal wiederholt ausgeführt egal, ob x 7 dadurch seinen Wert ändert!

30 Die Programmiersprache LOOP seinen Namen verdankt LOOP einem Schleifen-Befehl Beispiel: LOOP x 7 DO... END (... ist dabei eine beliebige Folge von LOOP-Befehlen) hat x 7 vor der Ausführung dieses Befehls beispielsweise den Wert 11, so werden die durch... angedeuteten Befehle genau 11-mal wiederholt ausgeführt egal, ob x 7 dadurch seinen Wert ändert! durch die Ausführung des LOOP-Befehls ändert x 7 seinen Wert nicht dies ist nur durch die wiederholten Befehle möglich

31 Was berechnet folgendes LOOP-Programm? Eingabe: x 1, x 2 LOOP x 1 DO x 1 := x END; LOOP x 2 DO x 1 := x END; x 0 := x 1 + 0

32 Was berechnet folgendes LOOP-Programm? Eingabe: x 1, x 2 LOOP x 1 DO x 1 := x END; LOOP x 2 DO x 1 := x END; x 0 := x Antwort: 5 x 1 + x 2

33 Aufgabe Eingabe: x 1, x 2, x 3, x 4 Ausgabe: 100 x 1 + x 2 + x 3 + x 4 Schreiben Sie ein passendes LOOP-Programm!

34 Spezielle LOOP-Programme Zur Vereinfachung definieren wir uns Kurzschreibweisen für bestimmte LOOP-Programme: x i := x j x i := x j + 0 x i := c x i := x p + c (c ist eine beliebige Zahl) (x p ist eine beliebige unbenutzte Variable) IF x i = 0 THEN P END x p := 1; (P ist ein beliebiges LOOP-Programm) LOOP x i DO (x p ist eine beliebige unbenutzte Variable) x p := 0 END; LOOP x p DO P END

35 Übungsblatt 10, Aufgabe 2 Wie formuliert man in LOOP? IF x i = 0 THEN P ELSE Q END

36 Weitere spezielle LOOP-Programme x i := x j + x k x i := x j ; LOOP x k DO x i := x i + 1 END x i := x j x k x i := 0; LOOP x k DO x i := x i + x j END (siehe Vorlesung)

37 Die Programmiersprache WHILE wir erweitern LOOP um einen weiteren Befehl

38 Die Programmiersprache WHILE wir erweitern LOOP um einen weiteren Befehl WHILE x i 0 DO P END führt das Programm P solange wiederholt aus, bis x i den Wert 0 hat

39 Die Programmiersprache WHILE wir erweitern LOOP um einen weiteren Befehl WHILE x i 0 DO P END führt das Programm P solange wiederholt aus, bis x i den Wert 0 hat die Überprüfung, ob x i = 0 gilt, findet vor jeder Wiederholung statt

40 Die Programmiersprache WHILE wir erweitern LOOP um einen weiteren Befehl WHILE x i 0 DO P END führt das Programm P solange wiederholt aus, bis x i den Wert 0 hat die Überprüfung, ob x i = 0 gilt, findet vor jeder Wiederholung statt nun lassen sich Endlosschleifen erzeugen das ist in der Programmiersprache LOOP nicht möglich!

41 Was berechnet folgendes WHILE-Programm? Eingabe: x 1, x 2, x 3 x 0 := 1; WHILE x 1 0 DO x 0 := x 0 x 2 ; x 1 := x 1 1 END; LOOP x 3 DO x 0 := x END

42 Was berechnet folgendes WHILE-Programm? Eingabe: x 1, x 2, x 3 Antwort: x x x 3 x 0 := 1; WHILE x 1 0 DO x 0 := x 0 x 2 ; x 1 := x 1 1 END; LOOP x 3 DO x 0 := x END

43 Die Programmiersprache GOTO Variablen und Schreibweisen sind in GOTO wie in LOOP und WHILE, nur die Befehle unterscheiden sich

44 Die Programmiersprache GOTO Variablen und Schreibweisen sind in GOTO wie in LOOP und WHILE, nur die Befehle unterscheiden sich die Befehle der Programmiersprache GOTO sehen wir gleich, ein wichtiger Unterschied zu LOOP und WHILE ist jedoch, daß jeder Befehl in einem GOTO-Programm mit einer Markierung versehen ist der erste Befehl im Programmtext hat die Marke M 1, der zweite M 2 und so weiter...

45 Die Programmiersprache GOTO Variablen und Schreibweisen sind in GOTO wie in LOOP und WHILE, nur die Befehle unterscheiden sich die Befehle der Programmiersprache GOTO sehen wir gleich, ein wichtiger Unterschied zu LOOP und WHILE ist jedoch, daß jeder Befehl in einem GOTO-Programm mit einer Markierung versehen ist der erste Befehl im Programmtext hat die Marke M 1, der zweite M 2 und so weiter... die Befehle x i := x j + c und x i := x j c sind wie in LOOP und WHILE definiert

46 Die Programmiersprache GOTO Variablen und Schreibweisen sind in GOTO wie in LOOP und WHILE, nur die Befehle unterscheiden sich die Befehle der Programmiersprache GOTO sehen wir gleich, ein wichtiger Unterschied zu LOOP und WHILE ist jedoch, daß jeder Befehl in einem GOTO-Programm mit einer Markierung versehen ist der erste Befehl im Programmtext hat die Marke M 1, der zweite M 2 und so weiter... die Befehle x i := x j + c und x i := x j c sind wie in LOOP und WHILE definiert der Befehl GOTO M j sorgt dafür, daß das Programm bei dem Befehl mit der Markierung M j fortgesetzt wird

47 Die Programmiersprache GOTO Variablen und Schreibweisen sind in GOTO wie in LOOP und WHILE, nur die Befehle unterscheiden sich die Befehle der Programmiersprache GOTO sehen wir gleich, ein wichtiger Unterschied zu LOOP und WHILE ist jedoch, daß jeder Befehl in einem GOTO-Programm mit einer Markierung versehen ist der erste Befehl im Programmtext hat die Marke M 1, der zweite M 2 und so weiter... die Befehle x i := x j + c und x i := x j c sind wie in LOOP und WHILE definiert der Befehl GOTO M j sorgt dafür, daß das Programm bei dem Befehl mit der Markierung M j fortgesetzt wird der Befehl IF x i = c THEN GOTO M j überprüft, ob die Variable x i den Wert c hat ist dies der Fall, so wird das Programm bei dem Befehl mit der Markierung M j fortgesetzt; ansonsten passiert nichts

48 Die Programmiersprache GOTO Variablen und Schreibweisen sind in GOTO wie in LOOP und WHILE, nur die Befehle unterscheiden sich die Befehle der Programmiersprache GOTO sehen wir gleich, ein wichtiger Unterschied zu LOOP und WHILE ist jedoch, daß jeder Befehl in einem GOTO-Programm mit einer Markierung versehen ist der erste Befehl im Programmtext hat die Marke M 1, der zweite M 2 und so weiter... die Befehle x i := x j + c und x i := x j c sind wie in LOOP und WHILE definiert der Befehl GOTO M j sorgt dafür, daß das Programm bei dem Befehl mit der Markierung M j fortgesetzt wird der Befehl IF x i = c THEN GOTO M j überprüft, ob die Variable x i den Wert c hat ist dies der Fall, so wird das Programm bei dem Befehl mit der Markierung M j fortgesetzt; ansonsten passiert nichts der Befehl HALT beendet das Programm

49 Was berechnet folgendes GOTO-Programm? Eingabe: x 1, x 2 M 1 : IF x 1 = 0 THEN GOTO M 5 ; M 2 : x 2 := x 2 + 1; M 3 : x 1 := x 1 x 2 ; M 4 : GOTO M 1 ; M 5 : x 0 := x 2 ; M 6 : HALT

50 Was berechnet folgendes GOTO-Programm? Eingabe: x 1, x 2 M 1 : IF x 1 = 0 THEN GOTO M 5 ; M 2 : x 2 := x 2 + 1; M 3 : x 1 := x 1 x 2 ; M 4 : GOTO M 1 ; M 5 : x 0 := x 2 ; M 6 : HALT Antwort: Sind a und b die Eingabewerte und k N 0 die kleinste Zahl, die die Bedingung a k b k i=1 i 0 erfüllt, so ist die Ausgabe b + k.

51 Äquivalenzbetrachtungen in der Vorlesung wurde gezeigt, daß WHILE-Programme, GOTO-Programme und Turing-Maschinen äquivalent sind

52 Äquivalenzbetrachtungen in der Vorlesung wurde gezeigt, daß WHILE-Programme, GOTO-Programme und Turing-Maschinen äquivalent sind kann man also in einem dieser drei Modelle ein Berechnungsverfahren für eine bestimmte Funktion angeben, so ist dies auch in den anderen beiden möglich

53 Äquivalenzbetrachtungen in der Vorlesung wurde gezeigt, daß WHILE-Programme, GOTO-Programme und Turing-Maschinen äquivalent sind kann man also in einem dieser drei Modelle ein Berechnungsverfahren für eine bestimmte Funktion angeben, so ist dies auch in den anderen beiden möglich LOOP-Programme hingegen können weniger als diese drei Berechnungsmodelle

54 Äquivalenzbetrachtungen in der Vorlesung wurde gezeigt, daß WHILE-Programme, GOTO-Programme und Turing-Maschinen äquivalent sind kann man also in einem dieser drei Modelle ein Berechnungsverfahren für eine bestimmte Funktion angeben, so ist dies auch in den anderen beiden möglich LOOP-Programme hingegen können weniger als diese drei Berechnungsmodelle zum einen müssen LOOP-Programme immer anhalten, zum anderen gibt es totale Funktionen, die mit LOOP-Programmen nicht berechenbar ist

55 Äquivalenzbetrachtungen in der Vorlesung wurde gezeigt, daß WHILE-Programme, GOTO-Programme und Turing-Maschinen äquivalent sind kann man also in einem dieser drei Modelle ein Berechnungsverfahren für eine bestimmte Funktion angeben, so ist dies auch in den anderen beiden möglich LOOP-Programme hingegen können weniger als diese drei Berechnungsmodelle zum einen müssen LOOP-Programme immer anhalten, zum anderen gibt es totale Funktionen, die mit LOOP-Programmen nicht berechenbar ist ein Beispiel dafür ist die sogenannte Ackermann-Funktion: y + 1 falls x = 0, f (x, y) := f (x 1, 1) falls x > 0 und y = 0, f ( x 1, f (x, y 1) ) sonst.

56 Die Churchsche These lange Zeit hat man versucht, sich Berechnungsmodelle auszudenken, die mehr können als Turing-Maschinen oder WHILE-Programme

57 Die Churchsche These lange Zeit hat man versucht, sich Berechnungsmodelle auszudenken, die mehr können als Turing-Maschinen oder WHILE-Programme erstaunlicherweise hat man bisher jedoch kein mächtigeres Modell als die obigen gefunden

58 Die Churchsche These lange Zeit hat man versucht, sich Berechnungsmodelle auszudenken, die mehr können als Turing-Maschinen oder WHILE-Programme erstaunlicherweise hat man bisher jedoch kein mächtigeres Modell als die obigen gefunden Alonzo Church ( ), ein amerikanischer Mathematiker hat daher bereits 1936 die These formuliert, daß die Menge der im intuitiven Sinne berechenbaren Funktionen der Menge der von Turing-Maschinen berechenbaren Funktionen entspricht

59 Die Churchsche These lange Zeit hat man versucht, sich Berechnungsmodelle auszudenken, die mehr können als Turing-Maschinen oder WHILE-Programme erstaunlicherweise hat man bisher jedoch kein mächtigeres Modell als die obigen gefunden Alonzo Church ( ), ein amerikanischer Mathematiker hat daher bereits 1936 die These formuliert, daß die Menge der im intuitiven Sinne berechenbaren Funktionen der Menge der von Turing-Maschinen berechenbaren Funktionen entspricht diese These läßt sich nicht beweisen, man ist von ihrer Gültigkeit jedoch überzeugt

60 Die Churchsche These lange Zeit hat man versucht, sich Berechnungsmodelle auszudenken, die mehr können als Turing-Maschinen oder WHILE-Programme erstaunlicherweise hat man bisher jedoch kein mächtigeres Modell als die obigen gefunden Alonzo Church ( ), ein amerikanischer Mathematiker hat daher bereits 1936 die These formuliert, daß die Menge der im intuitiven Sinne berechenbaren Funktionen der Menge der von Turing-Maschinen berechenbaren Funktionen entspricht diese These läßt sich nicht beweisen, man ist von ihrer Gültigkeit jedoch überzeugt Ausblick: es gibt Funktionen, die man auch mit Turing-Maschinen nicht berechnen kann!

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

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

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

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

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

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

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

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

Ü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

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

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

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

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

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

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

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

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

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard 1 Motivation und Einleitung Bisher haben wir verschiedene Programmiersprachen

Mehr

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene

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

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

Algorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion.

Algorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion. Algorithmus Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion. Hier einige informelle Erklärungen zum Algorithmus P

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

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK THEORETISCHE INFORMATIK UND LOGIK 4. Vorlesung: Das Halteproblem und Reduktionen Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 19. April 2017 Ankündigung Wegen großer Nachfrage wird eine

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

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

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

Schleifen: Immer wieder dasselbe tun

Schleifen: Immer wieder dasselbe tun Schleifen: Immer wieder dasselbe tun Bei einer Schleife werden Anweisungen immer wieder ausgeführt, solange die Bedingung wahr ist. Dafür muss man eine Variable immer wieder ändern, solange bis eine Überprüfung

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

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

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

Die mathematische Seite

Die mathematische Seite Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion

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

Einführung in die Programmierung

Einführung in die Programmierung Prof. Dr. Rudolf Berrendorf Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg URM - Programmierung Dipl.-Inf. Sigrid Weil Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg Einordnung Programmier-Paradigma:

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

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theoretische Informatik für Wirtschaftsinformatik und Lehramt Theoretische Informatik für Wirtschaftsinformatik und Lehramt Universelle Turingmaschinen und Church sche These Priv.-Doz. Dr. Stefan Milius stefan.milius@fau.de Theoretische Informatik Friedrich-Alexander

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

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

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

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung

Mehr

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein!

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein! 4 Turingmaschinen Eingabeband nicht nur lesen, sondern auch schreiben kann und die zudem mit ihrem Lese-Schreib-Kopf (LSK) nach links und rechts gehen kann. Das Eingabeband ist zudem in beide Richtungen

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 20. November 2014 INSTITUT FÜR THEORETISCHE 0 KIT 20.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

1936 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus

1936 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus //5 Abstrakte Maschinenmodelle: Turingmaschine (TM) 96 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus einem festen Teil ( "Hardware ) einem variablen Teil ( "Software

Mehr

Gierhardt. Einführung:

Gierhardt. Einführung: Informatik 13: Gierhardt Theoretische Informatik I Einführung: Neben den Problemen und Fragen der praktischen Informatik, wo es in erster Linie um die Wahl der geeigneten Algorithmen und Datenstrukturen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Kontrollstrukturen Wichtig: bedingte Ausführung

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2018 Kapitel 1: Informationsverarbeitung

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

Lösungsvorschläge zu Blatt Nr. 6

Lösungsvorschläge zu Blatt Nr. 6 Institut für Algorithmen und Kognitive Systeme Dr. Jörn Müller-Quade Carmen Kempka Christian Henrich Nico Döttling Vorlesung Informatik III Lösungsvorschläge zu Blatt Nr. 6 Aufgabe 1 (K) (4 Punkte) i.)

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

Kapitel 3: Berechnungstheorie Algorithmisch unlösbare Probleme. Einordnung

Kapitel 3: Berechnungstheorie Algorithmisch unlösbare Probleme. Einordnung Einordnung es gibt algorithmische Probleme, die algorithmisch unlösbar sind (/ * d.h. unter der Annahme, das die Churchsche These richtig ist, kann es nachweislich kein Computerprogramm geben, welches

Mehr

Von der Chomsky-Hierarchie

Von der Chomsky-Hierarchie Von der Chomsky-Hierarchie zur Backus-Naur-Form Ein Beitrag der Theoretischen Informatik zum Siegeszug des Computers Referat von Helmut Schnitzspan Im Rahmen des Seminars Von der EDV zu Facebook Alexander

Mehr

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften

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

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

Theoretische Informatik. Berechenbarkeit

Theoretische Informatik. Berechenbarkeit Theoretische Informatik Berechenbarkeit 1 Turing Maschine Endlicher Automat mit unendlichem Speicher Ein Modell eines realen Computers Was ein Computer berechnen kann, kann auch eine TM berechnen. Was

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

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

Einführung in die Informatik

Einführung in die Informatik Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle 24. November 28 Einführung in die Informatik Übung 7 Allgemeines Für die Abgabe der

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

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man

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

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn 26. Oktober 2015 Programme und Algorithmen Programmiersprache = Kunstsprache mit genau definierter Syntax (was ist ein zulässiger

Mehr

Tag 3 Repetitorium Informatik (Java)

Tag 3 Repetitorium Informatik (Java) Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung

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

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

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 5 Besprechung: 20. 24.11.2017 (KW 47) Vorbereitende

Mehr

Grundlagen der Informatik Kapitel 19. Harald Krottmaier Sven Havemann

Grundlagen der Informatik Kapitel 19. Harald Krottmaier Sven Havemann Grundlagen der Informatik Kapitel 19 Harald Krottmaier Sven Havemann Agenda Begriffe Turingmaschine Beispiele Berechenbarkeit Hilfsmittel Beispiele WS2007 2 Motivation Sind Computer allmächtig? Präziser:

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

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 23. November 2017 INSTITUT FÜR THEORETISCHE 0 23.11.2017 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität

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

4.4 Imperative Algorithmen Prozeduren

4.4 Imperative Algorithmen Prozeduren 4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):

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

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 17.November 2011 INSTITUT FÜR THEORETISCHE 0 KIT 17.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

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

Präsenzübung Berechenbarkeit und Komplexität

Präsenzübung Berechenbarkeit und Komplexität Lehrstuhl für Informatik 1 WS 2013/14 Prof. Dr. Berthold Vöcking 28.01.2014 Kamal Al-Bawani Benjamin Ries Präsenzübung Berechenbarkeit und Komplexität Musterlösung Name:...................................

Mehr

Algorithmen und Komplexität, Teil II: Berechenbarkeit und Komplexität

Algorithmen und Komplexität, Teil II: Berechenbarkeit und Komplexität Algorithmen und Komplexität, Teil II: Berechenbarkeit und Komplexität Ralph Keusch 21. November 2017 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

Mehr

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf) Musterlösung Übung 2 Aufgabe 1: Große Zahlen Das Ergebnis ist nicht immer richtig. Die Maschine erzeugt bei Zahlen, die zu groß sind um sie darstellen zu können einen Über- bzw. einen Unterlauf. Beispiele

Mehr

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave Fachhochschule Südwestfalen Wir geben Impulse Kontrollstrukturen und Schleifen in Octave Einführung Inhalt m-files Script-Files Function-Files Ein- Ausgabe von Variablen oder Ergebnissen For-Schleife While-Schleife

Mehr

Turingmaschinen. Sabine Kuske: Turingmaschinen; 23.Juni 2008

Turingmaschinen. Sabine Kuske: Turingmaschinen; 23.Juni 2008 1 Turingmaschinen Von Alan Turing in den 30er Jahren dieses Jahrhunderts eingeführt Eines der ältesten Berechenbarkeitsmodelle Idee: den mechanischen Anteil des Rechnens mit Bleistift und Radiergummi auf

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik FH Wedel Prof. Dr. Sebastian Iwanowski GTI33 Folie 1 Grundlagen der Theoretischen Informatik Sebastian Iwanowski FH Wedel Kap. 3: Verifikationstechniken Teil 3: FH Wedel Prof. Dr. Sebastian Iwanowski GTI33

Mehr

Steuerung von Programmabläufen. Lehrstuhl für Angewandte Mathematik Sommersemester Mai und 15. Mai 2008

Steuerung von Programmabläufen. Lehrstuhl für Angewandte Mathematik Sommersemester Mai und 15. Mai 2008 Steuerung von Programmabläufen Vorlesung Computergestützte Mathematik zur Linearen Algebra Lehrstuhl für Angewandte Mathematik Sommersemester 2008 8. Mai und 15. Mai 2008 For-Schleifen Bisher: Matlab -Kommandos

Mehr

Universelle Rechner und Church sche These

Universelle Rechner und Church sche These Universelle Rechner und Church sche These Slide 1 Universelle Rechner und Church sche These Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Universelle Rechner und

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

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

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004 Lösung zur Klausur Grundlagen der Theoretischen Informatik im WiSe 2003/2004 1. Geben Sie einen deterministischen endlichen Automaten an, der die Sprache aller Wörter über dem Alphabet {0, 1} akzeptiert,

Mehr

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

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I λ Kalkül WS 2012/2013 Berechenbarkeit - inspiriert durch Hilbert's Frage - im Jahr 1900, Paris - Internationaler Mathematikerkongress Gibt es ein System von Axiomen, aus denen alle Gesetze der Mathematik

Mehr

Lösungen zur 3. Projektaufgabe TheGI1

Lösungen zur 3. Projektaufgabe TheGI1 Marco Kunze (makunze@cs.tu-berlin.de) WS 2001/2002 Sebastian Nowozin (nowozin@cs.tu-berlin.de) 21. 1. 2002 Lösungen zur 3. Projektaufgabe TheGI1 Definition: Turing-Aufzähler Ein Turing-Aufzähler einer

Mehr

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

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Beispiel einer nicht berechenbaren Funktion: Busy Beaver Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

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

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 10. Januar 2018 Abgabe 23. Januar 2018, 11:00 Uhr (im

Mehr