• Keine Ergebnisse gefunden

In der Literatur findet man h¨ aufig auch die Bezeichnungen Stack-Automat oder Pushdown-Automat. Kellerautomaten sind, wenn nichts anderes gesagt wird, nichtdeterministisch.

N/A
N/A
Protected

Academic year: 2021

Aktie "In der Literatur findet man h¨ aufig auch die Bezeichnungen Stack-Automat oder Pushdown-Automat. Kellerautomaten sind, wenn nichts anderes gesagt wird, nichtdeterministisch."

Copied!
36
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

Der Kellerautomat

E

$ I N G A B E $

Keller Q

rot grun

Info IV 4.7 Kellerautomaten 134/164

c

Ernst W. Mayr

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

Beweis (Forts.):

Aus der Hilfsbehauptung folgt

L(A) = L(G) .

Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 144/164

c

Ernst W. Mayr

(19)

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

(20)

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

(21)

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

(22)

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 G

i

w (i) und P l i < l.

Dann gilt gem¨ aß Induktionsvoraussetzung

⇒ (q i , w (i) , X i ) → l A

i

(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

(23)

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

(24)

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

(25)

Beweis (Forts.):

Gem¨ aß Induktionsvoraussetzung gilt also

(q i , w (i) , X i ) → l A

i

(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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

Beweis (Forts.):

Stack

t Zeit

Info IV 151/164

c

Ernst W. Mayr

(35)

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

(36)

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

Referenzen

ÄHNLICHE DOKUMENTE

In der Arbeits- und Notfallmedizin, in der Kardiologie, zur Lang- zeitüberwachung in der Klinik und zur Dokumentation in der Praxis läßt sich ein Blutdruckmeßgerät einsetzen, das

Entwickeln Sie einen endlichen Automaten mit Ausgabe zur Simulation des dargestellten Kaffeeautomaten. Klingeltöne für das Handy herunterzuladen. Interpretieren Sie die

Die Sprache eines Automaten L(A) ist die Menge aller von ihm akzeptierten Wörter über das Eingabealphabet X... Geben Sie den Preis der

Neben den Programmen für die Substrat- bestimmung mit Faktor oder Stan- dard werden auch Programme für Substratmessungen gegen Blind- wert angeboten, wobei die Korrek- tur

Herzmassage und Beatmung im vorgeschriebenen Rhythmus nimmt ein auf pneumatischer Basis arbeitender Herz-Lungen-Automat vor, der selbst von Laien ohne Risiko für den

das „Reaktionskarussell&#34; einge- schleust, wo sie entsprechend der durchzuführenden Methode indivi- duell behandelt werden. Nach einer Temperierung wird der Zelleninhalt

Infusionsflaschen überall fi- xieren: an Türklinke oder Schlüsselloch, am Auto, an einem Baumast oder einem Zaun, an einer Fenster- oder Spiegelscheibe.. Und es ent- fällt bei

(b) Zeichne einen schwach deterministischen endlichen Automaten, der dieselbe Sprache akzeptiert, aber mit weniger Zust¨anden aus- kommt.. (c) Zeichne einen