4.7 Kellerautomaten
In der Literatur findet man h¨ aufig auch die Bezeichnungen Stack-Automat oder Pushdown-Automat. Kellerautomaten sind, wenn nichts anderes gesagt wird, nichtdeterministisch.
Definition 78
Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus:
Q endliche Zustandsmenge Σ endliches Eingabealphabet
∆ endliches Stackalphabet q 0 ∈ Q Anfangszustand
Z 0 ∈ ∆ Initialisierung des Stack δ Ubergangsrelation ¨
Fkt. Q × (Σ ∪ {}) × ∆ → 2 Q×∆∗
wobei |δ(q, a, Z)| + |δ(q, , Z)| < ∞ ∀q, a, Z F ⊆ Q akzeptierende Zust¨ ande
Info IV 4.7 Kellerautomaten 133/164
c
Ernst W. Mayr
Der Kellerautomat
E
$ I N G A B E $
Keller Q
rot grun
Info IV 4.7 Kellerautomaten 134/164
c
Ernst W. Mayr
Konfiguration:
Tupel (q, w, α) mit
q ∈ Q
w ∈ Σ ∗ α ∈ ∆ ∗
Schritt:
(q, w 0 w 0 , Zα 0 ) → (q 0 , w 0 , Z 1 . . . Z r α 0 ) wenn (q 0 , Z 1 . . . Z r ) ∈ δ(q, w 0 , Z) bzw.:
(q, w, Zα 0 ) → (q 0 , w, Z 1 . . . Z r α 0 ) wenn (q 0 , Z 1 . . . Z r ) ∈ δ(q, , Z)
Info IV 4.7 Kellerautomaten 135/164
c
Ernst W. Mayr
Definition 79
1
Ein NPDA A akzeptiert w ∈ Σ ∗ durch leeren Stack, falls (q 0 , w, Z 0 ) → ∗ (q, , ) f¨ ur ein q ∈ Q .
2
Ein NPDA A akzeptiert w ∈ Σ ∗ durch akzeptierenden Zustand, falls
(q 0 , w, Z 0 ) → ∗ (q, , α) f¨ ur ein q ∈ F, α ∈ ∆ ∗ .
3
Ein NPDA heißt deterministisch (DPDA), falls
|δ(q, a, Z )| + |δ(q, , Z)| ≤ 1 ∀(q, a, Z ) ∈ Q × Σ × ∆ .
Info IV 4.7 Kellerautomaten 136/164
c
Ernst W. Mayr
Beispiel 80 Der PDA mit
δ(q 0 , a, ∗) = {(q 0 , a ∗)} f¨ ur a ∈ {0, 1}, ∗ ∈ {0, 1, Z 0 } δ(q 0 , #, ∗) = {(q 1 , ∗ )} f¨ ur ∗ ∈ {0, 1, Z 0 }
δ(q 1 , 0, 0) = {(q 1 , )}
δ(q 1 , 1, 1) = {(q 1 , )}
δ(q 1 , , Z 0 ) = {(q 1 , )} akzeptiert mit leerem Stack die Sprache
L = {w#w R ; w ∈ {0, 1} ∗ } .
Info IV 137/164
c
Ernst W. Mayr
Beispiel 80 Der PDA mit
δ(q 0 , a, ∗) = {(q 0 , a ∗)} f¨ ur a ∈ {0, 1}, ∗ ∈ {0, 1, Z 0 } δ(q 0 , #, ∗) = {(q 1 , ∗ )} f¨ ur ∗ ∈ {0, 1, Z 0 }
δ(q 1 , 0, 0) = {(q 1 , )}
δ(q 1 , 1, 1) = {(q 1 , )}
δ(q 1 , , Z 0 ) = {(q a , )} akzeptiert mit akzeptierendem Zustand (F = {q a })
(und leerem Stack) die Sprache
L = {w#w R ; w ∈ {0, 1} ∗ } .
Info IV 4.7 Kellerautomaten 137/164
c
Ernst W. Mayr
Satz 81
Sei A 1 = (Q, Σ, ∆, q 0 , Z 0 , δ, F ) ein NPDA, der mit Endzustand akzeptiert. Dann kann in linearer Zeit ein NPDA
A 2 = (Q 0 , Σ, ∆ 0 , q 0 0 , Z 0 0 , δ 0 ) konstruiert werden, der L(A 1 ) mit leerem Stack akzeptiert.
Info IV 4.7 Kellerautomaten 138/164
c
Ernst W. Mayr
Beweis:
A 2 simuliert A 1 . Sobald A 1 in einen akzeptierenden Endzustand ger¨ at, r¨ at A 2 , ob die Eingabe zu Ende gelesen ist. Falls A 2 dies meint, wird der Keller geleert.
Um zu verhindern, dass bei der Simulation von A 1 der Keller leer wird, ohne dass A 1 akzeptiert, f¨ uhren wir ein neues Kellersymbol Z 0 0 ein:
Q 0 = Q ∪ {¯ q, q 0 0 }
∆ 0 = ∆ ∪ {Z 0 0 }
und wir erweitern δ zu δ 0 gem¨ aß δ 0 (q 0 0 , , Z 0 0 ) = {(q 0 , Z 0 Z 0 0 )}
δ 0 (q, , Z) ∪ = {(¯ q, )} f¨ ur q ∈ F, Z ∈ ∆ 0 δ 0 (¯ q, , Z) = {(¯ q, )} f¨ ur Z ∈ ∆ 0
Info IV 4.7 Kellerautomaten 139/164
c
Ernst W. Mayr
Bemerkung:
Akzeptieren mit leerem Keller bedeutet, dass der NPDA akzeptiert, falls der Keller leer ist und die Eingabe gelesen ist.
Info IV 140/164
c
Ernst W. Mayr
Bemerkung:
Akzeptieren mit leerem Keller bedeutet, dass der NPDA akzeptiert, falls der Keller leer ist und die Eingabe gelesen ist, bzw.
dass, falls der Keller leer ist, der NPDA die bisher gelesene Eingabe akzeptiert.
Info IV 4.7 Kellerautomaten 140/164
c
Ernst W. Mayr
Satz 82
Sei A 1 = (Q, Σ, ∆, q 0 , Z 0 , δ) ein NPDA, der mit leerem Keller akzeptiert. Dann kann in linearer Zeit ein NPDA
A 2 = (Q 0 , Σ, ∆ 0 , q 0 0 , Z 0 0 , δ 0 , F ) konstruiert werden, welcher L(A 1 ) mit akzeptierendem Endzustand akzeptiert.
Info IV 4.7 Kellerautomaten 141/164
c
Ernst W. Mayr
Beweis:
A 2 simuliert A 1 . Am Anfang steht ein neues Kellersymbol auf dem Stack. Sobald bei der Simulation von A 1 dieses auf dem Stack vorgefunden wird, weiß man, dass A 1 seinen Stack leerger¨ aumt hat und folglich akzeptiert. Folglich geht A 2 in einen akzeptierenden Endzustand und h¨ alt:
Q 0 = Q ∪ {q 0 0 , q f }
∆ 0 = ∆ ∪ {Z 0 0 } F = {q f }
δ 0 (q 0 0 , , Z 0 0 ) = {(q 0 , Z 0 Z 0 0 )}
δ 0 (q, a, Z) = δ(q, a, Z) f¨ ur q ∈ Q, a ∈ Σ ∪ {}, Z ∈ ∆ δ 0 (q, , Z 0 0 ) = {(q f , Z 0 0 )} f¨ ur q ∈ Q
Info IV 4.7 Kellerautomaten 142/164
c
Ernst W. Mayr
4.8 Kellerautomaten und kontextfreie Sprachen
Satz 83
Sei G eine CFG in Greibach-Normalform. Dann kann in linearer Zeit ein NPDA A konstruiert werden (welcher mit leerem Stack akzeptiert), so dass
L(A) = L(G) .
Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 143/164
c
Ernst W. Mayr
Beweis:
Sei o.B.d.A. 6∈ L(G).
Der Automat startet mit S auf dem Stack. Er sieht sich in jedem Schritt das oberste Stacksymbol A an und ¨ uberpr¨ uft, ob es in G eine Produktion gibt, deren linke Seite A ist und deren rechte Seite mit dem Terminal beginnt, welches unter dem Lesekopf steht.
Sei also G = (V, T, P, S).
Konstruiere NPDA A = (Q, Σ, ∆, q 0 , Z 0 , δ) mit Q := {q 0 }
∆ := V
Σ := T
Z 0 := S
δ(q 0 , a, A) 3 (q 0 , α) f¨ ur (A → aα) ∈ P .
Info IV 144/164
c
Ernst W. Mayr
Beweis (Forts.):
Zu zeigen ist nun: L(A) = L(G).
Hilfsbehauptung:
S → ∗ G w 1 . . . w i A 1 . . . A m mit w j ∈ T, A j ∈ V per Linksableitung
⇔ (q 0 , w 1 . . . w i , Z 0 ) → ∗ A (q 0 , , A 1 . . . A m )
Der Beweis erfolgt durch Induktion ¨ uber die Anzahl der Schritte in der Linksableitung.
Info IV 144/164
c
Ernst W. Mayr
Beweis (Forts.):
Induktionsanfang (i = 0):
S → ∗ G S ⇔ (q 0 , , Z 0 ) → ∗ A (q 0 , , Z 0 )
Info IV 144/164
c
Ernst W. Mayr
Beweis (Forts.):
Induktionsschritt ((i − 1) 7→ i):
S → ∗ G w 1 . . . w i A 1 . . . A m
⇔ S → ∗ G w 1 . . . w i−1 A 0 A v . . . A m v ∈ {1, . . . , m + 1}
→ G w 1 . . . w i A 1 . . . A m
(also (A 0 → w i A 1 . . . A v−1 ) ∈ P) gem¨ aß Induktionsvoraussetzung
⇔ (q 0 , w 1 . . . w i−1 , Z 0 ) → ∗ A (q 0 , , A 0 A v . . . A m )
⇔ (q 0 , w 1 . . . w i−1 w i , Z 0 ) → ∗ A (q 0 , w i , A 0 A v . . . A m )
→ A (q 0 , , A 1 . . . A m )
da (A 0 → w i A 1 . . . A v−1 ) ∈ P)
⇔ (q 0 , w 1 . . . w i , Z 0 ) → ∗ A (q 0 , , A 1 . . . A m )
Info IV 144/164
c
Ernst W. Mayr
Beweis (Forts.):
Aus der Hilfsbehauptung folgt
L(A) = L(G) .
Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 144/164
c
Ernst W. Mayr
Satz 84
Sei A = (Q, Σ, ∆, q 0 , Z 0 , δ) ein NPDA, der mit leerem Keller akzeptiert. Dann ist L(A) kontextfrei.
Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 145/164
c
Ernst W. Mayr
Beweis:
Wir definieren:
G = (V, T, P, S) T := Σ
V := Q × ∆ × Q ∪ {S} wobei wir die Tupel mit [, , ] notieren P 3 S → [q 0 , Z 0 , q] f¨ ur q ∈ Q
P 3 [q, Z, q m ] → a[p, Z 1 , q 1 ][q 1 , Z 2 , q 2 ] · · · [q m−1 , Z m , q m ] f¨ ur δ(q, a, Z) 3 (p, Z 1 · · · Z m ), ∀q 1 , . . . , q m ∈ Q,
mit a ∈ Σ ∪ {} .
Idee: Aus [p, X, q] sollen sich alle die W¨ orter ableiten lassen, die der NPDA A lesen kann, wenn er im Zustand p mit (lediglich) X auf dem Stack startet und im Zustand q mit leerem Stack endet.
Info IV 146/164
c
Ernst W. Mayr
Beweis (Forts.):
Hilfsbehauptung:
[p, X, q] → ∗ G w ⇔ (p, w, X ) → ∗ A (q, , ) .
” ⇒“: Induktion ¨ uber die L¨ ange l der Ableitung.
Induktionsanfang (l = 1):
[p, X, q] → G w
⇒ δ(p, w, X) 3 (q, )
⇒ (p, w, X) → A (q, , )
Info IV 146/164
c
Ernst W. Mayr
Beweis (Forts.):
Induktionsschritt ((l − 1) 7→ l):
Gelte
[p, X, q m+1 ] → G a[q 1 , X 1 , q 2 ][q 2 , X 2 , q 3 ] · · · [q m , X m , q m+1 ]
→ ∗ G aw (1) · · · w (m) = w
mit (q 1 , X 1 · · · X m ) ∈ δ(p, a, X), [q i , X i , q i+1 ] → l Gi w (i) und P l i < l.
Dann gilt gem¨ aß Induktionsvoraussetzung
⇒ (q i , w (i) , X i ) → l Ai (q i+1 , , ) ∀i ∈ {1, . . . , m}
⇒ (q, aw (1) · · · w (m)
| {z }
=w
, X) → A (q 1 , w (1) · · · w (m) , X 1 · · · X m )
→ <l A (q m+1 , , ) .
Info IV 146/164
c
Ernst W. Mayr
Beweis (Forts.):
” ⇐“: Induktion ¨ uber die L¨ ange l einer Rechnung des NPDAs A Induktionsanfang (l = 1):
(p, w, X ) → A (q, , )
⇒ (q, ) ∈ δ(p, w, X ) (also |w| ≤ 1)
⇒ ([p, X, q] → w) ∈ P .
Info IV 146/164
c
Ernst W. Mayr
Beweis (Forts.):
Induktionsschritt ((l − 1) 7→ l):
Sei
(p, w, X ) → A (q 1 , w 0 , X 1 · · · X m )
→ ∗ A (q, , )
eine Rechnung von A der L¨ ange l, mit w = ew 0 und e ∈ Σ ∪ {}.
Nach Definition gibt es
([p, X, q] → e[q 1 X 1 q 2 ] · · · [q m X m q m+1 ]) ∈ P mit q m+1 = q und eine Zerlegung w 0 = w (1) · · · w (m) , so dass w (1) · · · w (i) der von A zu dem Zeitpunkt verarbeitete Teilstring von w 0 ist, wenn X i+1 zum ersten Mal oberstes Stacksymbol (bzw., f¨ ur i = m, der Stack leer) wird.
Info IV 146/164
c
Ernst W. Mayr
Beweis (Forts.):
Gem¨ aß Induktionsvoraussetzung gilt also
(q i , w (i) , X i ) → l Ai (q i+1 , , ) mit X
l i < l und [q i , X i , q i+1 ] → ∗ G w (i) .
Also folgt:
[p, X, q] → G e[q 1 , X 1 , q 2 ] · · · [q m , X m , q m+1 ] mit q m+1 = q
→ <l G ew (1) · · · w (m) = w
Aus der Hilfsbehauptung folgt der Satz.
Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 146/164
c
Ernst W. Mayr
Satz 85
Folgende Aussagen sind ¨ aquivalent:
L wird von einer kontextfreien Grammatik erzeugt.
L wird von einem NPDA akzeptiert.
Beweis:
Folgt aus den vorhergehenden S¨ atzen.
Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 147/164
c
Ernst W. Mayr
Bemerkung
F¨ ur die Praxis (z.B. Syntaxanalyse von Programmen) sind polynomiale Algorithmen wie CYK noch zu langsam. F¨ ur Teilklassen von CFLs sind schnellere Algorithmen bekannt, z.B.
Jay Earley:
An Efficient Context-free Parsing Algorithm.
Communications of the ACM, 13(2):94–102, 1970
Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 148/164
c
Ernst W. Mayr
4.9 Deterministische Kellerautomaten Wir haben bereits definiert:
Ein PDA heißt deterministisch (DPDA), falls
|δ(q, a, Z)| + |δ(q, , Z )| ≤ 1 ∀(q, a, Z) ∈ Q × Σ × ∆ .
Die von einem DPDA, der mit leerem Keller akzeptiert, erkannte Sprache gen¨ ugt der Fano-Bedingung, d.h. kein Wort in der Sprache ist echtes Pr¨ afix eines anderen Wortes in der Sprache.
Festlegung:
Da wir an einem weniger eingeschr¨ ankten Maschinenmodell interessiert sind, legen wir fest, dass ein DPDA stets mit akzeptierenden Zust¨ anden akzeptiert.
Info IV 4.9 Deterministische Kellerautomaten 149/164
c
Ernst W. Mayr
Definition 86
Ein DPDA ist in Normalform, falls gilt:
1
(q 0 , α) = δ(q, e, X) f¨ ur e ∈ Σ ∪ {}, q, q 0 ∈ Q, X ∈ ∆
⇒ α ∈ {, X, Y X} f¨ ur Y ∈ ∆ .
2
Der Automat liest jede Eingabe vollst¨ andig.
Satz 87
Zu jedem DPDA A = (Q, Σ, ∆, q 0 , Z 0 , δ, F ) kann ein ¨ aquivalenter DPDA A 0 = (Q 0 , Σ, ∆ 0 , q 0 0 , Z 0 0 , δ 0 , F 0 ) in Normalform konstruiert werden.
Info IV 4.9 Deterministische Kellerautomaten 150/164
c
Ernst W. Mayr
Beweis:
Erste Schritte der Konstruktion:
1
Werden von A in einem Schritt mehr als zwei Symbole auf dem Stack abgelegt, wird dies von A 0 durch eine Folge von Schritten mit je 2 Stacksymbolen ersetzt.
2
Werden zwei oder ein Stacksymbol abgelegt und dabei das oberste Stacksymbol X ge¨ andert, entfernen wir zun¨ achst in einem eigenen Schritt das oberste Stacksymbol und pushen dann die gew¨ unschten Symbole. (Das
” Merken“ erfolgt in der Zustandsmenge Q 0 .)
3
Wir vervollst¨ andigen δ 0 mittels eines Fangzustandes. Es k¨ onnte hier noch sein, dass der DPDA eine Schleife aus lauter - ¨ Uberg¨ angen ausf¨ uhrt.
Info IV 151/164
c
Ernst W. Mayr
Beweis (Forts.):
Hilfsbehauptung:
Der DPDA A f¨ uhrt ab einer bestimmten Konfiguration (q, , β ) unendlich viele direkt aufeinander folgende - ¨ Uberg¨ ange genau dann aus, wenn
(q, , β) → ∗ (q 0 , , Xβ 0 ) und
(q 0 , , X) → + (q 0 , , Xα) f¨ ur q, q 0 ∈ Q
X ∈ ∆, α, β, β 0 ∈ ∆ ∗
” ⇐“: klar
Info IV 151/164
c
Ernst W. Mayr
Beweis (Forts.):
” ⇒“: Betrachte eine unendlich lange Folge von - ¨ Uberg¨ angen.
Sei n := |Q| · |∆| + |β| + 1.
Wird die Stackh¨ ohe n nie erreicht, so muss sich sogar eine Konfiguration des DPDA’s wiederholen. Daraus folgt die Behauptung.
Info IV 151/164
c
Ernst W. Mayr
Beweis (Forts.):
Ansonsten wird jede Stackh¨ ohe |β|, . . . , n mindestens einmal erreicht (wegen der Normalform ist die H¨ ohendifferenz pro Schritt
∈ {−1, 0, 1}).
Betrachte den Zeitpunkt t, in dem die Stackh¨ ohe zum erstenmal n ist. Markiere f¨ ur jedes i ∈ {|β |, . . . , n} den Zeitpunkt t i , wo zum letzen Mal (vor Zeitpunkt t) die Stackh¨ ohe = i ist. Zu diesen Zeitpunkten t i betrachte die Paare (q, X) ∈ Q × ∆, wobei q der Zustand des DPDA’s und X das oberste Kellersymbol des DPDA’s zu diesem Zeitpunkt ist.
Da es mehr als |∆| · |Q| markierte Paare gibt, taucht ein markiertes Paar (q 0 , X) doppelt auf. F¨ ur dieses gilt dann
(q 0 , , X) → + (q 0 , , Xα).
Info IV 151/164
c
Ernst W. Mayr
Beweis (Forts.):
Stack
t Zeit
Info IV 151/164
c
Ernst W. Mayr
Beweis (Forts.):
Das gleiche Argument gilt, falls sich die Stackh¨ ohe um > |Q| · |∆|
erh¨ oht.
Damit lassen sich alle Paare (q 0 , X) finden, f¨ ur die gilt:
(q 0 , , X) → + (q 0 , , Xα), α ∈ ∆ ∗ .
Da der DPDA nicht endlos weiterlaufen soll, ersetzen wir
δ(q 0 , , X) durch einen - ¨ Ubergang in einen neuen Zustand q 00 (der genau dann akzeptierend ist, wenn in der Schleife
(q 0 , , X) → + (q 0 , , Xα) ein akzeptierender Zustand auftritt) und einen - ¨ Ubergang von q 00 in den nichtakzeptierenden
Fangzustand.
Info IV 4.9 Deterministische Kellerautomaten 151/164
c
Ernst W. Mayr
Satz 88
Die Klasse der deterministischen kontextfreien Sprachen (also der von DPDA’s erkannten Sprachen) [DCFL] ist unter Komplement abgeschlossen.
Beweis:
Folgt aus der obigen Konstruktion!
Info IV 4.9 Deterministische Kellerautomaten 152/164
c
Ernst W. Mayr