Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele Georg Moser Michael Schaper Manuel Schneckenreither Institut für Informatik @ UIBK Wintersemester 2015 Zusammenfassung Zusammenfassung der letzten LVA Definition Eine Grammatik G ist ein Quadrupel G = (V , Σ, R, S), wobei 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 • 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 Zusammenfassung Chomsky-Hierarchie L L0 L1 L2 L3 L(G3 ) = {an bn cn | n > 1} L(G2 ) = Klammerausdrücke“ ” L(G1 ) = {0, 1}+ GM (IFI) Einführung in die Theoretische Informatik 133/1 Übersicht Inhalte der Lehrveranstaltung Einführung in die Logik Syntax & Semantik der Aussagenlogik, Formales Beweisen, Konjunktive und Disjunktive Normalformen Einführung in die Algebra Boolesche Algebra, Universelle Algebra, Logische Schaltkreise Einführung in die Theorie der Formalen Sprachen Grammatiken und Formale Sprachen, Reguläre Sprachen, Kontextfreie Sprachen Einführung in die Berechenbarkeitstheorie 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 134/1 Übersicht Inhalte der Lehrveranstaltung Einführung in die Logik Syntax & Semantik der Aussagenlogik, Formales Beweisen, Konjunktive und Disjunktive Normalformen Einführung in die Algebra Boolesche Algebra, Universelle Algebra, Logische Schaltkreise Einführung in die Theorie der Formalen Sprachen Grammatiken und Formale Sprachen, Reguläre Sprachen, Kontextfreie Sprachen Einführung in die Berechenbarkeitstheorie 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 134/1 Reguläre Sprachen Reguläre Sprachen Anwendungen von regulären Sprachen • Software zum Entwurf und Testen von digitalen Schaltkreisen GM (IFI) Einführung in die Theoretische Informatik 135/1 Reguläre Sprachen Reguläre Sprachen Anwendungen von regulären Sprachen • 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 GM (IFI) Einführung in die Theoretische Informatik 135/1 Reguläre Sprachen Reguläre Sprachen Anwendungen von regulären Sprachen • 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 GM (IFI) Einführung in die Theoretische Informatik 135/1 Reguläre Sprachen Reguläre Sprachen Anwendungen von regulären Sprachen • 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 • Software zur Verifizierung aller Arten von Systemen, die eine endliche Anzahl verschiedener Zustände besitzen GM (IFI) Einführung in die Theoretische Informatik 135/1 Reguläre Sprachen Reguläre Sprachen Anwendungen von regulären Sprachen • 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 • Software zur Verifizierung aller Arten von Systemen, die eine endliche Anzahl verschiedener Zustände besitzen • Softwarebausteine eines Computerspiels: 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 135/1 Reguläre Sprachen Reguläre Sprachen Anwendungen von regulären Sprachen • 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 • Software zur Verifizierung aller Arten von Systemen, die eine endliche Anzahl verschiedener Zustände besitzen • Softwarebausteine eines Computerspiels: 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 135/1 Endliche Automaten: Informell Beispiel Wir untersuchen Protokolle, die den Gebrauch elektronischen Geldes“ ” ermöglichen; dabei handeln: der Kunde, die Bank und das Geschäft: GM (IFI) Einführung in die Theoretische Informatik 136/1 Endliche Automaten: Informell Beispiel Wir untersuchen Protokolle, die den Gebrauch elektronischen Geldes“ ” ermöglichen; dabei handeln: der Kunde, die Bank und das Geschäft: • Der Kunde kann zahlen GM (IFI) Einführung in die Theoretische Informatik 136/1 Endliche Automaten: Informell Beispiel 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 GM (IFI) Einführung in die Theoretische Informatik 136/1 Endliche Automaten: Informell Beispiel 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 GM (IFI) Einführung in die Theoretische Informatik 136/1 Endliche Automaten: Informell Beispiel 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 GM (IFI) Einführung in die Theoretische Informatik 136/1 Endliche Automaten: Informell Beispiel 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 GM (IFI) Einführung in die Theoretische Informatik 136/1 Endliche Automaten: Informell Beispiel 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 Wir treffen die folgenden Grundannahmen: • Der Kunde ist unverantwortlich • Das Geschäft ist verantwortlich, aber gutgläubig • Die Bank ist strikt GM (IFI) Einführung in die Theoretische Informatik 136/1 Endliche Automaten: Informell Beispiel 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 Wir treffen die folgenden Grundannahmen: • Der Kunde ist unverantwortlich • 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 GM (IFI) Einführung in die Theoretische Informatik 136/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Start a Zahlen b Einlösen d Liefern Geschäftsautomat G GM (IFI) c Einlösen Überw. f Liefern e Überw. Einführung in die Theoretische Informatik Liefern g 137/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Start a Zahlen b Einlösen d Liefern Geschäftsautomat G c Einlösen Überw. f Liefern e Überw. Liefern g Zahlen Start Löschen Kundenautomat K GM (IFI) Einführung in die Theoretische Informatik 137/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Start a Zahlen b Einlösen Liefern Geschäftsautomat G c Überw. d f Liefern Einlösen e Liefern Überw. g Zahlen Start Start 1 Löschen Kundenautomat K GM (IFI) Einlösen 3 Überw. 4 Löschen 2 Einführung in die Theoretische Informatik Bankautomat B 137/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Lö, Z Lö Start a Z Lö, Z E b Lö, Z c Ü d L Lö, Z L E e L Ü Lö, Z GM (IFI) f Einführung in die Theoretische Informatik g Lö, Z 138/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Lö, Z Lö Start a Z Lö, Z E b Lö, Z c Ü d L Lö, Z L E e L Ü Lö, Z GM (IFI) f Einführung in die Theoretische Informatik g Zahlen. . . Z Einlösen. . . E Löschen. . . Lö Liefern. . . L Überw. . . . Ü Lö, Z 138/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Lö, Z Lö Start a Z Lö, Z E b Lö, Z L, E, Lö c Ü d L Lö, Z f L E e L Ü Lö, Z g Zahlen. . . Z Einlösen. . . E Löschen. . . Lö Liefern. . . L Überw. . . . Ü Lö, Z Start Ü, Z GM (IFI) Einführung in die Theoretische Informatik 138/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Lö, Z Lö Start a Z Lö, Z E b L, E, Lö Start E Lö Ü, Z 2 GM (IFI) Lö, Z E 1 L Ü e L, Z Start f L c Lö, Z Ü d L Lö, Z 3 g Zahlen. . . Z Einlösen. . . E Löschen. . . Lö Liefern. . . L Überw. . . . Ü Lö, Z Ü 4 E, L, Lö, Z E, L, Lö, Z L, Z Einführung in die Theoretische Informatik 138/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Wir definieren den Produktautomaten B × G aus B und G : GM (IFI) Einführung in die Theoretische Informatik 139/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Wir definieren den Produktautomaten B × G aus B und G : 1 Die Zustände dieses Automaten sind: (i, x) GM (IFI) wobei i ∈ {1, 2, 3, 4}, x ∈ {a, b, c, d, e, f , g } Einführung in die Theoretische Informatik 139/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Wir definieren den Produktautomaten B × G aus B und G : 1 Die Zustände dieses Automaten sind: (i, x) 2 wobei i ∈ {1, 2, 3, 4}, x ∈ {a, b, c, d, e, f , g } Die Übergänge werden durch paralleles Ausführen von B und G definiert: Aktion Aktion wenn i −−−−→ i 0 und x −−−−→ x 0 GM (IFI) dann Einführung in die Theoretische Informatik Aktion (i, x) −−−−→ (i 0 , x 0 ) 139/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Wir definieren den Produktautomaten B × G aus B und G : 1 Die Zustände dieses Automaten sind: (i, x) 2 wobei i ∈ {1, 2, 3, 4}, x ∈ {a, b, c, d, e, f , g } Die Übergänge werden durch paralleles Ausführen von B und G definiert: Aktion Aktion wenn i −−−−→ i 0 und x −−−−→ x 0 dann Aktion (i, x) −−−−→ (i 0 , x 0 ) Betrachte B und G : GM (IFI) Einführung in die Theoretische Informatik 139/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Wir definieren den Produktautomaten B × G aus B und G : 1 Die Zustände dieses Automaten sind: (i, x) 2 wobei i ∈ {1, 2, 3, 4}, x ∈ {a, b, c, d, e, f , g } Die Übergänge werden durch paralleles Ausführen von B und G definiert: Aktion Aktion wenn i −−−−→ i 0 und x −−−−→ x 0 dann Aktion (i, x) −−−−→ (i 0 , x 0 ) Betrachte B und G : • in B gilt, dass aus Zustand 1 durch die Aktion Einlösen“ Einlösen Zustand 3 wird, konzise: 1 −−−−−→ 3 GM (IFI) Einführung in die Theoretische Informatik ” 139/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Wir definieren den Produktautomaten B × G aus B und G : 1 Die Zustände dieses Automaten sind: (i, x) 2 wobei i ∈ {1, 2, 3, 4}, x ∈ {a, b, c, d, e, f , g } Die Übergänge werden durch paralleles Ausführen von B und G definiert: Aktion Aktion wenn i −−−−→ i 0 und x −−−−→ x 0 dann Aktion (i, x) −−−−→ (i 0 , x 0 ) Betrachte B und G : • in B gilt, dass aus Zustand 1 durch die Aktion Einlösen“ ” Einlösen Zustand 3 wird, konzise: 1 −−−−−→ 3 • in G gilt, dass aus Zustand b mit Aktion Einlösen“ d wird Einlösen Konzise: b −−−−−→ d GM (IFI) ” Einführung in die Theoretische Informatik 139/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Wir definieren den Produktautomaten B × G aus B und G : 1 Die Zustände dieses Automaten sind: (i, x) 2 wobei i ∈ {1, 2, 3, 4}, x ∈ {a, b, c, d, e, f , g } Die Übergänge werden durch paralleles Ausführen von B und G definiert: Aktion Aktion wenn i −−−−→ i 0 und x −−−−→ x 0 dann Aktion (i, x) −−−−→ (i 0 , x 0 ) Betrachte B und G : • in B gilt, dass aus Zustand 1 durch die Aktion Einlösen“ ” Einlösen Zustand 3 wird, konzise: 1 −−−−−→ 3 • in G gilt, dass aus Zustand b mit Aktion Einlösen“ d wird Einlösen Konzise: b −−−−−→ d ” • also gilt in B × G , dass aus Zustand (1, b) mit Aktion Einlösen“ ” Zustand (3, d) wird GM (IFI) Einführung in die Theoretische Informatik 139/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Wir definieren den Produktautomaten B × G aus B und G : 1 Die Zustände dieses Automaten sind: (i, x) 2 wobei i ∈ {1, 2, 3, 4}, x ∈ {a, b, c, d, e, f , g } Die Übergänge werden durch paralleles Ausführen von B und G definiert: Aktion Aktion wenn i −−−−→ i 0 und x −−−−→ x 0 dann Aktion (i, x) −−−−→ (i 0 , x 0 ) Betrachte B und G : • in B gilt, dass aus Zustand 1 durch die Aktion Einlösen“ ” Einlösen Zustand 3 wird, konzise: 1 −−−−−→ 3 • in G gilt, dass aus Zustand b mit Aktion Einlösen“ d wird Einlösen Konzise: b −−−−−→ d ” • 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) GM (IFI) Einführung in die Theoretische Informatik ” 139/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Z (1, a) Z (1, b) Lö (2, a) L Z Z (1, c) (1, d) Lö Lö (2, c) (2, d) Lö Z (2, b) L Z Z E (3, a) Z Lö (4, a) Lö GM (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 L Z Z (1, e) (1, f ) Lö L E L L Z Lö (2, e) (2, f ) Z Lö, Z Z Lö, Z (3, e) Ü (3, f ) Ü (4, e) (4, f ) Lö, Z Lö, Z Einführung in die Theoretische Informatik L (1, g ) Lö L (2, g ) Z Lö, ZZ L L (3, g ) (4, g ) Lö, Z 140/1 Endliche Automaten: Informell Beispiel (Fortsetzung) Z (1, a) Z (1, b) Lö (2, a) L Z Z (1, c) (1, d) Lö Lö (2, c) (2, d) Lö Z (2, b) L Z Z E (3, a) Z Lö (4, a) Lö GM (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 L Z Z (1, e) (1, f ) Lö L E L L Z Lö (2, e) (2, f ) Z Lö, Z Z Lö, Z (3, e) Ü (3, f ) Ü (4, e) (4, f ) Lö, Z Lö, Z Einführung in die Theoretische Informatik L (1, g ) Lö L (2, g ) Z Lö, ZZ L L (3, g ) (4, g ) Lö, Z 140/1 Deterministische endliche Automaten 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 GM (IFI) Einführung in die Theoretische Informatik 141/1 Deterministische endliche Automaten 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 Definition (Deterministischer endlicher Automat (kurz: DEA)) Ein DEA ist ein 5-Tupel A = (Q, Σ, δ, q0 , F ) sodass 1 GM (IFI) Q eine endliche Menge von Zuständen Einführung in die Theoretische Informatik 141/1 Deterministische endliche Automaten 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 Definition (Deterministischer endlicher Automat (kurz: DEA)) Ein DEA ist ein 5-Tupel A = (Q, Σ, δ, q0 , F ) sodass 1 Q eine endliche Menge von Zuständen 2 Σ eine endliche Menge von Eingabesymbole, (Σ wird auch Eingabealphabet genannt) GM (IFI) Einführung in die Theoretische Informatik 141/1 Deterministische endliche Automaten 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 Definition (Deterministischer endlicher Automat (kurz: DEA)) Ein DEA ist ein 5-Tupel A = (Q, Σ, δ, q0 , F ) sodass 1 Q eine endliche Menge von Zuständen 2 Σ eine endliche Menge von Eingabesymbole, (Σ wird auch Eingabealphabet genannt) 3 δ : Q × Σ → Q die Übergangsfunktion GM (IFI) Einführung in die Theoretische Informatik 141/1 Deterministische endliche Automaten 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 Definition (Deterministischer endlicher Automat (kurz: DEA)) Ein DEA ist ein 5-Tupel A = (Q, Σ, δ, q0 , F ) sodass 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 GM (IFI) Einführung in die Theoretische Informatik 141/1 Deterministische endliche Automaten 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 Definition (Deterministischer endlicher Automat (kurz: DEA)) Ein DEA ist ein 5-Tupel A = (Q, Σ, δ, q0 , F ) sodass 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 5 F ⊆ Q eine endliche Menge von akzeptierenden Zuständen GM (IFI) Einführung in die Theoretische Informatik 141/1 Deterministische endliche Automaten 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 Definition (Deterministischer endlicher Automat (kurz: DEA)) Ein DEA ist ein 5-Tupel A = (Q, Σ, δ, q0 , F ) sodass 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 5 F ⊆ Q eine endliche Menge von akzeptierenden Zuständen Zu beachten: δ muss für alle möglichen Argumente definiert sein GM (IFI) Einführung in die Theoretische Informatik 141/1 Alternative Darstellungen Zustandstabelle q1 ∈ Q q2 ∈ Q .. . GM (IFI) a1 ∈ Σ δ(q1 , a1 ) δ(q2 , a1 ) .. . a2 ∈ Σ δ(q1 , a2 ) Einführung in die Theoretische Informatik ··· ··· 142/1 Alternative Darstellungen Zustandstabelle q1 ∈ Q q2 ∈ Q .. . a1 ∈ Σ δ(q1 , a1 ) δ(q2 , a1 ) .. . a2 ∈ Σ δ(q1 , a2 ) ··· ··· Zustandsgraph Sei A = (Q, Σ, δ, q0 , F ) ein DEA, der Zustandsgraph ist definiert, 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 . GM (IFI) Einführung in die Theoretische Informatik 142/1 Alternative Darstellungen Zustandstabelle q1 ∈ Q q2 ∈ Q .. . a1 ∈ Σ δ(q1 , a1 ) δ(q2 , a1 ) .. . a2 ∈ Σ δ(q1 , a2 ) ··· ··· Zustandsgraph Sei A = (Q, Σ, δ, q0 , F ) ein DEA, der Zustandsgraph ist definiert, 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 . Konvention • Zu jeder Kante (p, a, q) schreibt man die Eingabe a • Den Startzustand markiert man mit einem Pfeil; die akzeptierenden Zustände werden mit einem doppelten Kreis gekennzeichnet GM (IFI) Einführung in die Theoretische Informatik 142/1 Alternative Darstellungen Definition (erweiterte Übergangsfunktion) Sei δ eine Übergangsfunktion, wir definieren die erweiterte Übergangsfunktion δ̂ : Q × Σ∗ → Q induktiv: GM (IFI) Einführung in die Theoretische Informatik 143/1 Alternative Darstellungen Definition (erweiterte Übergangsfunktion) Sei δ eine Übergangsfunktion, wir definieren die erweiterte Übergangsfunktion δ̂ : Q × Σ∗ → Q induktiv: δ̂(q, ) := q GM (IFI) Einführung in die Theoretische Informatik 143/1 Alternative Darstellungen Definition (erweiterte Übergangsfunktion) Sei δ eine Übergangsfunktion, wir definieren die erweiterte Übergangsfunktion δ̂ : Q × Σ∗ → Q induktiv: δ̂(q, ) := q δ̂(q, xa) := δ(δ̂(q, x), a) GM (IFI) x ∈ Σ∗ , a ∈ Σ Einführung in die Theoretische Informatik 143/1 Alternative Darstellungen Definition (erweiterte Übergangsfunktion) Sei δ eine Übergangsfunktion, wir definieren die erweiterte Übergangsfunktion δ̂ : Q × Σ∗ → Q induktiv: δ̂(q, ) := q δ̂(q, xa) := δ(δ̂(q, x), a) x ∈ Σ∗ , a ∈ Σ Definition Sei A = (Q, Σ, δ, q0 , F ) ein DEA; die Sprache L(A) von A: L(A) := {x ∈ Σ∗ | δ̂(q0 , x) ∈ F } GM (IFI) Einführung in die Theoretische Informatik 143/1 Alternative Darstellungen Definition (erweiterte Übergangsfunktion) Sei δ eine Übergangsfunktion, wir definieren die erweiterte Übergangsfunktion δ̂ : Q × Σ∗ → Q induktiv: δ̂(q, ) := q δ̂(q, xa) := δ(δ̂(q, x), a) x ∈ Σ∗ , a ∈ Σ 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 Beispiel Definiere DEA A, der alle aus 0en und 1en bestehenden Zeichenketten akzeptiert, die die Folge 01 enthalten GM (IFI) Einführung in die Theoretische Informatik 144/1 Alternative Darstellungen Beispiel 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} GM (IFI) Einführung in die Theoretische Informatik 144/1 Alternative Darstellungen Beispiel 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} Wir machen die folgende Hilfsüberlegung: GM (IFI) Einführung in die Theoretische Informatik 144/1 Alternative Darstellungen Beispiel 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} Wir machen die folgende Hilfsüberlegung: q0 GM (IFI) A hat Sequenz 01 noch nicht gefunden A wechselt in Zustand q1 , sobald 0 gelesen wird Sonst verharrt A in Zustand q0 Einführung in die Theoretische Informatik 144/1 Alternative Darstellungen Beispiel 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} 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 GM (IFI) Einführung in die Theoretische Informatik 144/1 Alternative Darstellungen Beispiel 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} 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 GM (IFI) Einführung in die Theoretische Informatik 144/1 Alternative Darstellungen Beispiel (Fortsetzung) Nun kann der Automat leicht angegeben werden: 1 q0 GM (IFI) 0, 1 0 0 q1 1 Einführung in die Theoretische Informatik q2 145/1 Alternative Darstellungen Beispiel (Fortsetzung) Nun kann der Automat leicht angegeben werden: 1 0, 1 0 q0 0 q1 1 q2 Gleichzeitig ist auch eine Darstellung durch die Zustandstabelle denkbar. 0 1 → q0 q1 q0 q1 q1 q2 ∗q2 q2 q2 GM (IFI) Einführung in die Theoretische Informatik 145/1 Alternative Darstellungen Abschlusseigenschaften von regulären Sprachen Satz Seien L, M reguläre Sprachen (über dem Alphabet Σ), dann gilt 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