1 Grundlegende Konzepte

Werbung
Tutorium Formale Sprachen und Automaten
Daniel Quernheim, Universität Potsdam
Dies ist eine grobe Übersicht über einige klausurrelevante Themen ohne Anspruch auf Vollständigkeit und Korrektheit. Sie ersetzt nicht das Selbststudium! (Zu diesem Zweck sind die Seitenzahlen der Folien angegeben.)
1 Grundlegende Konzepte
Menge(3)
M = {. . . }
aufzählende
Schreibweise
intensionale
Schreibweise
Element(5)
leere Menge(14)
Teilmenge(15)
echte
Teilmenge(15)
Kardinalität
Potenzmenge(17)
M1 = {x, y, . . . }
Zusammenfassung von beliebigen Objekten ohne
Reihenfolge und Häufigkeit
z.B. {♣, ♠, ♥, ♦}
M2 = {x : p(x)}
z.B. {x : x ist eine Spielkartenfarbe }
a ∈ M (a ∈
/ M)
∅ oder {}
A⊆B
A⊂B
a ist in der Menge M (nicht) enthalten
NB: es gibt nur eine leere Menge
jedes Element aus A ist auch in B
A ist Teilmenge von B, aber sie sind nicht gleich,
d.h. ∃b ∈ B : b ∈
/A
Anzahl der Elemente in M
Menge aller Teilmengen, |2M | = 2|M |
|M | oder #M
2M oder ℘(M )
1.1 Operationen auf Mengen
Vereinigung(16)
Schnitt(16)
Differenz(16)
Komplement
A∪B
A∩B
A − B oder A \ B
A=U −A
Paar(18)
Kreuzprodukt(20)
(kartesisches P.)
Relation auf M (21)
ha, bi
A×B
R⊆M ×M
Menge aller Elemente, die in A oder B sind
Menge aller Elemente, die in A und B sind
Menge aller Elemente aus A, die nicht in B sind
Menge aller Elemente, die nicht in A sind (relativ
zum Diskursuniversum U)
lässt sich verallgemeinern zum n-Tupel
Paare der Form ha, bi für jedes a ∈ A und b ∈ B;
formal: {ha, bi : a ∈ A ∧ b ∈ B}
a zu b in Relation: aRb, bzw. ha, bi ∈ R
1.2 Rechengesetze für Mengen
• De Morgan: A ∩ B = A ∪ B, A ∪ B = A ∩ B
• Differenz: A − B = A ∩ B
• beiderseitige Inklusion: A = B ↔ (A ⊆ B) ∧ (B ⊆ A)
1.3 Eigenschaften von Relationen
reflexiv:(22) ∀x ∈ M : xRx (jedes Element steht zu sich selbst in Relation)
irreflexiv:(22) ¬∃x ∈ M : xRx (kein Element steht zu sich selbst in Relation)
symmetrisch:(22) ∀x, y ∈ M : xRy ↔ yRx
asymmetrisch: ¬∃x, y ∈ M : xRy ∧ yRx
antisymmetrisch:(22) ∀x, y ∈ M : xRy ∧ yRx → x = z (keine zwei unterschiedlichen Elemente
stehen gegenseitig in Relation)
• transitiv:(22) ∀x, y, z ∈ M : xRy ∧ yRz → xRz
• konnex:(22) ∀x, y ∈ M : x 6= y → xRy ∨ yRx
•
•
•
•
•
1
Stand: 15. Juli 2009
Tutorium Formale Sprachen und Automaten
Daniel Quernheim, Universität Potsdam
Besondere Arten von Relationen:
•
•
•
•
Äquivalenzrelation:(23) reflexiv, symmetrisch, transitiv
Halbordnung (partielle Ordnung):(26) reflexiv und antisymmetrisch
Striktordnung:(26) irreflexiv und asymmetrisch (und deshalb auch antisymmetrisch)
Totalordnung:(26) Halbordnung, die konnex ist
Transitive Hülle(28)
R+
Reflexive u. trans. Hülle(28)
R∗
kleinste Relation, so dass R ⊆ R+ und aRb ∧
bR+ c → aR+ c (Transitivität vervollständigt)
R∗ = R+ ∪ {hx, xi : x ∈ M } (Reflexivität vervollständigt)
1.4 Beweisverfahren
• Vollständige Induktion: eine Aussage h über natürliche Zahlen wird bewiesen, indem h(n0 )
(Induktionsbasis) und h(n) → h(n + 1) (Induktionsschritt) bewiesen werden.
• Kontraposition (Widerspruchsbeweis): das Gegenteil wird angenommen, und es wird gezeigt, dass das zu einem Widerspruch führt.
• Reduktion auf ein gelöstes Problem.
1.5 Zeichenketten und Sprachen
Alphabet(44)
Zeichenkette(44)
(String, Wort)
Länge(44)
leeres Wort(44)
Verkettung von
Wortmengen
Potenz
Sternhülle(42)
Plushülle(42)
Freies Monoid(43)
Sprache(45)
Komplement
Σ = {a, b}
w = a · b · b = abb
|w| oder `(w)
A·B
An
S
n
A
A∗ =
Sn≥0 n A+ =
n≥1 A
hΣ∗ , ·, i, wobei
Σ∗ = {, a, b, ab, . . . }
L ⊆ Σ∗
L = Σ∗ − L
eine endliche Menge von (beliebigen) Symbolen
eine Verkettung von Alphabetssymbolen; Wörter
lassen sich auch verketten.
Anzahl der Symbole, aus denen w besteht.
|| = 0
die Menge der Verkettungen uv für alle u ∈ A und
v∈B
A0 = {}; An = An−1 · A = A · An−1
A+ = A · A ∗ = A ∗ · A
die Menge aller möglichen Zeichenketten auf Σ mit
Verkettung und neutralem Element ()
eine Menge von Wörtern über einem Alphabet
1.6 Grammatiken
Produktionsregel(47) u → v
Grammatik(53)
hN, Σ, P, Si
Satzform
Wort
Ableitbarkeit(48)
Regelsprache(54)
Wortproblem
α ∈V∗
w ∈ Σ∗
⇒⊆ V ∗S× V ∗ n
⇒∗ =
n≥0 ⇒
L(G)
w∈L
u, v ∈ V ∗ (V ist irgendein Alphabet)
N sind die Nichtterminale; Σ sind die Terminale;
V = N ∪ Σ nennt man auch Vokabular; S ∈ N
ist das Startsymbol; jede Regel in P hat auf der
linken Seite mindestens ein Nichtterminal.
String aus Nichtterminalen und Terminalen
String aus Terminalen
αβγ ⇒ αδγ gdw. β → δ ∈ P
Reflexive und transitive Hülle der Relation ⇒
L(G) = {w ∈ Σ∗ : S ⇒∗ w}
Ist das Wort w in der Sprache L enthalten?
2
Stand: 15. Juli 2009
Tutorium Formale Sprachen und Automaten
Daniel Quernheim, Universität Potsdam
2 Sprachen, Grammatiken und Automaten
Chomsky-Hierarchie(55ff.)
Typ Grammatik
Sprache
0
unbeschränkt
rekursiv aufzählbar
1
kontextsensitiv
kontextsensitiv
2
kontextfrei
kontextfrei
3
rechts-/linkslinear regulär
Typ
0
1
2
3
Regelform
V ∗N V ∗ × V ∗
monoton
N ×V∗
N × Σ∗ N
Abg.
KSV*
CKSV*
KV*
CKSV*
Automat
Turingmaschine
LBA (linear bounded automaton)
Kellerautomat (pushdown automaton)
Endlicher Automat
typische Beispielsprachen
kein konstruktives Beispiel
n
a2 , an bn cn , an bm cn dm , MIX-Sprachen
an bn , an bm cm dn , Dyck-/Klammersprachen, Palindromsprachen
alle endlichen Sprachen, Σ∗ , reguläre Ausdrücke
(Abgeschlossenheit: C = Komplement, K = Verkettung, S = Schnitt, V = Vereinigung, * = Sternhülle.
Man nennt eine Menge M abgeschlossen unter einer Operation , wenn für alle a, b ∈ M gilt: a b ∈ M .)
2.1 Typ 3
Reguläre Sprachen werden von deterministischen endlichen Automaten(82) (DEA) erkannt.
Ein DEA ist A = hQ, Σ, δ, q0 , F i mit
•
•
•
•
•
Q einer endlichen Menge von Zuständen
Σ einem endlichen Alphabet
δ : Q × Σ → Q der Übergangsfunktion; δ ∗ (q, ) = q; δ ∗ (q, aw) = δ ∗ (δ(q, a), w)
q0 ∈ Q dem Anfangszustand
F ⊆ Q der Menge der Endzustände
Zugehörige Sprache(88) T (A) = {w : w ∈ Σ∗ ∧ δ ∗ (q0 , w) ∈ F }, d.h. alle Wörter, die in einen
Endzustand führen.
Ein nicht-deterministischer endlicher Automat (NEA)(97ff.) unterscheidet sich nur durch
δ : Q × Σ → 2Q , d.h. unterschiedliche Übergänge mit dem selben Symbol sind möglich.
Zu jedem NEA existiert ein äquivalenter DEA (Teilmengenkonstruktion).(106) Beispiel:
n
n
{0}
y
0
n
y
o
o
3
s
y
1
{2}
e
e
s
n
{1,3}
2
y
s
{0,2}
o
s
n
{3}
o
n
o
{0,3}
y
Jeder EA lässt sich -frei machen: -Hülle(143) für jeden Zustand bilden und Übergänge kopieren.
Zustände mit Endzuständen in der -Hülle werden zu Endzuständen. Möglicherweise kann der EA
anschließend determinisiert werden. Beispiel:
3
Stand: 15. Juli 2009
Tutorium Formale Sprachen und Automaten
Daniel Quernheim, Universität Potsdam
a
a
a
ε
0
1
ε
ε
b
1
b
3
a
2
a
a
3
a
b
0
b
a
a
a
2
0
a
1
b
b
a
3
2
Jeder EA lässt sich komplementieren.(176) Das erreicht man, indem man
1. den Automaten determinisiert (wichtig!),
2. Endzustände zu Nicht-Endzuständen macht und umgekehrt,
3. den Automaten vollständig macht (alle nicht vorhandenen Übergänge führen in einen sink
state, der Endzustand ist). Beispiel:
b
a
0
b
a
a
b
1
a
{0}
b
a
b
a
{0,1}
S
b
a
{0}
{0,1}
Aus einem Automaten lässt sich eine rechtslineare Grammatik(89ff.) konstruieren und umgekehrt:
Jeder Übergang p ∈ δ(q, b) wird zu einer Regel Q → bP .
Reguläre Sprachen lassen sich auch über reguläre Ausdrücke(149ff.) (RE) definieren:
• ∅ ist ein RE mit J∅K = ∅; ist ein RE mit JK = {}
• a ist ein RE für jedes Alphabetssymbol a: JaK = {a}
• Wenn α und β RE sind, dann sind auch α · β, α + β und α∗ RE.
Ihre Denotate sind JαK · JβK, JαK ∪ JβK und JαK∗ .
Rechenregeln für reguläre Ausdrücke:
• α+β =β+α
• (α + β) + γ = α + (β + γ)
• (αβ)γ = α(βγ)
• (α + β)γ = αγ + βγ
• α(β + γ) = αβ + αγ
• ∅∗ = = ∗
• (α∗ )∗ = α∗
• ( + α)∗ = (α + )∗ = α∗
• (α∗ β ∗ )∗ = (α + β)∗
Reguläre Sprachen sind abgeschlossen unter Vereinigung, Schnitt, Sternhülle, Verkettung
und Komplementbildung(174) (siehe Folien für Konstruktionen für Grammatiken und Automaten). Endliche Sprachen sind immer regulär! Das Wortproblem ist in O(n) entscheidbar.
Pumping Lemma (Schleifensatz):(136) Für jede reguläre Sprache gilt: in allen Wörter, die länger
als eine bestimmte Konstante (anschaulich: Anzahl der Zustände des Automaten) sind, gibt es ein
Teilwort, das sich aufpumpen“ lässt (anschaulich: es muss eine Schleife im Automaten geben, da
”
mindestens ein Zustand mehrfach durchlaufen wurde).
Formal: ∃n : (∀x ∈ L : (|x| > |n| → ∃uvw = x : (|uv| ≤ n ∧ v 6= ∧ ∀i : uv i w ∈ L)))
Damit kann man zeigen, dass bestimmte Sprachen nicht regulär sind: man sucht sich ein
Wort mit einer Länge abhängig von n und zeigt, dass es keine Zerlegung gibt, die sich beliebig
pumpen lässt. (Beispiele in den Folien(140) und in den Musterlösungen der Übungsaufgaben.)
4
Stand: 15. Juli 2009
Tutorium Formale Sprachen und Automaten
Daniel Quernheim, Universität Potsdam
2.2 Typ 2
Kontextfreie Sprachen(63) werden von Kellerautomaten (KA)(224ff.) erkannt. Ein KA erweitert
den EA durch einen Keller: M = hQ, Σ, Γ, δ, q0 , Z0 , F i mit
• Q, Σ, q0 , F wie beim EA
• Γ dem Kelleralphabet, Z0 ∈ Γ dem Kellerstartsymbol
∗
• δ : Q × (Σ ∪ {}) × Γ → 2Q×Γ (aber nur in die endlichen Teilmengen)
Ein KA ändert seine Konfiguration(226) ∈ Q × Σ∗ × Γ∗ durch Lesen von Symbolen und Ersetzen
des obersten Kellersymbols durch Strings auf dem Kelleralphabet: hq, aw, Zαi ` hp, w, βαi gdw.
hp, βi ∈ δ(q, a, Z). Ein KA akzeptiert ein Wort entweder durch Erreichen eines Endzustandes
oder durch Leeren des Kellers(229) :
L(M ) = {w : hq0 , w, Z0 i `∗ hp, , γi ∧ p ∈ F } bzw. N (M ) = {w : hq0 , w, Z0 i `∗ hp, , i}
Nicht-deterministische KA sind mächtiger als deterministische KA. (Anders als die EA).
Kontextfreie Sprachen werden von kontextfreien Grammatiken erzeugt. Jede Regel besteht auf
der linken Seite aus genau einem Nichtterminal, d.h. →⊆ N × V ∗ . Je nachdem, welches Nichtterminal beim Ableiten ersetzt wird, spricht man von Linksableitung(222) , Rechtsableitung oder
nicht-kanonischer Ableitung. Eine Grammatik heißt ambig, wenn es ein Wort mit mehr als
einer Linksableitung (bzw. mehr als einem Parsebaum) gibt. Kontextfreie Sprachen können mit
verschiedenen Parsern erkannt werden:
Parsertyp
Grammatiktyp
Richtung
Ableitungsrichtung
Kompl.
Recursive Descent
frei von Linksrekursion top-down
Linksableitung
O(2n )
Shift-Reduce (naiv)
frei von -Regeln
bottom-up umg. Rechtsableitung O(2n )
LR(k)-Parser
LR(k)-Grammatik
hybrid
umg. Rechtsableitung O(n)
GLR-Parser (Tomita) beliebig
hybrid
umg. Rechtsableitung O(n3 )
(Foliensatz)
CYK-Parser
Chomsky-Normalform bottom-up
O(n3 )
Chart-Parser (Earley) frei von -Regeln
hybrid
O(n3 )
Kontextfreie Sprachen lassen sich über Schnitt einer Dyck-Sprache mit einer regulären Sprache
und einem Homomorphismus erzeugen (Chomsky-Schützenberger-Theorem). Eine DyckSprache ist eine Sprache von k balancierten Klammertypen, also: S → SS | [1 S]1 | [2 S]2 | · · · |
[k S]k | .
Es gibt verschiedene Grammatiktransformationen bzw. Normalformen (ggf. nur für kontextfreie Sprachen ohne ):
• Separierte Grammatik:(67) jede Regel erzeugt nur Nichtterminale oder nur Terminale, d.h.
→⊆ N × (N ∗ ∪ Σ)
• Chomsky-Normalform:(191) jede Regel erzeugt genau zwei Nichtterminale oder genau ein
Terminal, d.h. →⊆ N × (N 2 ∪ Σ) (stärkere Form der separierten Grammatik)
• Reduzierte Grammatik:(180) jedes Nichtterminal ist erreichbar und terminierbar
• Eliminierung von Linksrekursion:(Foliensatz) keine Regeln, so dass A ⇒+ A · V ∗
• Entfernen von Kettenregeln(119) /-Regeln(114)
• Greibach-Normalform: jede rechte Regelseite beginnt mit Terminal, d.h. →⊆ N × ΣN ∗
Aus einer Grammatik lässt sich einfach ein Kellerautomat konstruieren:(231)
δ(q, , A) = {hq, αi : A → α ∈ P } (Hypothesenbildung) und δ(q, a, a) = {hq, i} (Verifikation).
5
Stand: 15. Juli 2009
Tutorium Formale Sprachen und Automaten
Daniel Quernheim, Universität Potsdam
Der umgekehrte Weg ist etwas komplizierter.(237ff.) Die neue Grammatik besteht aus dem Startsymbol S und zusammengesetzten Nichtterminalen [q, A, p] (Zustand, Kellersymbol und Zustand).
Die Regeln sind dann: S → [q0 , Z0 , q] für jeden Zustand q und
[q, A, qm+1 ] → a[q1 , B1 , q2 ][q2 , B2 , q3 ] · · · [qm , Bm , qm+1 ]
für jeden Übergang hq1 , B1 B2 · · · Bm i ∈ δ(q, a, A)
(theoretisch muss man alle Zustände für q1 bis qm+1 berücksichtigen!)
Pumping Lemma für kontextfreie Sprachen:(202)
∃n : (∀x ∈ L : (|x| > |n| → ∃xuwvy = x : (|uv| ≥ 1 ∧ |uwv| ≤ n ∧ ∀i : xui wv i y ∈ L)))
(Anwendung ähnlich wie bei regulären Sprachen.)
Achtung: Typ-2-Sprachen sind nicht unter Schnitt abgeschlossen!(215) (Zu zeigen über an bn ck ∩
ak bn cn = an bn cn .) Allerdings ist der Schnitt einer kontextfreien und einer regulären Sprache
kontextfrei.(253)
2.3 Typ 0 und Typ 1
Typ-0-Sprachen (auch rekursiv aufzählbar genannt) werden von Turingmaschinen erkannt.
Turingmaschinen präzisieren den intuitiven Begriff des Algorithmus bzw. der Berechenbarkeit.
Eine deterministische (genauso mächtig wie nicht-deterministische) Turingmaschine (TM) ist ein
7-Tupel M = hQ, Σ, Γ, δ, q0 , B, F i mit:
•
•
•
•
•
Q einer endlichen Menge von Zuständen, Q ∩ Γ = ∅;
Γ einer endlichen Menge von Bandsymbolen, davon B ∈ Γ das Blankzeichen
Σ ⊆ Γ − {B} dem Eingabealphabet
δ : Q × Γ → Q × Γ × {R, L} der (partiellen) Bewegungsfunktion
q0 ∈ Q dem Startzustand und F ⊆ Q der Menge der Endzustände.
Eine ID einer Turingmaschine ist α1 qα2 mit q ∈ Q, α1 α2 ∈ Γ∗ ; dies bedeutet, dass α1 α2 das Band
bis zum letzten Nicht-Blankzeichen darstellt und der Lesekopf der TM auf dem ersten Symbol
von α2 steht. Folgende Schritte kann die TM in der ID X1 X2 . . . Xi1 qXi . . . Xn machen:
• wenn δ(q, Xi ) = (p, Y, L), dann: X1 X2 . . . Xi1 qXi . . . Xn ` X1 X2 . . . Xi2 pXi−1 Y Xi+1 . . . Xn ;
• wenn δ(q, Xi ) = (p, Y, R), dann: X1 X2 . . . Xi1 qXi . . . Xn ` X1 X2 . . . Xi2 Xi−1 Y pXi+1 . . . Xn .
Die Sprache einer TM M ist L(M ) = {w ∈ Σ∗ : q0 w `∗ α1 pα2 ∧ p ∈ F ∧ α1 α2 ∈ Γ∗ }. M hält
also in einem Endzustand an; es ist möglich, dass M niemals anhält. Damit gibt es folgende feinere
Einteilung der Typ-0-Sprachen:
• L ist rekursiv aufzählbar: es gibt eine TM M , so dass L = L(M );
• L ist rekursiv: es gibt eine TM M , so dass L = L(M ) und M hält für jedes w ∈ Σ∗ an.
Im Allgemeinen ist also das Wortproblem für rekursiv aufzählbare Sprachen unentscheidbar. Außerdem ist nicht entscheidbar, ob eine gegebene Turingmaschine für jede Eingabe anhält.
Die Klasse der rekursiven Sprachen ist eine echte Teilmenge der Klasse der rekursiv aufzählbaren
(Typ-0-Sprachen).
Weiterhin können Typ-0-Sprachen mit unbeschränkten Grammatiken beschrieben werden. Es kann
jedoch gezeigt werden, dass es Sprachen ohne Grammatik oder Turingmaschine (bzw.
6
Stand: 15. Juli 2009
Tutorium Formale Sprachen und Automaten
Daniel Quernheim, Universität Potsdam
Funktionen ohne Algorithmus) geben muss. Intuitive Begründung: da jeder Algorithmus (jede
Grammatik) endlich ist, kann man sie abzählen (d.h. sie sind gleichmächtig zu den natürlichen
Zahlen). Die Klasse der Funktionen, die die natürlichen Zahlen auf 0 und 1 abbilden, ist aber
gleichmächtig zur Menge der reellen Zahlen und damit überabzählbar.
Typ-1-Sprachen (kontextsensitiv) erhält man durch Einschränkung der Grammatik auf monotone Regeln, d.h. die rechte Regelseite darf nicht kürzer sein als die linke. Diese Eigenschaft
hat Entscheidbarkeit des Wortproblems (in O(2n )) zur Folge, da sich alle Satzformen bis zur
Länge des Eingabewortes aufzählen lassen. Es gibt eine Normalform, von der der Begriff kontextsensitiv herrührt: jede Regel hat hier die Form αBγ → αβγ mit α, β, γ ∈ V ∗ und B ∈ N sowie
β 6= . Es wird also nur je ein Nichtterminal im Kontext αγ ersetzt.
7
Stand: 15. Juli 2009
Herunterladen