Algorithmen und Datenstrukturen I - Maschinenmodelle -

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen I - Maschinenmodelle -"

Transkript

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

2 Kapitel 3 - Maschinenmodelle 1 Preamble 2 Registermaschinen 3 Invarianten 4 Endliche Automaten 5 Zusammenfassung 2 / 93

3 Preamble [Dieses Kapitel hält sich eng an das empfohlene Buch von Saake/Sattler] Zuerst haben wir uns bei Formeln und Gleichungen eng an der Mathematik gehalten. Danach haben wir uns am Beispiel der Musik eine Formalisierung überlegt, die sehr leicht von uns Menschen verstanden werden kann, also sehr nahe an unserem Verständnis der Modellwelt ist. Die Berechnungen hätten wir dabei auch selbst noch leicht ausführen können. Eine Rechenmaschine, die direkt mit Formeln und Gleichungen rechnen kann, gibt es nicht. Wirkliche Rechner sind viel einfacher aufgebaut, und brauchen viele Operationen, um z.b. eine Gleichung einmal anzuwenden. Dies ist die in Kapitel 1 erwähnte semantische Lücke, die durch Programmiersprachen und ihre Übersetzer geschlossen wird. Wir begeben uns nun auf die Maschinenseite der semantischen Lücke. 3 / 93

4 Ziele des Kapitels In diesem Kapitel lernen wir zwei, sehr verschiedene Modelle einer Rechenmaschine kennen. Registermaschinen ähneln realen Prozessoren. An ihnen lernen wir Begriffe wie Befehlszyklus, Konfiguration, Maschinenfunktion, partielle und totale Korrektheit kennen. Endliche Automaten sind ein abstraktes und viel einfacheres Rechnermodell. Sie verarbeiten Zeichenreichen und haben zahlreiche Anwendungen in der Textverarbeitung. Endliche Automaten können nur sehr einfache Aufgaben lösen, Registermaschien dagegen können im Prinzip (wenn auch mit einigen Verrenkungen) alle Aufgaben lösen, die überhaupt ein Rechner lösen kann. Zwischen diesen beiden Extremen gibt es noch weitere Rechnenmodelle mit unterschiedlicher Leistung, die in der theoretischen Informatik untersucht werden. 4 / 93

5 Registermaschinen 1 Preamble 2 Registermaschinen Einführung Begriffe Befehle Rechnen Semantik Beobachtungen Erweiterung zur Indirekten Adressierung 3 Invarianten 4 Endliche Automaten 5 Zusammenfassung 5 / 93

6 Einführung Einführung Eine Registermaschine ist eine formal definierte Rechenmaschine 6 / 93

7 Einführung Einführung Eine Registermaschine ist eine formal definierte Rechenmaschine relativ ähnlich zu wirklicher Hardware (insbesondere der frühen Jahre) 7 / 93

8 Einführung Komponenten der Registermaschine Programm speicher b 1 b 2 b 3 b n B Zentrale Recheneinheit C + * = Recheneinheit Steuer einheit 0 Arbeits speicher C1 C 2 C 3 C 4 b 1... b n : B C 0 C1, C2,... +,, * = : : : : Programm ( n Befehle) Befehlszähler Akkumulator (Arbeitsregister) Arbeitsspeicher (Register) Rechenwerke Wir verwenden als Beispiel eine Registermaschine, die nur zwei Datentypen kennt natürliche Zahlen und Befehle. 8 / 93

9 Begriffe Befehlszyklus Die Registermaschine iteriert einen Befehlszyklus: Programm speicher b 1 b 2 b 3 b n b 1... b n : B : C 0 : C1, C2,... : +,, * = : B Zentrale Recheneinheit C0 + * = Recheneinheit Steuer einheit Programm ( n Befehle) Befehlszähler Akkumulator (Arbeitsregister) Arbeitsspeicher (Register) Rechenwerke Arbeits speicher C1 C 2 C 3 C 4 Sei i der Inhalt von B. Lade b i aus dem Programmspeicher in die Steuereinheit. Erhöhe B auf i + 1. Decodiere b i und führe ihn aus durch Laden von Operanden Durchführung von Rechenoperationen Abspeichern des Ergebnisses Veränderung des Kontrollflusses Die Ausführung hängt natürlich im Einzelnen von dem konkreten Befehl ab. 9 / 93

10 Begriffe Programm Das Programm ist eine Folge von Befehlen b 1, b 2,..., b n Diese ist bei uns unveränderbar (im Unterschied zu realen Rechnern, wo Programme in den Programmspeicher geladen und verändert werden können). 10 / 93

11 Begriffe Programm Das Programm ist eine Folge von Befehlen b 1, b 2,..., b n Diese ist bei uns unveränderbar (im Unterschied zu realen Rechnern, wo Programme in den Programmspeicher geladen und verändert werden können). Offene Fragen Welche Befehle benötigen wir für unsere Registermaschine? Wie können wir diese Befehle genau beschreiben? 11 / 93

12 Begriffe Konfiguration Idee Wir beschreiben die Befehle über die durch sie verursachten Zustandsänderungen unserer Registermaschine. Eine vollständige Zustandsbeschreibung der Registermaschine nennen wir Konfiguration. Programm speicher b 1 b 2 b 3 b n b 1... b n B C 0 C1, C2,... +,, * = : : : : : B Zentrale Recheneinheit C0 + * = Recheneinheit Programm ( n Rechenwerke Steuer einheit Befehle) Befehlszähler Akkumulator (Arbeitsregister) Arbeitsspeicher (Register) Arbeits speicher C1 C 2 C 3 C 4 Enthält B die Zahl b, und C i die Zahl c i, 0 i, so heisst (b, c 0, c 1,... ) aktuelle Konfiguration der Registermaschine. Die Ausführung eines Befehls bewirkt einen Konfigurations-Übergang (b, c 0, c 1,... ) (b, c 0, c 1,... ) 12 / 93

13 Befehle Laden und Speichern Programm speicher b 1 b 2 b 3 b n B Zentrale Recheneinheit C + * = Recheneinheit Steuer einheit 0 Arbeits speicher C1 C 2 C 3 C 4 LOAD i, i N + b = b + 1 c 0 b 1... b = c i c j = c j für j 0 n : Programm ( n Befehle) CLOAD i, i N b = b + 1 c 0 B : Befehlszähler = i c j = c j für j 0 STORE C i, i 0 : N + Akkumulator b = b + 1(Arbeitsregister) c i = c 0 c j = c j für j i C, C,... Arbeitsspeicher (Register) 1, 2 : 13 / 93

14 Befehle Arithmetische Befehle ADD i, i N + b = b + 1 c 0 = c 0 + c i c j = c j für j 0 CADD i, i N + b = b + 1 c 0 = c 0 + i c j = c j für j 0 SUB i, i N + b = b + 1 c 0 = { c0 c i für c 0 c i 0 sonst CSUB i, i N + b = b + 1 c 0 = { c0 i für c 0 i 0 sonst c j = c j für j 0 c j = c j für j 0 MULT i, i N + b = b + 1 c 0 = c 0 c i c j = c j für j 0 CMULT i i N + b = b + 1 c 0 = c 0 i c j = c j für j 0 DIV i, i N + b = b + 1 c 0 = c 0/c i c j = c j für j 0 CDIV i, i N + b = b + 1 c 0 = c 0/i c j = c j für j 0 14 / 93

15 Befehle Bemerkung Arithmetik auf natürliche Zahlen beschränkt: statt negativer Differenz ist das Ergebnis 0. Division erfolgt ganzzahlig es gibt keinen Übertrag z.b. bei negativen Zahlen oder wenn das Register das Ergebnis nicht mehr abbilden kann (z.b. größte darstellbare Zahl + 1) 15 / 93

16 Befehle Sprungbefehle GOTO i, i N + b = i c j = c j für j 0 { IF c 0 = 0 GOTO i, i N + b i falls c0 = 0 = b + 1 sonst c j = c j für j 0 END b = b c j = c j für j 0 16 / 93

17 Rechnen Maschinen und Programmabläufe Registermaschinen unterscheiden sich durch ihr Programm. Verschiedene Programmabläufe unterscheiden sich durch die Start-Konfiguration (alles weitere ist ja festgelegt). Start-Konfiguration (1, 0, x 1,..., x n, 0, 0,... ) x i sind die Eingabe-Parameter in den Registern c 1... c n. 17 / 93

18 Rechnen Berechnete Funktion M berechnet Funktion f M : N n N m mit (y 1,..., y m ) = f M (x 1,..., x n ), falls für alle x 1,..., x n N gilt (1, 0, x 1,..., x n, 0, 0,... ) (e, c, y 1,..., y m,... ) und b e ist ein END-Befehl. 18 / 93

19 Rechnen Beispiel M + 1 LOAD 1 2 ADD 2 3 STORE 3 4 END (1, 0, a, b) (4, a + b, a, b, a + b) F M+ (x 1, x 2 ) = (x 1, x 2, x 1 + x 2 ) 19 / 93

20 Rechnen Beispiel M fib 1 LOAD 1 2 ADD 2 3 STORE 2 4 SUB 1 5 STORE 1 6 END (1, 0, a, b) (6, b, b, a + b) M fib berechnet einen Schritt der Fibonacci-Iteration. f Mfib (x 1, x 2 ) = (x 2, x 2, x 1 + x 2 ) 20 / 93

21 Rechnen Beispiel M 1 1 LOAD 1 2 DIV 2 3 MULT 2 4 STORE 3 5 LOAD 1 6 SUB 3 7 STORE 3 8 END 21 / 93

22 Rechnen Rechnung von M 1 mit r = n (n div m) m Berechnete Funktion: (1, 0, n, m, 0) (8, r, n, m, r) f M1 (x 1, x 2 ) = (x 1, x 2, x 1 mod x 2 ) 22 / 93

23 Semantik Semantik einfacher Programme Beispiel M id Beispiel M undef 1 END 1 GOTO 1 2 END f Mid (x 1,..., x n ) = (x 1,..., x n ) f Mundef (x 1,..., x n ) =undefiniert 23 / 93

24 Semantik Beispiel M 3 Beispiel M 4 1 LOAD 1 1 LOAD 1 2 IF c 0 = 0 GOTO 4 2 IF c 0 = 0 GOTO 1 3 GOTO 2 3 END 4 END f M3 (x 1 ) = 0 falls x 1 = 0 f M4 (x 1 ) = x 1 falls x 1 > 0 = undefiniert, sonst = undefiniert, sonst 24 / 93

25 Beobachtungen Beobachtungen zu unserer Registermaschine Die Anzahl der benutzten Register liegt statisch fest. Alle Adressen stehen explizit im Programm. Die Anzahl der Befehle bei Ausführung ist statisch nicht bestimmbar und hängt insbesondere von den (bedingten) Sprüngen ab. Programme ohne Schleifen kann man symbolisch ausführen und so die berechnete Funktion bestimmen. Bei Programmen mit Schleifen führt die symbolische Ausführung nicht zu einer Bestimmung der berechneten Funktion. Es entsteht eine unendlich große Formel. 25 / 93

26 Erweiterung zur Indirekten Adressierung Neue Problemstellung Es soll die Summe einer beliebig langen Zahlenkette gebildet werden. Ansatz: Zahlenkette beginnt ab c10 Ende mit c i = 0 gekennzeichnet. c 1 hält unser aktuelles Zwischenergebnis. 1 CLOAD 0 2 STORE 1 3 GOTO 5 4 END 5 LOAD 10 6 IF C 0 = 0 GOTO 4 7 ADD 1 8 STORE 1 9 LOAD IF C 0 = 0 GOTO 4 11 ADD 1 12 STORE 1 13 LOAD / 93

27 Erweiterung zur Indirekten Adressierung Erweiterung: Indirekte Adressierung Bislang waren alle Speicheradressen immer statisch im Programm festgelegt. Das Potential des gedachten unendlich großen Speichers lässt sich damit nicht effizient ausschöpfen. Zusätzlich zu konstanten (C-Befehle) und statisch adressierten Speicherzugriffen führt man daher noch indirekt adressierte Speicherzugriffe ein. Die Adresse der Ziel-Speicherzelle wird dabei erst aus einer statisch adressierten Speicherzelle ausgelesen. Unsere neuen Befehle lauten INDLOAD, INDSTORE, INDADD, INDSUB, INDMUL, INDDIV. 27 / 93

28 Erweiterung zur Indirekten Adressierung INDLOAD i, i N + b = b + 1 c 0 = cc i c j = c j für j 0 INDSTORE i, i N + b = b + 1 c c = c 0 i c j = c j für j i j N ADD i, i N + b = b + 1 c 0 = c 0 + c i c j = c j für j 0 INDADD i, i N + b = b + 1 c 0 = c 0 + c ci c j = c j für j 0 SUB i, i N + b = b + 1 c 0 = { c0 c i für c 0 c i 0 sonst c j = c j für j 0 INDSUB i, i N + b = b + 1 c 0 = { c0 c ci für c 0 c ci 0 sonst c j = c j für j 0 MULT i, i N + b = b + 1 c 0 = c 0 c i c j = c j für j 0 INDMULT i i N + b = b + 1 c 0 = c 0 c ci c j = c j für j 0 DIV i, i N + b = b + 1 c 0 = c 0/c i c j = c j für j 0 INDDIV i, i N + b = b + 1 c 0 = c 0/c ci c j = c j für j 0 28 / 93

29 Erweiterung zur Indirekten Adressierung Summe einer Liste von Zahlen Es soll die Summe einer beliebig langen Zahlenkette gebildet werden. Ansatz: Zahlenkette beginnt ab c10 Ende mit c i = 0 gekennzeichnet. c 1 hält unser aktuelles Zwischenergebnis. c 2 enthält unseren aktuellen Index. 1 CLOAD 0 2 STORE 1 3 CLOAD 10 4 STORE 2 5 INDLOAD 2 6 IF C 0 = 0 GOTO 13 7 ADD 1 8 STORE 1 9 LOAD 2 10 CADD 1 11 STORE 2 12 GOTO 5 13 END 29 / 93

30 Invarianten 1 Preamble 2 Registermaschinen 3 Invarianten Definition Beispiele Komplexeres Beispiel Partielle vs. Totale Korrektheit 4 Endliche Automaten 5 Zusammenfassung 30 / 93

31 Definition Invarianten Um die berechnete Funktion von Programmen mit Schleifen im Allgemeinen zu finden, benutzt man Invarianten. Diese sind Aussagen über Konfigurationen, die an gewissen Programmstellen immer erfüllt sind: φ bb (c 0, c 1,... ) gilt am Übergang von Befehl b zu b. φ start (c 0, c 1... ) gilt am Anfang, φ end (c 0, c 1... ) am Ende. 31 / 93

32 Beispiele Invarianten zu M Beispiel M 3 1 LOAD 1 2 IF c 0 = 0 GOTO 4 3 GOTO 2 4 END φ start = (c 0 = 0, c 1 = x 0) φ 12 = (c 0 = c 1 = x 0) φ 23 = (c 0 = c 1 = x > 0) φ 32 = (c 0 = c 1 = x > 0) φ 24 = (c 0 = c 1 = 0) φ end = (c 0 = c 1 = 0) 32 / 93

33 Beispiele Invarianten zu M Beispiel M 3 1 LOAD 1 2 IF c 0 = 0 GOTO 4 3 GOTO 2 4 END φ start = (c 0 = 0, c 1 = x 0) 3 φ 12 φ 23 = = (c 0 = c 1 = x 0) (c 0 = c 1 = x > 0) φ 32 = (c 0 = c 1 = x > 0) 4 φ 24 = (c 0 = c 1 = 0) φ end = (c 0 = c 1 = 0) Bei der ersten Ausführung von Befehl 2 gilt φ 12, bei eventuellen weiteren die stärkere Invariante φ 23 = φ 32. Wird also Punkt 3 einmal erreicht, liegt Endlosschleife vor. Punkt 4 wird erreicht genau dann, wenn x = / 93

34 Beispiele Invarianten zu M Beispiel M 4 1 LOAD 1 2 IF c 0 = 0 GOTO 1 3 END φ start = (c 0 = 0, c 1 = x 0) φ 12 = (c 0 = c 1 = x 0) φ 23 = (c 0 = c 1 = x > 0) φ 21 = (c 0 = c 1 = x = 0) φ end = (c 0 = c 1 = x > 0) 34 / 93

35 Komplexeres Beispiel Registermaschine M 2 1 CLOAD 1 2 STORE 3 3 LOAD 2 4 IF c 0 = 0 GOTO 12 5 LOAD 3 6 MULT 1 7 STORE 3 8 LOAD 2 9 CSUB 1 10 STORE 2 11 GOTO 4 12 END 35 / 93

36 Komplexeres Beispiel Programmflussdiagramm für M 2 1 CLOAD 1 2 STORE 3 3 LOAD 2 4 IF c 0 = 0 GOTO 12 5 LOAD 3 6 MULT 1 7 STORE 3 8 LOAD 2 9 CSUB 1 10 STORE 2 11 GOTO 4 12 END φ start = (c 1 = x, c 2 = y) Wir suchen φ end, indem wir φ start durch das Diagramm propagieren. Das geht überall einfach, außer am Schleifenkopf / 93

37 Komplexeres Beispiel 1 CLOAD 1 2 STORE 3 3 LOAD 2 4 IF c 0 = 0 GOTO 12 5 LOAD 3 6 MULT 1 7 STORE 3 8 LOAD 2 9 CSUB 1 10 STORE 2 11 GOTO 4 12 END φ start = (c 0 = 0, c 1 = x, c 2 = y) φ 12 = (c 0 = 1, c 1 = x, c 2 = y) φ 23 = (c 0 = 1, c 1 = x, c 2 = y, c 3 = 1) φ 34 = (c 0 = y, c 1 = x, c 2 = y, c 3 = 1) Hier entsteht nun das Problem, dass wir φ 45 nicht allein aus φ 34 und b 4 bestimmen können, da es auch von φ 11 4 abhängt, das wir noch nicht kennen. 37 / 93

38 Komplexeres Beispiel 1 CLOAD 1 2 STORE 3 3 LOAD 2 4 IF c 0 = 0 GOTO 12 5 LOAD 3 6 MULT 1 7 STORE 3 8 LOAD 2 9 CSUB 1 10 STORE 2 11 GOTO 4 12 END Idee: Wir fügen eine neue, noch unbekannte Invariante φ 4 für den Schleifenkopf ein. Für sie muss gelten φ 34 oder φ 11 4 φ 4. Dabei hängt φ 11 4 natürlich von φ 4 ab. Mit dem noch unbekannten φ 4 rechnen wir weiter. 38 / 93

39 Komplexeres Beispiel 1 CLOAD 1 2 STORE 3 3 LOAD 2 4 IF c 0 = 0 GOTO 12 5 LOAD 3 6 MULT 1 7 STORE 3 8 LOAD 2 9 CSUB 1 10 STORE 2 11 GOTO 4 12 END Sei φ 4 = (c 0 = a, c 1 = x, c 2 = b, c 3 = d) mit Unbekannten a, b, d. φ 45 = (c 0 = a > 0, c 1 = x, c 2 = b, c 3 = d) φ 56 = (c 0 = d, a > 0, c 1 = x, c 2 = b, c 3 = d) φ 67 = (c 0 = d x, a > 0, c 1 = x, c 2 = b, c 3 = d) φ 78 = (c 0 = d x, a > 0, c 1 = x, c 2 = b, c 3 = d x) 39 / 93

40 Komplexeres Beispiel 1 CLOAD 1 2 STORE 3 3 LOAD 2 4 IF c 0 = 0 GOTO 12 5 LOAD 3 6 MULT 1 7 STORE 3 8 LOAD 2 9 CSUB 1 10 STORE 2 11 GOTO 4 12 END φ 89 = (c 0 = b, a > 0, c 1 = x, c 2 = b, c 3 = d x) φ 9 10 = (c 0 = b 1, a > 0, c 1 = x, c 2 = b, c 3 = d x) φ = (c 0 = b 1, a > 0, c 1 = x, c 2 = b 1, c 3 = d x) φ 11 4 = φ φ 4 12 = φ 4 c 2 = 0 40 / 93

41 Komplexeres Beispiel 1 CLOAD 1 2 STORE 3 3 LOAD 2 4 IF c 0 = 0 GOTO 12 5 LOAD 3 6 MULT 1 7 STORE 3 8 LOAD 2 9 CSUB 1 10 STORE 2 11 GOTO 4 12 END Jetzt müssen wir φ 4 herausfinden. Es muss gelten φ 34 φ 4 und φ 11 4 φ 4 φ 34 : (c 0 = y, c 1 = x, c 2 = y, c 3 = 1) φ 11 4 : (c 0 = b 1, c 1 = x, c 2 = b 1, c 3 = d x, a > 0) φ 4 : (c 0 = a, c 1 = x, c 2 = b, c 3 = d) 41 / 93

42 Komplexeres Beispiel Den Effekt eines Schleifendurchlaufs auf φ 4 hält φ 11 4 fest. Wir beobachten c 1 ändert sich nicht, c 0, c 2 und c 3 ändern sich. Für φ 11 4 wie für φ 3 4 gilt invariant: c 3 = x (y c 2). Wir setzen als neue Invariante Es gilt φ 34 impliziert ˆφ 4. ˆφ 4 = (c 0 = c 2, c 1 = x, c 3 = x (y c 2) ) Es gilt nach Durchschieben von ˆφ 4 durch die Schleife ˆφ 11 4 = (c 0 = c 2, c 1 = x, c 3 = x (y (c 2+1)) x) = ˆφ 4 42 / 93

43 Komplexeres Beispiel Damit finden wir nun die Endkonfiguration φ 4 12 = (c 0 = 0, c 1 = x, c 2 = c 0 = 0, c 3 = x y ) φ end = φ 4 12 Damit ist bewiesen, dass die Maschinenfunktion von M 2 lautet f M2 (x, y) = (x, 0, x y ) Allerdings gilt dies nur, wenn Punkt 12 erreicht wird. Im Beispiel dieser Maschine ist die Terminierung einfach zu zeigen, im allgemeinen aber schwer. 43 / 93

44 Partielle vs. Totale Korrektheit Partielle versus Totale Korrektheit Ein Maschinenprogramm M heisst partiell korrekt für eine Funktion f : N n N m, falls f M (x 1,..., x n ) = f (x 1,..., x n ), sofern f M terminiert. M heisst total korrekt für f, falls gilt: Wenn f (x 1,..., x n ) definiert ist, so terminiert f M auf Eingabe x 1,..., x n mit dem Ergebnis f (x 1,..., x n ). 44 / 93

45 Partielle vs. Totale Korrektheit Nachweis der Korrektheit Für Registermaschinenprogramme wie für alle imperativen Programme weist man partielle Korrektheit durch die Bestimmung der Invarianten nach. Anstelle der Terminierung zeigt man lieber eine stärkere Aussage: Man gibt an, nach wievielen Schritten eine Berechnung endet Kapitel Effizienzanalyse. 45 / 93

46 Endliche Automaten 1 Preamble 2 Registermaschinen 3 Invarianten 4 Endliche Automaten Einführung Beispiel Formale Sprachen Operationen auf endlichen Automaten Nicht-deterministische endliche Automaten (NEA) Anwendung 5 Zusammenfassung 46 / 93

47 Einführung Endliche Automaten Bei der Registermaschine haben wir Programme geschrieben und uns über die Belegung des Speichers Gedanken gemacht. 47 / 93

48 Einführung Endliche Automaten Bei der Registermaschine haben wir Programme geschrieben und uns über die Belegung des Speichers Gedanken gemacht. Um das Verhalten eines Programmes zu analysieren, haben wir die Programme Schritt für Schritt abgearbeitet, Graphen mit den Übergängen zwischen den Befehlen gezeichnet und uns die Invariaten bei den Konfigurationen, also den Zustandsbeschreibungen genau angesehen. 48 / 93

49 Einführung Endliche Automaten Bei der Registermaschine haben wir Programme geschrieben und uns über die Belegung des Speichers Gedanken gemacht. Um das Verhalten eines Programmes zu analysieren, haben wir die Programme Schritt für Schritt abgearbeitet, Graphen mit den Übergängen zwischen den Befehlen gezeichnet und uns die Invariaten bei den Konfigurationen, also den Zustandsbeschreibungen genau angesehen. Wir haben uns also das Verhalten der Programme mittels Zuständen und Zustandsübergängen erklärt. 49 / 93

50 Einführung Endliche Automaten Bei der Registermaschine haben wir Programme geschrieben und uns über die Belegung des Speichers Gedanken gemacht. Um das Verhalten eines Programmes zu analysieren, haben wir die Programme Schritt für Schritt abgearbeitet, Graphen mit den Übergängen zwischen den Befehlen gezeichnet und uns die Invariaten bei den Konfigurationen, also den Zustandsbeschreibungen genau angesehen. Wir haben uns also das Verhalten der Programme mittels Zuständen und Zustandsübergängen erklärt. Warum können wir nicht gleich unsere Programme auf dieser Ebene formulieren? 50 / 93

51 Einführung Einordnung Das geht zum Beispiel mit Endlichen Automaten. Automat Ein Automat ist eine abstrakte Maschine der Informatik. Er dient als Erklärungsmodell und vereinfacht den Vergleich von Algorithmen, ohne auf die Details der realen Umsetzung achten zu müssen. Ein Automat verarbeitet Zeichenketten und hat einen internen Zustand. Endlicher Automat Ein Endlicher Automat kann nur eine endliche Menge an internen Zuständen einnehmen. Er ist weniger mächtig als die unbeschränkte Registermaschine. 51 / 93

52 Einführung Definition Definition Ein Alphabet ist ein endlicher Zeichenvorrat. Eine Zeichenreihe über Alphabet A ist eine Folge a 1 a 2... a n mit a i A, n 0. Für die leere Zeichenreihe (n = 0) schreibt man ε. A ist die Menge aller Zeichenreihen über A. 52 / 93

53 Einführung Definition Ein endlicher Automat besteht aus einem Alphabet A einer endlichen Zustandsmenge S einem Startzustand s 0 S einer Zustandsübergangsfunktion δ : S A S einer Menge akzeptierender Zustände F Üblicherweise nimmt man als Zustandsmenge S mit S = m die Zahlen [0... m 1], und s 0 = / 93

54 Beispiel Beispiel EA1 Automat EA1 A = {a, b} S = {0, 1, 2, 3} s 0 = 0 F = {0} Zustandsübergangsfunktion a A δ(s, a) a b s S / 93

55 Beispiel Berechnete Funktion des endlichen Automaten Definition Automatenfunktion Die Automatenfunktion des Automaten A = (A, S, s 0, δ, F) ist δ A : A S mit δ A (x) = δ (s 0, x) δ (s, ε) = s δ (s, ax) = δ (δ(s, a), x) Die Automatenfunktion rechnet also genau n + 1 Schritte für eine Zeichenreihe der Länge n. 55 / 93

56 Beispiel Endliche Automaten als Akzeptoren Definition: Akzeptierte Wortmenge Die von A akzeptierte Wortmenge Akz(A) A ist {w A δ A (w) F} Wörter aus A \ Akz(A) nennt man zurückgewiesene Wörter. 56 / 93

57 Beispiel Betrachtung zu EA1 Akzeptierte Wörter: ε, ab, ba, abab, abba,... Zurückgewiesene Wörter: a, b, aab, aabb,... Allgemeines Prinzip: Akzeptiert werden beliebig viele Auftreten der Zeichenpaare ab oder ba, einschließlich ε. Akz(EA1) = {ab, ba} n, n 0 57 / 93

58 Beispiel Übergangsdiagramm zu endlichen Automaten Die Funktion δ wird grafisch dargestellt: Beispiel EA1 a 1 a 0 b 3 a,b b a 2 b Zustände f F bekommen einen doppelten Kreis. 58 / 93

59 Beispiel Betrachtung zu EA1 (Fortsetzung) Aus Zustand 3 führt keine Folge von Übergängen in einen akzeptierenden Zustand. Solche Zustände nennt man Fehlerzustände und lässt sie weg: a 1 0 a b b 2 δ(s, a) a b Das Diagramm ist damit kleiner, und die δ-funktion partiell. 59 / 93

60 Beispiel Varianten von EA1 EA2 0 a b 1 2 a b b a 3 Was sind die fehlenden Übergänge/Fehlerzustände? Was ist Akz(EA2)? 60 / 93

61 Beispiel Varianten von EA1 EA2 0 a b 1 2 a b b a 3 Was sind die fehlenden Übergänge/Fehlerzustände? Was ist Akz(EA2)? Akz(EA2) = Akz(EA1) {ε} 61 / 93

62 Beispiel EA3 a 0 a 1 b 3 Was sind die fehlenden Übergänge/Fehlerzustände? Was ist Akz(EA3)? b 2 a b 62 / 93

63 Beispiel EA3 a 0 a 1 b 3 Was sind die fehlenden Übergänge/Fehlerzustände? Was ist Akz(EA3)? b 2 a b Akz(EA3) = {a n ab, n 0} {b n ba, n 0} 63 / 93

64 Beispiel EA4 a a 1 b 0 3 a,b Hier gibt es keine Fehlerzustände, trotzdem ist Akz(EA4) A b 2 a b 64 / 93

65 Beispiel EA4 a a 1 b 0 3 a,b Hier gibt es keine Fehlerzustände, trotzdem ist Akz(EA4) A b 2 a b Akz(EA) = {xaby, xbay x, y A } In Worten: EA4 akzeptiert alle Zeichenreihen, die irgendwo ein ab oder ba enthalten. 65 / 93

66 Beispiel EA5 a a 1 0 Welche Übergänge fehlen? Was ist Akz(EA5)? b 2 b 66 / 93

67 Beispiel EA5 a a 1 0 Welche Übergänge fehlen? Was ist Akz(EA5)? b 2 b Akz(EA5) = {a n n 0} {b n n 0} 67 / 93

68 Beispiel Komplement von Wortproblemen Beobachtung: Akz(EA5) = A Akz(EA4) Satz Die von endlichen Automaten akzeptierten Wortmengen sind abgeschlossen unter Komplementbildung in A. 68 / 93

69 Beispiel Beweis: Sei A = (A, S, s 0, δ, F). Wir setzen Ā = (A, S, s 0, δ, S \ F). Offensichtlich gilt Akz(Ā) = A Akz(A). Achtung, anhand der Diagramme ist dies erst offensichtlich, wenn man alle weggelassenen Zustände und Übergänge wieder ergänzt. 69 / 93

70 Formale Sprachen Formale Sprachen Definition Eine formale Sprache über A ist eine beliebige Teilmenge L A. Damit ist für jeden endlichen Automaten A die Akzeptierte Wortmenge Akz(A) eine formale Sprache. 70 / 93

71 Formale Sprachen Formale Sprachen Definition Eine formale Sprache über A ist eine beliebige Teilmenge L A. Damit ist für jeden endlichen Automaten A die Akzeptierte Wortmenge Akz(A) eine formale Sprache. Überlegung Gibt es umgekehrt für jede formale Sprache L einen endlichen Automaten A mit Akz(A) = L? 71 / 93

72 Formale Sprachen Gegenbeispiel Zur Widerlegung unserer Überlegung können wir ein einfaches Gegenbeispiel konstruieren. 72 / 93

73 Formale Sprachen Gegenbeispiel Zur Widerlegung unserer Überlegung können wir ein einfaches Gegenbeispiel konstruieren. Idee Wir nutzen die Beschränkung auf endlich viele Zustände als Ansatzpunkt für unser Gegenbeispiel. 73 / 93

74 Formale Sprachen Betrachte L = {a m b m, m 0} 74 / 93

75 Formale Sprachen Betrachte L = {a m b m, m 0} 0 a a 1 2 n 1 a n b b b b 2n b 2n 1 b n+2 n+1 75 / 93

76 Formale Sprachen Betrachte L = {a m b m, m 0} 0 a a 1 2 n 1 a n b b b b 2n b 2n 1 b n+2 n+1 Dieser Automat akzeptiert {a m b m m n}, aber für alle m 0 bräuchte er eine unendliche Zustandsmenge. Dies ist nur eine Plausibilitätsüberlegung. Wie könnte man diese Tatsache beweisen? 76 / 93

77 Formale Sprachen Bedeutung endlicher Automaten Endliche Automaten bilden die kleinste Klasse einer Hierarchie gebildet durch Endliche Automaten Kellerautomaten (zusätzlich noch einen unendlichen Kellerspeicher) Linear beschränkte Automaten (wie Turing-Maschine, nur Band beschränkt auf Bereich des ursprünglichen Eingabewortes) Turing-Maschinen, Registermaschinen (unbeschränkter Speicher bzw. unbeschränktes Band) ( Mehr dazu in der Vorlesung Theoretische Informatik) Gute Effizienz und triviale Terminierung 77 / 93

78 Formale Sprachen Praktische Bedeutung endlicher Automaten Einfaches Programmiermodell für einfache Klasse von Wortproblemen. Viele wichtige Anwendungen Codierungsprobleme Übersetzung von Programmiersprachen Dokument-Verarbeitung 78 / 93

79 Operationen auf endlichen Automaten Verknüpfung endlicher Automaten Konkatenation (auch Produkt genannt) 0 v 1 o 2 r 3 und 0 o 1 r 2 t 3 ergibt 0 v 1 o 2 r 3 o 4 r 5 t 6 79 / 93

80 Operationen auf endlichen Automaten Beliebige Wiederholung Aus b l a 3 wird 0 b 1 l 2 a 80 / 93

81 Operationen auf endlichen Automaten Vereinigung Aus 0 v 1 o 2 r 3 und 0 o 1 r 2 t 3 wird 0 v o 1 4 o r 2 5 r t 3 6 (Zustände 3, 6 könnte man zusammenlegen)... aber so einfach geht s nicht immer. 81 / 93

82 Operationen auf endlichen Automaten Aus 0 t 1 o 2 r 3 und 0 t 1 o 2 t 3 wird 0 t t 1 4 o o 2 5 r t 3 6 das ist kein endlicher Automat / 93

83 Nicht-deterministische endliche Automaten (NEA) Nicht-deterministische endliche Automaten (NEA) Der NEA erlaubt aus einem Zustand verschiedene Übergänge unter dem gleichen Eingabezeichen, hat nach n Schritten eine Menge möglicher Zustände, akzeptiert eine Zeichenreihe, wenn es eine mögliche Übergangsfolge gibt, die zu einem akzeptierenden Zustand führt. 83 / 93

84 Nicht-deterministische endliche Automaten (NEA) Nicht-deterministische endliche Automaten (NEA) Der NEA erlaubt aus einem Zustand verschiedene Übergänge unter dem gleichen Eingabezeichen, hat nach n Schritten eine Menge möglicher Zustände, akzeptiert eine Zeichenreihe, wenn es eine mögliche Übergangsfolge gibt, die zu einem akzeptierenden Zustand führt. Parallel-Universen? Man kann den nicht-deterministischen endlichen Automaten auch so auffassen, dass bei jeder nicht-deterministischen Verzweigung mehrere Paralleluniversen erzeugt werden, in denen jeweils eine Kopie des Automaten einen unterschiedlichen Pfad überprüft. Ein Wort wird dann vom NEA akzeptiert, wenn es in mindestens einem der Paralleluniversen akzeptiert wird. 84 / 93

85 Nicht-deterministische endliche Automaten (NEA) Satz (Konstruktion von Myhill) Zu jedem NEA gibt es einen EA, das die gleiche Wortmenge akzeptiert. Beweis-Idee: Im NEA ist für jede Eingabe nach jedem Schritt eine Menge von Zuständen erreichbar. Diese Zustandsmengen sind Zustände des EA. Eine solche Zustandsmenge ist akzeptierender Zustand des EA, wenn sie einen akzeptierenden Zustand des NEA enthält. Die Anzahl der Zustände des resultierenden EAs kann exponentiell größer sein als die des NEAs. 85 / 93

86 Anwendung Anwendungen von NEAs Reguläre Ausdrücke Für die Suche in und die Verarbeitung von Texten werden häufig reguläre Ausdrücke verwendet. Diese lassen sich auf NEAs abbilden. Da NEAs schnell und effizient Entscheidungen über die Zugehörigkeit einer Eingabe zur akzeptierten Wortmenge treffen können, werden in den Programmiertools die regulären Ausdrücke intern erst einmal in einen entsprechenden NEA konvertiert (kompiliert). 86 / 93

87 Anwendung Bestandteile Regulärer Ausdrücke Symbol Bedeutung Beispiel Zeichen das Zeichen selbst hallo [] Auswahl h[ae]llo - Bereich (innerhalb von []) [a-za-z] () Klammerung eines Ausdrucks (hallo). Beliebiges Zeichen h.llo? Optional Barrack (Hussein)? Obama + Mindestens einmaliges [1 0]+ Vorkommen * Beliebig oftes Vorkommen 10 {u,o} Beschränktes Vorkommen hal{1,2}o (untere und obere Grenze) - etc. Sonderzeichen escapen Doppel\-Name 87 / 93

88 Anwendung Beispiel Java Praktische Auswirkung In der Regel ist es effizienter, bei der Verwendung von regulären Ausdrücken die Konvertierung in den NEA nur einmal vorzunehmen und im Anschluss den bereits konvertierten NEA zu verwenden. Statt 1 boolean b = Pattern. matches ( "a*b", "aaaab" ) ; sollte man bei häufigeren Tests daher 1 Pattern p = Pattern. compile ( "a*b" ) ; 2 Matcher m = p. matcher ( "aaaab" ) ; 3 boolean b = m. matches ( ) ; verwenden. 88 / 93

89 Anwendung Verwendet Java heute NEAs? In 2007 hat Russ Cox einen Performanz-Test zwischen verschiedenen Implementierungen regulärer Ausdrücke und einer Implementierung basierend auf NEAs gemacht und ist zu folgendem Ergebnis gekommen: rsc/regexp/regexp1.html 89 / 93

90 Anwendung Verwendet Java heute NEAs? In 2007 hat Russ Cox einen Performanz-Test zwischen verschiedenen Implementierungen regulärer Ausdrücke und einer Implementierung basierend auf NEAs gemacht und ist zu folgendem Ergebnis gekommen: rsc/regexp/regexp1.html Wie ist die Situation heute? 90 / 93

91 Zusammenfassung Registermaschinen 91 / 93

92 Zusammenfassung Registermaschinen Analyse von Programmen mittels Invarianten 92 / 93

93 Zusammenfassung Registermaschinen Analyse von Programmen mittels Invarianten Endliche Automaten 93 / 93

Algorithmen und Datenstrukturen 1 Kapitel 4.1

Algorithmen und Datenstrukturen 1 Kapitel 4.1 Algorithmen und Datenstrukturen 1 Kapitel 4.1 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 4: Maschinenmodelle [Dieses Kapitel hält sich eng an

Mehr

Mächtigkeit von WHILE-Programmen

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

Mehr

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

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

Mehr

Berechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen

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

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 4.2

Algorithmen und Datenstrukturen 1 Kapitel 4.2 Endliche Automten Algorithmen und Dtenstrukturen 1 Kpitel 4.2 Roert Giegerich Technische Fkultät roert@techfk.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Roert Giegerich Endliche Automten

Mehr

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

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

Mehr

1 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

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

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

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

Mehr

Einführung in die Theoretische Informatik

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

Mehr

Formale Sprachen und endliche Automaten

Formale Sprachen und endliche Automaten Formale Sprachen und endliche Automaten Formale Sprachen Definition: 1 (Alphabet) Ein Alphabet Σ ist eine endliche, nichtleere Menge von Zeichen oder Symbolen. Ein Wort über dem Alphabet Σ ist eine endliche

Mehr

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

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

Mehr

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

3. RAM als Rechnermodell

3. RAM als Rechnermodell 3. RAM als Rechnermodell Motivation Wir möchten Berechnungsvorschriften (Algorithmen) formal beschreiben und deren Eigenschaften wie Korrektheit und Laufzeit analysieren Rechnermodell abstrahiert vom verwendeten

Mehr

Grundlagen der Theoretischen Informatik: Übung 10

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

Mehr

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}} 2 Endliche Automaten Fragen 1. Was ergibt sich bei {a, bc} {de, fg}? a) {abc, defg} b) {abcde, abcfg} c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} 2. Was ergibt sich bei {abc, a} {bc, λ}?

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

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

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

Mehr

Formale Grundlagen der Informatik 1 Kapitel 5 Abschlusseigenschaften

Formale Grundlagen der Informatik 1 Kapitel 5 Abschlusseigenschaften Formale Grundlagen der Informatik 1 Kapitel 5 Frank Heitmann heitmann@informatik.uni-hamburg.de 18. April 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/64 NFAs - Grundlagen DFAs vs. NFAs Der

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

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

ADS-EI 5.2 Struktur einer Turing-Maschine 120/451 ľernst W. Mayr

ADS-EI 5.2 Struktur einer Turing-Maschine 120/451 ľernst W. Mayr Bemerkung: Jede NDTM N (die die Sprache L(N) akzeptiert) kann in eine deterministische Turing-Maschine M konvertiert werden, die ebenfalls genau die Sprache L(N) akzeptiert. Beweisidee: Die Berechnungspfade

Mehr

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale

Mehr

Theoretische Informatik 1

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

Mehr

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

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Algorithmen und Datenstrukturen I - - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 22 Exkurs: Formale Sprachen Im Kapitel

Mehr

Berechenbarkeit und Komplexität Vorlesung 3

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

Mehr

Endliche Automaten Jörg Roth 101

Endliche Automaten Jörg Roth 101 Endliche Automaten Jörg Roth 101 Wir wollen im Folgenden die Abschlusseigenschaften regulärer Sprachen betrachten. Fragestellung: Wenn wir reguläre Sprachen haben, welche binären und unären Operationen

Mehr

Finite-State Technology

Finite-State Technology Finite-State Technology Teil III: Automaten 1 Wiederholung Formale Grammatiken sind entweder axiomatische Systeme mit Ableitungsregeln oder Automaten. Beide beschreiben formale Sprachen. Formale Sprachen

Mehr

Algorithmen und Datenstrukturen I - Maschinenmodelle -

Algorithmen und Datenstrukturen I - Maschinenmodelle - Algorithmen und Dtenstrukturen I - Mschinenmodelle - Alexnder Sczyr Technische Fkultät sczyr@techfk.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 203/204 / 75 Kpitel 3 - Mschinenmodelle Premle

Mehr

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

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

Mehr

Formale Systeme. Endliche Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Endliche Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz

Mehr

Reguläre Sprachen und endliche Automaten

Reguläre Sprachen und endliche Automaten Reguläre Sprachen und endliche Automaten 1 Motivation: Syntaxüberprüfung Definition: Fließkommazahlen in Java A floating-point literal has the following parts: a whole-number part, a decimal point (represented

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

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat Formale Grundlagen der Informatik 1 Kapitel 5 Über reguläre Sprachen hinaus und (Teil 2) Frank Heitmann heitmann@informatik.uni-hamburg.de 21. April 2015 Der Kellerautomat - Formal Definition (Kellerautomat

Mehr

Grundlagen der theoretischen Informatik

Grundlagen der theoretischen Informatik Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 04.06.2013 An den Transitionen sieht man zunächst, dass nur die folgenden Zustandsübergänge

Mehr

Das Halteproblem für Turingmaschinen

Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen ist definiert als die Sprache H := { T w : T ist eine TM, die bei Eingabe w {0, 1} hält }. Behauptung: H {0, 1} ist nicht entscheidbar.

Mehr

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 1: Grundlagen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Ziel Einführung der wichtigsten

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen Malte Helmert Gabriele Röger Universität Basel 7. April 2014 Kontextsensitive und allgemeine Grammatiken Wiederholung: (kontextsensitive)

Mehr

Algorithmen und Datenstrukturen - Maschinenmodelle -

Algorithmen und Datenstrukturen - Maschinenmodelle - Algorithmen und Dtenstrukturen - Mschinenmodelle - Alexnder Sczyr Technische Fkultät sczyr@techfk.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 04/05 / 90 Kpitel 3 - Mschinenmodelle Premle

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 Informatik. Programming Languages

Einführung in die Informatik. Programming Languages Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

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

Theoretische Grundlagen der Informatik

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

Mehr

Formale Systeme. Büchi-Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Büchi-Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz

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

Grundlagen der theoretischen Informatik

Grundlagen der theoretischen Informatik Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 09.04.2013 Inhalt der Vorlesung Teil I: Automaten und formale Sprachen (Kurt Sieber)

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung 02.11.2006 schindel@informatik.uni-freiburg.de 1 Kapitel III Reguläre Sprachen Reguläre Sprachen und Ausdrücke Informatik III

Mehr

Kurz-Skript zur Theoretischen Informatik I

Kurz-Skript zur Theoretischen Informatik I Kurz-Skript zur Theoretischen Informatik I Inhaltsverzeichnis 1 Grundlagen 2 2 Reguläre Ausdrücke 4 3 Endliche Automaten 5 3.1 Vollständige endliche Automaten................................... 6 3.2 ε

Mehr

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen Dr. Sebastian Bab WiSe 12/13 Theoretische Grundlagen der Informatik für TI Termin: VL 15 + 16 vom 17.12.2012 und 20.12.2012 Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Maximilian Haslbeck Fabian Mitterwallner Georg Moser David Obwaller cbr.uibk.ac.at Zusammenfassung der letzten LVA Definition Eine Grammatik G ist ein Quadrupel

Mehr

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07 Vortrag am 17.11.2006 Nichtdeterministische Turingmaschinen und NP Yves Radunz Inhaltsverzeichnis 1 Wiederholung 3 1.1 Allgemeines........................................

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 4.3 Eigenschaften von L 0 /L 1 -Sprachen 1. Abschlußeigenschaften 2. Prüfen von Eigenschaften 3. Grenzen der Sprachklassen Sprachklassen Semi-entscheidbare Sprache Sprache,

Mehr

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Fachschaft Informatik Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/36 Inhaltsverzeichnis I 1 Komponenten eines PCs

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

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall: Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge

Mehr

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.

Mehr

Formale Systeme. Endliche Automaten. Prof. Dr. Bernhard Beckert, WS 2015/ KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK

Formale Systeme. Endliche Automaten. Prof. Dr. Bernhard Beckert, WS 2015/ KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert, WS 2015/2016 Endliche Automaten KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum

Mehr

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung? Überblick 1. reguläre Sprachen endliche Automaten (deterministisch vs. nichtdeterministisch) Nichtregularität 2. Berechenbarkeit Registermaschinen/Turingmaschinen Churchsche These Unentscheidbarkeit 3.

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Rückblick Theoretische Informatik I 1. Mathematische Methoden 2. Reguläre Sprachen 3. Kontextfreie Sprachen Themen der Theoretischen Informatik I & II Mathematische Methodik in

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

Software Engineering Ergänzung zur Vorlesung

Software Engineering Ergänzung zur Vorlesung Ergänzung zur Vorlesung Prof. Dr. Markus Müller-Olm WS 2008 2009 2.6.1 Endliche und reguläre Sprachen Endliche und reguläre Sprache: fundamental in vielen Bereichen der Informatik: theorie Formale Sprachen

Mehr

Formale Systeme Prof. Dr. Bernhard Beckert, WS 2016/2017

Formale Systeme Prof. Dr. Bernhard Beckert, WS 2016/2017 Formale Systeme Prof. Dr. Bernhard Beckert, WS 2016/2017 Endliche Automaten KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK www.kit.edu KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft Endliche

Mehr

Grundlagen der Informatik II

Grundlagen der Informatik II Grundlagen der Informatik II Tutorium 2 Professor Dr. Hartmut Schmeck Miniaufgabe * bevor es losgeht * Finden Sie die drei Fehler in der Automaten- Definition. δ: A = E, S, δ, γ, s 0, F, E = 0,1, S = s

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 17.01.013 Parametrisierte Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

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

Die Nerode-Relation und der Index einer Sprache L

Die Nerode-Relation und der Index einer Sprache L Die Nerode-Relation und der Index einer Sprache L Eine zweite zentrale Idee: Sei A ein vollständiger DFA für die Sprache L. Repäsentiere einen beliebigen Zustand p von A durch die Worte in Σ, die zu p

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

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme Wiederholung Mit Grammatiken können wir Sprachen beschreiben und sie grob in Typen unterteilen: FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch Lehrstuhl Wissensbasierte Systeme Formale

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 3. Endliche Automaten 30.04.2015 Viorica Sofronie-Stokkermans Matthias Horbach e-mail: sofronie@uni-koblenz.de, horbach@uni-koblenz.de 1 Bis jetzt 1. Motivation

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

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausurnummer Nachname: Vorname: Matr.-Nr.: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 8 4 7 5 6 8 tats. Punkte Gesamtpunktzahl: Note: Punkte Aufgabe

Mehr

7 Endliche Automaten. 7.1 Deterministische endliche Automaten

7 Endliche Automaten. 7.1 Deterministische endliche Automaten 7 Endliche Automaten 7.1 Deterministische endliche Automaten 7.2 Nichtdeterministische endliche Automaten 7.3 Endliche Automaten mit g-übergängen Endliche Automaten 1 7.1 Deterministische endliche Automaten

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

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch TU Dresden, 17. Oktober 2016 Rückblick Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 2 von 31 Wiederholung Mit Grammatiken können

Mehr

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

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

Mehr

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

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

Kapitel 7: Kellerautomaten und kontextfreie Sprachen Kapitel 7: Kellerautomaten und kontextfreie Sprachen Prof.-Dr. Peter Brezany Institut für Softwarewissenschaft Universität Wien, Liechtensteinstraße 22 1090 Wien Tel. : 01/4277 38825 E-mail : brezany@par.univie.ac.at

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

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine Kontextsensitive und Typ 0 Sprachen Slide 2 Die Turingmaschine DTM = Deterministische Turingmaschine NTM = Nichtdeterministische Turingmaschine TM = DTM oder NTM Intuitiv gilt: DTM = (DFA + dynamischer

Mehr

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften Endlichkeitstest Eingabe: DFA/NFA M. Frage: Ist die von M akzeptierte Sprache endlich? Nahe liegende Beobachtung: In einem DFA/NFA, der eine unendliche Sprache akzeptiert, muss es einen Kreis geben, der

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

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

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

Mehr

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 Σ 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 9. März 24 7. Reguläre Sprachen I Theorie der Informatik 7. Reguläre Sprachen I Malte Helmert Gabriele Röger Universität Basel 9. März 24 7. Reguläre Grammatiken 7.2 DFAs 7.3 NFAs

Mehr

11. Übungsblatt. x y(top(push(x, y)) = y)

11. Übungsblatt. x y(top(push(x, y)) = y) Logik, Berechenbarkeit und Komplexität Sommersemester 2012 Hochschule RheinMain Prof. Dr. Steffen Reith 11. Übungsblatt 1. Ein Keller (engl. stack) ist eine bekannte Datenstruktur. Sei die Signatur S =

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

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016)

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016) Technische Universität Berlin, Berlin, 28.07.2016 Name:... Matr.-Nr.:... Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016) Einlesezeit: Bearbeitungszeit: Max.

Mehr

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann. Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden

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

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 3 14. Mai 2010 Einführung in die Theoretische

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

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

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