Einführung in die Theoretische Informatik Zusammenfassung der

Werbung
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
Herunterladen