M.Ed. Dennis Peuter Fachbereich 4: Informatik
Kevin Weirauch 17. Juni 2021
Übung zur Vorlesung
Grundlagen der theoretischen Informatik
Aufgabenblatt 8 – Lösungen
Aufgabe 8.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 finalen 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
0)
w∈Ll(A)
Aakzeptiertwüber leeren Keller
ja
nein
w∈Lf(A)
Aakzeptiertwüber finalen 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.
s0
a, Z0 |Z0B a, Z0 |CB
b, C |CA b, C |A a, A|ε b, B|ε
Aufgabe 8.2
Gegeben der folgende PDA M.
s0
s1
a, Z0 |A a, A|AA c, A|A
a, A|ε
Geben Sie einen PDAM0 an, mitLf(M) =Ll(M0).
Lösung:
Am Anfang liegt ein neues StacksymbolZ1auf dem Keller, dasM nicht entfernen kann, daZ1 nicht im Stackalphabet von M enthalten ist. Auf dieses Stacksymbol wird Z0 gelegt undM0 arbeitet wie M. WennM in den finalen Zustand übergeht, gehtM0 in einen neuen Zustand sl über, in dem nur noch der Stack geleert werden kann.
sneu s0
s1 sl
a, Z0|A a, A|AA c, A|A
ε, Z1 |Z0Z1
a, A|ε ε, X |ε
ε, X |ε
X∈ {Z0, Z1, A}
Aufgabe 8.3
Gegeben die Grammatik G= ({S, S0, A, B},{a, b}, R, S) in Greibach-Normal-Form mit:
R={S →ε|aB|bA, S0 →aB|bA,
A→a|aS0|bAA, B →b|bS0 |aBB}
a) Geben Sie einen PDAM0 an, mit Ll(M0) =L(G).
Lösung:
Zu einer beliebigen cf-Grammatik G = (V, T, R, S) in Greibach-Normalform konstruiert man einen äquivalenten PDA wie folgt: M= (K,Σ,Γ,∆, s0, Z0, F) mit
K :={s0}, Σ :=T, Γ :=V,
Z0 :=S, F :=∅, ∆ :={((s0, a, A),(s0, α))|A→aα∈R}
also istM0 gegeben durch:
s0
ε, S |ε a, S |B b, S |A a, S0 |B b, S0 |A
a, A|ε a, A|S0 b, A|AA b, B|ε b, B|S0 a, B|BB
mitZ0:=S
b) Wandeln Sie M0 in einen AutomatenM00 um, mit Ll(M0) =Lf(M00).
Lösung:
Wir führen einen neuen finalen Zustand und ein neues Stack-Symbol Z1 ein, das wir zu Beginn unten auf den Stack legen. Wenn dieses sichtbar wird, wäre der Stack des ur- sprünglichen Automaten leer und wir wechseln in den finalen Zustand.
sneu
s0
sf
ε, S|ε a, S|B b, S |A a, S0|B b, S0 |A
a, A|ε a, A|S0 b, A|AA b, B|ε b, B|S0 a, B |BB
ε, Z1|ε ε, Z1|SZ1
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 Seien L1, L2 und L3 beliebige kontextfreie Sprachen. Dann ist auch
L4 = (L2∩ ¬L3)∩(L3∩ ¬L1) kontextfrei.
richtig falsch Seien L1, L2 und L3 beliebige kontextfreie Sprachen. Dann ist auch
L4 =L1∪L∗2L3 kontextfrei.
richtig falsch Seien L1,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−hdo
Vi,i+h ←Si+h−1j=i Vi,j∗Vj+1,i+h end
end
if S∈V1,n then /*Ausgabe*/
return w∈L(G) else
return w6∈L(G) end
dabei ist M∗N definiert durch
M∗N :={A∈V | ∃B ∈M,∃C∈N :A→BC ∈R}
Aufgabe 8.5
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:
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, gilt w∈L(G).