cs411-2015s-09 push-down automatagalles/cs411/lecture/lecture9.pdfcs411-2015s-09 push-down automata...
TRANSCRIPT
![Page 1: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/1.jpg)
Automata TheoryCS411-2015S-09
Push-Down Automata
David Galles
Department of Computer Science
University of San Francisco
![Page 2: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/2.jpg)
09-0: DFAs & regular expressions
Regular expressions are string generators – theytell us how to generate all strings in a language L
Finite Automata (DFA, NFA) are string acceptors –they tell us if a specific string w is in L
CFGs are string generators
Are there string acceptors for Context-Freelanguages?
![Page 3: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/3.jpg)
09-1: DFAs & regular expressions
Regular expressions are string generators – theytell us how to generate all strings in a language L
Finite Automata (DFA, NFA) are string acceptors –they tell us if a specific string w is in L
CFGs are string generators
Are there string acceptors for Context-Freelanguages?
YES! Push-down automata
![Page 4: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/4.jpg)
09-2: Push-Down Automata
DFA could not accept languages such as 0n1n
because they have no memory
We can give an NFA memory – stack
Examine the next symbol in the input, and popoff the top symbol(s) on the stack
Transition to the next state, depending uponwhat the next symbol in the input is, and whatthe top of the stack is, and (potentially) pushmore symbols on the top of the stack
Accept if you end up in an accept state with anempty stack
![Page 5: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/5.jpg)
09-3: Push-Down Automata
PDA for L = {0n1n|n > 0}
(0,ε,X) (1,X,ε)
(1,X,ε)0 1
What if we wanted n ≥ 0?
![Page 6: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/6.jpg)
09-4: Push-Down Automata
PDA for L = {0n1n|n ≥ 0}
(0,ε,X) (1,X,ε)
(1,X,ε)0 1
![Page 7: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/7.jpg)
09-5: Push-Down Automata
M = (K,Σ,Λ,∆, s, F )
K set of states (just like DFA)
Σ alphabet (just like DFA)
Λ stack alphabet (symbols that can be pushed onthe stack)
∆ ⊆ (K × (Σ ∪ {ǫ})× Λ∗)× (K × Λ∗) Transitionrelation
s ∈ K Initial state
F ⊆ K Final state(s)
PDA accepts w if we end up in a final state with anempty stack
![Page 8: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/8.jpg)
09-6: Push-Down Automata
Transition Relation
All PDAs are non-deterministic (for now!)
If ((q1, a, λ1), (q2, λ2)) is in ∆In state q1Next symbol in the input is aTop of the stack is λ1
We can pop λ1 off the top of the stack,consume a, transition to q2, and push λ2 onthe top of the stack
![Page 9: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/9.jpg)
09-7: Push-Down Automata
PDA Configuration
(<state>, <remaining string>, <stack>)Top of the stack on the left
![Page 10: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/10.jpg)
09-8: Push-Down Automata
(0,ε,X) (1,X,ε)
(1,X,ε)0 1
(q0, 000111, ǫ) 7→M (q0, 00111, X)
7→M (q0, 0111, XX)
7→M (q0, 111, XXX)
7→M (q1, 11, XX)
7→M (q1, 1, X)
7→M (q1, ǫ, ǫ)
![Page 11: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/11.jpg)
09-9: Push-Down Automata
Create a PDA for all strings over {a, b} with thesame number of a’s as b’s
![Page 12: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/12.jpg)
09-10: Push-Down Automata
Create a PDA for all strings over {a, b} with thesame number of a’s as b’s
(a,ε,A)
(b,A,ε)
(b,ε,B)
(a,B,ε)
0
![Page 13: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/13.jpg)
09-11: Push-Down Automata
Create a PDA for all strings over {a, b} with thesame number of a’s as b’s
We can also describe a PDA by listing ∆, s, and F
((q0, a, ǫ), (q0, A))
((q0, b, A), (q0, ǫ))
((q0, b, ǫ), (q0, B))
((q0, a, B), (q0, ǫ))
S = q0, F = {q0}
(a,ε,A)
(b,A,ε)
(b,ε,B)
(a,B,ε)
0
![Page 14: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/14.jpg)
09-12: Push-Down Automata
Create a PDA for all strings over {a, b} with twiceas many a’s as b’s
![Page 15: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/15.jpg)
09-13: Push-Down Automata
Create a PDA for all strings over {a, b} with twiceas many a’s as b’s
(a,ε,A)
(a,B,ε)
(b,AA,ε)
(b,ε,BB)
(b,A,B)
0
![Page 16: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/16.jpg)
09-14: Push-Down Automata
Create a PDA for L = {wwR : w ∈ {a, b}∗}
![Page 17: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/17.jpg)
09-15: Push-Down Automata
Create a PDA for L = {wwR : w ∈ {a, b}∗}
(a,ε,A)
(b,ε,B)
0 1
(a,A,ε)
(b,Β,ε)
(ε,ε,ε)
![Page 18: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/18.jpg)
09-16: Push-Down Automata
Create a PDA for L = {aibjck : i = j + k}
![Page 19: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/19.jpg)
09-17: Push-Down Automata
Create a PDA for L = {aibjck : i = j + k}
(a,ε,X)
0 1
(c,X,ε)
(ε,ε,ε)(ε,ε,ε)
(b,X,ε)
2
![Page 20: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/20.jpg)
09-18: Push-Down Automata
Create a PDA for L = {aibjck : i > j + k}
![Page 21: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/21.jpg)
09-19: Push-Down Automata
Create a PDA for L = {aibjck : i > j + k}
(a,ε,X)
0 1
(c,X,ε)
(ε,ε,ε)(ε,ε,ε)
(b,X,ε)
2
(ε,X,ε)
2(ε,X,ε)
![Page 22: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/22.jpg)
09-20: Push-Down Automata
Create a PDA for L = {aibjck : i < j + k}
![Page 23: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/23.jpg)
09-21: Push-Down Automata
Create a PDA for L = {aibjck : i < j + k}
0 1
(b,X,ε)
(ε,ε,ε)(ε,ε,X)
(a,εX)
2
(c,X,ε)
2(ε,ε,ε)
(ε,ε,X)
![Page 24: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/24.jpg)
09-22: PDA Languages
The Push-Down Automata Languages, LPDA, is the setof all languages that can be described by some PDA:
LPDA = {L : ∃ PDA M ∧ L[M ] = L}
We already know LPDA ⊃ LDFA (why)?
![Page 25: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/25.jpg)
09-23: PDA Languages
The Push-Down Automata Languages, LPDA, is the setof all languages that can be described by some PDA:
LPDA = {L : ∃ PDA M ∧ L[M ] = L}
We already know LPDA ⊃ LDFA – every DFA is just aPDA that ignores the stack.
LCFG ⊆ LPDA ?
LPDA ⊆ LCFG ?
![Page 26: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/26.jpg)
09-24: LCFG ⊆ LPDA
Given any CFG G, can we create a PDA M suchthat L[M ] = L[G]?
Idea: We will first use the stack to derive theinput string, and then check to make sure ourderivation matches the input
![Page 27: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/27.jpg)
09-25: LCFG ⊆ LPDA
Given any CFG G = (V,Σ, R, S), can we create a PDA
M = (K,Σ′,Γ,∆, s, F ) as follows:
K = {q1, q2}
Σ′ = Σ
Γ = V
∆ =((q1, ǫ, ǫ), (q2, S))
((q2, ǫ, N), (q2, X)) For each rule (N,X) ∈ R
((q2, a, a), (q2, ǫ)) For each a ∈ Σ
s = q1
F = {q2}
![Page 28: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/28.jpg)
09-26: LCFG ⊆ LPDA
Example:
S → aSa
S → bSb
S → c
(what language does this CFG generate?)
![Page 29: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/29.jpg)
09-27: LCFG ⊆ LPDA
Example:
S → aSa L = {wcwR : w ∈ {a, b}∗}
S → bSb
S → c
((q0, ǫ, ǫ), (q1, S))
((q1, ǫ, S), (q1, aSa))
((q1, ǫ, S), (q1, bSb))
((q1, ǫ, S), (q1, c))
((q1, a, a), (q1, ǫ))
((q1, b, b), (q1, ǫ))
((q1, c, c), (q1, ǫ))
![Page 30: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/30.jpg)
09-28: LCFG ⊆ LPDA
First, we will show that any PDA can be convertedto an equivalent machine with the followingrestriction:
All transitions are of the form (q1, A,B) → (q2, C),where:
A ∈ Σ ∪ {ǫ}
B ∈ Γ
C ∈ Γ∗, with |C| ≤ 2
![Page 31: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/31.jpg)
09-29: LCFG ⊆ LPDA
First, we will show that any PDA can be convertedto an equivalent machine with the followingrestriction:
All transitions are of the form (q1, A,B) → (q2, C),where:
A ∈ Σ ∪ {ǫ}
B ∈ Γ
C ∈ Γ∗, with |C| ≤ 2
How can we remove all transitions where B ≥ 2?
![Page 32: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/32.jpg)
09-30: LCFG ⊆ LPDA
All transitions are of the form (q1, A,B) → (q2, C)
How can we remove all transitions where B ≥ 2?
((qi, 1, Y Z), (qj,W )) → ((qi, 1, X), (q′i, ǫ))
((q′i, ǫ, Z), (qj,W )
(1,YZ,W)i j
(1,Y,ε)
i j
i’
(ε,Z,W)
![Page 33: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/33.jpg)
09-31: LCFG ⊆ LPDA
All transitions are of the form (q1, A,B) → (q2, C)
How can we remove all transitions where B ≥ 2?
((qi, 1, TUV ), (qj,W )) → ((qi, 1, T ), (q′
i, ǫ))
((q′i, ǫ, U), (q′′i , ǫ))
((q′′i , ǫ, V ), (qj,W ))
(1,TUV,W)i j
(1,T,ε)
i j
i’(ε,U,ε)
(ε,V,W)
i’’
![Page 34: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/34.jpg)
09-32: LCFG ⊆ LPDA
First, we will show that any PDA can be convertedto an equivalent machine with the followingrestriction:
All transitions are of the form (q1, A,B) → (q2, C),where:
A ∈ Σ ∪ {ǫ}
B ∈ Γ
C ∈ Γ∗, with |C| ≤ 2
How can we remove all transitions where C ≥ 2?(stronger than we need – see why in a moment)
![Page 35: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/35.jpg)
09-33: LCFG ⊆ LPDA
How can we remove all transitions where C ≥ 2?
((qi, 1, T ), (qj , V W )) ⇒ ((qi, 1, T ), (q′
i,W )),
((q′i, ǫ, ǫ), (qj, V ))
(1,T,VW)i j
(1,T,W)
i j
i’
(ε,ε,V)
![Page 36: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/36.jpg)
09-34: LCFG ⊆ LPDA
How can we remove all transitions where C ≥ 2?
((qi, 1, T ), (qj , V WX)) ⇒ ((qi, 1, T ), (q′
i, X)),
((q′i, ǫ, ǫ), (q′′
i ,W ))
((q′′i , ǫ, ǫ), (qj, V ))
(1,T,VWX)i j
(1,T,X)
i j
i’
(ε,ε,W)
i’’(ε,ε,V)
![Page 37: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/37.jpg)
09-35: LCFG ⊆ LPDA
First, we will show that any PDA can be convertedto an equivalent machine with the followingrestriction:
All transitions are of the form (q1, A,B) → (q2, C),where:
A ∈ Σ ∪ {ǫ}
B ∈ Γ
C ∈ Γ∗, with |C| ≤ 2
How can we remove all transitions where B = ǫ?
Exceptions?
![Page 38: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/38.jpg)
09-36: LCFG ⊆ LPDA
How can we remove all transitions where B = ǫ?
((qi, 1, ǫ), (qj , X)) ⇒ ((qi, 1, X), (qj , XX)),
((qi, 1, Y ), (qj, XY )),
((qi, 1, Z), (qj , XZ)),
. . .
(1,ε,X)i j
(1,X,XX)(1,Y,XY)(1,Z,XZ) ...
i j
![Page 39: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/39.jpg)
09-37: LCFG ⊆ LPDA
What about when the stack is empty?
First, push a special “end of stack symbol” ontop of stack
Pop this symbol off at the end
![Page 40: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/40.jpg)
09-38: LCFG ⊆ LPDA
s
f1
f2
f3
![Page 41: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/41.jpg)
09-39: LCFG ⊆ LPDA
s
f1
f2
f3
s’ f’
(ε,@,ε)
(ε,@,ε)
(ε,@,ε)(ε,ε,@)
![Page 42: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/42.jpg)
09-40: LCFG ⊆ LPDA
All transitions in the PDA are now of the form(q1, A,B) → (q2, C), where:
A ∈ Σ ∪ {ǫ}
B ∈ Γ
C ∈ Γ∗, with |C| ≤ 2
We can now create a CFG equivalent to this PDA
![Page 43: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/43.jpg)
09-41: LCFG ⊆ LPDA
All non-terminals will be of the form:
< qi, A, qj >This non-terminal will generate all strings that willdrive the PDA from state qi to state qj, while
popping A off the top of the stack
< qi, ǫ, qj >This non-terminal will generate all strings that willdrive the PDA from state qi to state qj, leaving thestack unchanged.
![Page 44: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/44.jpg)
09-42: LCFG ⊆ LPDA
For each transion of the form:
((q, a, B), (r, C))
add the rule:
< q,B, p >→ a < r,C, p >
for all states p
B ∈ Γ, C ∈ Γ ∪ {ǫ}
![Page 45: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/45.jpg)
09-43: LCFG ⊆ LPDA
For each transion of the form:
((q, a, B), (r, C1C2))
add the rule:
< q,B, p >→ a < r,C1, p′ >< p′, C2, p >
for all pairs of states p, p′
C1, C2, B ∈ Γ, a ∈ Σ ∪ ǫ
![Page 46: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/46.jpg)
09-44: LCFG ⊆ LPDA
For each state q, add the rule:
< q, ǫ, q >→ ǫ
Start state
< s,@, f ′ >
![Page 47: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/47.jpg)
09-45: LCFG ⊆ LPDA
Example: Create PDA for
L = {wwR : w ∈ {a, b}∗}
![Page 48: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/48.jpg)
09-46: LCFG ⊆ LPDA
Example: Create PDA for
L = {wwR : w ∈ {a, b}∗}
s
(a,ε,A)
(b,ε,B)
f(ε,ε,ε)
(a,A,ε)
(b,B,ε)
![Page 49: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/49.jpg)
09-47: LCFG ⊆ LPDA
Example: Create PDA for
L = {wwR : w ∈ {a, b}∗}
s
(a,Α,AA)
(a,B,AB(a,@,A@)
(b,Α,BA)
(b,B,BB)(B,@,B@)
f
(a,A,ε)
(b,B,ε)
s’(ε,ε,@)
f’(ε,@,ε)
(ε,A,A)
(ε,B,B)
(ε,@,@)
![Page 50: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/50.jpg)
09-48: LCFG ⊆ LPDA
((s, a, A), (s,AA)) ((s, a,B), (s,AB)) ((s, a,@), (s,A@))
((s, b, A), (s,BA)) ((s, b, B), (s,BB)) ((s, b,@), (s,B@))
((s, ǫ, A), (f,A)) ((s, ǫ, B), (f,B)) ((s, ǫ,@), (f,@))
((f, a, a), (f, ǫ)) ((f, b, b), (f, ǫ)) ((f, ǫ,@), (f ′, ǫ))
![Page 51: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/51.jpg)
09-49: LCFG ⊆ LPDA
((f, a, A), (f, ǫ))
< f,A, s >→ a < f, ǫ, s >
< f,A, f >→ a < f, ǫ, f >
< f,A, f ′ >→ a < f, ǫ, f ′ >
< f,A, s′ >→ a < f, ǫ, s′ >
![Page 52: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/52.jpg)
09-50: LCFG ⊆ LPDA
((f, ǫ,@), (f ′, ǫ))
< f,@, s >→< f ′, ǫ, s >
< f,@, f >→< f ′, ǫ, f >
< f,@, f ′ >→< f ′, ǫ, f ′ >
< f,@, s′ >→< f ′, ǫ, s′ >
![Page 53: CS411-2015S-09 Push-Down Automatagalles/cs411/lecture/lecture9.pdfCS411-2015S-09 Push-Down Automata ... Regular expressions are string generators – they ... Pop this symbol off at](https://reader030.vdocuments.site/reader030/viewer/2022020412/5af0e8787f8b9a572b900bfc/html5/thumbnails/53.jpg)
09-51: LCFG ⊆ LPDA
((s, a,B), (s,AB))
< s,B, s >→ a < s,A, s >< s,B, s > < s,B, s >→ a < s,A, s′ >< s′, B, s >
< s,B, s >→ a < s,A, f >< f,B, s > < s,B, s >→ a < s,A, f ′ >< f ′, B, s >
< s,B, f >→ a < s,A, s >< s,B, f > < s,B, f >→ a < s,A, s′ >< s′, B, f >
< s,B, f >→ a < s,A, f >< f,B, f > < s,B, f >→ a < s,A, f ′ >< f ′, B, f >
< s,B, s′ >→ a < s,A, s >< s,B, s′ > < s,B, s′ >→ a < s,A, s′ >< s′, B, s′ >
< s,B, s′ >→ a < s,A, f >< f,B, s′ > < s,B, s′ >→ a < s,A, f ′ >< f ′, B, s′ >
< s,B, f ′ >→ a < s,A, s >< s,B, f ′ > < s,B, f ′ >→ a < s,A, s′ >< s′, B, f ′ >
< s,B, f ′ >→ a < s,A, f >< f,B, f ′ > < s,B, f ′ >→ a < s,A, f ′ >< f ′, B, f ′ >