Grundlagen der Theoretischen Informatik

Ähnliche Dokumente
Grundlagen der Theoretischen Informatik

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

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep

Grundlagen der Theoretischen Informatik

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Teil II. Terminologie. Vorlesung

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

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

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

Alphabet, formale Sprache

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

Formale Sprachen. Script, Kapitel 4. Grammatiken

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

Grundbegriffe. Grammatiken

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen des Software Engineering

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

Grundlagen der Theoretischen Informatik

Das Halteproblem für Turingmaschinen

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs)

Einführung in die Theoretische Informatik

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Informatik III - WS07/08

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen der Informatik

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

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

Zusammenfassung. Beispiel. 1 Wir betrachten die folgende Signatur F = {,, +, 0, 1} sodass. 3 Wir betrachten die Identitäten E. 4 Dann gilt E 1 + x = 1

Kapitel IV Formale Sprachen und Grammatiken

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Automaten und formale Sprachen Klausurvorbereitung

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

Theoretische Informatik I

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

Informatik III. Outline

Lösungen zum Ergänzungsblatt 2

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1 Automatentheorie und Formale Sprachen

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

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

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

4 Formale Sprachen. 4.1 Einführung

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

1. Klausur Einführung in die Theoretische Informatik Seite 1 von 14

Automatentheorie und formale Sprachen

Dyck-Sprachen & Syntax-Analyse

Kontextfreie Grammatiken

Rekursiv aufzählbare Sprachen

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

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Informatik Mitschrift

Einführung in die Computerlinguistik Formale Grammatiken rechtslineare und kontextfreie Grammatiken Kellerautomaten

Grundlagen der Theoretischen Informatik

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

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Grundlagen der Theoretischen Informatik

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

DisMod-Repetitorium Tag 4

Ein Fragment von Pascal

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

Übungsaufgaben zu Formalen Sprachen und Automaten

Berechenbarkeit und Komplexität

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

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Berechenbarkeitstheorie 1. Vorlesung

Formale Methoden 1. Gerhard Jäger 28. November Uni Bielefeld, WS 2007/2008 1/15

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

Theoretische Informatik I (Grundzüge der Informatik I)

Theoretische Grundlagen der Informatik

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

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

Übungen zu Grundlagen der Theoretischen Informatik

Beweisidee: 1 Verwende den Keller zur Simulation der Grammatik. Leite ein Wort. 2 Problem: der Keller darf nicht beliebig verwendet werden, man kann

Grundlagen der Theoretischen Informatik

Grundlagen der theoretischen Informatik

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Grundlagen der Theoretischen Informatik

Theoretische Informatik

Theoretische Informatik I

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Grundbegriffe der Informatik Tutorium 2

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 12

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Grundlagen der Informatik II

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 2 Lösungen. Wiederholung: von einer Grammatik erzeugte Sprache

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Transkript:

Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1

Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen 3. Kellerautomaten und kontextfreie Sprachen 4. Turingmaschinen und rekursiv aufzählbare Sprachen 5. Berechenbarkeit, (Un-)Entscheidbarkeit 6. Komplexitätsklassen P und NP 2

Bis jetzt Alphabete, Wörter Operationen auf Wörtern Konkatenation, i-te Potenz, Reverse Sprache Operationen auf Sprachen Konkatenation, i-te Potenz, Reverse, Kleene-Hülle Reguläre Ausdrücke 3

Reguläre Ausdrücke als Suchmuster für grep Das Kommando grep (bzw. egrep) Sucht Wörter (Strings) in Dateien Benutzt reguläre Ausdrücke als Suchmuster Sehr schnell Volle Funktionalität mit egrep (Unix/Linux) 4

Reguläre Ausdrücke als Suchmuster für grep Syntax bei grep grep Regulärer Ausdruck ww ww w w w +w w* w w+ w + 5

Reguläre Ausdrücke als Suchmuster für grep Syntax bei grep grep Regulärer Ausdruck ww ww w w w +w w* w w+ w + Syntactic Sugar grep Regulärer Ausdruck [abc] a+b +c [a-d] a+b +c +d. beliebiges Zeichen aus Σ 6

Grammatik 7

Grammatik Beschreibt eine Sprache Menge von Regeln, mit deren Hilfe man Wörter ableiten kann 8

Grammatik: Intuition Beispiel: Grammatik für Hund-Katze-Sätze Satz Subjekt Prädikat Objekt Subjekt Artikel Attribut Substantiv Artikel ε Artikel der Artikel die Artikel das Attribut ε Attribut Adjektiv Attribut Adjektiv Attribut Adjektiv kleine Adjektiv bissige Adjektiv große Substantiv Hund Substantiv Katze Prädikat jagt Objekt Artikel Attribut Substantiv 9

Grammatik: Intuition Beispiel: Grammatik für Hund-Katze-Sätze durch diese Grammatik können z.b. die folgenden Sätze gebildet (abgeleitet) werden: der kleine bissige Hund jagt die große Katze die kleine Katze jagt der bissige Hund das große Katze jagt der kleine große bissige kleine Katze folgende Sätze werden nicht durch diese Grammatik gebildet die Katze der Hund Katze und Hund der Hund jagt die Katze die jagt Hund 10

Grammatik: Intuition Beispiel 2: Aussagenlogische Formel, Π = {P 1,...,P n } F F F P 1... F P n F ( F) F (F F) F (F F) F (F F) F (F F) 11

Grammatik Beschreibt eine Sprache Menge von Regeln, mit deren Hilfe man Wörter ableiten kann Die zu einer Grammatik gehörende Sprache besteht aus den ableitbaren terminalen Wörtern 12

Grammatik Definition (Grammatik) Eine Grammatik G über einem Alphabet Σ ist ein Tupel G = (V,T,R,S) Dabei ist V eine endliche Menge von Variablen T Σ eine endliche Menge von Terminalen mit V T = R eine endliche Menge von Regeln S V das Startsymbol 13

Grammatik Definition (Regel) Eine Regel ist ein Element (P,Q) ( (V T) V (V T) ) (V T) Bezeichnung: P: Prämisse Q: Conclusio 14

Grammatik Definition (Regel) Eine Regel ist ein Element (P,Q) ( (V T) V (V T) ) (V T) Das heißt: P und Q sind Wörter über (V T) P muss mindestens eine Variable enthalten Q ist beliebig Bezeichnung: P: Prämisse Q: Conclusio 15

Grammatik Schreibweise für Regeln Schreibweise für Regel (P, Q): P G Q bzw. P Q Abkürzung für mehrere Regeln mit derselben Prämisse: P Q 1 Q 2 Q 3 für P Q 1, P Q 2, P Q 3 16

Grammatik Schreibweise für Regeln Schreibweise für Regel (P, Q): P G Q bzw. P Q Abkürzung für mehrere Regeln mit derselben Prämisse: P Q 1 Q 2 Q 3 für P Q 1, P Q 2, P Q 3 Konvention (meistens) Variablen als Großbuchstaben Terminale als Kleinbuchstaben 17

Grammatik Beispiel S B B do begin B end B A A nop A A ε 18

Rechnung einer Grammatik Algorithmus Eingabe: Eine Grammatik 1. aktuellwort := S (Startsymbol) 2. Wähle eine Regel P Q, so dass P in aktuellwort vorkommt 3. Ersetze (ein) Vorkommen von P in aktuellwort durch Q 4. Falls aktuellwort noch Variablen enthält (nicht terminal), GOTO 2 19

Rechnung einer Grammatik Algorithmus Eingabe: Eine Grammatik 1. aktuellwort := S (Startsymbol) 2. Wähle eine Regel P Q, so dass P in aktuellwort vorkommt 3. Ersetze (ein) Vorkommen von P in aktuellwort durch Q 4. Falls aktuellwort noch Variablen enthält (nicht terminal), GOTO 2 Ausgabe: Das terminale Wort aktuellwort 20

Rechnung einer Grammatik Algorithmus Eingabe: Eine Grammatik 1. aktuellwort := S (Startsymbol) 2. Wähle eine Regel P Q, so dass P in aktuellwort vorkommt 3. Ersetze (ein) Vorkommen von P in aktuellwort durch Q 4. Falls aktuellwort noch Variablen enthält (nicht terminal), GOTO 2 Ausgabe: Das terminale Wort aktuellwort Beachte: Die Berechnung ist nicht deterministisch (Auswahl der Regel) kann mehr als ein Ergebnis liefern (oder auch keines) kann in Endlosschleifen geraten 21

Rechnung einer Grammatik Beispiel: Welche Wörter kann man ableiten? G a = ({S},{a},{R 1,R 2 },S) R 1 = S as R 2 = S ǫ 22

Rechnung einer Grammatik Beispiel: Welche Wörter kann man ableiten? G a = ({S},{a},{R 1,R 2 },S) R 1 = S as R 2 = S ǫ G ab = ({S},{a,b},{R 1,R 2 },S) R 1 = S asb R 2 = S ǫ 23

Rechnung einer Grammatik Beispiel: Welche Wörter kann man ableiten? G a = ({S},{a},{R 1,R 2 },S) R 1 = S as R 2 = S ǫ G ab = ({S},{a,b},{R 1,R 2 },S) R 1 = S asb R 2 = S ǫ Sei G gerade = ({S,S 0 },{0,1,2,3,4,5,6,7,8,9},{R 1,R 2 },S) R 1 = S 1S 2S 0 3S 4S 0 5S 6S 0 7S 8S 0 9S R 2 = S 0 S ǫ 24

Rechnung einer Grammatik Beispiel: Welche Wörter kann man ableiten? G a = ({S},{a},{R 1,R 2 },S) R 1 = S as R 2 = S ǫ G ab = ({S},{a,b},{R 1,R 2 },S) R 1 = S asb R 2 = S ǫ Sei G gerade = ({S,S 0 },{0,1,2,3,4,5,6,7,8,9},{R 1,R 2 },S) R 1 = S 1S 2S 0 3S 4S 0 5S 6S 0 7S 8S 0 9S R 2 = S 0 S ǫ 25

Beispiel Grammatik G ab = ({S},{a,b},{R 1,R 2 },S) R 1 = S asb R 2 = S ǫ Mögliche Ableitung: S R1 asb R1 aasbb R1 aaasbbb R2 aaabbb Also: a 3 b 3 L(G ab ) 26

Rechnung einer Grammatik Definition (Ableitung, Rechnung) Gegeben: Grammatik G = (V,T,R,S) Wörter w,w aus (V T) 27

Rechnung einer Grammatik Definition (Ableitung, Rechnung) Gegeben: Grammatik G = (V,T,R,S) Wörter w,w aus (V T) Es gilt w = G w ( w geht über in w ) falls E u,v (V T) E P Q R ( w = upv und w = uqv ) 28

Rechnung einer Grammatik Schreibweise für Ableitung w = G w falls es Wörter w 0,...,w n (V T) (n 0) gibt mit w = w 0 w m = w w i = G w i+1 für 0 i < n 29

Rechnung einer Grammatik Schreibweise für Ableitung w = G w falls es Wörter w 0,...,w n (V T) (n 0) gibt mit w = w 0 w m = w w i = G w i+1 für 0 i < n Merke: w = G w gilt stets (n = 0) 30

Rechnung einer Grammatik Schreibweise für Ableitung w = G w falls es Wörter w 0,...,w n (V T) (n 0) gibt mit w = w 0 w m = w w i = G w i+1 für 0 i < n Merke: w = G w gilt stets (n = 0) Die Folge w 0,...,w n heißt Ableitung oder Rechnung von w 0 nach w n in G der Länge n 31

Vorsicht: Indeterminismus Beispiel Wir betrachten die Grammatik G = ({S,B},{a,b,c},{R 0,R 1,R 2,R 3 },S) R 0 = S abbc R 1 = B b R 2 = B ba R 3 = BB bba 32

Vorsicht: Indeterminismus Beispiel Wir betrachten die Grammatik G = ({S,B},{a,b,c},{R 0,R 1,R 2,R 3 },S) R 0 = S abbc R 1 = B b R 2 = B ba R 3 = BB bba Drei Möglichkeiten, das Wort abbac zu erzeugen: S = R0 abbc = R1 abbc = R2 abbac S = R0 abbc = R2 abbac = R1 abbac S = R0 abbc = R3 abbac = R1 abbac 33

Vorsicht: Indeterminismus Warum ist das ein Feature und kein Bug? Erlaubt einfachere Definition von Grammatiken Für manche Sprachen gibt es keine eindeutige Grammatiken Eine Grammatik beschreibt die Struktur der Wörter. Ein Wort kann mehrere mögliche Strukturen haben. Für natürliche Sprachen braucht man das unbedingt: Manche Sätze sind mehrdeutig (in ihrer Grammatik), also müssen auch die Grammatiken mehrdeutig sein! 34

Vorsicht: Indeterminismus Beispiel: Mehrdeutige Grammatik natürlichsprachlicher Sätze Time flies like an arrow. Fruit flies like a banana. 35

Vorsicht: Indeterminismus Beispiel: Mehrdeutige Grammatik natürlichsprachlicher Sätze Time flies like an arrow. Fruit flies like a banana. Beide Sätze haben zwei mögliche grammatische Strukturen. Erst unser semantisches Verständnis wählt eine aus. 36

Erzeugte Sprache, Äquivalenz Definition (Erzeugte Sprache) Gegeben: Eine Grammatik G Die von G erzeugte Sprache L(G) ist die Menge aller terminalen Wörter, die durch G vom Startsymbol S aus erzeugt werden können: L(G) := {w T S = G w} 37

Erzeugte Sprache, Äquivalenz Definition (Erzeugte Sprache) Gegeben: Eine Grammatik G Die von G erzeugte Sprache L(G) ist die Menge aller terminalen Wörter, die durch G vom Startsymbol S aus erzeugt werden können: L(G) := {w T S = G w} Definition (Äquivalenz) Zwei Grammatiken G 1,G 2 heißen äquivalent gdw L(G 1 ) = L(G 2 ) 38

Beispiel Grammatik G ab = ({S},{a,b},{R 1,R 2 },S) R 1 = S asb R 2 = S ǫ Mögliche Ableitung: S R1 asb R1 aasbb R1 aaasbbb R2 aaabbb Also: a 3 b 3 L(G ab ) L(G ab ) = {a n b n n N} 39

Beispiel Grammatik G ab = ({S},{a,b},{R 1,R 2 },S) R 1 = S asb R 2 = S ǫ L(G ab ) = {a n b n n N} Beweis: Dass G ab tatsächlich genau diese Sprache erzeugt, zeigen wir allgemein, indem wir alle möglichen Ableitungen von G ab betrachten. Zu zeigen: Jedes terminale Wort, das von G ab erzeugt wird, hat die Form a n b n. Induktion über die Länge der Ableitung Zu zeigen: Für alle n kann a n b n von G ab erzeugt werden. 40

Beweis : zu zeigen: Jedes terminale Wort, das von G ab erzeugt wird, hat die Form a n b n. Wir zeigen für alle w (V T) : Falls S = G ab w, dann gilt entweder w = a n Sb n oder w = a n b n für ein n N. Dazu verwenden wir eine Induktion über die Länge einer Ableitung von S nach w. 41

Beweis : zu zeigen: Jedes terminale Wort, das von G ab erzeugt wird, hat die Form a n b n. Wir zeigen für alle w (V T) : Falls S = G ab w, dann gilt entweder w = a n Sb n oder w = a n b n für ein n N. Dazu verwenden wir eine Induktion über die Länge einer Ableitung von S nach w. Induktionsanfang: w = S = a 0 Sb 0 42

Beweis : zu zeigen: Jedes terminale Wort, das von G ab erzeugt wird, hat die Form a n b n. Wir zeigen für alle w (V T) : Falls S = G ab w, dann gilt entweder w = a n Sb n oder w = a n b n für ein n N. Dazu verwenden wir eine Induktion über die Länge einer Ableitung von S nach w. Induktionsanfang: w = S = a 0 Sb 0 Induktionsschritt: Es gelte S = G ab w = Gab w, und für w gelte nach der Induktionsvoraussetzung bereits w = a n b n oder w = a n Sb n. Außerdem sei w = Gab w eine Ableitung in einem Schritt. Nun ist zu zeigen: w = a m b m oder w = a m Sb m für irgendein m. 43

Beweis Fall 1: w = a n b n. Dann konnte keine Regel angewandt werden, da w schon terminal ist, also tritt dieser Fall nie auf. Fall 2: w = a n Sb n. Dann wurde von w nach w entweder Regel R 1 oder R 2 angewandt. Falls R 1 angewandt wurde, dann gilt w = a n Sb n = R1 a n asbb n = a n+1 Sb n+1 = w. Falls R 2 angewandt wurde, dann gilt w = a n Sb n = R2 a n εb n = w. Dies Wort ist terminal und hat die geforderte Form a n b n. 44

Beweis Forts. : zu zeigen: Für alle n kann a n b n von G ab erzeugt werden: S = G ab a n b n A n N. Um a n b n zu erzeugen, wende man auf S n-mal die Regel R 1 und dann einmal die Regel R 2 an. 45

Bis jetzt Reguläre Ausdrücke. Grammatik. Ableitung. die von einer Grammatik erzeugte Sprache. 46