Zusammenfassung Definition Eine Grammatik G ist ein Quadrupel G = (V , Σ, R, S), wobei Einführung in die Theoretische Informatik Woche 8 1 V eine endliche Menge von Variablen (oder Nichtterminale) 2 Σ ein Alphabet, die Terminale, V ∩ Σ = ∅ 3 R eine endliche Menge von Regeln 4 S ∈ V das Startsymbol von G Definition Eine formale Sprache L heißt Harald Zankl • regulär (vom Typ 3) wenn ∃ rechtslineare Grammatik G mit L = L(G ) Institut für Informatik @ UIBK Wintersemester 2014/2015 • kontextfrei (vom Typ 2) wenn ∃ kontextfreie Grammatik G mit L = L(G ) • kontextsensitiv (vom Typ 1) wenn ∃ kontextsensitive Grammatik G mit L = L(G ) • rekursiv aufzählbar (vom Typ 0) wenn ∃ Grammatik G mit L = L(G ) HZ (IFI) ETI - Woche 8 123/217 Überblick Zusammenfassung Chomsky-Hierarchie Inhalte der Lehrveranstaltung Einführung in die Logik L Syntax & Semantik der Aussagenlogik, Formales Beweisen, Konjunktive und Disjunktive Normalformen L0 Einführung in die Algebra L1 L2 {(E , s, t) | E 6` s ≈ t} Boolesche Algebra, Universelle Algebra, Logische Schaltkreise Einführung in die Theorie der Formalen Sprachen {(E , s, t) | E ` s ≈ t} Grammatiken und Formale Sprachen, Reguläre Sprachen, Kontextfreie Sprachen L(G3 ) = {an bn cn | n > 1} L3 Einführung in die Berechenbarkeitstheorie L(G2 ) = ”Klammerausdrücke“ Algorithmisch unlösbare Probleme, Turing Maschinen, Registermaschinen L(G1 ) = {0, 1}+ Einführung in die Programmverifikation Prinzipien der Analyse von Programmen, Verifikation nach Hoare, Verschlüsselung und Sicherheit HZ (IFI) ETI - Woche 8 124/217 HZ (IFI) ETI - Woche 8 125/217 Deterministische endliche Automaten Deterministische endliche Automaten Zustandstabelle Deterministische endliche Automaten Reguläre Sprachen können durch • . . . rechtslineare Grammatiken erzeugt werden • . . . deterministische endliche Automaten akzeptiert werden q1 ∈ Q a1 ∈ Σ δ(q1 , a1 ) q2 ∈ Q .. . δ(q2 , a1 ) .. . a2 ∈ Σ δ(q1 , a2 ) .. . ··· ··· Definition (Deterministischer endlicher Automat (kurz: DEA)) Zustandsgraph Ein DEA ist ein 5-Tupel A = (Q, Σ, δ, s, F ) sodass Sei A = (Q, Σ, δ, s, F ) ein DEA. Der Zustandsgraph von A hat 1 Q eine endliche Menge von Zuständen 1 Ecken Q, 2 Σ eine endliche Menge von Eingabesymbolen (Σ wird auch Eingabealphabet genannt) 2 eine Kante von p nach q (beschriftet mit a), wenn δ(p, a) = q. 3 δ : Q × Σ → Q die Übergangsfunktion 4 s ∈ Q der Startzustand 5 F ⊆ Q eine endliche Menge von akzeptierenden Zuständen Konvention • Den Startzustand markiert man mit einem Pfeil; die akzeptierenden Zustände werden mit einem doppelten Kreis gekennzeichnet Zu beachten: δ muss für alle möglichen Argumente definiert sein HZ (IFI) ETI - Woche 8 Deterministische endliche Automaten 126/217 HZ (IFI) ETI - Woche 8 Deterministische endliche Automaten Beispiel (DEA) Beispiel (DEA) DEA A = ({q0 , q1 , q2 }, {0, 1}, δ, q0 , {q2 }) mit δ gegeben durch Zustandstabelle DEA A q0 q1 q2 127/217 0 1 q1 q0 q2 q0 q0 q0 Zustandsgraph von A 1 0 0 1 →q0 q1 q0 q1 q2 q0 q2 ∗ q0 q0 q0 q1 1 0 0,1 q2 • ∈ / L(A) • 0∈ / L(A) • 00 ∈ L(A) • 000 ∈ / L(A) • 101100 ∈ L(A) HZ (IFI) ETI - Woche 8 128/217 Deterministische endliche Automaten Deterministische endliche Automaten Definition (erweiterte Übergangsfunktion) Beispiel Sei δ eine Übergangsfunktion. Wir definieren die erweiterte Übergangsfunktion δ̂ : Q × Σ∗ → Q induktiv: Definiere DEA A, der alle aus Nullen und Einsen bestehenden Wörter akzeptiert, welche die Folge 01 enthalten L = {x01y | x, y sind beliebige Wörter aus Nullen und Einsen} δ̂(q, ) := q x ∈ Σ∗ , a ∈ Σ δ̂(q, xa) := δ(δ̂(q, x), a) Wir machen die folgende Hilfsüberlegung: q0 A hat Sequenz 01 noch nicht gefunden A wechselt in Zustand q1 , sobald 0 gelesen wird Sonst verharrt A in Zustand q0 L(A) := {x ∈ Σ∗ | δ̂(s, x) ∈ F } q1 A hat Sequenz 0 gelesen A wechselt in Zustand q2 , sobald 1 gelesen wird Sonst verharrt A in Zustand q1 Für jeden DEA A ist L(A) regulär. Umgekehrt existiert zu jeder regulären Sprache L ein DEA A, sodass L = L(A). q2 A hat Sequenz 01 gelesen A akzeptiert jede weitere Eingabe Definition Sei A = (Q, Σ, δ, s, F ) ein DEA. Die von A akzeptierte Sprache ist Satz HZ (IFI) ETI - Woche 8 129/217 Deterministische endliche Automaten HZ (IFI) ETI - Woche 8 130/217 Deterministische endliche Automaten Abschlusseigenschaften von regulären Sprachen Beispiel (Fortsetzung) Der Automat kann durch den Zustandsgraphen angegeben werden: Satz 1 q0 0 q1 Seien L, M reguläre Sprachen (über dem Alphabet Σ), dann gilt 0, 1 0 1 q2 Es ist auch eine Darstellung durch die Zustandstabelle denkbar, wobei der Startzustand durch einen Pfeil gekennzeichnet ist und die akzeptierenden Zustände durch ∗. 0 1 →q0 q1 q0 q1 q1 q2 q2 ∗ q2 q2 HZ (IFI) ETI - Woche 8 131/217 1 Die Vereinigung L ∪ M ist regulär 2 Das Komplement ∼L ist regulär 3 Der Schnitt L ∩ M ist regulär 4 Die Mengendifferenz L \ M ist regulär 5 L∗ ist regulär HZ (IFI) ETI - Woche 8 132/217 Deterministische endliche Automaten Endliche Automaten: Fallstudie Anwendungen von regulären Sprachen Beispiel • Software zum Entwurf und Testen von digitalen Schaltkreisen • Softwarebausteine eines Compilers, etwa in der lexikalischen Analyse: 1 lexikalische Scanner ( Lexer“) wird mit endlichen Automaten ” implementiert 2 Der lexikalische Scanner dient zur Aufteilung des Eingabetextes in logische Einheiten, wie Bezeichner oder Schlüsselwörter • Software zum Durchsuchen umfangreicher Texte Wir untersuchen Protokolle, die den Gebrauch elektronischen Geldes“ ” ermöglichen; dabei handeln: der Kunde, die Bank und das Geschäft: • Der Kunde kann zahlen • Der Kunde kann das Geld löschen • Das Geschäft kann dem Kunden Waren zusenden • Das Geschäft kann Geld einlösen • Die Bank kann Geld überweisen • Software zur Verifizierung aller Arten von Systemen, die eine endliche Anzahl verschiedener Zustände besitzen Wir treffen die folgenden Grundannahmen: • Softwarebausteine eines Computerspiels: • Der Kunde ist unverantwortlich Kontrolle von Spielfiguren kann mit Hilfe eines endlichen Automaten implementiert werden 2 erlaubt eine bessere Modularisierung des Codes 1 • Das Geschäft ist verantwortlich, aber gutgläubig • Die Bank ist strikt wir betrachten die Handlungen der Akteure als extern“; die Sequenz der ” Handlungen ist wichtig, nicht wer sie initiiert HZ (IFI) ETI - Woche 8 133/217 Endliche Automaten: Fallstudie Start ETI - Woche 8 134/217 Endliche Automaten: Fallstudie Beispiel (Fortsetzung) Beispiel (Fortsetzung) a HZ (IFI) Zahlen b Einlösen Überw. d Lö, Z Liefern a Z E b c Einlösen e Ü d f Liefern L Geschäftsautomat G Lö, Z f Start Liefern Lö, Z Lö Überw. g Lö, Z L E c L Ü e g Überw. . . . Ü Zahlen Start Start 1 Einlösen 3 Überw. L, E, Lö Kundenautomat K HZ (IFI) Lö, Z 4 Start Löschen L, Z Start E 1 3 Zahlen. . . Z Einlösen. . . E Löschen. . . Lö Liefern. . . L Lö, Z Ü 4 Löschen 2 ETI - Woche 8 Lö Ü, Z Bankautomat B 2 135/217 HZ (IFI) E, L, Lö, Z E, L, Lö, Z L, Z ETI - Woche 8 136/217 Endliche Automaten: Fallstudie Endliche Automaten: Fallstudie Beispiel (Fortsetzung) Beispiel (Fortsetzung) Z Wir definieren den Produktautomaten B × G aus B und G : 1 Die Zustände dieses Automaten sind: (i, x) 2 (1, a) Z L Z (1, c) (1, d) Lö Lö (2, c) (2, d) L Z Z Z (1, e) (1, f ) L (1, g ) wobei i ∈ {1, 2, 3, 4} und x ∈ {a, b, c, d, e, f , g } Lö Die Übergänge werden durch paralleles Ausführen von B und G definiert: Aktion Aktion wenn i −−−−→ i 0 und x −−−−→ x 0 dann (2, a) Aktion (i, x) −−−−→ (i 0 , x 0 ) Lö Z L Z E • in B gilt, dass aus Zustand 1 durch die Aktion Einlösen“ ” Einlösen Zustand 3 wird, konzise: 1 −−−−−→ 3 (3, a) • in G gilt, dass aus Zustand b mit Aktion Einlösen“ d wird, • also gilt in B × G , dass aus Zustand (1, b) mit Aktion Einlösen“ Einlösen Zustand (3, d) wird, konzise: (1, b) −−−−−→ (3, d) (4, a) ” Lö ETI - Woche 8 137/217 Endliche Automaten: Fallstudie Beispiel (Fortsetzung) Als Schlussfolgerung ergibt sich, dass das Protokoll nicht sicher ist: Der Automat B × G kann in den Zustand (2, c) gelangen, in welchem die Waren geschickt wurden und trotzdem nie eine Überweisung an das Geschäft erfolgen wird ETI - Woche 8 Z Lö ” Einlösen konzise: b −−−−−→ d HZ (IFI) (2, b) Z Betrachte B und G : HZ (IFI) (1, b) Z 139/217 HZ (IFI) (3, b) L Lö, Z Z (4, b) Lö, Z L E Z E (3, c) (3, d) Lö, Z E Lö, Z E (4, c) (4, d) Lö, Z Lö, Z ETI - Woche 8 Lö L E L L Lö (2, e) (2, f ) Z Lö, Z Z Lö, Z (3, e) Ü (3, f ) Ü (4, e) (4, f ) Lö, Z Lö, Z Lö L (2, g ) Z Lö, ZZ L L (3, g ) (4, g ) Lö, Z 138/217