1 / 15

Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA)

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

nariko
Télécharger la présentation

Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vorlesung Informatik 3Einfü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)

More Related