3.0 VU Formale Modellierung Gernot Salzer AB Theoretische Informatik und Logik Institut für Computersprachen 28.10.2014 1
Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 2
Beispiel: Flussüberquerung als Automat m m h k G MKH k m g MGH K g h m MKGH m KG MH h g KGH M g m k M KGH k h MH KG m MKGH K MGH m MKH G Mögliche Lösungen: {mhkmghm, mmmhhhgmkhm,..., mhkmgkmgkmghm,... } Sprache des Automaten 3
Beispiel: Reelle Numerale 0..9 0..9 0..9. E ε 0..9 1 2 3 4 5 6 - + 0..9 Zustandsbeschriftungen 1 6 dienen nur der Bezugnahme, irrelevant für das Verhalten des Automaten Kanten sind mit Symbolen beschriftet, die gelesen/geschrieben werden. Anfangszustand (1) ist durch einen Pfeil aus dem Nichts markiert. Endzustände (3, 6) sind durch einen Doppelkreis markiert. Zwei Sichtweisen: Akzeptor: Der Automat liest Symbole und akzeptiert alle Zeichenketten, die vom Anfangs- zu einem der Endzustände führen. Generator: Der Automat schreibt Symbole und generiert jene Zeichenketten, die vom Anfangs- zu einem der Endzustände führen. 7
Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 8
Endliche Automaten modellieren Systeme bzw. Abläufe, die nur eine begrenzte, feste Zahl an unterscheidbaren Zuständen besitzen. (Klassischer) Endlicher Automat: Anfangs- und Endzustände nur Eingaben (bzw. nur Ausgaben) verarbeitet endliche Symbolfolgen Unterarten: deterministisch, nichtdeterministisch mit/ohne ε-übergängen Transducer: wie endlicher Automat, aber mit Ein- und Ausgaben. Unterarten: Mealy-Automaten, Moore-Automaten Büchi-Automat: wie endlicher Automat, verarbeitet aber unendliche Symbolfolgen Spezifikation von Automaten: Graphisch: Zustände sind Knoten, Übergänge sind Kanten, Ein- und Ausgaben sind Beschriftungen von Knoten und Kanten. Tabellarisch: Zu jedem Zustand und Eingabesymbol gibt es einen Eintrag mit zugehöriger Ausgabe und den Folgezuständen. 9
Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 10
Formale Sprachen Σ Alphabet, d.h., endliche, nicht-leere Menge atomarer Symbole w Wort über Σ, (endliche) Folge von Zeichen aus dem Alphabet Σ ε Leerwort Σ + Σ Menge aller nicht-leeren endlichen Wörter über Σ Menge aller endlichen Wörter über Σ (inklusive Leerwort) w 1 w 2 = w 1 w 2 Verkettung der Wörter w 1, w 2 Σ L Σ formale Sprache über Σ 2 Σ Menge aller Sprachen über Σ Σ,, ε bildet ein Monoid. Σ = {0, 1} Σ = {ε, 0, 1, 00, 01, 10, 11, 000, 001,... } 10 ε 11101 000 = 1011101000 (Klammerung irrelevant, Assoziativität!) ε ε ε = ε 11
Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 4.7.1. Endlicher Transducer 4.7.2. Mealy-Automaten 4.7.3. Moore-Automaten 12
Endliche Automaten Bezeichnungen Q q 0 I F endliche Menge von Zuständen Anfangszustand Menge von Anfangszuständen Menge von Endzuständen Σ Eingabealphabet Γ Ausgabealphabet δ δ γ γ Übergangsfunktion/-relation erweiterte Übergangsfunktion/-relation Ausgabefunktion erweiterte Ausgabefunktion A Automat L(A) die von A akzeptierte Sprache [A] die von A berechnete Übersetzungsfunktion/-relation 13
Übergangsfunktionen und -relationen δ : Q Σ Q δ Q Σ Q δ : Q Σ 2 Q det. endlicher Automat (DEA) nichtdet. endl. Aut. (NEA) ohne ε-ü. δ Q (Σ {ε}) Q nichtdet. endl. Aut. (NEA) mit ε-ü. δ : Q (Σ {ε}) 2 Q δ Q (Σ {ε}) (Γ {ε}) Q Transducer (indet. mit ε-ü.) δ : Q (Σ {ε}) 2 (Γ {ε}) Q δ : Q Σ Γ Q Mealy-Automat δ : Q Σ Q γ : Q Σ Γ δ : Q Σ Q γ : Q Γ Moore-Automat ε-übergänge, Relation oder Potenzmenge = nichtdeterm. Automat 14
Akzeptierte Worte bzw. Wortpaare (Nicht-)Deterministischer Automat: Alle Worte, mit denen man vom Anfangszustand aus einen der Endzustände erreicht. Transducer: Alle Paare (u, v) von Ein-/Ausgabewörtern, bei denen man mit u vom Anfangszustand (von einem der Anfangszustände) aus in einen Endzustand gelangt und dabei v ausgibt. Mealy: Pro Übergang wird genau ein Symbol gelesen und eines geschrieben. Die Ausgabe ist an den Übergang gebunden. Moore: Pro Übergang wird genau ein Symbol gelesen und eines geschrieben. Die Ausgabe ist an den Zielzustand gebunden. 15
Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 16
Beispiel: Suche nach Max und Ana a,m,n,x,z 1 m a 2 a 4 x a 6 a,m,n,x,z n 3 5 n,x,z 1 a x,z n,x,z m m m 12 13 m z a 134 a m n 15 n x a x,z n,x,z 16 a 136 m n,x,z m 126 m n,x,z m n 156 m a x,z n 1346 a n,x,z a a a 17
Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 4.8. Büchi-Automaten 5. Reguläre Sprachen 6. Kontextfreie Grammatiken 18
Büchi-Automaten Deterministischer Büchi-Automat... wird beschrieben durch ein 5-Tupel A = Q, Σ, δ, q 0, F, wobei Q, Σ, δ, q 0, F wie bei DEAs definiert sind. Σ ω... Menge aller unendlichen Wörter (= ω-wörter) über Σ Akzeptanz von Wörtern Ein deterministischer Büchi-Automat A akzeptiert ein Wort s 1 s 2 s 3 Σ ω, wenn es Zustände q 0, q 1, q 2, q 3, Q gibt, sodass q 0 Q der Startzustand ist, δ(q i 1, s i ) = q i für alle i N gilt und es unendlich viele i gibt, sodass q i ein Endzustand ist (q i F ). Akzeptierte/Generierte Sprache L(A) = { w Σ ω w wird von A akzeptiert } 19
Faire Verkehrsampel a b c h d g f e Der Automat akzeptiert genau jene Wörter aus {a,..., h} ω, bei denen es immer wieder grün wird. 20
Nichtdeterministischer Büchi-Automat... wird beschrieben durch ein 5-Tupel A = Q, Σ, δ, I, F, wobei Q, Σ, F... siehe DEA I Q... Anfangszustände δ Q Σ Q... Übergangsrelation Akzeptanz von Wörtern Ein nichtdeterministischer Büchi-Automat A akzeptiert ein Wort s 1 s 2 s 3 Σ ω, wenn es Zustände q 0, q 1, q 2, q 3, Q gibt, sodass q 0 Q ein Startzustand ist (q 0 I), (q i 1, s i, q i ) δ für alle i N gilt und es unendlich viele i gibt, sodass q i ein Endzustand ist (q i F ). Akzeptierte/Generierte Sprache L(A) = { w Σ ω w wird von A akzeptiert } 21
Nur endlich viele 1er Gesucht: Ein Büchi-Automat, der genau jene ω-wörter über {0, 1} akzeptiert, die nur eine endliche Anzahl an 1ern enthalten. 0,1 0 a 0 b Kein deterministischer Büchi-Automaten akzeptiert diese Sprache. = Nichtdeterministische Büchi-Automaten sind ausdrucksstärker als deterministische! 22
Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 23
Operationen auf formalen Sprachen Σ Alphabet, d.h., endliche, nicht-leere Menge atomarer Symbole w Wort über Σ, (endliche) Folge von Zeichen aus dem Alphabet Σ ε Leerwort Σ Menge aller endlichen Wörter über Σ (inklusive Leerwort) w w = ww Verkettung der Wörter w, w Σ Seien L, L Σ zwei Sprachen. L L = { w w L oder w L } L L = { w w w L, w L } L 0 = {ε} L n+1 = L L n (n 0) Vereinigung Verkettung Potenzen L + = L n n 1 L = L n = L 0 L + = {ε} L + Kleene-Stern n 0 24
Verkettung {a, b} {b, c, d} = {ab, ac, ad, bb, bc, bd} {b, c, d} {a, b} = {ba, bb, ca, cb, da, db} ({a, b} {1, 2}) {#, $} = {a1#, a1$, a2#, a2$, b1#, b1$, b2#, b2$} = {a, b} ({1, 2} {#, $}) {a, b} {ε} = {a ε, b ε} = {a, b} = {ε a, ε b} = {ε} {a, b} {a, b} {} = {} {a, b} = {} {ε} {ε} = {ε} {} {} = {ε} {} = {} {ε} = {} Beobachtungen: Sprachverkettung ist nicht kommutativ. Sprachverkettung ist assoziativ. {ε} ist neutrales Element bzgl. Sprachverkettung. {} ist Nullelement bzgl. Sprachverkettung. 25
Potenzen von {a, 42} L = {a, 42} L 0 = {ε} L 1 = L L 0 = L {ε} = L = {a, 42} L 2 = L L 1 = L L = {aa, a42, 42a, 4242} L 3 = L L 2 = {aaa, aa42, a42a, a4242, 42aa, 42a42, 4242a, 424242}. L + = n 1 Ln = L 1 L 2 L 3 = {a, 42, aa, a42, 42a, 4242, aaa, aa42, a42a, a4242, 42aa,... } L = n 0 Ln = L 0 L 1 L 2 L 3 = {ε, a, 42, aa, a42, 42a, 4242, aaa, aa42, a42a, a4242, 42aa,... } Potenzen eines Alphabets Σ Σ 0 = {ε} Σ n Σ + = n 1 Σn Σ = n 0 Σn Σ 1 = Σ alle Σ-Wörter der Länge n (d.h., mit n Symbolen) alle Σ-Wörter ohne Leerwort alle Σ-Wörter mit Leerwort 26
2 Σ,,, {}, {ε} bildet einen idempotenten Halbring Das heißt, es gelten folgende Gleichungen. 2 Σ,, {}... idemp.komm.monoid (A B) C = A (B C) {} A = A {} = A A B = B A A A = A 2 Σ,, {ε}... Monoid (A B) C = A (B C) {ε} A = A {ε} = A Verkettung distribuiert über Vereinigung. A (B C) = (A B) (A C) (B C) A = (B A) (C A) {} ist Nullelement bzgl. Verkettung. {} A = A {} = {} Weitere Identitäten für + und : (A ) = A (A {ε}) = A A A = A + A + {ε} = A 27
Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 28
Reguläre Sprachen Alle Sprachen, die aus einem Alphabet mit Hilfe von Vereinigung, Verkettung und Stern gebildet werden können. Anwendungen: Betriebssytem-Shells: Dos ( Wildcards ), Unix-Shells (wie sh, csh, ash, bash, zsh),... Unix Kommandozeilenprogramme: grep, awk, ed, sed,... Editoren: vi, emacs,... Compilerbau: Tokens bilden reguläre Sprache, die durch sog. Scanner (Lexer) wie lex oder flex verarbeitet werden. Programmiersprachen: Perl, Tcl, Php, Python, Ruby, R, Java, JavaScript,.Net-Sprachen,... Websprachen: Xml Schema, XQuery, XPath, Dtds,... Datenbanken: MySQL, Oracle, PostgreSQL,...... 29
Regulären Sprachen über einem Alphabet Die Menge der regulären Sprachen über Σ, L reg (Σ), ist die kleinste Menge, sodass gilt: {}, {ε} und {s} sind reguläre Sprachen (für alle s Σ). Wenn L und L reguläre Sprachen sind, dann auch L L, L L und L. Reellen Numerale: reguläre Sprache über Σ = {0,..., 9,., E, +, -} real = digit digit {.} digit ({ε} scale) scale = {E} {+, -, ε} digit digit digit = {0,..., 9} = {0} {9} Wichtig: Unterscheide Symbole des Alphabets von Meta-Symbolen! 0,..., 9,., E, +, -... Symbole des Alphabets ε, real, scale, digit... Meta-Symbole, Abkürzungen 30
Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 31
Reguläre Ausdrücke Ausdrücke wie digit digit und digit + sind ununterscheidbar: Beides sind semantische Beschreibungen der Menge aller Ziffernfolgen. Um Aussagen über ihre Form treffen zu können, benötigen wir eine formale Sprache. Reguläre Ausdrücke (algebraische Notation) Die regulären Ausdrücke über Σ sind die kleinste Menge, für die gilt:, ε und s sind reguläre Ausdrücke (für alle Symbole s Σ). Sind r und r reguläre Ausdrücke, dann auch (r + r ), (rr ) und r. Vereinfachte Klammerung: + bindet am schwächsten, am stärksten. Keine Klammern bei gleichartigen Operatoren (wegen Assoziativität). Die Sprache L(r) zu einem regulären Ausdruck r ist definiert durch: L( ) = {} L(ε) = {ε} L(s) = {s} für s Σ L( (r + r ) ) = L(r) L(r ) L( (rr ) ) = L(r) L(r ) L(r ) = (L(r)) 32
Regulärer Ausdruck für die reellen Numerale R = DD.D (ε + S) S = E(+ + - + ε)dd D = 0 + 1 + + 9 (R, S und D sind Abkürzungen für die jeweiligen regulären Ausdrücke.) Die zugehörigen Sprachen: L(D) = L(0 + 1 + + 9) = L(0) L(1) L(9) = {0} {1} {9} = digits L(S) = L(E(+ + - + ε)dd ) = L(E) L(+ + - + ε) L(D) L(D ) = {E} (L(+) L(-) L(ε)) digits L(D) = {E} ({+} {-} {ε}) digits digits = scale L(R) = = real 33
Zwei reguläre Ausdrücke r und r heißen äquivalent, geschrieben r = r, wenn L(r) = L(r ) gilt. ((a + b) + ε) = (a + b) L(((a + b) + ε) ) = = ({a, b} {ε}) = ({a, b} ) da ε L für alle L = ({a, b} ) 0 ({a, b} ) 1 ({a, b} ) 2 = {a, b} ({a, b} ) 0 ({a, b} ) 2 = {a, b} da L alle Wörter über L enthält = = L((a + b) ) 34
Reguläre Ausdrücke in Ebnf-Notation Ebnf... Erweiterte Backus-Naur-Form (Formalismus zur Beschreibung der Syntax von Programmiersprachen, die reguläre Ausdrücke zulässt) AB A B Aufeinanderfolge A B A B Alternativen [A] {ε} A Option {A} A Wiederholung (A) (A) Gruppierung "s" {s} Symbol Reelle Numerale in Ebnf-Notation real = digit { digit } "." { digit } [ scale ] scale = "E" [ "+" "-" ] digit { digit } digit = "0" "1" "2" "9" 35
Reguläre Ausdrücke als Syntaxdiagramme Syntaxdiagramme... graphische Form der Ebnf A A Abkürzung s {s} Symbol X X + Wiederholung 1 X X Wiederholung 0 X Y X Y Aufeinanderfolge X Y X Y Alternativen X {ε} X Option 36
Reelle Numerale als Syntaxdiagramm real = scale = digit = digit digit. scale + E digit - 0 1 2 3 4 5 6 7 8 9 37
Reguläre Ausdrücke im informatischen Alltag Unix := 30 definitions of regular expressions living under one roof grep -E -e "regexp" file (Donald E. Knuth) liefert alle Zeilen der Datei file, die eine Zeichenkette enthalten, die dem regulären Ausdruck regexp (in Posix Ere Syntax) entspricht. Verschiedene Standards : Posix Basic Regular Expressions Posix Extended Regular Expressions Perl Regular Expressions... 38
Posix Extended Regular Expressions (Ere) regexp trifft zu auf \s Zeichen s s s, falls kein Sonderzeichen. alle Zeichen ˆ Zeilenanfang $ Zeilenende [s 1 s n ] ein Zeichen aus {s 1,..., s n } [ˆs 1 s n ] alle Zeichen außer s 1,..., s n (r) r Reelle Numerale als Ere digit = {0,..., 9} scale = {E} {+, -, ε} digit digit real = digit digit {.} digit ({ε} scale) regexp trifft zu auf rr r gefolgt von r r r r oder r r* 0 Mal r r+ 1 Mal r r? 1 Mal r r{i} i Mal r r{i,} i Mal r r{i,j} i bis j Mal r [0-9] E[+-]?[0-9]+ ^[0-9]+\.[0-9]*(E[+-]?[0-9]+)?$ [0-9]... Kurzform von [0123456789]; analog [a-za-z] für Buchstaben 39
Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 40
Eigenschaften regulärer Sprachen Reguläre Sprachen sind abgeschlossen gegenüber Vereinigung, Verkettung und Stern (warum?) Durchschnitt, Komplement, Differenz, Homomorphismen, Quotientenbildung,... Entscheidbarkeit eines Problems: Es gibt ein Verfahren (einen Algorithmus), der für jede Eingabe die richtige Antwort ja/nein liefert. Nicht entscheidbar: Halteproblem Ihrer Lieblingsprogrammiersprache Gegeben ein Programm mit einer Eingabe, wird es anhalten? Folgende Probleme regulärer Sprachen sind entscheidbar: Gegeben ein Wort w und einen regulären Ausdruck r, gilt w L(r)? (Wortproblem) Gegeben zwei reguläre Ausdrücke r und r, gilt L(r) = L(r )? (Äquivalenzproblem) Gegeben einen regulären Ausdruck r, ist L(r) leer/endlich/unendlich? 41
Ausdruckskraft regulärer Sprachen Die regulären Sprachen sind genau jene, die von endlichen Automaten akeptiert werden, d.h.: Zu jedem regulären Ausdruck r gibt es einen endlichen Automaten A, sodass L(A) = L(r) gilt. Zu jedem endlichen Automaten A gibt es einen regulären Ausdruck r, sodass L(r) = L(A) gilt. Nicht regulär sind Sprachen, deren Analyse ein unbegrenztes Gedächtnis erfordert: Klammerausdrücke: {(), (()), ()(), ((())), (())(), ()()(),... } { a n b n n 0 } = {ε, ab, aabb, aaabbb,... } { a n b n c n n 0 } = {ε, abc, aabbcc, aaabbbccc,... } Palindrome: Worte, die identisch mit ihrem Spiegelbild sind. {otto, anna, reliefpfeiler, o genie der herr ehre dein ego,... } Doppelworte: { ww w Σ } (falls Σ > 1) 42
Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 43
Vom regulären Ausdruck zum Automaten Automat für : i f Automat für s Σ {ε}: s i f Automat für r 1 r 2 : Automat für r 1 + r 2 : i Automat für r 1 ε i 1 f 1 Automat für r 2 ε i 2 f 2 Automat für r 1 Automat für r 2 ε ε ε i i 1 f 1 i 2 f 2 ε ε f f Automat für r 1 : ε i ε Automat für r1 i 1 f 1 ε f ε 44
Automat für Binärnumerale ohne führende Null Regulärer Ausdruck: 1(0 + 1) ε ε 1 ε ε ε 0 ε ε ε ε 1 ε ε 0,1 Minimaler deterministischer Automat: 1 Manuelle Konstruktion von Automaten: 1 Konstruiere die Automaten zu einfachen Teilsprachen durch Hinschauen. 2 Verwende die allgemeine Konstruktion mit ε-übergängen für undurchsichtige Situationen. 45
Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 46
Vom Automaten zum regulären Ausdruck R... Menge der regulären Ausdrücke über Σ Verallgemeinerter endlicher Automat... wird beschrieben durch ein 5-Tupel A = Q, Σ, δ, i, f, wobei Q... endliche Zustandsmenge Σ... Eingabealphabet δ : (Q {f }) (Q {i}) R... Übergangsfunktion i Q... Anfangszustand f Q, f i... Endzustand Unterschiede zu normalen Automaten: keine Übergänge in den Anfangszustand; nur ein Endzustand, der nicht Anfangszustand ist; keine Übergänge weg vom Endzustand; nur ein Übergang zwischen je zwei Zuständen; Übergänge beschriftet mit regulären Ausdrücken. 47
Umwandlung eines endlichen Automaten in einen verallgemeinerten Übergänge in den Anfangszustand oder Anfangszustand ist Endzustand: = ε Mehrere Endzustände: = Übergänge weg vom Endzustand: = ε ε ε ε Mehrere Übergänge zwischen zwei Zuständen: s 1 s 2 = s 1 + s 2 48
Vom verallgemeinerten Automaten zum regulären Ausdruck Gegeben: Verallgemeinerter Automat A = Q, Σ, δ, i, f Für jeden Zustand q Q {i, f } führe folgende Schritte durch: 1 Füge zwischen allen Nachbarn p, p von q neue Übergänge hinzu: y y p x q z p = p x q z p (x, y und z bezeichnen reguläre Ausdrücke.) xy z 2 Entferne q und alle Kanten von und nach q aus dem Automaten. r Restautomat: i f Ergebnis: r ist ein regulärer Ausdruck mit L(r) = L(A). 49
Anmerkungen: Falls p und p derselbe Knoten sind, erhält man: y xy z y x x p q = p q z z Falls die Schleife mit dem Ausdruck y nicht existiert, entfällt y. Falls der Übergang p p bereits existiert, wird xy z addiert. 50
A 1 0 0,1 a 0 b 1 c 1 ε i a b c f 0 0 + 1 1 ε ε 51
A 1 0 0,1 a 0 b 1 c 1 1 ε 00 0 0 + 1 i a b c f 0 1 + 01 ε 0 ε 51
A 1 0 0,1 a 0 b 1 c 1 00 + (1 + 01)(0 + 1) 0 + 1 i b c f 1 + 01 ε 0 + 1(0 + 1) ε + 1 + 01 1 51
A 1 0 0,1 a 0 b 1 c 00 + (1 + 01)(0 + 1) i b f 0 + 1(0 + 1) ε + 1 + 01 1 + (0 + 1(0 + 1))(00 + (1 + 01)(0 + 1)) (ε + 1 + 01) 51
A 1 0 0,1 a 0 b 1 c i f 1 + (0 + 1(0 + 1))(00 + (1 + 01)(0 + 1)) (ε + 1 + 01) r = 1 + (0 + 10 + 11)(00 + 10 + 11 + 010 + 011) (ε + 1 + 01) Es gilt: L(r) = L(A). 51
Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 6. Kontextfreie Grammatiken 6.1. Definition 6.2. Beispiele 52
Grenzen regulärer Sprachen Was reguläre Ausdrücke und endliche Automaten beschreiben können: lexikale Elemente in Programmiersprachen: Identifier, Numerale,... Morphologie von Worten in natürlichen Sprachen: korrekte Fall-/Zahl-/Zeitendungen,... Systeme, die nur ein endliches Gedächtnis besitzen Was sie nicht beschreiben können: geklammerte Ausdrücke in Programmiersprachen geschachtelte Programmstrukturen wie if... while... if... endif... endwhile... endif Schachtelung von Haupt- und Nebensätzen in natürlichen Sprachen Systeme mit einem (potentiell) unendlichen Speicher Wohlgeklammerte Ausdrücke sind nicht regulär {(), (()), ()(), ((())), (())(), ()()(),... } { a n b n n 0 } ist nicht regulär {ε, ab, aabb, aaabbb, aaaabbbb, aaaaabbbbb,... } 53
Kontextfreie Grammatiken Menge von Ersetzungsregeln 2 Arten von Symbolen: Terminale, Nonterminale Ausgehend vom Start-Nonterminal werden Nonterminale solange ersetzt, bis nur noch Terminale bleiben. Satz HwP ZwP HwP Art Hw ZwP Hzw HwP Zw Art der den Hw Hund Mond Hzw wird Zw anbellen Satz p HwP ZwP p Art Hw Hzw HwP Zw p der Hund wird Art Hw anbellen p der Hund wird den Mond anbellen Generative Grammatiken gehen zurück auf Noam Chomsky (Linguist, Philosoph, Aktivist; *1928). 54
Kontextfreie Grammatik... wird beschrieben durch ein 4-Tupel G = V, T, P, S, wobei V... Menge der Nonterminalsymbole (Variablen) T... Menge der Terminalsymbole (V T = {}) P V (V T )... Produktionen S V... Startsymbol Schreibweise: A w statt (A, w) P A w 1 w n statt A w 1,..., A w n Ableitbarkeit... in einem Schritt: x A y x w y, falls A w P und x, y (V T ).... in mehreren Schritten: u v, falls u = v, oder u u und u v für ein Wort u (V T ). 55
Von Grammatik G generierte Sprache L(G) = { w T S w } Grammatiken G 1 und G 2 heißen äquivalent, wenn L(G 1 ) = L(G 2 ) gilt. G = {S}, {a, b}, {S ε a S b}, S S aabb, weil S a S b aa S bb aa ε bb = aabb L(G) = { a n b n n 0 } = {ε, ab aabb aaabbb,... } Kontextfreie Sprachen Eine Sprache heißt kontextfrei, wenn es eine kontextfreie Grammatik gibt, die sie generiert. 56
Verschiedene Ableitbarkeitsbegriffe Linksableitbarkeit: x A y L x w y falls A w P und x T (In jedem Schritt wird die linkeste Variable ersetzt.) Rechtsableitbarkeit: x A y R x w y falls A w P und y T (In jedem Schritt wird die rechteste Variable ersetzt.) Parallelableitbarkeit: x 0 A 1 x 1 A n x n P x 0 w 1 x 1 w n x n falls A 1 w 1,..., A n w n P und x 0,..., x n T (In jedem Schritt werden alle Variablen ersetzt.) L, R und P sind eingeschränkte Ableitungsrelationen: Manche Wörter w (V T ) sind mit herleitbar (S w), aber nicht mit diesen Relationen. Sie können aber jedes Wort der Sprache ableiten. Für alle w T gilt: S w gdw. S L w gdw. S R w gdw. S P w L(G) = { w T S w } = { w T S L w } = { w T S R w } = { w T S P w } 57
Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 6. Kontextfreie Grammatiken 6.1. Definition 6.2. Beispiele 58
Syntax aussagenlogischer Formeln G = {Fm, Op, Var}, T, P, Fm, wobei T = {,,, (, ),,,,,,,, } V P = { Fm Var Fm ( Fm Op Fm ), Op, Var A B C } ((A B) (A B)) ist eine aussagenlogische Formel, weil: Fm L ( Fm Op Fm ) L ( ( Fm Op Fm ) Op Fm ) L ( ( Var Op Fm ) Op Fm ) L ( ( A Op Fm ) Op Fm ) L ( ( A Fm ) Op Fm ) L ( ( A Var ) Op Fm ) L ( ( A B ) Op Fm ) L ( ( A B ) Fm ) L ( ( A B ) ( Fm Op Fm ) ) L ( ( A B ) ( Var Op Fm ) ) L ( ( A B ) ( A Op Fm ) ) L ( ( A B ) ( A Fm ) ) L ( ( A B ) ( A Var ) ) L ( ( A B ) ( A B ) ) 59
Syntax aussagenlogischer Formeln G = {Fm, Op, Var}, T, P, Fm, wobei T = {,,, (, ),,,,,,,, } V P = { Fm Var Fm ( Fm Op Fm ), Op, Var A B C } ((A B) (A B)) ist eine aussagenlogische Formel, weil: Fm P ( Fm Op Fm ) P ( ( Fm Op Fm ) ( Fm Op Fm ) ) P ( ( Var Var ) ( Var Var ) ) P ( ( A B ) ( A B ) ) 60
Reelle Numerale G = V, T, P, Real, wobei V = {Real, Scale, Sign, Digits, Digit} T = {0,..., 9,., E, +, -} und P folgende Produktionen sind: Real Digit Digits. Digits Scale Scale ε E Sign Digit Digits Sign ε + - Digits ε Digit Digits Digit 0 9 Optionalität: A ε B (A steht für optionales B) Wiederholung: A ε B A (A steht für wiederholtes B, auch 0 Mal) A B B A (A steht für wiederholtes B, mind. 1 Mal) 61
Wohlgeformte Klammerausdrücke WKA ist die kleinste Menge, sodass ε WKA (w) WKA, wenn w WKA w 1 w 2 WKA, wenn w 1, w 2 WKA G = {W }, {(, )}, {W ε ( W ) W W }, W Beispiel einer Ableitung: W P W W P (W )(W ) P ()(W W ) P ()((W )(W )) P ()(()()) L(G) = {ε, (), (()), ()(), ((())), (())(), ()(()), ()()(),... } = WKA 62