Berechenbarkeit. Script, Kapitel 2

Größe: px
Ab Seite anzeigen:

Download "Berechenbarkeit. Script, Kapitel 2"

Transkript

1 Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 20

2 Intuitiver Algorithmusbegriff Ein Algorithmus überführt Eingabedaten in Ausgabedaten (wobei die Art der Daten vom Problem, das durch den Algorithmus gelöst werden soll, abhängig ist), besteht aus einer endlichen Folge von Anweisungen mit folgenden Eigenschaften: es gibt eine eindeutig festgelegte Anweisung, die als erste auszuführen ist, nach Abarbeitung einer Anweisung gibt es eine eindeutig festgelegte Anweisung, die als nächste abzuarbeiten ist, oder die Abarbeitung des Algorithmus ist beendet und hat eindeutig bestimmte Ausgabedaten geliefert, die Abarbeitung einer Anweisung erfordert keine Intelligenz (ist also prinzipiell durch eine Maschine realisierbar). B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 21

3 Beispiele für Algorithmen der Gaußsche 1 Algorithmus zur Lösung von linearen Gleichungssystemen (über den rationalen Zahlen), Kochrezepte (mit Zutaten und Kochgeräten als Eingabe und dem fertigen Gericht als Ausgabe), Bedienungsanweisungen für Geräte, PASCAL-Programme. 1 Carl Friedrich Gauss, , deutscher Mathematiker. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 22

4 Idee der Turingmaschine 2 Arbeitsband beidseitig (potenziell) unendliches Band, in Felder eingeteilt; jedes Feld enthält einen Buchstaben aus dem Bandalphabet; zum Bandalphabet gehört das Leerzeichen oder Blank-Symbol. Schreib-Lesekopf über dem Band beweglich bearbeitet ein aktuelles Feld endliche Steuerung oder Kontrolle endliche Menge von internen Zuständen, die den Programmablauf regeln 2 Alan Mathison Turing ( ), britischer Mathematiker, Logiker, Kryptoanalytiker und Computerkonstrukteur. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 23

5 Veranschaulichung einer Turingmaschine x y.. z # x $ unendliches Band endliche Kontrolle Schreib-Lesekopf B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 24

6 Definition der Turingmaschine Eine (deterministische) Turingmaschine (kurz: TM) ist gegeben durch ein 7-Tupel M = (Z, Σ, Γ, δ, z 0,, E). Hierbei sind Z eine endliche Menge (Zustandsmenge), Σ ein Alphabet (Eingabealphabet), Γ ein Alphabet (Bandalphabet) mit Σ Γ, δ : (Z \ E) Γ Z Γ {L, R, N} eine Funktion (Überführungsfunktion), z 0 Z (Anfangszustand), Γ \ Σ (Leerzeichen, Blank), E Z (Menge der Endzustände). B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 25

7 Erstes Beispiel einer Turingmaschine Gegeben sei die Turingmaschine M = ({z 0, z 1, z 2, z e }, {0, 1}, {0, 1, }, δ, z 0,, {z e }), wobei δ wie folgt definiert ist. Wir geben dabei δ in einer Tabelle an, wobei im Kreuzungspunkt der Zeile mit der Bezeichnung a und der Spalte mit der Bezeichnung z der Funktionswert δ(z, a) steht. δ z 0 z 1 z 2 (z 1,, L) (z e, 1, N) (z e,, R) 0 (z 0, 0, R) (z 2, 1, L) (z 2, 0, L) 1 (z 0, 1, R) (z 1, 0, L) (z 2, 1, L) B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 26

8 Konfiguration einer Turingmaschine Eine Konfiguration k einer Turingmaschine M = (Z, Σ, Γ, δ, z 0,, E) ist ein Wort k Γ ZΓ. Dabei soll k = αzβ folgendermaßen interpretiert werden: αβ steht auf dem Eingabeband, des weiteren stehen nur noch Blankzeichen auf dem Band, die Turingmaschine befindet sich im Zustand z und der Kopf der Turingmaschine steht über dem ersten Symbol von β. Eine Startkonfiguration ist k 0 = z 0 w mit w Σ. Eine Endkonfiguration ist k e = m z e w n mit z e E, w Σ, m, n N. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 27

9 Die binäre Relation in der Menge der Konfigurationen (Änderung der Konfiguration in einem Schritt der TM) a 1... a m zb 1... b n a 1... a m z cb 2... b n falls δ(z, b 1 ) = (z, c, N), m 0, n 1, a 1... a m cz b 2... b n falls δ(z, b 1 ) = (z, c, R), m 0, n 2, a 1... a m 1 z a m cb 2... b n falls δ(z, b 1 ) = (z, c, L), m 1, n 1, a 1... a m zb 1 a 1... a m cz falls δ(z, b 1 ) = (z, c, R), m 0, zb 1... b n z cb 2... b n falls δ(z, b 1 ) = (z, c, L), n 1. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 28

10 Die binäre Relation * (Änderung der Konfiguration in endlich vielen Schritten der TM) Mit bezeichnen wir den reflexiven und transitiven Abschluss der binären Relation, also es gilt k 0 k e genau dann, wenn (i) k 0 = k e ist, oder (ii) eine Zahl n 0 und Konfigurationen k 1, k 2,..., k n existieren, so dass k 0 k 1 k 2 k n k e. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 29

11 Turingberechenbarkeit Eine Funktion f : Σ Σ heißt Turingberechenbar, falls es eine Turingmaschine M = (Z, Σ, Γ, δ, z 0,, E) gibt, so dass für alle x, y Σ gilt: f(x) = y genau dann, wenn z 0 x... z e y... für ein z e E. Eine Funktion f : N k N für ein k N heißt Turingberechenbar, falls es eine Turingmaschine M = (Z, {0, 1, #}, Γ, δ, z 0,, E) gibt, so dass für alle n 1, n 2,..., n k, m N gilt: f(n 1, n 2,..., n k ) = m genau dann, wenn für ein z e E : z 0 bin(n 1 )#bin(n 2 )#... #bin(n k )... z e bin(m)... B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 30

12 Beispiele für Turingberechenbare Funktionen Die Nachfolgerfunktion f : N N vermöge n f(n) = n + 1 ist Turingberechenbar, da die Turingmaschine aus unserem ersten Beispiel die Eingabe bin(n) in die Ausgabe bin(n + 1) transformiert. Die für alle Wörter aus {a, b} nicht-definierte Funktion Ω: {a, b} {a, b} vermöge w Ω(w) = nicht definiert ist Turing-berechenbar, da sie von der Turingmaschine M = ({z 0, z e }, {a, b}, {a, b, }, δ, z 0,, {z e }) mit δ(z 0, x) = (z 0, x, N) für alle x {a, b, } berechnet wird. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 31

13 Mehrband-Turingmaschinen k 1 Bänder (Eingabe/Ausgabe auf Band 1) Jedes Band hat einen eigenen Schreib-Lesekopf, der separat bewegt wird. Formal δ : Z Γ k Z Γ k {L, R, N} k B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 32

14 Äquivalenz von Mehrband- und (Einband)-TM Zu jeder Mehrband-TM M gibt es eine (Einband-)TM M, die dieselbe Funktion berechnet wie M. Mehrband-TM a a a b b a a b a b b a a a b a Einband-TM a a a b b a a b a b b a a a b a l k Bänder 1 Schritt 1 Band mit 2k Spuren 2(l + k) Schritte B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 33

15 Notationen : modifizierte Subtraktion : N 2 N vermöge (n 1, n 2 ) n 1 n 2 = { n 1 n 2 falls n 1 n 2, 0 sonst. Band := Band + 1 : TM, die zu einer Zahl 1 dazuaddiert Band(i) := Band(i) + 1 : k-band-tm, die auf i-tem Band 1 addiert und alle anderen Bänder unverändert läßt Band(i) := Band(i) 1 : k-band-tm, die auf i-tem Band 1 modifiziert subtrahiert und alle anderen Bänder unverändert läßt Band(i) := Band(j) : k-band-tm, die Inhalt des j-ten Bandes auf i-tes Band kopiert B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 34

16 Nacheinanderausführung von Turingmaschinen Seien M 1 und M 2 zwei Turingmaschinen, so wollen wir durch start M 1 M 2 stop oder auch durch M 1 ; M 2 diejenige Turingmaschine verstehen, die zuerst wie die Turingmaschine M 1 arbeitet und wenn M 1 einen Stopzustand erreichen würde in den Anfangszustand von M 2 übergeht und jetzt wie die Turingmaschine M 2 arbeitet. Sie stoppt dann, wenn M 2 einen Stopzustand erreichen würde. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 35

17 Beispiel für Nacheinanderausführung von TM Betrachten wir das Diagramm in folgender Abbildung. So erkennen wir, dass dort das schematische Flussbild einer Turingmaschine steht, welche dreimal nacheinander zur Zahl auf dem Band 1 addiert, also es sich um die Turingmaschine Band := Band + 3 handelt. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 36

18 Beispiel für Verzweigung von TM Folgende Abbildung stellt eine sich verzweigende TM dar. Sie soll nach Simulation der Turingmaschine M die Turingmaschine M 1 simulieren, falls sie bei der Simulation von M im Zustand z e1 stoppt. Analog soll sie die Turingmaschine M 2 abarbeiten, falls sie bei der Simulation von M im Zustand z e2 stoppt. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 37

19 Beispiel für Band (i) = 0? Es sei M = ({z 0, z 1, ja, nein}, Σ, Γ, δ, z 0,, {ja, nein}) mit 0 Σ sowie mit der Überführungsfunktion δ, gegeben durch δ(z 0, a) = (nein, a, N) für a 0, δ(z 0, 0) = (z 1, 0, R), δ(z 1, a) = (nein, a, L) für a, δ(z 1, ) = (ja,, L). Diese Turingmaschine testet, ob die Eingabe genau das Wort 0 ist. Falls ja, stoppt sie im Zustand ja, falls nein, stoppt sie im Zustand nein. Wir wollen diese Turingmaschine mit Band = 0? bezeichnen. Die k-band-tm, die das i-te Band auf 0 testet, nennen wir Band(i) = 0? B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 38

20 Beispiel für WHILE-Schleife Sei M eine beliebige Turingmaschine. start.. Band. (i) = 0?. M... nein ja. stop Dann bezeichnen wir die Turingmaschine, die durch das Diagramm gegeben ist, mit WHILE Band(i) 0 DO M. Die Arbeitsweise ist einfach zu erkennen. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 39

21 LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: Operationssymbole: + Trennsymbole: ; := Schlüsselwörter: LOOP DO END B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 40

22 LOOP-Programme: Syntax Die Syntax von LOOP-Programmen wird wie folgt induktiv definiert. (i) Jede Wertzuweisung der Form x i := x j + c bzw. x i := x j c ist ein LOOP-Programm, wobei c eine Konstante ist. (ii) Sind P 1, P 2 LOOP-Programme, dann sind auch P 1 ; P 2 sowie LOOP x i DO P 1 END LOOP-Programme. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 41

23 LOOP-Programme: Semantik, Teil i) (i) Jede Wertzuweisung der Form x i := x j +c wird wie üblich interpretiert: der neue Wert der Variablen x i berechnet sich als Summe des Wertes der Variablen x j und der Konstanten c, wobei der Wert in der Variablen x j erhalten bleibt. Die Wertzuweisung x i := x j c wird analog interpretiert, wobei sich aber die Werte nach der sogenannten modifizierten Differenz, die wie folgt definiert ist n 1 n 2 = { n 1 n 2 falls n 1 n 2, 0 sonst, berechnen. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 42

24 LOOP-Programme: Semantik, Teil ii) ii) Ein LOOP-Programm der Form P 1 ; P 2 soll die Hintereinanderausführung der Programme P 1 und P 2 bedeuten, also zuerst wird das Programm P 1, dann das Programm P 2 ausgeführt. Ein LOOP-Programm der Form LOOP x i DO P 1 END bedeutet, dass das Programm P 1 sooft ausgeführt wird, wie der Wert der Variablen x i zu Beginn angibt. Änderungen des Wertes der Variablen x i haben also keinen Einfluss auf die Anzahl der Wiederholungen. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 43

25 LOOP-berechenbare Funktionen Eine Funktion f : N k N, k N, heißt LOOP-berechenbar, falls es ein LOOP-Programm P gibt, das f in dem Sinne berechnet, dass P, gestartet mit n 1, n 2,..., n k in den Variablen x 1, x 2,..., x k und 0 in den restlichen Variablen, mit dem Wert f(n 1, n 2,..., n k ) in der Variablen x 0 stoppt. Schreibweise: f = f k P B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 44

26 Erstes Beispiel einer LOOP-berechenbaren Funktion Gegeben sei das LOOP-Programm x 0 := x 1 + 0; LOOP x 2 DO x 0 := x END Man erkennt leicht, dass das Programm mit dem Wert der Summe der Anfangsbelegungen der Variablen x 1 und x 2 in der Variablen x 0 stoppt. Es berechnet also die Addition +: N 2 N vermöge (x 1, x 2 ) +(x 1, x 2 ) = x 1 + x 2. Also ist die Addition LOOP-berechenbar. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 45

27 Zweites Beispiel einer LOOP-berechenbaren Funktion Gegeben sei das LOOP-Programm LOOP x 2 DO LOOP x 1 DO x 0 := x END END Eine genaue Betrachtung des Programms zeigt, dass damit die Funktion : N 2 N vermöge (x 1, x 2 ) (x 1, x 2 ) = x 1 x 2, berechnet wird. Die Multiplikation ist damit also LOOP-berechenbar. Man beachte, dass die Anfangsbelegung der Variablen x 0 Definition 0 ist. Das wird hier gebraucht und verwendet. natürlich laut B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 46

28 Drittes Beispiel einer LOOP-berechenbaren Funktion Das Konstrukt IF x 1 = 0 THEN A ELSE B END wird durch das LOOP-Programm x 2 := 1; x 3 := 0; LOOP x 1 DO x 2 := 0; x 3 := 1 END; LOOP x 2 DO A END; LOOP x 3 DO B END simuliert. Dabei sind die Variablen x 2 und x 3 natürlich nicht in den Programmen A und B enthalten. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 47

29 Aussagen über LOOP-berechenbarer Funktionen Jede von einem LOOP-Programm berechnete Funktion ist total. (Da die Anzahl der Abläufe einer LOOP-Schleife endlich ist, stoppt das Programm bei jeder Eingabe.) Es gibt (intuitiv) berechenbare Funktionen, die nicht LOOP-berechenbar sind. (z.b. jede berechenbare Funktion, die nicht total ist) Es gibt totale und (intuitiv) berechenbare Funktionen, die nicht LOOPberechenbar sind. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 48

30 WHILE-Programme: Syntaktische Komponenten WHILE-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: Trennsymbole: ; := Operationssymbole: + Schlüsselwörter: LOOP WHILE DO END B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 49

31 WHILE-Programme: Syntax Die Syntax von WHILE-Programmen wird wie folgt induktiv definiert. (i) Jede Wertzuweisung der Form x i := x j + c bzw. x i := x j c ist ein WHILE-Programm, wobei c eine Konstante ist. (ii) Sind P 1, P 2 WHILE-Programme, dann sind auch P 1 ; P 2 und LOOP x i DO P 1 END und WHILE x i 0 DO P 1 END WHILE-Programme. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 50

32 WHILE-Programme: Semantik, Teil i) Jede Wertzuweisung der Form x i := x j + c wird wie üblich interpretiert: der neue Wert der Variablen x i berechnet sich als Summe des Wertes der Variablen x j und der Konstanten c, wobei der Wert in der Variablen x j erhalten bleibt. Die Wertzuweisung x i := x j c wird analog interpretiert, wobei sich aber die Werte nach der sogenannten modifizierten Differenz, die wie folgt definiert ist { n 1 n 2 falls n 1 n 2, n 1 n 2 = 0 sonst, berechnen. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 51

33 WHILE-Programme: Semantik, Teil ii) Ein WHILE-Programm der Form P 1 ; P 2 soll die Hintereinanderausführung der Programme P 1 und P 2 bedeuten, also zuerst wird das Programm P 1, dann das Programm P 2 ausgeführt. Ein WHILE-Programm der Form LOOP x i DO P 1 END bedeutet, dass das Programm P 1 sooft ausgeführt wird, wie der Wert der Variablen x i zu Beginn angibt. Änderungen des Wertes der Variablen x i haben also keinen Einfluss auf die Anzahl der Wiederholungen. Ein WHILE-Programm der Form WHILE x i 0 DO P 1 END bedeutet, dass das Programm P 1 solange ausgeführt wird, wie der Wert der Variablen x i ungleich Null ist. Es findet also vor jedem erneuten Durchlauf des Programms P 1 eine Abfrage der Variablen x i statt. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 52

34 WHILE-berechenbare Funktionen Eine Funktion f : N k N, k N, heißt WHILE-berechenbar, falls es ein WHILE-Programm P gibt, das f in dem Sinne berechnet, dass P, gestartet mit n 1, n 2,..., n k in den Variablen x 1, x 2,..., x k und 0 in den restlichen Variablen, mit dem Wert f(n 1, n 2,..., n k ) in der Variablen x 0 stoppt. Ist f(n 1, n 2,..., n k ) dagegen nicht definiert, so stoppt P nicht. Schreibweise: f = f k P Folgerung: Jede LOOP-berechenbare Funktion ist WHILE-berechenbar. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 53

35 1. Beispiel einer WHILE-berechenbaren Funktion Das WHILE-Programm x 3 := x 1 5; WHILE x 3 0 DO x 1 := x END; LOOP x 1 DO x 0 := x END; LOOP x 2 DO x 0 := x END berechnet die Funktion f : N 2 N vermöge f(x 1, x 2 ) = { x 1 + x 2 falls x 1 5, nicht definiert sonst. Folgerung: Es gibt WHILE-berechenbare Funktionen, die nicht LOOPberechenbar sind. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 54

36 2. Beispiel einer WHILE-berechenbaren Funktion Das WHILE-Programm x 1 := x 1 + 1; WHILE x 1 0 DO x 0 := x 0 + 1; LOOP x 2 DO x 1 := x 1 1 END END; x 0 := x 0 1 berechnet die ganzzahlige Division div : N 2 N vermöge { x 1 x x 1 div x 2 = 2 falls x 2 > 0, nicht definiert sonst. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 55

37 Äquivalenz von WHILE-Programmen und Turingmaschinen Satz: 1. Jede WHILE-berechenbare Funktion ist Turing-berechenbar. 2. Jede Turing-berechenbare Funktion ist WHILE-berechenbar. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 56

38 Simulation: WHILE-Programm durch Turingmaschine Mehrband-Turingmaschinen können Wertzuweisungen ausführen (wobei ein Band einer Variablen entspricht), Konstanten addieren und subtrahieren, hintereinander ausgeführt werden, WHILE-Schleifen ausführen. Damit kann man ein WHILE-Programm (mit k Variablen) durch eine (k-band-)turingmaschine simulieren. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 57

39 Simulation: Turingmaschine durch WHILE-Programm 1 Gegeben sei TM M = (Z, Σ, Γ, δ, z 1,, {z k }), wobei Z = {z 1, z 2,..., z k }, Γ = {a 1, a 2,..., a m }. Sei außerdem b eine Zahl mit b > m. Eine Turingmaschinen-Konfiguration a i1 a i2... a ip z l a j1 a j2... a jq wird durch drei Programmvariablen x, y, z mit den Werten x = (i 1 i 2... i p ) b, y = (j q j q 1... j 1 ) b, z = l repräsentiert; dabei bedeutet (i 1 i 2... i p ) b die Zahl i 1 i 2... i p in b-närer Darstellung, also x = p i µ b p µ, y = µ=1 q j µ b µ 1 µ=1 B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 58

40 Simulation: Turingmaschine durch WHILE-Programm 2 Stuktur des WHILE-Programmes mit Eingabe und Ausgabe auf y z := 1; WHILE z < k DO END a := y mod b; z := z; IF(z = 1 AND a = 1) THEN P 1,1 END; IF(z = 1 AND a = 2) THEN P 1,2 END;. IF(z = k 1 AND a = m) THEN P k 1,m END; Das Teilprogramm P i,j simuliert die Konfigurationsänderung für Zustand z i und Bandsymbol a j. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 59

41 Simulation: Turingmaschine durch WHILE-Programm 3 Stuktur des Teilprogrammes P i,j für δ(z i, a j ) = (z i, a j, L) z := i ; y := y div b; y := b y + j ; y := b y + (x mod b); x := x div b Entsprechend kann man sich die anderen Fälle vorstellen. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 60

42 Die Churchsche These Jede intuitiv berechenbare Funktion ist Turing-berechenbar. Die Churchsche These kann naturgemäß nicht bewiesen werden. Sie wird aber durch die Tatsache gestützt, dass zahlreiche weitere Modelle der Berechenbarkeit äquivalent zur Turing-Berechenbarkeit sind, z.b. Post- und Markov-Algorithmen, Registermaschinen, partiell-rekursive Funktionen. B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer 61

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

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

1 falls n ein Anfangsabschnitt der Dezimalbruchentwicklung von π ist, f(n) = 0 sonst

1 falls n ein Anfangsabschnitt der Dezimalbruchentwicklung von π ist, f(n) = 0 sonst 21 2 Berechenbarkeit Dieses Kapitel entspricht im Wesentlichen dem Kapitel 2 (Berechenbarkeitstheorie) in [9] Jeder, der programmieren kann, weiß, dass es so etwas wie einen intuitiven Berechenbarkeitsbegriff

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

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 15 Ziele vgl. AFS: Berechnungsmodelle für Typ-0- und Typ-1-Sprachen (Nicht-)Abschlußeigenschaften

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

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

2.4 Kontextsensitive und Typ 0-Sprachen

2.4 Kontextsensitive und Typ 0-Sprachen Definition 2.43 Eine Typ 1 Grammatik ist in Kuroda Normalform, falls alle Regeln eine der folgenden 4 Formen haben: Dabei: A, B, C, D V und a Σ. Satz 2.44 A a, A B, A BC, AB CD. Für jede Typ 1 Grammatik

Mehr

11.1 Kontextsensitive und allgemeine Grammatiken

11.1 Kontextsensitive und allgemeine Grammatiken Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert

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

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen, Entscheidbarkeit, P 239/ 333 Einführung in die NP-Vollständigkeitstheorie

Mehr

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen. Turing-Maschinen Nachdem wir endliche Automaten und (die mächtigeren) Kellerautomaten kennengelernt haben, werden wir nun ein letztes, noch mächtigeres Automatenmodell kennenlernen: Die Turing-Maschine

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

Beispiele für Turingmaschinen. 1. Addition 1.1 Trennzeichen l öschen 1.2 Summanden kopieren

Beispiele für Turingmaschinen. 1. Addition 1.1 Trennzeichen l öschen 1.2 Summanden kopieren 01 Beispiele für Turingmaschinen 1. Addition 1.1 Trennzeichen l öschen 1.2 Summanden kopieren 2. Subtraktion 2.1 rechts löschen 2.2 links löschen 2.3 in der Mitte löschen 2.4 am Rand löschen Eine Turingmaschine

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 heoretische Informatik 1 eil 2 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung U Graz SS 2009 Übersicht 1 uring Maschinen uring-berechenbarkeit 2 Kostenmaße Komplexität 3 Mehrband-M

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

Formale Sprachen und Automaten

Formale Sprachen und Automaten Turingmaschinen Formale Sprachen und Automaten Das Konzept der Turingmaschine wurde von dem Englischen Mathematiker Alan M. Turing (1912-1954) ersonnen. Turingmaschinen, Typ-0- und Typ-1-Grammatiken Der

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 heoretische Informatik 1 uringmaschinen David Kappel Institut für Grundlagen der Informationsverarbeitung echnische Universität Graz 11.03.2016 Übersicht uring Maschinen Algorithmusbegriff konkretisiert

Mehr

Berechenbarkeits- und Komplexitätstheorie

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

Mehr

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

Einführung in Berechenbarkeit, Komplexität und formale Sprachen Johannes Blömer Skript zur Vorlesung Einführung in Berechenbarkeit, Komplexität und formale Sprachen Universität Paderborn Wintersemester 2011/12 Inhaltsverzeichnis 1 Einleitung 2 1.1 Ziele der Vorlesung...................................

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

GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, [email protected]

GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, diener@math.uni-siegen.de GTI Hannes Diener ENC B-0123, [email protected] 6. Juni - 13. Juni 1 / 49 Die Turingmaschine war das erste (bzw. zweite) formale Modell der Berechenbarkeit. Sie wurden bereits 1936 (also lange

Mehr

Rekursiv aufzählbare Sprachen

Rekursiv aufzählbare Sprachen Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben

Mehr

Turing-Maschine. Berechenbarkeit und Komplexität Turing-Maschinen. Turing-Maschine. Beispiel

Turing-Maschine. Berechenbarkeit und Komplexität Turing-Maschinen. Turing-Maschine. Beispiel Berechenbarkeit und Komplexität Turing-Maschinen Wolfgang Schreiner [email protected] Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at

Mehr

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle

Mehr

8. Turingmaschinen und kontextsensitive Sprachen

8. Turingmaschinen und kontextsensitive Sprachen 8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten

Mehr

Zusammenfassung Grundzüge der Informatik 4

Zusammenfassung Grundzüge der Informatik 4 Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004 Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004 Inhaltsverzeichnis 1

Mehr

3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE:

3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE: FORMALISIERUNG VON ALGORITHMEN Wegen der beobachteten Zusammenhänge zwischen Berechnungs-, Entscheidungs- und Aufzählungsverfahren genügt es Berechnungsverfahren zu formalisieren. Weiter genügt es Verfahren

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

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

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

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Turing-Maschine, Berechenbarkeit INSTITUT FÜR THEORETISCHE 0 KIT 07.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen

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

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

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

Deterministischer endlicher Automat A ohne Ausgabe (deterministischer endlicher Akzeptor)

Deterministischer endlicher Automat A ohne Ausgabe (deterministischer endlicher Akzeptor) Deterministischer endlicher Automat A ohne Ausgabe (deterministischer endlicher Akzeptor) wobei A = (E, Z, f, z 0, F ) E Z f : Z E Z z 0 Z Eingabealphabet Zustandsmenge (Zustands )Überführungsfunktion

Mehr

b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel

b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel 2. Turingmaschinen Zur Formalisierung von Algorithmen benutzen wir hier Turingmaschinen. Von den vielen Varianten dieses Konzeptes, die sich in der Literatur finden, greifen wir das Konzept der on-line

Mehr

Sprachen und Automaten. Tino Hempel

Sprachen und Automaten. Tino Hempel Sprachen und Automaten 11 Tino Hempel Bisherige Automaten Automat mit Ausgabe/Mealy-Automat Akzeptor, Sprache eines Akzeptors Grenze: L = {a n b n } Kellerautomat erkennt L = {a n b n } Grenze:? T. Hempel

Mehr

Ausgewählte unentscheidbare Sprachen

Ausgewählte unentscheidbare Sprachen Proseminar Theoretische Informatik 15.12.15 Ausgewählte unentscheidbare Sprachen Marian Sigler, Jakob Köhler Wolfgang Mulzer 1 Entscheidbarkeit und Semi-Entscheidbarkeit Definition 1: L ist entscheidbar

Mehr

4 Die Turing-Maschine

4 Die Turing-Maschine 16 4 Die Turing-Maschine 4.1 Wörter und Gödelisierung Ein Alphabet ist eine endliche Menge verschiedener Objekte {a 1, a 2,..., a k }, die wir auch Buchstaben nennen. Dies können die uns bekannten Buchstaben

Mehr

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23 1/23 Formale Methoden 1 Gerhard Jäger [email protected] Uni Bielefeld, WS 2007/2008 9. Januar 2008 2/23 Automaten (informell) gedachte Maschine/abstraktes Modell einer Maschine verhält sich

Mehr

Die Ackermannfunktion

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

Mehr

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009 Theoretische Informatik Rainer Schrader Institut für Informatik 9. Juli 2009 1 / 41 2 / 41 Gliederung die Chomsky-Hierarchie Typ 0- Typ 3- Typ 1- Die Programmierung eines Rechners in einer höheren Programmiersprache

Mehr

Theoretische Informatik Testvorbereitung Moritz Resl

Theoretische Informatik Testvorbereitung Moritz Resl Theoretische Informatik Testvorbereitung Moritz Resl Bestandteile einer Programmiersprache: a) Syntax (Form): durch kontextfreie Grammatik beschrieben b) Semantik (Bedeutung) 1.) Kontextfreie Sprachen

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

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

Theoretische Informatik 2

Theoretische Informatik 2 Theoretische Informatik 2 Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2009/10 Die Chomsky-Hierarchie Definition Sei G = (V, Σ, P, S) eine Grammatik. 1 G heißt vom Typ 3 oder

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

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

Berechenbarkeits- und Komplexitätstheorie

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

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale Sprachen. Script, Kapitel 4. Grammatiken Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprache bedeutend für die Syntaxdefinition und -analyse von Programmiersprachen Automaten

Mehr

Theorie der Informatik (CS206) Kellerautomat, Postfix-Notation, Turing-Maschine, Busy Beaver

Theorie der Informatik (CS206) Kellerautomat, Postfix-Notation, Turing-Maschine, Busy Beaver Theorie der Informatik (CS206) Kellerautomat, Postfix-Notation, Turing-Maschine, Busy Beaver 20. März 2013 Proff Malte Helmert und Christian Tschudin Departement Mathematik und Informatik, Universität

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

Theoretische Informatik

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

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 5: Typ 1 und Typ 0 Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel 5 Typ 1

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

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III Name Vorname Matrikelnummer Universität Karlsruhe Institut für Theoretische Informatik o. Prof. Dr. P. Sanders 10.4.2007 Klausur: Informatik III Aufgabe 1. Multiple Choice 11 Punkte Aufgabe 2. Minimalautomaten

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

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln, Theorie der Informatik 8. März 25 8. Reguläre Sprachen I Theorie der Informatik 8. Reguläre Sprachen I 8. Reguläre Grammatiken Malte Helmert Gabriele Röger 8.2 DFAs Universität Basel 8. März 25 8.3 NFAs

Mehr

Prinzipielle Grenzen der Berechenbarkeit

Prinzipielle Grenzen der Berechenbarkeit Arno Schwarz Prinzipielle Grenzen der Berechenbarkeit Lange Zeit haben Philosophen und Mathematiker geglaubt, dass jedes mathematische Problem algorithmisch lösbar sei. So vertrat z.b. David Hilbert (1862-1943)

Mehr

a n b n c n ist kontextsensitiv kontextfreie Sprachen (Typ 2) Abschnitt 3.3 kontextfreie Sprachen: Abschlusseigenschaften Chomsky NF und binäre Bäume

a n b n c n ist kontextsensitiv kontextfreie Sprachen (Typ 2) Abschnitt 3.3 kontextfreie Sprachen: Abschlusseigenschaften Chomsky NF und binäre Bäume Kap 3: Grammatiken Chomsky-Hierarchie 32 Kap 3: Grammatiken Kontextfreie 33 a n b n c n ist kontextsensiti Beispiel 3111 modifizieren: Σ = {a, b, c G = (Σ, V, P, X ) V = {X, Y, Z P : X ε X axyz ZY YZ ay

Mehr

Einführung in die Informatik I

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

Mehr

Algorithmen und Programmierung

Algorithmen und Programmierung Algorithmen und Programmierung Kapitel 5 Formale Algorithmenmodelle A&P (WS 14/15): 05 Formale Algorithmenmodelle 1 Überblick Motivation Formale Algorithmenmodelle Registermaschine Abstrakte Maschinen

Mehr

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ. Reguläre Ausdrücke Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (i) ist ein regulärer Ausdruck über Σ. (ii) ε ist ein regulärer Ausdruck über Σ. (iii) Für jedes a Σ ist a ein regulärer

Mehr

Berechenbarkeitsmodelle

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

Mehr

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

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden: Sprachen und Automaten 1 Deterministische endliche Automaten (DFA) Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden: M = (Z,3,*,qo,E) Z = Die Menge der Zustände 3 = Eingabealphabet

Mehr

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S) Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /

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 Deterministische Kellerautomaten Von besonderem Interesse sind kontextfreie Sprachen,

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 [email protected] Research Institute for Symbolic Computation (RISC) Johannes Kepler University,

Mehr

Sprachen und Programmiersprachen

Sprachen und Programmiersprachen Sprachen und Programmiersprachen Natürliche Sprachen versus Programmiersprachen / Spezifikationssprachen Syntax legt die grammatikalische Korrektheit fest. Semantik legt die Bedeutung von syntaktisch korrekten

Mehr

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben Algorithmen und Algorithmisierung von Aufgaben 2-1 Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung

Mehr

Theoretische Informatik I

Theoretische Informatik I heoretische Informatik I Einheit 2 Endliche Automaten & Reguläre Sprachen. Deterministische endliche Automaten 2. Nichtdeterministische Automaten 3. Reguläre Ausdrücke 4. Grammatiken 5. Eigenschaften regulärer

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Vorlesungsscriptum Sommersemester 2003 Dr Bernd Reichel 1 und Dr Ralf Stiebe 2 Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg 1 Tel: +49 391 67 12851, e-mail: reichel@iwscsuni-magdeburgde,

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Informatik Teil 1 Wintersemester 2011/2012 Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Dieser Foliensatz wurde z.t. von Herrn Prof. Grossmann übernommen Inhalt 1. Algorithmen -

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik für die Studiengänge Ingenieur-Informatik berufsbegleitendes Studium Lehramt Informatik (Sekundar- und Berufsschule) http://theo.cs.uni-magdeburg.de/lehre04s/ Lehrbeauftragter:

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Poelchau-Oberschule Berlin A. Mentzendorff September 2007 Lineare Gleichungssysteme Inhaltsverzeichnis 1 Grundlagen 2 2 Das Lösungsverfahren von Gauß 4 3 Kurzschreibweise und Zeilensummenkontrolle 6 4

Mehr

Endliche Automaten. Im Hauptseminar Neuronale Netze LMU München, WS 2016/17

Endliche Automaten. Im Hauptseminar Neuronale Netze LMU München, WS 2016/17 Endliche Automaten Im Hauptseminar Neuronale Netze LMU München, WS 2016/17 RS- Flipflop RS-Flipflop Ausgangszustand 0 1 0 1 0 1 Set Reset neuer Zustand 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 Was ist ein endlicher

Mehr

Primitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2

Primitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2 Primitive Rekursion Basisfunktionen: Konstante Funktion: const Stelligkeit. Wert des Ergebnisses. Unabhängig von den Parametern. const (,, pr,(g,h) (,)) Stelligkeit. Projektion: proj Gibt die Komponente

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Allgemein Teilgebiete der Informatik ohne Theoretische Grundlagen 2 Fragen an

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 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Automatentheorie. Endliche Automaten, Kellerautomaten und Turingmaschinen

Automatentheorie. Endliche Automaten, Kellerautomaten und Turingmaschinen Automatentheorie Endliche Automaten, Kellerautomaten und Turingmaschinen Inhaltsübersicht und Literatur Der Begriff des Automaten Endliche Automaten mit Ausgabe Technische Realisierung von Automaten Erkennende

Mehr

Informatik II. Registermaschinen. Registermaschinen. Registermaschinen. Rainer Schrader. 7. Dezember 2005

Informatik II. Registermaschinen. Registermaschinen. Registermaschinen. Rainer Schrader. 7. Dezember 2005 Informatik II Rainer Schrader Zentrum für Angewandte Informatik Köln 7. Dezember 25 / 82 2 / 82 Gliederung Aufbau und Eigenschaften universelle RAM s RAM-Berechenbarkeit Nichtentscheidbarkeit Reduzierbarkeit

Mehr

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14 Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen

Mehr

Kapitel 1. Grundlagen Mengen

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

Mehr

Lösungen zur 3. Projektaufgabe TheGI1

Lösungen zur 3. Projektaufgabe TheGI1 Marco Kunze ([email protected]) WS 2001/2002 Sebastian Nowozin ([email protected]) 21. 1. 2002 Lösungen zur 3. Projektaufgabe TheGI1 Definition: Turing-Aufzähler Ein Turing-Aufzähler einer

Mehr

Kapitel 1. Grundlagen

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

Mehr

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: [email protected] Homepage: http://www.ruhr-uni-bochum.de/lmi Primitiv rekursive

Mehr

Wie viel Mathematik kann ein Computer?

Wie viel Mathematik kann ein Computer? Wie viel Mathematik kann ein Computer? Die Grenzen der Berechenbarkeit Dr. Daniel Borchmann 2015-02-05 Wie viel Mathematik kann ein Computer? 2015-02-05 1 / 1 Mathematik und Computer Computer sind schon

Mehr

2. Berechnungsmächtigkeit von Zellularautomaten. Ziele Simulation von Schaltwerken Simulation von Turingmaschinen

2. Berechnungsmächtigkeit von Zellularautomaten. Ziele Simulation von Schaltwerken Simulation von Turingmaschinen 2. Berechnungsmächtigkeit von Zellularautomaten Ziele Simulation von Schaltwerken Simulation von Turingmaschinen Beispiel WIREWORLD Elektronen laufen über Drähte von einem Gatter zum nächsten 2.3 Satz

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Rolf Socher ISBN 3-446-22987-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22987-6 sowie im Buchhandel Einführung.. 13 2 Endliche

Mehr