Universit¨at Siegen
Lehrstuhl Theoretische Informatik Markus Lohrey
Grundlagen der Theoretischen Informatik SS 2020
Musterl¨ osung zu ¨ Ubungsblatt 9
Aufgabe 1. Geben Sie Kellerautomaten und kontextfreie Grammatiken an, die die folgenden Sprachen akzeptieren.
(a) {anbn |n ≥0}
(b) {w ∈ {a,b}∗ |Die Anzahl der a’s und b’s ist gleich.}
(c) {ambn |m,n ≥0, m 6=n}
(d) {w ∈ {a,b}∗ |w =wr}
L¨osung zu Aufgabe 1. Die Grammatiken, die im Folgenden angegeben sind, erf¨ullen zum Teil nicht dieε-Sonderregel und sind daher streng genom- men nicht kontextfrei im Sinne der Definition.
Zus¨atzliche Aufgabe: Modifizieren Sie die angegebenen Grammatiken so, dass die ε-Sonderregel erf¨ullt ist und die Grammatiken somit auch im strengeren Sinne kontextfrei sind.
(a) Grammatik
• G1 = (V,Σ,P,S)
• V ={S}
• Σ ={a,b}
• P ={S →ε | aSb}
Kellerautomat
• M1 = (Z,Σ,Γ, δ,z0,#)
• Z ={z0,z1}
• Σ ={a,b}
δ : (z0, ε,#) →(z1, ε) (z0,a,#)→(z0,A#) (z0,a,A)→(z0,AA) (z0,b,A)→(z1, ε) (z1,b,A)→(z1, ε) (z1, ε,#) →(z1, ε)
Die einfache Idee hinter diesem Kellerautomaten ist, dass f¨ur jedes a im an Bereich einAauf den Keller gelegt wird, und f¨ur jedesb imbn Bereich ein A vom Keller entfernt wird.
(b) Grammatik
• G2 = (V,Σ,P,S)
• V ={S}
• Σ ={a,b}
• P ={S →ε | aSbS | bSaS}
Idee: Auf jedes a muss irgendwann ein zugeh¨origes b folgen und um- gekehrt. Davor und dahinter k¨onnen wir mit einem S das Wort weiter verl¨angern oder die Konstruktion durch die ε-Transition beenden.
Kellerautomat, Variante 1
• M2 = (Z,Σ,Γ, δ,z0,#)
• Z ={z0}
• Σ ={a,b}
• Γ ={#,P,N}
Dabei istδ wie folgt definiert:
δ : (z0, ε,#)→(z0, ε) (z0,a,#)→(z0,P#) (z0,b,#)→(z0,N#) (z0,a,P)→(z0,PP) (z0,b,P)→(z0, ε) (z0,a,N)→(z0, ε) (z0,b,N)→(z0,NN)
Wir verwenden den Keller um die Differenz #a(w)−#b(w) zu speichern, wobei #a(w) die Anzahl a’s im Wort w ist, #b(w) die Anzahl an b’s.
Positive Werte werden durch eine Folge vonP’s codiert, negative Werte durch eine Folge vonN’s.
Enth¨alt das eingelesene Wort gleichviele a’s und b’s, ist der Keller am Ende leer.
Kellerautomat, Variante 2
• M2 = (Z,Σ,Γ, δ,z0,S)
• Z ={z0}
• Σ ={a,b}
• Γ ={S,A,B}
Dabei istδ wie folgt definiert:
δ: (z0, ε,#)→(z0,S#) (z0, ε,S)→(z0,ASBS) (z0, ε,S)→(z0,BSAS)
wenn wieder ein S oben auf dem Keller liegt, mit Hilfe der beiden ε- Uberg¨¨ ange ((z0, ε,S) → (z0,ASBS), (z0, ε,S) → (z0,BSAS)) r¨at, wie das Wort in der Zukunft weiter geht und die entsprechenden Symbole auf den Keller packt. Anschließend werden mit den beiden ¨Uberg¨angen (z0,a,A) → (z0, ε) und (z0,b,B) → (z0, ε) die entsprechenden Symbole vom Keller entfernt.
(c) Grammatik
• G3 = (V,Σ,P,S)
• V ={S,A,B}
• Σ ={a,b}
• P ={S →aSb | A | B, A→aA |a, B →bB |b}
Uber die Regel¨ S →aSb erzeugen wir W¨orter mit gleich vielen a’s und b’s.
Die ¨Uberg¨ange S → A und S → B f¨ugen in der Mitte dann noch ein Wortan oderbn mitn ≥1 ein, so dass am Ende entweder mehra’s oder mehrb’s erzeugt wurden.
Kellerautomat
• M3 = (Z,Σ,Γ, δ,z0,#)
• Z ={z0,z1,z2,z3,z4,z5}
• Σ ={a,b}
• Γ ={#,A,B}
Dabei istδ wie folgt definiert:
δ: (z0,a,#)→(z1,#) (1)
(z1,a,#)→(z1,#) (1) (z1, ε,#)→(z1, ε) (1) (z0,b,#)→(z2,#) (2) (z2,b,#)→(z2,#) (2/4) (z2, ε,#)→(z2, ε) (2/4) (z0,a,#)→(z3,A#) (3/4) (z3,a,A)→(z3,AA) (3/4) (z3,b,A)→(s0, ε) (3) (s0,b,A)→(s0, ε) (3) (s0, ε,A)→(s1, ε) (3) (s1, ε,A)→(s1, ε) (3) (s1, ε,#)→(s1, ε) (3) (z3,b,A)→(q0, ε) (4) (q0,b,A)→(q0, ε) (4) (q0,b,#)→(z2,#) (4)
Lassen Sie sich nicht abschrecken von den vielen Transitionen, denn das Prinzip ist einfacher als es aussieht. Wir unterscheiden nichtdeterminis- tisch 4 Typen von W¨ortern, die zur Sprache geh¨oren:
(1) an f¨ur n ≥1 (2) bn f¨ur n ≥1
(3) ambn mit m,n ≥1 und m >n (4) ambn mit m,n ≥1 und m <n
schließend den Keller ohne weitere Buchstaben zu lesen. Beachten Sie, dass falls man den ε- ¨Ubergang anwendet bevor das Wort zu Ende ge- lesen wurde, so wird am Ende nicht akzeptiert, da im Zustands1 keine weiteren Buchstaben gelesen werden.
Im Fall (4) wird ebenfalls f¨ur jedes b ein A vom Keller entfernt, aber anschließend wechselt man in den Zustand z2, falls man das Kellerbo- densymbol # erreicht und ein b gelesen wird (und somit mehr b’s als a’s gelesen wurden). Im Zustand z2 werden dann noch beliebig viele b’s gelesen bevor man das Kellerbodensymbol entfernt.
(d) Grammatik
• G4 = (V,Σ,P,S)
• V ={S}
• Σ ={a,b}
• P ={S →ε | a | b | aSa | bSb}
Kellerautomat
• M4 = (Z,Σ,Γ, δ,z0,#)
• Z ={z0,z1}
• Σ ={a,b}
• Γ ={#,A,B}
Dabei istδ wie folgt definiert:
δ: (z0, ε,#)→(z0, ε) (1)
(z0,a,#)→(z0,A#) (1) (z0,b,#)→(z0,B#) (1) (z0,a,A)→(z0,AA) (1) (z0,b,A)→(z0,BA) (1) (z0,a,B)→(z0,AB) (1) (z0,b,B)→(z0,BB) (1) (z0, ε,A)→(z1,A) (2) (z0, ε,B)→(z1,B) (2) (z0,a,A)→(z1,A) (2) (z0,b,A)→(z1,A) (2) (z0,a,B)→(z1,B) (2) (z0,b,B)→(z1,B) (2) (z1,a,A)→(z1, ε) (3) (z1,b,B)→(z1, ε) (3) (z1, ε,#)→(z1, ε) (3)
Falls w ∈ L, muss w = xxr oder xmxr aufgebaut sein mit x ∈ {a,b}∗, m ∈ {a,b}.
In (1) wird das Wort in richtiger Reihenfolge auf den Stack gelegt und in (3) r¨uckw¨arts ausgelesen und mit dem Rest des Wortes verglichen.
Der ¨Ubergang, d.h. die Mitte des Wortes, wird mit (2) nicht-deterministisch geraten, mit einem ε- ¨Ubergang f¨ur den Fall w = xxr und einem a/b- Ubergang f¨¨ ur den Fall w =xmxr.
• Regul¨are Sprachen
• Kontextfreie Sprachen
• Endliche Sprachen
• Un¨are Sprachen (alle Sprachen Lmit L⊆ {a}∗) L¨osung zu Aufgabe 2.
endliche Sprachen
regul¨are Sprachen
kontext- freie Sprachen
un¨are Sprachen
• endlich und un¨ar: {a}
• endlich und nicht un¨ar: {ab}
• regul¨ar, un¨ar und nicht endich: {an |n ∈N}
• regul¨ar, nicht un¨ar und nicht endlich: {abn |n ∈N}
• un¨ar, nicht endlich, nicht kontextfrei: {ap |p ist Primzahl}
• nicht un¨ar, nicht regul¨ar, kontextfrei:{anbn |n ∈N}
Hinweis: Jede kontextfreie, un¨are Sprache ist auch regul¨ar (siehe Vorlesung).