M.Ed. Dennis Peuter 21. Juni 2018 Übung zur Vorlesung
Grundlagen der theoretischen Informatik
Aufgabenblatt 9 Lösungen
Aufgabe 9.1
a) Gegeben sei der folgende PDA:
A= ({s0, s1},{a, b},{A, Z0},∆, s0, Z0,{s1}) mit der folgenden Übergangsrelation
∆ ={((s0, a, Z0),(s1, AZ0)), ((s1, a, A),(s1, AA)), ((s1, b, A),(s1, ε)), ((s1, b, Z0),(s0, ε))}
Entscheiden Sie, obAdas Wortw=aabbüber leeren Keller und/oder über nalen Zustand akzeptiert. Vervollständigen Sie dazu die Rechnung.
s
0, aabb, Z
0` s
1, abb, AZ
0`
s
1, bb, AAZ
0` s
1, b, AZ
0` s
1, ε, Z
0w∈Ll(A)
Aakzeptiertwüber leeren Keller
ja
nein
w∈Lf(A)
Aakzeptiertwüber nalen Zustand
ja
nein
b) Gegeben die folgende SpracheL über dem AlphabetΣ ={a, b}: L={aibjajbi ∈Σ∗ |i, j∈N+} Zeichnen Sie einen PDA, der Lüber leeren Keller akzeptiert.
Lösung:
s0
a, Z0|Z0B a, Z0|CB
b, C|CA b, C|A a, A|ε b, B|ε
Aufgabe 9.2
Konstruieren Sie einen PDA der die Sprache L ={w ∈ {a, b}∗ | w ist ein Palindrom}1 über leeren Keller akzeptiert.
Lösung:
Eine Grammatik für Lin Greibach-Normalform ist: G= ({S, S0, A, B},{a, b}, R, S) mit R ={S →aS0A|bS0B |aA|bB |a|b|ε,
S0 →aS0A|bS0B|a|b|aA|bB, A→a,
B →b}
Der entsprechende PDA ist also:
s0
a, S |S0A b, S |S0B a, S|A b, S |B a, S|ε b, S|ε ε, S|ε a, S0 |S0A b, S0|S0B a, S0|ε b, S0 |ε a, S0 |A b, S0|B
a, A|ε b, B|ε
mitZ0:=S
Alternative Lösung:
Wir konstruieren den Automaten ohne Umweg über die GNF. Dabei verwenden wir den Stack, um den ersten Teil des Wortes in umgekehrter Reihenfolge zu speichern. Dann können wir beim Lesen der zweiten Hälfte einfach entscheiden, ob diese mit dem Stackinhalt übereinstimmt.
Ins0speichern wir also zunächst einen Teil des Eingabewortes auf dem Stack. Dann entscheiden wir indeterminiert, dass wir die Wortmitte erreicht haben und wechseln zus2. In diesem Zustand in dem der Stack geleert und mit dem Rest des Eingabewortes verglichen.
M = (K,Σ,Γ,∆, s0, Z0,∅) mit K = {s0, s1}, Σ = {a, b}, Γ = {Z0, A, B} und ∆ gegeben durch:
1wist ein Palindrom gdw. w=wR.
2
∀X∈Γ : (s0, a, X)∆(s0, AX)
∀X∈Γ : (s0, b, X)∆(s0, BX)
Stackaufbau
∀X∈Γ : (s0, a, X)∆(s1, X)
∀X∈Γ : (s0, b, X)∆(s1, X)
∀X∈Γ : (s0, ε, X)∆(s1, X)
Raten der Wortmitte
(s1, a, A)∆(s1, ε) (s1, b, B)∆(s1, ε) (s1, ε, Z0)∆(s1, ε)
Stackabbau
Aufgabe 9.3
Entscheiden Sie durch Ankreuzen, ob die folgenden Aussagen richtig oder falsch sind.
Seien L1 und L2 beliebige kontextfreie Sprachen. Dann ist auch L3 = L1∪ ¬L2 kontextfrei.
richtig falsch SeienL1,L2 undL3 beliebige kontextfreie Sprachen. Dann ist auchL4 =
(L2∩ ¬L3)∩(L3∩ ¬L1) kontextfrei.
richtig falsch SeienL1,L2 undL3 beliebige kontextfreie Sprachen. Dann ist auchL4 =
L1∪L∗2L3 kontextfrei.
richtig falsch SeienL1,L2 und L3 beliebige rationale Sprachen. Dann ist L4 = (L1∩
L2)∪ ¬L3 kontextfrei.
richtig falsch
Wiederholung: Cocke-Younger-Kasami
Input: eine Grammatik G= (V,Σ, R, S) in CNF, ein Wort w=a1. . . an∈Σ∗ Output: w∈L(G)gdw. w∈L(G), sonstw6∈L(G)
for i←1. . . ndo /*Initialisierung*/
Vi,i← {A∈V |A→ai ∈R}; end
for h←1. . . n−1do /*Rechnung*/
for i←1. . . n−h do Vi,i+h ←Si+h−1
j=i Vi,j∗Vj+1,i+h
end end
if S∈V1,n then /*Ausgabe*/
return w∈L(G) elsereturn w6∈L(G) end
dabei ist M∗N deniert durch
M∗N :={A∈V | ∃B ∈M,∃C∈N :A→BC ∈R}
Aufgabe 9.4
Gegeben Sei die folgende GrammatikG= ({S, A, B, C, D, E, F},{a, b}, R, S) mit R={S→AB|CD|ED,
A→b,
B→CS|AE|a, C→a,
D→AS|CF|b, E→BB, F →DD}
Entscheiden Sie mit dem Algorithmus von Cocke-Younger-Kasami, ob w=ba3b2 ∈L(G) ist.
Lösung:
4
b a a a b b b {A,D}
a {S} {B,C}
a {B} {E} {B,C}
a {E} ∅ {E} {B,C}
b {B,S} {E,B} {B,S} {S} {A,D}
b {S,D} {B,S} {S} {D} {F} {A,D}
DaS ∈V1,n, giltw∈L(G).