SS 2005
Einf¨ uhrung in die Informatik IV
Ernst W. Mayr
Fakult¨ at f¨ ur Informatik TU M¨ unchen
http://www14.in.tum.de/lehre/2005SS/info4/index.html.de
Korollar 79
Sei G eine kontextfreie Grammatik. Es gibt einen Algorithmus, der eine zu G ¨ aquivalente Grammatik in Greibach-Normalform
konstruiert, deren rechte Seiten jeweils h¨ ochstens zwei Variablen enthalten.
Beweis:
Klar!
Info IV
Ernst W. Mayr 1/13
Korollar 79
Sei G eine kontextfreie Grammatik. Es gibt einen Algorithmus, der eine zu G ¨ aquivalente Grammatik in Greibach-Normalform
konstruiert, deren rechte Seiten jeweils h¨ ochstens zwei Variablen enthalten.
Beweis:
Klar!
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.
Info IV
Ernst W. Mayr 2/13
4.7 Kellerautomaten
Definition 80
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
Der Kellerautomat
E
$ I N G A B E $
Keller Q
rot grun
Info IV 4.7 Kellerautomaten
Ernst W. Mayr 3/13
Konfiguration:
Tupel (q, w, α) mit
q ∈ Q
w ∈ Σ ∗
α ∈ ∆ ∗
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 ) gdw (q 0 , Z 1 . . . Z r ) ∈ δ(q, w 0 , Z) bzw.:
(q, w, Zα 0 ) → (q 0 , w, Z 1 . . . Z r α 0 ) gdw (q 0 , Z 1 . . . Z r ) ∈ δ(q, , Z)
Info IV 4.7 Kellerautomaten
Ernst W. Mayr 4/13
Definition 81
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 × Σ × ∆ .
Definition 81
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
Ernst W. Mayr 5/13
Definition 81
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 × Σ × ∆ .
Definition 81
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
Ernst W. Mayr 5/13
Beispiel 82 Der PDA mit
δ(q 0 , a, ∗) = {(q 0 , a ∗)} f¨ ur a, ∗ ∈ {0, 1}
δ(q 0 , #, ∗) = {(q 1 , ∗ )} f¨ ur ∗ ∈ {0, 1}
δ(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} ∗ } .
Beispiel 82 Der PDA mit
δ(q 0 , a, ∗) = {(q 0 , a ∗)} f¨ ur a, ∗ ∈ {0, 1}
δ(q 0 , #, ∗) = {(q 1 , ∗ )} f¨ ur ∗ ∈ {0, 1}
δ(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
Ernst W. Mayr 6/13
Satz 83
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.
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
Ernst W. Mayr 8/13
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
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
Ernst W. Mayr 8/13
Bemerkung:
Akzeptieren mit leerem Keller bedeutet, dass der NPDA akzeptiert,
falls der Keller leer ist und die Eingabe gelesen ist.
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
Ernst W. Mayr 9/13
Satz 84
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.
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
Ernst W. Mayr 11/13
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
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
Ernst W. Mayr 11/13
4.8 Kellerautomaten und kontextfreie Sprachen
Satz 85
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) .
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.
Info IV
Ernst W. Mayr 13/13
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 .
Beweis:
Zu zeigen ist nun: L(A) = L(G).
Info IV
Ernst W. Mayr 13/13
Beweis:
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 )
Beweis:
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
Ernst W. Mayr 13/13
Beweis:
Induktionsanfang (i = 0):
S → ∗ G S ⇔ (q 0 , , Z 0 ) → ∗ A (q 0 , , Z 0 )
Beweis:
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)
Info IV
Ernst W. Mayr 13/13
Beweis:
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 ) → ∗ (q 0 , , A 1 . . . A m )
Beweis:
Aus der Hilfsbehauptung folgt
L(A) = L(G) .
Info IV 4.8 Kellerautomaten und kontextfreie Sprachen
Ernst W. Mayr 13/13