M.Ed. Dennis Peuter 14. Juni 2018 Übung zur Vorlesung
Grundlagen der theoretischen Informatik
Aufgabenblatt 8 Lösungen
Wiederholung: Push-Down-Automat Syntax:
Ein Push-Down-Automat (PDA) ist ein TupelM= (K,Σ,Γ,∆, s0, Z0, F)mit:
K einer endlichen Menge von Zuständen, Σ einem Eingabealphabet,
Γ einem Stack- oder Kelleralphabet, s0 ∈K einem Startzustand,
Z0∈Γ einem Anfangssymbol im Keller, F ⊆K einer Menge von nalen Zuständen,
∆ einer endlichen Übergangsrelation (∆⊆(K×(Σ∪ {ε})×Γ)×(K×Γ∗)) Graphische Notation:
Für jeden Zustandq ∈K gibt es einen Knoten.
Startzustand und nale Zustände werden wie bei endlichen Automaten notiert.
Für jedes Element e= ((q1, a, A),(q2, γ))∈ ∆gibt es eine Kante von q1 nach q2
beschriftet mita, A|γ.
Konguration: Ein Tupel C= (q, w, γ)∈K×Σ∗×Γ∗ heiÿt Konguration vonM. Startkonguration: Das Tupel(s0, w, Z0) heiÿt Startkonguration von Mmit Eingabew.
Nachfolgekonguration: C2 ist eine Nachfolgekonguration vonC1 (C1`C2), falls
C1 = (q1, aw, Aγ), C2 = (q2, w, ηγ) und es gibt einen Übergang ((q1, a, A),(q2, η))∈∆ (für geeigneteq1, q2, a, A, η, γ, w), oder
C1 = (q1, w, Aγ), C2 = (q2, w, ηγ) und es gibt einen Übergang ((q1, ε, A),(q2, η))∈∆(für geeignete q1, q2, A, η, γ, w)
Hinweis: Da∆im Allgemeinen indeterminiert ist, hatC1 im Allgemeinen auch mehrere Nachfolgezustände.
Rechnung: Die Folge C0, C1, . . . Cn heiÿt Rechnung von M, falls Ci ` Ci+1 für alle i < n gilt. Man schreibt kurzC0 `∗Cn.
akzeptierte Sprache:
(a) über nalen Zustand:
Lf(M) :={w∈Σ∗| ∃qf ∈F :∃γ ∈Γ∗ : (s0, w, Z0)`∗(qf, ε, γ)}
(b) über leeren Keller:
Ll(M) :){w∈Σ∗ | ∃q0 ∈K : (s0, w, Z0)`∗ (q0, ε, ε)}
Aufgabe 8.1
Konstruieren Sie einen PDA, der die Sprache
L={wabicabjcwR|w∈ {a, b, c}∗∧i, j∈N, i≥j,} erkennt.
Lösung:
M = (K,Σ,Γ,∆, Z0, s, F)mit K={s, q1, q2, q3, q4, f},Σ ={a, b, c},Γ ={A, B, C, J, Z0}, F ={f}und für alle X ∈Γ:
(s, a, X)∆(s, AX) (s, b, X)∆(s, BX) (s, c, X)∆(s, CX) (s, a, X)∆(q1, X)
(q1, b, X)∆(q1, J X) (q1, c, X)∆(q2, X) (q1, b, X)∆(q1, X)
(q2, a, X)∆(q3, X)
(q3, b, J)∆(q3, ε) (q3, c, X)∆(q4, X) (q4, a, A)∆(q4, ε) (q4, b, B)∆(q4, ε) (q4, c, C)∆(q4, ε) (q4, ε, Z0)∆(f, ε)
Aufgabe 8.2
SeiMein beliebiger PDA. Es gilt stets: Lf(M) =Ll(M). richtig falsch Sei M = (K,Σ,Γ,∆, s0, Z0, F) ein PDA mit F = ∅. Es gilt stets:
Lf(M) =∅.
richtig falsch Sei M = (K,Σ,Γ,∆, s0, Z0, F) ein PDA mit F = ∅. Es gilt stets:
Ll(M) =∅.
richtig falsch Sei L eine beliebige formale Sprache. Es existiert ein PDA M mit
Ll(M)⊆L.
richtig falsch
Aufgabe 8.3
Gegeben der folgende PDAM.
s0
s1
a, Z0 |A a, A|AA c, A|A
a, A|ε
Geben Sie einen PDA M0 an, mitLf(M) =Ll(M0). Lösung:
Am Anfang liegt ein neues StacksymbolZ1 auf dem Keller, dasM nicht entfernen kann, daZ1 nicht im Stackalphabet von M enthalten ist. Auf dieses Stacksymbol wird Z0 gelegt und M0 arbeitet wie M. Wenn M in den nalen Zustand übergeht, geht M0 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.4
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, mitLl(M0) =L(G). Lösung:
Zu einer beliebigen cf-GrammatikG= (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 ist M0 gegeben durch:
Lösung:
Wir führen einen neuen nalen 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 nalen 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
mitZ0:=S