Formale Sprachen und Komplexit¨ at
Sommersemester 2019
Kontextfreie Sprachen: Teil II
Prof. Dr. David Sabel
LFE Theoretische Informatik
Letzte ¨Anderung der Folien: 11. Juni 2019
Inhalts¨ ubersicht
Effiziente L¨ osung des Wortproblems f¨ ur CFLs:
Der Cocke-Younger-Kasami-Algorithmus Kellerautomaten
Deterministisch kontextfreie Sprachen
Entscheidbarkeitsresultate f¨ ur kontextfreie Sprachen
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 2/57 CYK PDAs Det.CFLs Entscheidbarkeit
Effizientes L¨ osen des Wortproblems f¨ ur CFLs
Algorithmus f¨ ur Typ 1-Sprachen hat exponentielle Laufzeit Jetzt: Algorithmus von Cocke, Younger und Kasami f¨ ur CFLs Ver¨ offentlich in den 1960er Jahren
Kurz: CYK-Algorithmus Polynomielle Laufzeit
Idee des CYK-Algorithmus
Eingabe:
CFG G = (V, Σ, P, S ) in Chomsky-Normalform und Wort w ∈ Σ
∗Ausgabe:
ja, wenn w ∈ L(G), nein, wenn w 6∈ L(G) Grundidee des Algorithmus:
(Rekursiver) Test, ob Variable A ein Wort u erzeugt.
Verwende Test zum Pr¨ ufen, ob S das Wort w erzeugt.
Idee des CYK-Algorithmus (2)
Pr¨ ufe, ob A ∈ V ein Wort u = a
1· · · a
nerzeugt:
Wenn u = a ∈ Σ, dann pr¨ ufe ob A → a ∈ P
Anderenfalls (|u| > 1) kann u nur erzeugt werden, wenn:
Es gibt Produktion A → BC ∈ P Es gibt Index 1 ≤ i < n, sodass:
B erzeugt a
1· · · a
iund C erzeugt a
i+1· · · a
nA
B C
| {z }
a1· · ·ai
| {z }
ai+1· · ·an
Daher pr¨ ufe f¨ ur alle A → BC ∈ P und alle i mit 1 ≤ i < n rekursiv, ob B das Wort w = a
1· · · a
iund C das Wort a
i+1· · · a
nerzeugt.
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 5/57 CYK PDAs Det.CFLs Entscheidbarkeit
Beispiel
S → AB | BA, A → AA | AB | a, B → BB | b S erzeugt bbbaab, denn S → BA und
B erzeugt bbb, denn B → BB und
B erzeugt bb, denn B → BB und B → b und B → b B erzeugt b, denn B → b
A erzeugt aab, denn A → AB und A erzeugt aa, denn A → AA und
Aerzeugta, dennA→aund Aerzeugta, dennA→a
B erzeugt b, denn B → b
Bevor der rekursive Algorithmus diesen richtigen Pfad findet, sucht er einige erfolglose ab, z.B. f¨ ur S → AB
Pr¨ufe, obAerzeugtbundBerzeugtbbabgilt.
Pr¨ufe, obAerzeugtbbundBerzeugtbabgilt.
Pr¨ufe, obAerzeugtbbbundBerzeugtabgilt.
Pr¨ufe, obAerzeugtbbbaundBerzeugtbgilt.
Naiv finden wiederholt dieselben Tests statt, z.B. ob A erzeugt b gilt.
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 6/57 CYK PDAs Det.CFLs Entscheidbarkeit
Idee des CYK-Algorithmus (3)
Effizienz: Statt Rekursion verwende dynamische Programmierung Algorithmus berechnet Menge V (i, j) ⊆ V , sodass
V (i, j ) = {A ∈ V | A ⇒
∗a
i· · · a
i+j−1}
” V (i, j ) enth¨ alt alle A ∈ V , die a
i· · · a
i+j−1erzeugen“
Berechnung der V (i, j):
Starte mit V (i, 1) = {A | A → a
i∈ P }.
Berechne V (i, j ) mit ansteigender L¨ ange j.
F¨ ur j > 1 gilt:
A ∈ V (i, j) g.d.w.
A → BC ∈ P und B ∈ V (i, k), C ∈ V (i + k, j − k)
Berechnung: f¨ ur festes (i, j) betrachte alle k mit k = 1, 2, . . . , j − 1 Finaler Schritt: Pr¨ ufe, ob S ∈ V (1, n) ist.
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 7/57 CYK PDAs Det.CFLs Entscheidbarkeit
Algorithmus 8: CYK-Algorithmus
Eingabe: CFG G = (V, Σ, P, S) in Chomsky-NF und Wort w = a
1· · · a
n∈ Σ
∗Ausgabe: Ja, wenn w ∈ L(G) und Nein, wenn w 6∈ L(G)
Beginn
f¨ ur i = 1 bis n tue
V (i, 1) = {A ∈ V | A → a
i∈ P } f¨ ur j = 2 bis n tue
f¨ ur i = 1 bis n + 1 − j tue V (i, j ) = ∅;
f¨ ur k = 1 bis j − 1 tue V (i, j) = V (i, j ) ∪
A → BC ∈ P, A ∈ V B ∈ V (i, k),
C ∈ V (i + k, j − k)
wenn S ∈ V (1, n) dann return Ja
sonst
return Nein
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 8/57 CYK PDAs Det.CFLs Entscheidbarkeit
Laufzeit des CYK-Algorithmus
Drei geschachtelte F¨ ur-Schleifen
Im inneren wird noch ¨ uber alle Produktionen aus P iteriert Mit n = |w| und |P | = Anzahl der Iterationen kann die Laufzeitkomplexit¨ at mit O(n
3· |P |) abgesch¨ atzt werden.
Theorem
Das Wortproblem f¨ ur kontextfreie Sprachen kann in Polynomialzeit entschieden werden.
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 9/57 CYK PDAs Det.CFLs Entscheidbarkeit
Beispiel
Sei w = bbddc und G = ({S, A, B}, {b, c, d}, P, S) mit
P = {S → AC, A → BE, A → BD, E → AD, C → c, B → b, D → d}
V (i, j )-Tabelle ist zun¨ achst leer:
V (i, j)
b b d d c
1 2 3 4 5
1 2 3 4 5
i
j
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 10/57 CYK PDAs Det.CFLs Entscheidbarkeit
Beispiel (2)
Sei w = bbddc und G = ({S, A, B}, {b, c, d}, P, S) mit
P = {S → AC, A → BE, A → BD, E → AD, C → c, B → b, D → d}
F¨ ullen der V (i, 1)-Eintr¨ age:
V (i, j )
b b d d c
1 2 3 4 5
1 2 3 4 5
i
j
B B D D C
Beispiel (3)
Sei w = bbddc und G = ({S, A, B}, {b, c, d}, P, S) mit
P = {S → AC, A → BE, A → BD, E → AD, C → c, B → b, D → d}
V(i, j)
b b d d c
1 2 3 4 5
1 2 3 4 5
i
j
B B D D C
A E A S
Da S ∈ V (1, 5) gilt w ∈ L(G)
Kellerautomaten: Motivation
Endliche Automaten (DFA & NFA) haben fast keinen Speicher Einziger Speicher dort: Zust¨ ande Daher endlicher Speicher
Daher z.B. unm¨ oglich {w$w | w ∈ {a, b, c}
∗} zu erkennen:
Man m¨ usste beim Lesen von w alle gelesenen Zeichen speichern, um sie dann beim Lesen von w zu vergleichen.
Kellerautomaten: F¨ ugen einen Speicher hinzu
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 13/57 CYK PDAs Det.CFLs Entscheidbarkeit
Kellerspeicher
Kellerautomaten haben Kellerspeicher
(Stack, LIFO-Speicher, last-in-first-out-Speicher)
Uendlich großer Speicher als Stapel auf den nur von oben zugegriffen werden kann.
Zustands¨ ubergang:
Endlicher Automat Kellerautomat
Eingabe Zustand und Zeichen Zustand, Zeichen, oberstes Symbol im Keller
Ausgabe n¨ achster Zustand Zustand, Sequenz von Kel- lersymbolen, die das erste Symbol ersetzen
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 14/57 CYK PDAs Det.CFLs Entscheidbarkeit
Kellerautomat: Illustration
a
1a
2a
3· · · a
nEingabeband
Lesekopf (bewegt sich nur nach rechts)
Keller
Zugriff auf Keller nur von oben endliche
Steuerung
A
1A
2.. . A
nTCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 15/57 CYK PDAs Det.CFLs Entscheidbarkeit
Kellerautomaten: Definition
Definition (Kellerautomat, PDA)
Ein (nichtdeterministischer) Kellerautomat (PDA, pushdown automaton) ist ein Tupel M = (Z, Σ, Γ, δ, z
0, #), wobei
Z ist eine endliche Menge von Zust¨ anden, Σ ist das (endliche) Eingabealphabet, Γ ist das (endliche) Kelleralphabet,
δ : (Z × (Σ ∪ {ε}) × Γ) → P
e(Z × Γ
∗) ist die
Zustands¨ uberf¨ uhrungsfunktion (oder nur Uberf¨ ¨ uhrungsfunktion) z
0∈ Z ist der Startzustand und
# ∈ Γ ist das Startsymbol im Keller.
(z
0, B
1· · · B
k) ∈ δ(z, a, A) bedeutet: im Zustand z bei Eingabe a und A oben auf dem Keller darf der PDA in Zustand z
0wechseln: Dabei wird A durch B
1· · · B
kersetzt (B
1liegt oben; k = 0 ist erlaubt)
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 16/57 CYK PDAs Det.CFLs Entscheidbarkeit
Illustration: Zustands¨ ubergang
(z
0, B
1· · · B
k) ∈ δ(z, a, A) a a
0· · ·
z
A .. .
→
a a
0· · ·
z
0B
1.. . B
k.. .
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 17/57 CYK PDAs Det.CFLs Entscheidbarkeit
Bemerkungen
Mit unserer Definition von PDAs:
PDAs sind nichtdeterministisch erlauben ε- ¨ Uberg¨ ange
keine Endzust¨ ande!
Wir werden sehen:
Akzeptieren: Wenn Eingabe verarbeitet und Keller leer Am Anfang: Keller enth¨ alt #
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 18/57 CYK PDAs Det.CFLs Entscheidbarkeit
Konfigurationen
Buchf¨ uhren w¨ ahrend einer Berechnung mit dem PDA:
akueller Zustand, Resteingabe, aktueller Kellerinhalt Wird dargestellt durch PDA-Konfiguration
Definition (Konfiguration eines Kellerautomaten) Sei M = (Z, Σ, Γ, δ, z
0, #) ein PDA.
Eine Konfiguration von M ist ein Tripel (z, w, W ) mit z ∈ Z , w ∈ Σ
∗, W ∈ Γ
∗.
Die Menge aller Konfigurationen f¨ ur M ist daher Z × Σ
∗× Γ
∗. z ist der aktuelle Zustand
w ist die Resteingabe W ist der Kellerinhalt
Transitionsrelation
Definition (Transitionsrelation f¨ ur PDA-Konfigurationen) F¨ ur einen PDA M = (Z, Σ, Γ, δ, z
0, #) definieren wir
`
M⊆ (Z × Σ
∗× Γ
∗) × (Z × Σ
∗× Γ
∗) durch
(z, a
1· · · a
n, A
1· · · A
m) `
M(z
0, a
2· · · a
n, W A
2· · · A
m) falls (z
0, W ) ∈ δ(z, a
1, A
1) und
(z, w, A
1· · · A
m) `
M(z
0, w, W A
2· · · A
m) falls (z
0, W ) ∈ δ(z, ε, A
1).
Weitere Notation:
`
∗M= reflexiv-transitive H¨ ulle von `
M`
iM= i-fache Anwendung von `
MWenn M eindeutig: ` statt `
MPDA: Akzeptierte Sprache
Definition (Akzeptierte Sprache eines PDA)
Sei M = (Z, Σ, Γ, δ, z
0, #) ein PDA. Die durch M akzeptierte Sprache L(M ) ist definiert als
L(M) := {w ∈ Σ
∗| (z
0, w, #) `
∗(z, ε, ε) f¨ ur ein z ∈ Z}.
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 21/57 CYK PDAs Det.CFLs Entscheidbarkeit
Notation als Zustandsgraph
Darstellung analog zu DFA / NFA
F¨ ur (z
0, B
1· · · B
k) ∈ δ(z, a, A) zeichnen wir
z z
0(A, a) : B
1· · · B
kBeachte, dass das Startsymbol im Keller bekannt sein muss (¨ uberlicherweise #)
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 22/57 CYK PDAs Det.CFLs Entscheidbarkeit
Beispiel
PDA M = ({z
0, z
1}, {a, b}, {B, #}, δ, z
0, #) mit
δ(z
0, a, #) = {(z
0, B#)} δ(z
0, b, B) = {(z
1, ε)} δ(z
1, ε, #) = {(z
1, ε)}
δ(z
0, a, B) = {(z
0, BB)} δ(z
1, b, B) = {(z
1, ε)} δ(z
0, ε, #) = {(z
0, ε)}
und δ(z
i, c, A) = ∅ in allen anderen F¨ allen Zustandsgraph dazu:
z
0z
1(#, a) : B #, (#, ε) : ε, (B, a) : BB
(B, b) : ε
(B, b) : ε, (#, ε) : ε
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 23/57 CYK PDAs Det.CFLs Entscheidbarkeit
Beispiel (2)
z
0z
1(#, a) : B#, (#, ε) : ε, (B, a) : BB
(B, b) : ε
(B, b) : ε, (#, ε) : ε
M akzeptiert ε, denn (z
0, ε, #) ` (z
0, ε, ε).
M akzeptiert das Wort a
ib
if¨ ur i > 0, da (z
0, a
ib
i, #) ` (z
0, a
i−1b
i, B#) `
∗(z
0, b
i, B
i#)
` (z
1, b
i−1, B
i−1#) `
∗(z
1, ε, #) ` (z
1, ε, ε).
andere Worte werden nicht akzeptiert:
f¨ ur jedes gelesene a wird ein B auf den Keller gelegt, das durch lesen von b abgebaut werden muss.
In z
0k¨ onnen nur a’s und ein b gelesen werden, dann Wechsel in z
1und dort k¨ onnen nur b’s gelesen werden.
L(M) = {a
ib
i| i ∈ N }
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 24/57 CYK PDAs Det.CFLs Entscheidbarkeit
Weiteres Beispiel
Sei M = ({z
0, z
1}, {a, b}, {A, B, #}, δ, z
0, #) mit δ(z
0, a, #) = {(z
0, A#), (z
1, #)}
δ(z
0, b, #) = {(z
0, B#), (z
1, #)}
δ(z
0, a, A) = {(z
0, AA), (z
1, A)}
δ(z
0, b, A) = {(z
0, BA), (z
1, A)}
δ(z
0, a, B) = {(z
0, AB), (z
1, B)}
δ(z
0, b, B) = {(z
0, BB), (z
1, B)}
δ(z
0, ε, A) = {(z
1, A)}
δ(z
0, ε, B) = {(z
1, B)}
δ(z
0, ε, #) = {(z
1, #)}
δ(z
1, a, A) = {(z
1, ε)}
δ(z
1, b, B) = {(z
1, ε)}
δ(z
1, ε, #) = {(z
1, ε, ε)}
und δ(z
i, c, C) = ∅ f¨ ur alle anderen F¨ alle.
L(M) = {w ∈ {a, b}
∗| w ist Palindrom}:
In z
0werden die gelesenen Zeichen (als A, B) auf den Keller gelegt In z
1werden sie dann wieder abgearbeitet (durch Lesen von a, b) Wechsel von z
0zu z
1mit einem Zeichen (f¨ ur Palindrome uau, ubu) oder mit ε (f¨ ur Palindrome uu).
Richtiger Zeitpunkt des Wechsels: Macht der Nichtdeterminismus.
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 25/57 CYK PDAs Det.CFLs Entscheidbarkeit
Akzeptanz durch Endzust¨ ande
Definition (PDA mit Endzust¨ anden)
Ein (nichtdeterministischer) Kellerautomat mit Endzust¨ anden (PDA mit Endzust¨ anden) ist ein Tupel M = (Z, Σ, Γ, δ, z
0, #, E) wobei
Z ist eine endliche Menge von Zust¨ anden, Σ ist das (endliche) Eingabealphabet, Γ ist das (endliche) Kelleralphabet
δ : Z × ((Σ ∪ {ε}) × Γ) → P
e(Z × Γ
∗) ist die Uberf¨ ¨ uhrungsfunktion z
0∈ Z ist der Startzustand,
# ∈ Γ ist das Startsymbol im Keller und E ⊆ Z ist die Menge der Endzust¨ ande.
Ein PDA mit Endzust¨ anden akzeptiert die Sprache
L(M) = {w ∈ Σ
∗| (z
0, w, #) `
∗(z, ε, W ) und z ∈ E}.
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 26/57 CYK PDAs Det.CFLs Entscheidbarkeit
Aquivalenz: Akzeptanz durch Endzust¨ ¨ ande / leeren Keller
Lemma
F¨ ur jeden Kellerautomat mit Endzust¨ anden M kann ein
Kellerautomat M
0(ohne Endzust¨ ande) konstruiert werden, so dass L(M) = L(M
0) gilt
Lemma
F¨ ur jeden Kellerautomat M kann ein Kellerautomat mit
Endzust¨ anden M
0konstruiert werden, so dass L(M) = L(M
0) gilt.
Satz
PDAs mit Endzust¨ anden und PDAs ohne Endzust¨ ande (mit Akzeptanz durch leeren Keller) sind ¨ aquivalente Formalismen.
Beweise dazu sind im Skript
Aquivalenz: PDAs und CFLs ¨
Wir zeigen, dass PDAs genau die Typ 2-Sprachen erkennen.
Beweis in zwei Teilen:
1
Konstruktion eines PDA aus CFG in Greibach-NF
2
Konstruktion einer CFG aus einem PDA (sogenannte Tripelkonstruktion)
(PDA mit Einschr¨ ankung:
max. 2 Kellersymbole pro Schritt erzeugen)
CFG → PDA
Ideen:
CFG in Greibach-Normalform gegeben PDA simuliert Linksableitung S ⇒ w
Da CFG in Greibach-NF, sieht eine Linksableitung nach i-Schritten immer so aus: S ⇒
ia
1· · · a
iB
1· · · B
j. Start mit Eingabe w und S auf dem Keller
Nach i Schritten, ist a
1· · · a
iverarbeitet und B
1· · · B
jauf dem Keller
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 29/57 CYK PDAs Det.CFLs Entscheidbarkeit
CFG → PDA (2)
Satz
Jede kontextfreie Sprache wird durch einen Kellerautomaten erkannt.
Beweis:
Sei L eine CFL und G = (V, Σ, P, S) mit L(G) = L \ {ε} in Greibach-NF.
Sei M = ({z
0}, Σ, V, δ, z
0, S) ein PDA, sodass
δ(z
0, a, A) := {(z
0, B
1· · · B
n) | (A → aB
1· · · B
n) ∈ P } und falls ε ∈ L setze zus¨ atzlich δ(z
0, ε, S) := {(z
0, ε)}.
In allen anderen F¨ allen sei δ(z
0, ε, A) = ∅.
Wir zeigen L(M ) = L.
Zun¨ achst: ε ∈ L g.d.w. (z
0, ε, S) ` (z
0, ε, ε) und damit ε ∈ L(M).
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 30/57 CYK PDAs Det.CFLs Entscheidbarkeit
CFG → PDA (2)
M= ({z0},Σ,Σ∪V, δ, z0, S)mitδ(z0, a, A) :={(z0, B1· · ·Bn)|(A→aB1· · ·Bn)∈P}. . .
Beweis (Fortsetzung):
F¨ ur die weiteren F¨ alle zeigen wir f¨ ur alle i ∈ N (mit Induktion ¨ uber i) S ⇒
iGa
1· · · a
iB
1· · · B
mmit einer Linksableitung
genau dann, wenn
(z
0, a
1· · · a
iw, S ) `
i(z
0, w, B
1· · · B
m) f¨ ur alle w ∈ Σ
∗. Basis i = 0: gilt, denn S ⇒
0GS und (z
0, w, S) `
0(z
0, w, S) F¨ ur i > 0 und “ ⇒”:
Sei S ⇒
iGa
1· · · a
iB
1· · · B
meine Linksableitung.
Da G in Greibach-NF, kann diese geschrieben werden als S ⇒
i−1Ga
1· · · a
i−1B
xB
j+1· · · B
m⇒
Ga
1· · · a
iB
1· · · B
m, wobei B
x→ a
iB
1· · · B
j∈ P als letzte Produktion angewendet wurde.
Induktionsannahme liefert: S ⇒
i−1Ga
1· · · a
i−1B
xB
j+1· · · B
mgenau dann, wenn (z
0, a
1· · · a
i−1w, S) `
i−1(z
0, w, B
xB
j+1· · · B
k).
Verwende w = a
iw
0und da (z
0, B
1· · · B
j) ∈ δ(z
0, a
i, B
x), gilt (z
0, a
1· · · a
iw
0, S) `
i(z
0, w
0, B
1· · · B
k) f¨ ur alle w
0.
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 31/57 CYK PDAs Det.CFLs Entscheidbarkeit
CFG → PDA (3)
M= ({z0},Σ,Σ∪V, δ, z0, S)mitδ(z0, a, A) :={(z0, B1· · ·Bn)|(A→aB1· · ·Bn)∈P}. . .
Beweis (Fortsetzung):
F¨ ur i > 0 und “⇐”:
Sei (z
0, a
1· · · a
iw, S) `
i(z
0, w, B
1· · · B
k).
Dann muss der letzte Schritt a
igelesen haben D.h. die Folge l¨ asst sich zerlegen in
(z
0, a
1· · · a
iw, S) `
i−1(z
0, a
iw, B
xB
j+1· · · B
k) ` (z
0, w, B
1· · · B
k),
wobei (z
0, B
1· · · B
j) ∈ δ(z
0, a
i, B
x).
Dann muss B
x→ aB
1· · · B
jeine Produktion in P sein.
Induktionsannahme liefert: S ⇒
i−1Ga
1· · · a
i−1B
xB
j+1· · · B
kund wir k¨ onnen obige Produktion anwenden und erhalten S ⇒
iGa
1· · · a
iB
1· · · B
k.
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 32/57 CYK PDAs Det.CFLs Entscheidbarkeit
Hilfssatz f¨ ur PDA → CFG-Beweis
Lemma (PDAs mit Erzeugung von ≤ 2 Kellersymbolen) F¨ ur jeden PDA M = (Z, Σ, Γ, δ, z
0, #) gibt es einen PDA M
0= (Z, Σ, Γ
0, δ
0, z
0, #) mit L(M) = L(M
0), sodass gilt: Wenn (z
0, B
1· · · B
k) ∈ δ
0(z, a, A) (f¨ ur a ∈ (Σ ∪ {ε})), dann ist k ≤ 2.
Beweis (Skizze):
Transformiere M in M
0wie folgt (mit A ∈ Γ und a ∈ (Σ ∪ {ε})):
(z
0, B
1· · · B
k) ∈ δ
0(z, a, A) wenn (z
0, B
1· · · B
k) ∈ δ(z, a, A), k ≤ 2.
falls (z
0, B
1· · · B
k) ∈ δ(z, a, A) mit k > 2, dann (z, C
kB
k) ∈ δ
0(z, a, A), und
δ(z, ε, C
i) = {(z, C
i−1B
i−1)} f¨ ur alle i mit 4 ≤ i ≤ k, und δ(z, ε, C
3) = {(z
0, B
1B
2)}
wobei C
3, . . . , C
k∈ Γ
0neue Kellersymbole sind
(diese werden jeweils neu erzeugt pro ersetztem Eintrag).
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 33/57 CYK PDAs Det.CFLs Entscheidbarkeit
PDA → CFG
Ideen
Verwende PDA mit Erzeugung von ≤ 2 Kellersymbolen Erzeuge Grammatik mit Tripelkonstruktion
Variablen der Grammatik:
Tripel hz
0, A, zi, die alle Worte w erzeugt, die den PDA von z
0mit Kellerinhalt A und Wort w zu z und leeren Keller f¨ uhren
Produktionen
hz
0, A, zi → a wenn z
0(A, a) : ε z
hz
0, A, zi → ahz
00, B, zi wenn z
0z
00(A, a) : B
hz
0, A, zi → ahz
00, B, z
1ihz
1, C, zi wenn z
0z
00(A, a) : BC
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 34/57 CYK PDAs Det.CFLs Entscheidbarkeit
PDA → CFG (2)
Satz
Kellerautomaten akzeptieren kontextfreie Sprachen.
Beweis: Sei M = (Z, Σ, Γ, δ, z
0, #) ein PDA mit k ≤ 2 f¨ ur alle (z
0, B
1· · · B
k) ∈ δ(z, a, A) (und a ∈ (Σ ∪ {ε})).
Konstruiere G = (V, Σ, P, S ) mit S neues Symbol und V = {S} ∪ {hz
i, A, z
ji | z
i, z
j∈ Z, A ∈ Γ}
P = {S → hz
0, #, zi | z ∈ Z}
∪ {hz
0, A, zi → a | (z, ε) ∈ δ(z
0, a, A), a ∈ Σ ∪ {ε}, A ∈ Γ}
∪ {hz
0, A, zi → ahz
00, B, zi | (z
00, B) ∈ δ(z
0, a, A), z ∈ Z, a ∈ Σ ∪ {ε}, A ∈ Γ}
∪ {hz
0, A, zi → ahz
00, B, z
1ihz
1, C, z i | (z
00, BC) ∈ δ(z
0, a, A),
z, z
1∈ Z, a ∈ Σ ∪ {ε}, A ∈ Γ}
Wir beweisen hz
0, A, zi ⇒
∗Gw g.d.w.(z
0, w, A) `
∗M(z, ε, ε).
Da S → hz
0, A, zi folgt: w ∈ L(G) ⇐⇒ w ∈ L(M), d. h. L(G) = L(M ).
PDA → CFG (3)
” ⇒“:
Sei hz
0, A, zi ⇒
iGw eine Linksableitung.
Wir verwenden Induktion ¨ uber i.
Basis i = 1: Sei hz
0, A, zi ⇒
Gw
Verwendete Produktion muss hz
0, A, zi → a sein
Dann muss (z, ε) ∈ δ(z
0, a, A) gelten und damit gilt: (z
0, a, A) ` (z, ε, ε).
Schritt: hz
0, A, zi ⇒
Gu ⇒
i−1Gw. mit i − 1 > 0
Wenn u = a ∈ (Σ ∪ {ε}), dann kann i − 1 > 0 nicht gelten.
Wenn u = ahz
00, B, zi, dann (z
00, B) ∈ δ(z
0, a, A) und u = ahz
00, B, zi ⇒
i−1aw
0= w.
Dann gilt hz
00, B, zi ⇒
i−1w
0und die Induktionsannahme liefert
(z
00, w
0, B) `
∗M(z, ε, ε). Mit (z
00, B) ∈ δ(z
0, a, A) zeigt dies
(z
0, u, A) = (z
0, aw
0, A) `
M(z
00, w
0, B) `
∗M(z, ε, ε).
PDA → CFG (4)
. . .
Wenn u = ahz
00, B, z
1ihz
1, C, zi, dann ist (z
00, BC) ∈ δ(z
0, a, A) und u = ahz
00, B, z
1ihz
1, C, zi ⇒
i−1aw
0= w
Dann gilt auch hz
00, B, z
1ihz
1, C, zi ⇒
i−1w
0und es gibt Linksableitungen hz
00, B, z
1i ⇒
jw
00und hz
1, C, zi ⇒
kw
01mit j + l ≤ i − 1, w
0= w
00w
01. F¨ ur beide k¨ onnen wir die Induktionsannahme anwenden und erhalten (z
00, w
00, B) `
∗M(z
1, ε, ε) und (z
1, w
01, C) `
∗M(z, ε, ε).
Ab¨ andern der 1. Konfigurationsfolge: C auf den Keller & w
01anh¨ angen (z
00, w
0, BC) = (z
00, w
00w
10, BC) `
∗M(z
1, w
01, C).
Anh¨ angen der 2. Konfigurationsfolge liefert: (z
00, w
0, BC) `
∗M(z, ε, ε).
Da (z
00, BC) ∈ δ(z
0, a, A), gilt
(z
0, u, BC) = (z
0, aw
0, BC) `
M(z
00, w
0, BC) `
∗M(z, ε, ε).
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 37/57 CYK PDAs Det.CFLs Entscheidbarkeit
PDA → CFG (5)
” ⇐“:
Sei (z
0, w, A) `
iM(z, ε, ε). Zeige hz
0, A, zi ⇒
∗Gw mit Induktion ¨ uber i Basis i = 1: Dann gilt w = a ∈ (Σ ∪ {ε}) und (z, ε) ∈ δ(z
0, w, A).
Damit gibt es hz
0, A, zi → a ∈ P und daher hz
0, A, zi ⇒
Ga.
Schritt: Sei i > 1 und daher (z
0, aw
0, A) ` (z
00, w
0, α) `
i−1M(z, ε, ε) f¨ ur i − 1 > 0, a ∈ Σ ∪ {ε} und α = ε, α = B oder α = BC.
Wir betrachten alle drei F¨ alle f¨ ur α einzeln:
α = ε: Dieser Fall ist nicht m¨ oglich, da i − 1 > 0 nicht gelten kann.
α = B. Dann ist hz
0, A, zi → ahz
00, B, zi ∈ P .
Da (z
00, w
0, B) `
i−1M(z, ε, ε), liefert Induktionsannahme hz
00, B, zi ⇒
∗Gw
0und daher: hz
0, A, zi ⇒
Gahz
00, B, zi ⇒
∗Gaw
0= w.
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 38/57 CYK PDAs Det.CFLs Entscheidbarkeit
PDA → CFG (6)
. . .
α = BC. Dann ist hz
0, A, zi → hz
00, B, z
1ihz
1, C, zi ∈ P . Schreibe (z
00, w
0, BC) `
i−1M(z, ε, ε) als
(z
00, w
01w
20, BC) `
jM(z
1, w
02, C ) `
kM(z, ε, ε) mit j + k = i − 1.
Weglassen von C und w
02im ersten Teil zeigt:
(z
00, w
01, B) `
jM(z
1, ε, ε),
Da j < i und k < i liefert Induktionsannahme hz
00, B, z
1i ⇒
∗Gw
01und hz
1, C, zi ⇒
∗Gw
20. Daher gilt
hz
0, A, zi ⇒
Gahz
00, B, z
1ihz
1, C, zi ⇒
∗Gaw
01hz
1, C, zi ⇒
∗Gaw
10w
02= w.
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 39/57 CYK PDAs Det.CFLs Entscheidbarkeit
Geschafft...
Die gezeigten S¨ atze zusammengefasst ergeben:
Theorem
Kellerautomaten erkennen genau die kontextfreien Sprachen.
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 40/57 CYK PDAs Det.CFLs Entscheidbarkeit
Bemerkung
Die bisherigen Beweise zeigen auch, dass man PDAs einschr¨ anken kann auf PDAs mit genau einem Zustand:
Sei M ein PDA.
Transformiere M in Grammatik G mit L(G) = L(M ) Transformiere G in G
0in Greibach-Normalform (mit L(G
0) = L(G) \ ε)
Transformiere Grammatik G
0in PDA M
0mit L(M
0) = L(G) unsere Konstruktion verwendet nur einen Zustand!
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 41/57 CYK PDAs Det.CFLs Entscheidbarkeit
Beispiel
z
0z
1(#, a) : B#, (#, ε) : ε, (B, a) : BB
(B, b) : ε
(B, b) : ε, (#, ε) : ε
Der vorherige Beweis konstruiert die Grammatik G = (V, Σ, P, S) mit V = {S, hz
0, B, z
0i, hz
0, B, z
1i, hz
1, B, z
0i, hz
1, B, z
1i,
hz
0, #, z
0i, hz
0, #, z
1i, hz
1, #, z
0i, hz
1, #, z
1i}
P = {S → hz
0, #, z
0i, S → hz
0, #, z
1i.}
∪ {hz
0, B, z
1i → b, hz
1, B, z
1i → b, hz
0, #, z
0i → ε, hz
1, #, z
1i → ε}
∪ {hz
0, #, z
0i → ahz
0, B, z
0i, hz
0, #, z
1i → ahz
0, B, z
1i}
∪ {hz
0, B, z
0i → ahz
0, B, z
0ihz
0, B, z
0i, hz
0, B, z
1i → ahz
0, B, z
0ihz
0, B, z
1i, hz
0, B, z
0i → ahz
0, B, z
1ihz
1, B, z
0i, hz
0, B, z
1i → ahz
0, B, z
1ihz
1, B, z
1i}
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 42/57 CYK PDAs Det.CFLs Entscheidbarkeit
Beispiel (2)
Vereinfachen der Grammatik ergibt:
{S → hz
0, #, z
0i | hz
0, #, z
1i, hz
0, #, z
0i → ε, hz
0, #, z
1i → ahz
0, B, z
1i, hz
0, B, z
1i → b | ahz
0, B, z
1ihz
1, B, z
1i, hz
1, B, z
1i → b}
Umbenennen, Streichen von nicht erreichbaren Variablen und Entfernen von Einheitsproduktionen ergibt
G = ({S, B, C}, {a, b}, {S → ε | aB, B → b | aBC, C → b}, S) (ist bis auf ε-Produktion in Greibach-NF.)
Beispiel (3)
Der vorherige Beweis konstruiert f¨ ur
G = ({S, B, C }, {a, b}, {S → ε | aB, B → b | aBC, C → b}, S)
den PDA M = ({z
0}, Σ, Σ ∪ V, δ, z
0, S) mit
δ(z
0, a, S) = {(z
0, B)} δ(z
0, b, B) = {(z
0, ε)} δ(z
0, a, B) = {(z
0, BC)}
δ(z
0, b, C ) = {(z
0, ε)} δ(z
0, ε, S ) = {(z
0, ε)} δ(z
0, d, A) = ∅ sonst Eine Konfigurationsfolge f¨ ur die Eingabe aaabbb ist
(z
0, aaabbb, S)
` (z
0, aabbb, B)
` (z
0, abbb, BC)
` (z
0, bbb, BCC)
` (z
0, bb, CC)
` (z
0, b, C)
` (z
0, ε, ε)
Deterministisch kontextfreie Sprachen
Definiert durch deterministische Kellerautomaten mit Akzeptanz durch Endzust¨ ande.
ε- ¨ Uberg¨ ange sind erlaubt, aber nur wenn es keinen anderen
Ubergang (mit einem Terminalzeichen und selben Kellersymbol) gibt. ¨ Definition (Deterministischer Kellerautomat, DPDA)
Ein Kellerautomat mit Endzust¨ anden M = (Z, Σ, Γ, δ, z
0, #, E) ist deterministisch (ein DPDA) wenn f¨ ur alle (z, a, A) ∈ (Z, Σ, Γ) gilt:
|δ(z, a, A)| + |δ(z, ε, A)| ≤ 1.
Die von DPDAs akzeptierten Sprachen heißen deterministisch kontextfrei.
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 45/57 CYK PDAs Det.CFLs Entscheidbarkeit
Beispiele (1)
Satz
Die Sprache L = {w$w | w ∈ {a, b}
∗} ist deterministisch kontextfrei.
Beweis: Betrachte den DPDA
M = ({z
0, z
1, z
2}, {a, b, $}, {#, A, B}, δ, z
0, #, {z
2}) mit δ(z
0, a, #) = {(z
0, A#)}
δ(z
0, b, #) = {(z
0, B#)}
δ(z
0, a, A) = {(z
0, AA)}
δ(z
0, b, A) = {(z
0, BA)}
δ(z
0, a, B) = {(z
0, AB)}
δ(z
0, b, B) = {(z
0, BB)}
δ(z
0, $, A) = {(z
1, A)}
δ(z
0, $, B ) = {(z
1, B )}
δ(z
0, $, #) = {(z
1, #)}
δ(z
1, a, A) = {(z
1, ε)}
δ(z
1, b, B) = {(z
1, ε)}
δ(z
1, ε, #) = {(z
2, ε)}
und δ(z
i, c, C) = ∅ sonst
Beachte: L = {ww | w ∈ {a, b}
∗} ist nicht deterministisch kontextfrei aber kontextfrei
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 46/57 CYK PDAs Det.CFLs Entscheidbarkeit
Beispiele (2)
Satz
Die Sprache L = {a
ib
i| i ∈ N
>0} ist deterministisch kontextfrei.
Beweis: Betrachte den DPDA
M = ({z
0, z
1, z
2}, {a, b}, {#, A}, δ, z
0, #, {z
2}) mit δ(z
0, a, #) = {(z
0, A#)}
δ(z
0, a, A) = {(z
0, AA)}
δ(z
0, b, A) = {(z
1, ε)}
δ(z
1, b, A) = {(z
1, ε)}
δ(z
1, ε, #) = {(z
2, ε)}
und δ(z
i, c, B) = ∅, sonst
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 47/57 CYK PDAs Det.CFLs Entscheidbarkeit
Eigenschaften von deterministisch kontextfreien Sprachen
Theorem (Eigenschaften determin. kontextfreier Sprachen)
1
Das Wortproblem f¨ ur deterministisch kontextfreie Sprachen kann in Linearzeit entschieden werden.
2
F¨ ur deterministisch kontextfreie Sprachen gibt es eindeutige Grammatiken.
3
Deterministisch kontextfreie Sprachen sind unter Komplementbildung abgeschlossen.
Beweis: siehe Literatur
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 48/57 CYK PDAs Det.CFLs Entscheidbarkeit
Weitere Eigenschaften
Satz
Deterministisch kontextfreie Sprachen sind nicht abgeschlossen bez¨ uglich Vereinigung und Schnitt.
Beweis: i) Schnittbildung:
Die Sprachen L
1= {a
nb
nc
m| n, m ∈ N
>0} und
L
2= {a
nb
mc
m| n, m ∈ N
>0} sind deterministisch kontextfrei L
1∩ L
2= {a
nb
nc
n| n ∈ N
>0} ist nicht kontextfrei.
ii) Vereinigung:
L ∩ L
0= L ∪ L
0Annahme: Det. CFLs abgeschlossen bez. Vereinigung Da Det. CFLs auch abgeschlossen bez. Komplement, folgt:
Det. CLFs abgeschlossen bez. Schnitt. Widerspruch!
D.h. Annahme falsch, Det. CFLs nicht abgeschlossen bez. ∪.
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 49/57 CYK PDAs Det.CFLs Entscheidbarkeit
Weitere Eigenschaften (2)
Satz
Der Schnitt einer (deterministisch) kontextfreien Sprachen mit einer regul¨ aren Sprache ist (deterministisch) kontextfrei.
Beweis: Sei M = (Z, Σ, Γ, δ, z
0, #, E ) ein PDA mit Endzust¨ anden und M
0= (Z
0, Σ, δ
0, z
00, E
0) ein DFA. Konstruiere PDA mit Endzust¨ anden:
M
00= (Z × Z
0, Σ, δ
00, (z
0, z
00), #, E × E
0) mit (z
k, z
0k, B
1· · · B
m) ∈ δ
00((z
i, z
0i), a, A) falls
(z
k, B
1· · · B
m) ∈ δ(z
i, a, A) und δ
0(z
i0, a) = z
k0und
(z
k, z
i0, B
1· · · B
m) ∈ δ
00((z
i, z
i0), ε, A) falls (z
k, B
1· · · B
m) ∈ δ(z
i, ε, A).
Es gilt:
L(M
00) = L(M ) ∩ L(M
0), denn M
00simuliert M und M
0gleichzeitig, und akzeptiert nur, wenn beide Automaten akzeptieren.
M
00ist deterministisch, wenn M deterministisch ist.
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 50/57 CYK PDAs Det.CFLs Entscheidbarkeit
Entscheidbarkeitsfragen f¨ ur CFLs
CYK-Algorithmus zeigt: Das Wortproblem f¨ ur kontextfreie Grammatiken ist effizient entscheidbar.
Viele Fragestellungen sind f¨ ur CFLs unentscheidbar (z.B. das ¨ Aquivalenzproblem und das Schnittproblem) Wir betrachten weitere Entscheidungsprobleme
Leerheitsproblem
Satz
Das Leerheitsproblem f¨ ur kontextfreie Grammatiken ist entscheidbar.
Beweis:
Sei L als CFG gegeben
Pr¨ ufe zun¨ achst, ob ε ∈ L (wenn ja, dann ist L nicht leer) Sei G = (V, Σ, P, S) eine CFG in Chomsky-NF mit L(G) = L \ {ε}.
Der folgende Algorithmus markiert alle A ∈ V mit {w ∈ Σ
∗| A ⇒
∗Gw} 6= ∅
Pr¨ ufe, ob S markiert wird (wenn ja, dann ist L nicht-leer)
Algorithmus 9: Markierung der Variablen, die nichtleere Sprachen erzeugen
Eingabe: Grammatik G = (V, Σ, P, S) in Chomsky-Normalform Ausgabe: Menge W ⊆ V aller Variablen, die nicht die leere
Sprache erzeugen Beginn
W := {A ∈ V | A → a ∈ P, a ∈ Σ};
wiederhole W
alt:= W ;
W := W
alt∪ {A | A → BC ∈ P, B ∈ W
alt, C ∈ W
alt};
bis W = W
alt; return W
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 53/57 CYK PDAs Det.CFLs Entscheidbarkeit
Endlichkeitsproblem
Satz
Das Endlichkeitsproblem f¨ ur kontextfreie Sprachen ist entscheidbar.
Beweis: Sei G = (V, Σ, P, S ) eine CFG in Chomsky-NF. Sei n die Zahl aus dem Pumping-Lemma f¨ ur CFGs (z.B. n = 2
|V|siehe Beweis Pumping-L.).
Wir zeigen zun¨ achst: Es gilt |L(G)| = ∞ g.d.w. es ein Wort z ∈ L(G) mit n ≤ |z| < 2n gibt:
” ⇐“:
Sei z ∈ L mit |z| ≥ n.
Pumping-Lemma zeigt: uv
iwx
iy ∈ L f¨ ur alle i ∈ N . Also L(G)| = ∞
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 54/57 CYK PDAs Det.CFLs Entscheidbarkeit
Endlichkeitsproblem (2)
. . .
Wir zeigen zun¨ achst: Es gilt |L(G)| = ∞ g.d.w. es ein Wort z ∈ L(G) mit n ≤ |z| < 2n gibt:
” ⇒“:
Beweis durch Widerspruch
Annahme: Es gibt kein Wort z ∈ L(G) f¨ ur n ≤ |z| < 2n, aber trotzdem gilt |L(G)| = ∞.
Sei z ∈ L(G) das k¨ urzeste Wort mit |z| ≥ 2n.
Pumping-Lemma: Es gibt u, v, w, x, y gibt mit z = uvwxy, |vx| > 0 und |vwx| ≤ n, sodass insbes. uv
0wx
0y ∈ L gilt.
Da |uv
0wx
0y| = |uwy| < |uvwxy| und |uwy| ≥ n gilt, war z nicht minimal gew¨ ahlt. Widerspruch!
Entscheide Endlichkeitsproblem: Teste f¨ ur alle Worte w ∈ Σ
∗, der L¨ ange n ≤ |w| < 2n, ob w ∈ L(G) gilt (mit CYK-Algorithmus).
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 55/57 CYK PDAs Det.CFLs Entscheidbarkeit
Weiteres Entscheidbarkeitsproblem
Das Problem, ob eine deterministisch kontextfreie Sprache
¨ aquivalent zu einer regul¨ aren Sprache ist, ist entscheidbar.
Sei L
1durch DPDA gegeben und L
2durch einen DFA.
Pr¨ ufe L
1∩ L
2= ∅ und L
1∩ L
2= ∅
Beides ist entscheidbar, da DPDAs und DFAs abgeschlossen unter Komplementbildung, Schnittbildung zwischen DPDA und DFA durch DPDA konstruierbar ist und Leerheitsproblem f¨ ur CFLs entscheidbar ist
L
i∩ L
j= ∅ impliziert L
i⊆ L
jDaher ist V
(i,j)∈{(1,2),(2,1)}
L
i∩ L
j= ∅ ¨ aquivalent zu L
1= L
2.
TCS | 05 Kontextfreie Sprachen (II)| SoSe 2019 56/57 CYK PDAs Det.CFLs Entscheidbarkeit
Zusammenfassung
CYK-Algorithmus: w ∈ L(G) in O(n
3) f¨ ur CFGs G in Chomsky-NF entscheiden.
Kellerautomaten erkennen genau die CFLs Deterministisch kontextfreie Sprachen (DPDAs) Entscheidbarkeitsresultate f¨ ur kontextfreie Sprachen
TCS | 05 Kontextfreie Sprachen (II) | SoSe 2019 57/57 CYK PDAs Det.CFLs Entscheidbarkeit