Zusammenfassung Zusammenfassung der letzten LVA Definition Eine Grammatik G ist ein Quadrupel G = (V , Σ, R, S), wobei Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele Georg Moser Michael Schaper Manuel Schneckenreither 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 Institut für Informatik @ UIBK Wintersemester 2015 • beschränkt wenn ∃ beschränkte Grammatik G , L = L(G ) • rekursiv aufzählbar (vom Typ 0) wenn ∃ Grammatik G , L = L(G ) GM (IFI) Einführung in die Theoretische Informatik 132/1 Übersicht 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 Boolesche Algebra, Universelle Algebra, Logische Schaltkreise Einführung in die Theorie der Formalen Sprachen L2 L3 L(G3 ) = {an bn cn | n > 1} Grammatiken und Formale Sprachen, Reguläre Sprachen, Kontextfreie Sprachen Einführung in die Berechenbarkeitstheorie L(G2 ) = Klammerausdrücke“ ” L(G1 ) = {0, 1}+ Algorithmisch unlösbare Probleme, Turing Maschinen, Registermaschinen Einführung in die Programmverifikation Prinzipien der Analyse von Programmen, Verifikation nach Hoare GM (IFI) Einführung in die Theoretische Informatik 133/1 GM (IFI) Einführung in die Theoretische Informatik 134/1 Reguläre Sprachen Endliche Automaten: Informell Beispiel Reguläre Sprachen Wir untersuchen Protokolle, die den Gebrauch elektronischen Geldes“ ” ermöglichen; dabei handeln: der Kunde, die Bank und das Geschäft: Anwendungen von regulären Sprachen • Software zum Entwurf und Testen von digitalen Schaltkreisen • Der Kunde kann zahlen • 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 • 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 zum Durchsuchen umfangreicher Texte Wir treffen die folgenden Grundannahmen: • Software zur Verifizierung aller Arten von Systemen, die eine • Der Kunde ist unverantwortlich endliche Anzahl verschiedener Zustände besitzen • Das Geschäft ist verantwortlich, aber gutgläubig • Softwarebausteine eines Computerspiels: • Die Bank ist strikt Kontrolle von Spielfiguren kann mit Hilfe eines endlichen Automaten implementiert werden 2 erlaubt eine bessere Modularisierung des Codes 1 GM (IFI) Einführung in die Theoretische Informatik wir betrachten die Handlungen der Akteure als extern“; die Sequenz der ” Handlungen ist wichtig, nicht wer sie initiiert 135/1 Endliche Automaten: Informell GM (IFI) Einführung in die Theoretische Informatik Endliche Automaten: Informell Beispiel (Fortsetzung) Beispiel (Fortsetzung) Lö, Z Lö Start a 136/1 Zahlen b Einlösen Überw. d f Start Liefern Geschäftsautomat G c Liefern Einlösen e a Z Überw. E b Liefern Lö, Z g f L E c Lö, Z Ü d L Lö, Z L Ü e g Zahlen. . . Z Einlösen. . . E Löschen. . . Lö Liefern. . . L Überw. . . . Ü Zahlen L, E, Lö Start Start 1 Einlösen 3 Überw. 4 Start Löschen Kundenautomat K GM (IFI) L, Z Start 2 Einführung in die Theoretische Informatik Lö Ü, Z Bankautomat B 2 137/1 GM (IFI) E 1 Löschen Lö, Z 3 Lö, Z Ü 4 E, L, Lö, Z E, L, Lö, Z L, Z Einführung in die Theoretische Informatik 138/1 Endliche Automaten: Informell Endliche Automaten: Informell Beispiel (Fortsetzung) Beispiel (Fortsetzung) Z Wir definieren den Produktautomaten B × G aus B und G : 1 (i, x) 2 (1, a) Die Zustände dieses Automaten sind: wobei i ∈ {1, 2, 3, 4}, x ∈ {a, b, c, d, e, f , g } wenn i −−−−→ i0 Aktion und x −−−−→ Aktion x0 dann (i, x) −−−−→ (1, b) Lö Die Übergänge werden durch paralleles Ausführen von B und G definiert: Aktion Z (2, a) L Z (1, c) (1, d) Lö Lö (2, c) (2, d) Lö Z (2, b) L Z Z E • in B gilt, dass aus Zustand 1 durch die Aktion Einlösen“ (3, a) ” Einlösen Zustand 3 wird, konzise: 1 −−−−−→ 3 Z Lö • in G gilt, dass aus Zustand b mit Aktion Einlösen“ d wird (3, b) L Lö, Z ” Einlösen Konzise: b −−−−−→ d (4, a) • 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) L Z Z (1, e) (1, f ) Lö L Z L (1, g ) 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 ) (i 0 , x 0 ) Betrachte B und G : GM (IFI) Z Z (4, b) L Z E E E (3, c) (3, d) Lö, Z E Lö, Z E (4, c) (4, d) Lö, Z Lö, Z L L Z Lö, ZZ L L (3, g ) (4, g ) ” Einführung in die Theoretische Informatik Lö 139/1 Deterministische endliche Automaten Lö, Z GM (IFI) Einführung in die Theoretische Informatik Lö, Z 140/1 Alternative Darstellungen Beispiel (Fortsetzung) Zustandstabelle 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 q1 ∈ Q q2 ∈ Q .. . a1 ∈ Σ δ(q1 , a1 ) δ(q2 , a1 ) .. . a2 ∈ Σ δ(q1 , a2 ) ··· ··· Zustandsgraph Definition (Deterministischer endlicher Automat (kurz: DEA)) Sei A = (Q, Σ, δ, q0 , F ) ein DEA, der Zustandsgraph ist definiert, sodass Ein DEA ist ein 5-Tupel A = (Q, Σ, δ, q0 , F ) sodass 1 die Ecken die Zustände sind, 2 für Zustände p, q ∈ Q sind die Kanten von p nach q alle Tripel (p, a, q) mit a∈Σ und δ(p, a) = q . 1 Q eine endliche Menge von Zuständen 2 Σ eine endliche Menge von Eingabesymbole, (Σ wird auch Eingabealphabet genannt) 3 δ : Q × Σ → Q die Übergangsfunktion 4 q0 ∈ Q der Startzustand • Zu jeder Kante (p, a, q) schreibt man die Eingabe a 5 F ⊆ Q eine endliche Menge von akzeptierenden Zuständen • Den Startzustand markiert man mit einem Pfeil; die akzeptierenden Konvention Zustände werden mit einem doppelten Kreis gekennzeichnet Zu beachten: δ muss für alle möglichen Argumente definiert sein GM (IFI) Einführung in die Theoretische Informatik 141/1 GM (IFI) Einführung in die Theoretische Informatik 142/1 Alternative Darstellungen Alternative Darstellungen Definition (erweiterte Übergangsfunktion) Beispiel Sei δ eine Übergangsfunktion, wir definieren die erweiterte Übergangsfunktion δ̂ : Q × Σ∗ → Q induktiv: Definiere DEA A, der alle aus 0en und 1en bestehenden Zeichenketten akzeptiert, die die Folge 01 enthalten L = {x01y | x, y sind beliebige Zeichenketten aus 0en und 1en} δ̂(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 q1 A hat Sequenz 0 gelesen A wechselt in Zustand q2 , sobald 1 gelesen wird Sonst verharrt A in Zustand q1 q2 A hat Sequenz 01 gelesen A akzeptiert jede weitere Eingabe Definition Sei A = (Q, Σ, δ, q0 , F ) ein DEA; die Sprache L(A) von A: L(A) := {x ∈ Σ∗ | δ̂(q0 , x) ∈ F } Satz Sei A ein DEA, dann ist L(A) regulär und umgekehrt existiert zu jeder regulären Sprache L ein DEA A, sodass L = L(A) GM (IFI) Einführung in die Theoretische Informatik 143/1 Alternative Darstellungen GM (IFI) Einführung in die Theoretische Informatik 144/1 Alternative Darstellungen Abschlusseigenschaften von regulären Sprachen Beispiel (Fortsetzung) Nun kann der Automat leicht angegeben werden: 1 0, 1 0 Satz q0 0 q1 1 Seien L, M reguläre Sprachen (über dem Alphabet Σ), dann gilt q2 Gleichzeitig ist auch eine Darstellung durch die Zustandstabelle denkbar. → q0 q1 ∗q2 GM (IFI) 0 1 q1 q0 q1 q2 q2 q2 Einführung in die Theoretische Informatik 145/1 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 GM (IFI) Einführung in die Theoretische Informatik 146/1