Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.

Ähnliche Präsentationen


Präsentation zum Thema: "Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann."—  Präsentation transkript:

1 Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA)
Prof. Dr. Th. Ottmann

2 Analyseproblem für cf. Sprachen
Beispiel: L = { anbn ; n ≥ 0} ist cf, denn L = L(G) für die cf Grammatik G mit den Regeln S → aSb, S → ε, aber es gibt keinen endlichen Automaten, der genau die Worte aus L akzeptiert. Ziel: Erweiterung des Automatenmodells zum Model des Kellerautomaten (PDA) so, dass PDAs genau die cf Sprachen erkennen können. Idee: Ergänze endliche Automaten um einen Kellerspeicher (Stack), in dem Informationen unbegrenzter Größe zwischengespeichert werden können.

3 Kellerautomat

4 Beispiel einer Konfigurationenfolge
Beispiel: PDA, der L = { anbn ; n ≥ 0} erkennt. Sei K ein PDA mit 3 Zuständen s0, s1, sf. K speichert jedes gelesene a im Keller und streicht beim Lesen von b jeweils ein a aus dem Kellerspeicher. Zugleich prüft der Automat K, ob zuerst eine Folge von a und dann eine Folge von b auf dem Eingabeband steht. Ist der Keller am Ende leer, wird das Eingabewort akzeptiert, sonst nicht! (s0, a3b3 , ┴) ├

5 Nichtderministischer Kellerautomat
Ein (nichtdeterministischer) Kellerautomat (PDA) K = (, S, Γ, δ, s0, ┴, F) besteht aus einer endlichen Menge  von Eingabesymbolen, einer endlichem Menge S von Zuständen, einer endlichen Menge Γ von Kellersymbolen, der Zustandsübergangsrelation δ  ( S x (   {ε} ) x Γ x S x Γ* ), dem Startzustand s0  S, dem Keller-Bottom Symbol ┴ der Endzustandsmenge F  S

6 PDA für L = { anbn ; n ≥ 1} K = (, S, Γ, δ, s0, ┴, F) ist wie folgt definiert:  = {a, b}, S = {s0, s1, sf }, Γ = {A, ┴ }, F = { sf } δ = { (s0, ε , ┴, sf , ε ), (s0, a , ┴, s0 , A ┴), (s0, a , A, s0 , AA) (s0, b , A, s1 ,ε ), (s1, b , A, s1 ,ε ), (s1, ε , ┴, sf ,ε )}

7 Konfigurationsübergänge eines PDA
Eine Konfiguration k = (s, w, a)  S x * x Γ* enthält den aktuellen Zustand s, das noch zu verarbeitende Suffix w des Eingabewortes, den aktuellen Kellerinhalt α. Konfigurationsübergänge sind gegeben durch die Relation ├, für die gilt: (s, av, Aα) ├ (s‘, v, βα) gdw. (s, a, A, s‘, β)  δ ist für alle s, s‘  S, a    {ε}, α, β,  Γ*, A  Γ. Die vom Kellerautomaten K = (, S, Γ, δ, s0, ┴, F) mit Endzustand erkannte Sprache über  ist LF(K) = { w  * ; (s0, w, ┴) ├* (sf, ε, γ ), sf  F, γ  Γ* }

8 Beispiel für einen deterministischen PDA
Ein Kellerautomat soll L2 = {wcsp(w) ; w  {a, b}* } erkennen, wobei sp(w) das Spiegelbild des Wortes w bezeichnet. K2 = ({a, b, c}, {s0, sc}, {A, B, ┴}, δ2, s0, ┴, {sc}) mit δ2 = {((s0, c, ┴, sc, ε ), (wenn Eingabe nur c) (s0, a, ┴, s0, A ┴), (erstes Zeichen a merken) (s0, b, ┴, s0 , B ┴), (erstes Zeichen b merken) (s0, a, A, s0, AA), (weitere a merken) (s0, a, B, s0, AB), (weitere a merken) (s0, b, A, s0, BA), (weitere b merken) (s0, b, B, s0, BB), (weitere b merken) (s0, c, A, sc, A), (c lesen, Keller bleibt) (s0, c, B, sc, B), (c lesen, Keller bleibt) (sc, a, A, sc, ε), (Spiegel-a lesen) (sc, b, B, sc, ε ), (Spiegel-b lesen) (sc, ε, ┴, sc, ε)} (Keller leer)

9 Konfigurationenfolge (1)
(s0, c, ┴, sc, ε ), (s0, a, ┴, s0, A ┴), (s0, b, ┴, s0 , B ┴), (s0, a, A, s0, AA), (s0, a, B, s0, AB), (s0, b, A, s0, BA), (s0, b, B, s0, BB), (s0, c, A, sc, A), (s0, c, B, sc, B), (sc, a, A, sc, ε), (sc, b, B, sc, ε ), (sc, ε, ┴, sc, ε)

10 Beispiel für einen echt nichtdeterministischen PDA
Ein Kellerautomat soll L3 = {wsp(w) ; w  {a, b}* } erkennen, wobei sp(w) das Spiegelbild des Wortes w bezeichnet. K3 = ({a, b}, {s0, sc, sf}, {A, B, ┴}, δ3, s0, ┴, {sf}) mit δ2 = {((s0, ε, ┴, sf, ε ), (w = ε wird akzeptiert) (s0, a, ┴, s0, A ┴), (erstes Zeichen a merken) (s0, b, ┴, s0 , B ┴), (erstes Zeichen b merken) (s0, a, B, s0, AB), (a merken, wenn vorher b) (s0, b, A, s0, BA), (b merken, wenn vorher a) (s0, a, A, s0, AA) (a nach a merken, oder: (s0, a, A, sc, ε) Spiegel-a lesen) (s0, b, B, sc, BB), (b nach b merken, oder (s0, b, B, sc, ε), Spiegel-b lesen) (sc, a, A, sc, ε), (Spiegel-a lesen) (sc, b, B, sc, ε ), (Spiegel-b lesen) (sc, ε, ┴, sc, ε)} (Keller leer)

11 Konfigurationenfolge (2)
(s0, ε, ┴, sf, ε ), (s0, a, ┴, s0, A ┴), (s0, b, ┴, s0 , B ┴), (s0, a, B, s0, AB), (s0, b, A, s0, BA), (s0, a, A, s0, AA) (s0, a, A, sc, ε) (s0, b, B, sc, BB), (s0, b, B, sc, ε), (sc, a, A, sc, ε), (sc, b, B, sc, ε ), (sc, ε, ┴, sc, ε),

12 Akzeptieren mit leerem Keller
Sei K = (, S, Γ, δ, s0, ┴, F) ein Kellerautomat. Die von K mit leerem Keller akzeptierte Sprache über  ist: Lε (K) = { w  * ; (s0, w, ┴) ├* (s, ε, ε ), s  S } Satz: Die Klasse der von Kellerautomaten mit Endzustand akzeptierbaren Sprachen stimmt überein mit der Klasse der von Kellerautomaten mit leerem Keller akzeptierbaren Sprachen. Bew. (1), Idee: Zu einem PDA A konstruiert man einen PDA A‘ mit LF(A) = Lε (A‘) so, dass A‘ seinen Keller leert, wenn A in einen Endzustand übergeht. Bew. (2), Idee: Zu einem PDA A konstruiert man einen PDA A‘ mit Lε (A) = LF(A‘) so, dass A‘ in einen Endzustand übergeht, wenn A seinen Keller geleert hat.

13 Äquivalenz von cf Grammatiken und PDA(1)
Satz: Zu jeder cf Grammatik G = (V, , R, S) kann man einen PDA K angeben, so dass L(G) = Lε(K). Bew.: K wird so konstruiert, dass Linksableitungen von G simuliert werden: Ist das aktuelle Eingabesymbol = Keller-Topsymol, so wird es gelesen bzw. gelöscht. Ist Keller-Topsymbol = A  V, so wird kein Eingabesymbol gelesen, und A wird durch α ersetzt, falls A → α  R. Keller Bottomsymbol ist S. Bem.: Ein Zustand q reicht aus! Der PDA K wird auch Parser von G genannt.

14 Beispiel: PDA für eine cf Grammatik
Betrachte G = ({a, b}, {S}, { S →aSb | ε }, S) mit L(G) = {anbn ; n ≥ 0}. Der Parser für G ist der PDA K = ({a, b}, {q}, {a, b, S}, δ, q, S, ) mit δ = {(q, a, a, q, ε), (q, b, b, q, ε), (q, ε, S, q, aSb), (q, ε, S, q, ε)}. Beispiel einer akzeptierenden Konfigurationenfolge für w = aaabbb:

15 Äquivalenz von cf Grammatiken und PDA(2)
Satz 2: Zu jedem PDA K kann man eine cf Grammatik G angeben mit Lε(K) = L(G)


Herunterladen ppt "Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann."

Ähnliche Präsentationen


Google-Anzeigen