SlideShare a Scribd company logo
PUSH DOWN AUTOMATA
(PDA)
Pushdown automata are machines to accept context-free
languages.
For a context-free grammar G, there is an equivalent
pushdown automaton M to recognize the language
generated by the grammar G.
Description of pushdown automaton (PDA)
A PDA has
an input tape,
a finite control, and
a stack.
q1
0
0
0 0 0 1 0 0 0 (input tape)
(finite control)
(stack)
q1 q1
step1: read 0, push 0, and move to right
step2: read 0, push 0, and move to right
There are 2 types of moves (Non-determinstic):
1. According to an input symbol, current state, and top
symbol of the stack, a decision is made, then the input
head is moved ahead one symbol.
2. Next move is decided by the current state and the top
symbol of the stack only. The input symbol is not used.
Hence the input head is not moved at all after the
decision is made. This type of move is called ε-move
that allows the PDA to manipulate the stack without
reading input symbol.
Languages accepted by PDA's
There are two ways to accept inputs:
1. The PDA accepts an input if after reading the input
and the machine empty its stack.
The set of inputs accepted by the PDA is the language
accepted by empty stack.
2. Some states of the PDA are final states. The PDA
accepts an input if the machine enters a final state.
The set of inputs accepted by the PDA is the language
accepted by final state.
Definition of PDA's
A pushdown automaton M is a system (Q, Σ, Γ, δ, q0, Z0 , F),
where
1. Q is a finite set of states;
2. Σ is an alphabet called the input alphabet;
3. Γ is an alphabet, called the stack alphabet;
4. q0 in Q is the initial state;
5. Z0 in Γ is a particular stack symbol called the start symbol;
6. F, a subset of Q, is the set of final states;
7. mapping δ: Q×(Σ∪{ε}) ×Γ → finite subset of Q×Γ*.
Moves:
δ(q, a, Z) = {(p1, r1), (p2, r2), ..., (pm, rm)}, where
q and pi, 1 i m, are states, a is in
≦ ≦ , Z is a stack
symbol, and ri is in Γ*, 1 i m,
≦ ≦
means
PDA in state q, reading input symbol a with top symbol Z on the
stack, can enter any of the state pi and replaces top symbol Z by
ri, and advances reading head one symbol.
Example: δ(q1, 0, G) = {(q1, BG)}
0 1 0
q1
G
R
0 0 1 0
q1
G
R
0
B
δ
-Moves:
δ(q, , Z) = {(p1, r1), (p2, r2), ..., (pm, rm)}, where
q and pi, 1 i m, are states, Z is a stack symbol, and r
≦ ≦ i
is in Γ*, 1 i m,
≦ ≦
means
PDA in state q, without reading any input symbol with top
symbol Z on the stack, can enter any of the state pi and replaces
top symbol Z by ri, and the reading head remains at the same
place.
Example: δ(q1, , G) = {(q1, BG)}
0 1 0
q1
G
R
0 0 1 0
q1
G
R
0
B
δ
Example: N(M) = {wwR
| w in (0+1)*}, where
M = ({q1, q2}, {0, 1}, {Z0, 0, 1}, δ, q1, Z0, {}), and δ is as follows:
δ(q1, 0, Z0) ={(q1, 0Z0)},
δ(q1, 1, Z0) ={(q1, 1Z0)},
δ(q1, 0, 0) ={(q1, 00), (q2, )},
δ(q1, 0, 1) ={(q1, 01)},
δ(q1, 1, 0) ={(q1, 10)},
δ(q1, 1, 1) ={(q1, 11), (q2, )},
δ(q1, , Z0) = {(q2, )},
δ(q2, 0, 0) ={(q2, )},
δ(q2, 1, 1) ={(q2, )},
δ(q2, , Z0) ={(q2, )}.
M = ({q1, q2, q3}, {0, 1}, {Z0, 0, 1}, δ, q1, Z0, {q3})
δ(q2, , Z0) ={(q3, )}.
Let Lwwr = {wwR
| w is in (0+1)*}
• CFG for Lwwr : S==> 0S0 | 1S1 | 
• PDA for Lwwr :
• P := ( Q,∑, , δ,q0,Z0,F )
= ( {q0, q1, q2},{0,1},{0,1,Z0},δ,q0,Z0,{q2})
11
PDA for Lwwr
1. δ(q0,0, Z0)={(q0,0Z0)}
2. δ(q0,1, Z0)={(q0,1Z0)}
3. δ(q0,0, 0)={(q0,00)}
4. δ(q0,0, 1)={(q0,01)}
5. δ(q0,1, 0)={(q0,10)}
6. δ(q0,1, 1)={(q0,11)}
7. δ(q0, , 0)={(q1, 0)}
8. δ(q0, , 1)={(q1, 1)}
9. δ(q0, , Z0)={(q1, Z0)}
10. δ(q1,0, 0)={(q1, )}
11. δ(q1,1, 1)={(q1, )}
12. δ(q1, , Z0)={(q2, Z0)}
First symbol push on stack
Grow the stack by pushing
new symbols on top of old
(w-part)
Switch to popping mode
(boundary between w and wR
)
Shrink the stack by popping matching
symbols (wR
-part)
Enter acceptance state
Z0
Initial state of the PDA:
q0
Stack
top
12
PDA as a state diagram
qi qj
a, X / Y
Next
input
symbol
Current
state
Current
stack
top
Stack
Top
Replacement
(w/ string Y)
Next
state
δ(qi,a, X)={(qj,Y)}
13
PDA for Lwwr: Transition Diagram
q0 q1 q2
0, Z0/0Z0
1, Z0/1Z0
0, 0/00
0, 1/01
1, 0/10
1, 1/11
0, 0/ 
1, 1/ 
, Z0/Z0
, 0/0
, 1/1
, Z0/Z0
Grow stack
Switch to
popping mode
Pop stack for
matching symbols
Go to acceptance
∑ = {0, 1}
= {Z0, 0, 1}
Q = {q0,q1,q2}
, Z0/Z0
This would be a non-deterministic PDA
Instantaneous descriptions:
Example: δ(q1, 0, G) = {(q1, BG)}
0 1 0
q1
G
R
0 0 1 0
q1
G
R
0
B
δ
If δ(q, a, Z) = contains (p, ), we say
(q, a, Z) M(p, ,  ).

For the above case, we have that
(q1, 010, GR) M(q1, 01, BGR).

Let be the reflexive and transitive closure of M.
*
M

15
PDA’s Instantaneous Description (ID)
A PDA has a configuration at any given instance: (q,w,y)
– q - current state
– w - remainder of the input (i.e., unconsumed part)
– y - current stack contents as a string from top to bottom of
stack
If δ(q,a, X)={(p, A)} is a transition, then the following are also
true:
– (q, a, X ) |--- (p,,A)
– (q, aw, XB ) |--- (p,w,AB)
|--- sign is called a “turnstile notation” and represents one move
|---* sign represents a sequence of moves
16
How does the PDA for Lwwr work on input
“1111”?
All moves made by the non-deterministic PDA
(q0,1111,Z0)
(q0,111,1Z0)
(q0,11,11Z0)
(q0,1,111Z0)
(q0,,1111Z0)
(q1, ,1111Z0) (q1, ,11Z0)
(q1,1,111Z0)
(q1,11,11Z0)
(q1,111,1Z0)
(q1,1111,Z0) Path dies…
Path dies…
(q1,1,1Z0)
(q1, ,Z0)
(q2, ,Z0)
Acceptance by
final state:
= empty input
AND
final state
Path dies…
Path dies…
18
Acceptance by…
• PDAs that accept by final state:
– For a PDA P, the language accepted by P, denoted by L(P)
by final state, is:
• {w | (q0,w,Z0) |---* (q,, A) }, s.t., q  F
• PDAs that accept by empty stack:
– For a PDA P, the language accepted by P, denoted by N(P)
by empty stack, is:
• {w | (q0,w,Z0) |---* (q, , ) }, for any q  Q.
Checklist:
- input exhausted?
- in a final state?
Checklist:
- input exhausted?
- is the stack empty?
There are two types of PDAs that one can design:
those that accept by final state or by empty stack
Q) Does a PDA that accepts by empty stack
need any final state specified in the design?
19
Example 2: language of balanced paranthesis
q0 q1 q2
(, Z0 / ( Z0
, Z0 / Z0
, Z0 / Z0
Grow stack
Switch to
popping mode
Pop stack for
matching symbols
Go to acceptance (by final state)
when you see the stack bottom symbol
∑ = { (, ) }
= {Z0, ( }
Q = {q0,q1,q2}
(, (/ ( (
), ( / 
), (/ 
To allow adjacent
(, ( / ( (
(, Z0 / ( Z0
, Z0 / Z0
20
Example 2: language of balanced paranthesis
(another design)
∑ = { (, ) }
= {Z0, ( }
Q = {q0,q1}
q0
(,Z0 / ( Z0
(,( / ( (
), ( / 
start
q1
,Z0/ Z0
,Z0/ Z0
Example: L of balanced parenthesis
21
q0
(,Z0 / ( Z0
(,( / ( (
), ( / 
start q1
,Z0/ Z0
,Z0/ Z0
PDA that accepts by final state
q0
start
(,Z0 / ( Z0
(, (/ ( (
), (/ 
,Z0 / 
An equivalent PDA that
accepts by empty stack
,Z0/ Z0
PF: PN:
How will these two PDAs work on the input: ( ( ( ) ) ( ) ) ( )
23
PDAs accepting by final state and empty stack are
equivalent
• PF <= PDA accepting by final state
– PF = (QF,∑, , δF,q0,Z0,F)
• PN <= PDA accepting by empty stack
– PN = (QN,∑, , δN,q0,Z0)
• Theorem:
– (PN==> PF) For every PN, there exists a PF s.t. L(PF)=L(PN)
– (PF==> PN) For every PF, there exists a PN s.t. L(PF)=L(PN)
24
PN==> PF construction
• Whenever PN’s stack becomes empty, make PF go to a final state without
consuming any addition symbol. new state pf is needed.
• To detect empty stack in PN: PF pushes a new stack symbol X0 (not in  of
PN) initially before simulating PN
• New start state p0 in Pf that pushes Z0 onto TOS and goes to PN
PF = (QN U {p0,pf}, ∑,  U {X0}, δF, p0, X0, {pf})
q0 … pf
p0
, X0/Z0X0
New
start
, X0/ X0
, X0/ X0
, X0/ X0
, X0/ X0
PN
PF: PN:
, X0 / X0
How to convert an empty stack PDA into a final state PDA?
PN = (QN,∑, , δN,q0,Z0)
25
Example: Matching parenthesis “(” “)”
PN: ( {q0}, {(,)}, {Z0,Z1}, δN, q0, Z0 )
δN: δN(q0,(,Z0) = { (q0,Z1Z0) }
δN(q0,(,Z1) = { (q0, Z1Z1) }
δN(q0,),Z1) = { (q0, ) }
δN(q0, ,Z0) = { (q0, ) }
q0
start
(,Z0 /Z1Z0
(,Z1 /Z1Z1
),Z1 / 
,Z0 / 
q0
(,Z0/Z1Z0
(,Z1/Z1Z1
),Z1/ 
 ,Z0/ 
start
p0 pf
,X0/Z0X0 ,X0/ X0
Pf: ( {p0,q0 ,pf}, {(,)}, {X0,Z0,Z1},
δf, p0, X0 , pf)
δf: δf(p0, ,X0) = { (q0,Z0) }
δf(q0,(,Z0) = { (q0,Z1 Z0) }
δf(q0,(,Z1) = { (q0, Z1Z1) }
δf(q0,),Z1) = { (q0, ) }
δf(q0, ,Z0) = { (q0, ) }
δf(p0, ,X0) = { (pf, X0 ) }
Accept by empty stack Accept by final state
26
PF==> PN construction
• Main idea:
– Whenever PF reaches a final state, just make an  -transition into a new end state, clear out
the stack and accept
– Danger: What if PF design is such that it clears the stack midway without entering a final
state?
 to address this, add a new start symbol X0 (not in  of PF)
PN = (Q U {p0,pe}, ∑,  U {X0}, δN, p0, X0)
p0
, X0/Z0X0
New
start
, any/ 
, any/ 
, any/ 
q0 … pe
, any/ 
PF
PN:
How to convert an final state PDA into an empty stack PDA?
27
Equivalence of PDAs and CFGs
28
CFGs == PDAs ==> CFLs
CFG
PDA by
final state
PDA by
empty stack
?
≡
29
Converting CFG to PDA
Main idea: The PDA simulates the leftmost derivation on a
given w, and upon consuming it fully it either arrives at
acceptance (by empty stack) or non-acceptance.
This is same as: “implementing a CFG using a PDA”
PDA
(acceptance by
empty stack)
CFG
w
accept
reject
implements
INPUT
OUTPUT
30
Main idea: The PDA simulates the leftmost derivation on a given w, and
upon consuming it fully it either arrives at acceptance (by empty stack) or
non-acceptance.
Steps:
1. Push the right hand side of the production onto the stack, with
leftmost symbol at the stack top
2. If stack top is the leftmost variable, then replace it by all its
productions (each possible substitution will represent a distinct path
taken by the non-deterministic PDA)
3. If stack top has a terminal symbol, and if it matches with the next
symbol in the input string, then pop it
State is inconsequential (only one state is needed)
31
Formal construction of PDA from CFG
• Given: G= (V,T,P,S)
• Output: PN = ({q}, T, V U T, δ, q, S)
• δ:
– For all A  V , add the following transition(s) in the
PDA:
• δ(q,  ,A) = { (q, ) | “A ==>”  P}
– For all a  T, add the following
transition(s) in the PDA:
• δ(q,a,a)= { (q,  ) }
A
Before:
…
a
Before:
…

After:
…
a
After:
…
Note: Initial stack symbol (S)
same as the start variable
in the grammar
pop
a…
32
Example: CFG to PDA
• G = ( {S,A}, {0,1}, P, S)
• P:
– S ==> AS | 
– A ==> 0A1 | A1 | 01
• PDA = ({q}, {0,1}, {0,1,A,S}, δ, q, S)
• δ:
– δ(q, , S) = { (q, AS), (q, )}
– δ(q, , A) = { (q,0A1), (q,A1), (q,01) }
– δ(q, 0, 0) = { (q, ) }
– δ(q, 1, 1) = { (q, ) }
How will this new PDA work?
Lets simulate string 0011
q
,S/ S
1,1/ 
0,0/ 
,A/ 01
,A/ A1
,A/ 0A1
,S/ 
,S/ AS
Simulating string 0011 on the new PDA
…
33
PDA (δ):
δ(q,  , S) = { (q, AS), (q,  )}
δ(q,  , A) = { (q,0A1), (q,A1), (q,01) }
δ(q, 0, 0) = { (q,  ) }
δ(q, 1, 1) = { (q,  ) }
S
Stack moves (shows only the successful path):
S
A
S
1
A
0
S
1
A
0
S
1
1
0
S
1
1
0
S
1
1
S
1 
Accept by
empty stack
q
,S/ S
1,1/ 
0,0/ 
,A/ 01
,A/ A1
,A/ 0A1
,S/ 
,S/ AS
S => AS
=> 0A1S
=> 0011S
=> 0011
Leftmost deriv.:
S =>AS =>0A1S =>0011S => 0011
Example 2 L ={an
bn
| n 1} is a context-free language .
≧
Let M = ({q}, T, V, δ, q, S , {}), a PDA, where
δ(q, a, S) contains (q, SB), where SaSB is in P,
L = L(G), G = (V, T, P, S) a CFG in Greiback normal form, where
S  aSB, S  aB,B  b.
δ(q, a, S) contains (q, B), where SaB is in P,
δ(q, b, B) contains (q, ), where Bb is in P.
a a b b
q S
δ(q, a, S) := (q, SB) a a b b
q B
S
δ(q, b, B) := (q, )
a a b b
q B
a a b b
q B
B
δ(q, a, S) := (q, B)
δ(q, b, B) := (q, )
a a b b
q
37
Converting a PDA into a CFG
• Main idea: Reverse engineer the productions from
transitions
If δ(q,a,Z) => (p, Y1Y2Y3…Yk):
1. State is changed from q to p;
2. Terminal a is consumed;
3. Stack top symbol Z is popped and replaced with a sequence of k
variables.
– Action: Create a grammar variable called “[qZp]”
which includes the following production:
– [qZp] => a[pY1q1] [q1Y2q2] [q2Y3q3]… [qk-1Ykqk]
– Proof discussion (in the book)
38
Example: Bracket matching
PDA to CFG
• To avoid confusion, we will use b=“(“ and e=“)”
PN: ( {q0}, {b,e}, {Z0,Z1}, δ, q0, Z0 )
1. δ(q0,b,Z0) = { (q0,Z1Z0) }
2. δ(q0,b,Z1) = { (q0,Z1Z1) }
3. δ(q0,e,Z1) = { (q0,  ) }
4. δ(q0,  ,Z0) = { (q0,  ) }
0. S => [q0Z0q0]
1. [q0Z0q0] => b [q0Z1q0] [q0Z0q0]
2. [q0Z1q0] => b [q0Z1q0] [q0Z1q0]
3. [q0Z1q0] => e
4. [q0Z0q0] => 
Let A=[q0Z0q0]
Let B=[q0Z1q0]
0. S => A
1. A => b B A
2. B => b B B
3. B => e
4. A => 
Simplifying,
0. S => b B S | 
1. B => b B B | e
If you were to directly write
a CFG:
S => b S e S | 
39
Two ways to build a CFG
Build a PDA Construct
CFG from PDA
Derive CFG directly
Derive a CFG Construct
PDA from CFG
Design a PDA directly
Similarly…
(indirect)
(direct)
(indirect)
(direct)
Two ways to build a PDA
40
Deterministic PDAs
41
This PDA for Lwwr is non-deterministic
q0 q1 q2
0, Z0/0Z0
1, Z0/1Z0
0, 0/00
0, 1/01
1, 0/10
1, 1/11
0, 0/ 
1, 1/ 
, Z0/Z0
, 0/0
, 1/1
, Z0/Z0
Grow stack
Switch to
popping mode
Pop stack for
matching symbols
Accepts by final state
Why does it
have to be non-
deterministic?
To remove guessing,
impose the user to
insert c in the
middle
42
D-PDA for Lwcwr = {wcwR
| c is some special
symbol not in w}
q0 q1 q2
0, Z0/0Z0
1, Z0/1Z0
0, 0/00
0, 1/01
1, 0/10
1, 1/11
0, 0/ 
1, 1/ 
c, Z0/Z0
c, 0/0
c, 1/1
, Z0/Z0
Grow stack
Switch to
popping mode
Pop stack for
matching symbols
Accepts by
final state
Note:
• all transitions have
become deterministic
Example shows that: Nondeterministic PDAs ≠ D-PDAs
43
Deterministic PDA: Definition
• A PDA is deterministic if and only if:
δ(q,a,X) has at most one member for any
a  ∑ U {}
 If δ(q,a,X) is non-empty for some a∑, then
δ(q, ,X) must be empty.
44
PDA vs DPDA vs Regular languages
Regular languages D-PDA
non-deterministic PDA
Lwwr
Lwcwr
45
Summary
• PDAs for CFLs and CFGs
– Non-deterministic
– Deterministic
• PDA acceptance types
1. By final state
2. By empty stack
• PDA
– IDs, Transition diagram
• Equivalence of CFG and PDA
– CFG => PDA construction
– PDA => CFG construction
Ad

More Related Content

Similar to Turing Machine push down automata-examples (20)

0227 regularlanguages
 0227 regularlanguages 0227 regularlanguages
0227 regularlanguages
issbp
 
Unit 2 Pumping lemma Unit 2 Pumping lemma
Unit 2 Pumping lemma Unit 2 Pumping lemmaUnit 2 Pumping lemma Unit 2 Pumping lemma
Unit 2 Pumping lemma Unit 2 Pumping lemma
AnshTripathi38
 
Theory of Automata and formal languages unit 1
Theory of Automata and formal languages unit 1Theory of Automata and formal languages unit 1
Theory of Automata and formal languages unit 1
Abhimanyu Mishra
 
Automata theory
Automata theoryAutomata theory
Automata theory
Pardeep Vats
 
Finite automata
Finite automataFinite automata
Finite automata
Rajesh Yaramadi
 
Theory of automata
Theory of automataTheory of automata
Theory of automata
Arslan905905
 
FiniteAutomata (1).ppt
FiniteAutomata (1).pptFiniteAutomata (1).ppt
FiniteAutomata (1).ppt
ssuser47f7f2
 
FiniteAutomata.ppt
FiniteAutomata.pptFiniteAutomata.ppt
FiniteAutomata.ppt
RohitPaul71
 
FiniteAutomata-DFA and NFA from Theory of Computation.ppt
FiniteAutomata-DFA and NFA from Theory of Computation.pptFiniteAutomata-DFA and NFA from Theory of Computation.ppt
FiniteAutomata-DFA and NFA from Theory of Computation.ppt
AdharshKumarSingh
 
Fsa
FsaFsa
Fsa
sANKET BASU ROY
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
ahmad haidaroh
 
Push down automata
Push down automataPush down automata
Push down automata
Ratnakar Mikkili
 
O2
O2O2
O2
Rajesh Yaramadi
 
Teori automata lengkap
Teori automata lengkapTeori automata lengkap
Teori automata lengkap
Muhammad Love Kian
 
Pushdown Automaton (1).ppt
Pushdown Automaton (1).pptPushdown Automaton (1).ppt
Pushdown Automaton (1).ppt
viswanath kani
 
Dfa h11
Dfa h11Dfa h11
Dfa h11
Rajendran
 
Deterministic finite automata
Deterministic finite automata Deterministic finite automata
Deterministic finite automata
Muhammad Love Kian
 
PushdownAutomata and Turing machines ppt
PushdownAutomata and Turing machines pptPushdownAutomata and Turing machines ppt
PushdownAutomata and Turing machines ppt
latha2009
 
Module 4 PDA updated Theory of computation.pptx
Module 4 PDA updated Theory of computation.pptxModule 4 PDA updated Theory of computation.pptx
Module 4 PDA updated Theory of computation.pptx
ms7879629
 
Pushdown automata
Pushdown automataPushdown automata
Pushdown automata
parmeet834
 
0227 regularlanguages
 0227 regularlanguages 0227 regularlanguages
0227 regularlanguages
issbp
 
Unit 2 Pumping lemma Unit 2 Pumping lemma
Unit 2 Pumping lemma Unit 2 Pumping lemmaUnit 2 Pumping lemma Unit 2 Pumping lemma
Unit 2 Pumping lemma Unit 2 Pumping lemma
AnshTripathi38
 
Theory of Automata and formal languages unit 1
Theory of Automata and formal languages unit 1Theory of Automata and formal languages unit 1
Theory of Automata and formal languages unit 1
Abhimanyu Mishra
 
Theory of automata
Theory of automataTheory of automata
Theory of automata
Arslan905905
 
FiniteAutomata (1).ppt
FiniteAutomata (1).pptFiniteAutomata (1).ppt
FiniteAutomata (1).ppt
ssuser47f7f2
 
FiniteAutomata.ppt
FiniteAutomata.pptFiniteAutomata.ppt
FiniteAutomata.ppt
RohitPaul71
 
FiniteAutomata-DFA and NFA from Theory of Computation.ppt
FiniteAutomata-DFA and NFA from Theory of Computation.pptFiniteAutomata-DFA and NFA from Theory of Computation.ppt
FiniteAutomata-DFA and NFA from Theory of Computation.ppt
AdharshKumarSingh
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
ahmad haidaroh
 
Pushdown Automaton (1).ppt
Pushdown Automaton (1).pptPushdown Automaton (1).ppt
Pushdown Automaton (1).ppt
viswanath kani
 
Deterministic finite automata
Deterministic finite automata Deterministic finite automata
Deterministic finite automata
Muhammad Love Kian
 
PushdownAutomata and Turing machines ppt
PushdownAutomata and Turing machines pptPushdownAutomata and Turing machines ppt
PushdownAutomata and Turing machines ppt
latha2009
 
Module 4 PDA updated Theory of computation.pptx
Module 4 PDA updated Theory of computation.pptxModule 4 PDA updated Theory of computation.pptx
Module 4 PDA updated Theory of computation.pptx
ms7879629
 
Pushdown automata
Pushdown automataPushdown automata
Pushdown automata
parmeet834
 

Recently uploaded (20)

COPA Apprentice exam Questions and answers PDF
COPA Apprentice exam Questions and answers PDFCOPA Apprentice exam Questions and answers PDF
COPA Apprentice exam Questions and answers PDF
SONU HEETSON
 
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFAMEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
Dr. Nasir Mustafa
 
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docxPeer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
19lburrell
 
Module_2_Types_and_Approaches_of_Research (2).pptx
Module_2_Types_and_Approaches_of_Research (2).pptxModule_2_Types_and_Approaches_of_Research (2).pptx
Module_2_Types_and_Approaches_of_Research (2).pptx
drroxannekemp
 
IMPACT_OF_SOCIAL-MEDIA- AMONG- TEENAGERS
IMPACT_OF_SOCIAL-MEDIA- AMONG- TEENAGERSIMPACT_OF_SOCIAL-MEDIA- AMONG- TEENAGERS
IMPACT_OF_SOCIAL-MEDIA- AMONG- TEENAGERS
rajaselviazhagiri1
 
Look Up, Look Down: Spotting Local History Everywhere
Look Up, Look Down: Spotting Local History EverywhereLook Up, Look Down: Spotting Local History Everywhere
Look Up, Look Down: Spotting Local History Everywhere
History of Stoke Newington
 
INQUISITORS School Quiz Prelims 2025.pptx
INQUISITORS School Quiz Prelims 2025.pptxINQUISITORS School Quiz Prelims 2025.pptx
INQUISITORS School Quiz Prelims 2025.pptx
SujatyaRoy
 
GENERAL QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 4 MARCH 2025 .pdf
GENERAL QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 4 MARCH 2025 .pdfGENERAL QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 4 MARCH 2025 .pdf
GENERAL QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 4 MARCH 2025 .pdf
Quiz Club of PSG College of Arts & Science
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
Pope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptxPope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptx
Martin M Flynn
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
Nguyen Thanh Tu Collection
 
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptxU3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
Mayuri Chavan
 
2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx
mansk2
 
Rebuilding the library community in a post-Twitter world
Rebuilding the library community in a post-Twitter worldRebuilding the library community in a post-Twitter world
Rebuilding the library community in a post-Twitter world
Ned Potter
 
CNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscessCNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscess
Mohamed Rizk Khodair
 
libbys peer assesment.docx..............
libbys peer assesment.docx..............libbys peer assesment.docx..............
libbys peer assesment.docx..............
19lburrell
 
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptxUnit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Mayuri Chavan
 
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptxANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
Mayuri Chavan
 
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdfIPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
Quiz Club of PSG College of Arts & Science
 
How to Use Upgrade Code Command in Odoo 18
How to Use Upgrade Code Command in Odoo 18How to Use Upgrade Code Command in Odoo 18
How to Use Upgrade Code Command in Odoo 18
Celine George
 
COPA Apprentice exam Questions and answers PDF
COPA Apprentice exam Questions and answers PDFCOPA Apprentice exam Questions and answers PDF
COPA Apprentice exam Questions and answers PDF
SONU HEETSON
 
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFAMEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
Dr. Nasir Mustafa
 
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docxPeer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
19lburrell
 
Module_2_Types_and_Approaches_of_Research (2).pptx
Module_2_Types_and_Approaches_of_Research (2).pptxModule_2_Types_and_Approaches_of_Research (2).pptx
Module_2_Types_and_Approaches_of_Research (2).pptx
drroxannekemp
 
IMPACT_OF_SOCIAL-MEDIA- AMONG- TEENAGERS
IMPACT_OF_SOCIAL-MEDIA- AMONG- TEENAGERSIMPACT_OF_SOCIAL-MEDIA- AMONG- TEENAGERS
IMPACT_OF_SOCIAL-MEDIA- AMONG- TEENAGERS
rajaselviazhagiri1
 
Look Up, Look Down: Spotting Local History Everywhere
Look Up, Look Down: Spotting Local History EverywhereLook Up, Look Down: Spotting Local History Everywhere
Look Up, Look Down: Spotting Local History Everywhere
History of Stoke Newington
 
INQUISITORS School Quiz Prelims 2025.pptx
INQUISITORS School Quiz Prelims 2025.pptxINQUISITORS School Quiz Prelims 2025.pptx
INQUISITORS School Quiz Prelims 2025.pptx
SujatyaRoy
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
Pope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptxPope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptx
Martin M Flynn
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
Nguyen Thanh Tu Collection
 
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptxU3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
Mayuri Chavan
 
2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx
mansk2
 
Rebuilding the library community in a post-Twitter world
Rebuilding the library community in a post-Twitter worldRebuilding the library community in a post-Twitter world
Rebuilding the library community in a post-Twitter world
Ned Potter
 
CNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscessCNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscess
Mohamed Rizk Khodair
 
libbys peer assesment.docx..............
libbys peer assesment.docx..............libbys peer assesment.docx..............
libbys peer assesment.docx..............
19lburrell
 
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptxUnit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Mayuri Chavan
 
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptxANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
Mayuri Chavan
 
How to Use Upgrade Code Command in Odoo 18
How to Use Upgrade Code Command in Odoo 18How to Use Upgrade Code Command in Odoo 18
How to Use Upgrade Code Command in Odoo 18
Celine George
 
Ad

Turing Machine push down automata-examples

  • 2. Pushdown automata are machines to accept context-free languages. For a context-free grammar G, there is an equivalent pushdown automaton M to recognize the language generated by the grammar G.
  • 3. Description of pushdown automaton (PDA) A PDA has an input tape, a finite control, and a stack. q1 0 0 0 0 0 1 0 0 0 (input tape) (finite control) (stack) q1 q1 step1: read 0, push 0, and move to right step2: read 0, push 0, and move to right
  • 4. There are 2 types of moves (Non-determinstic): 1. According to an input symbol, current state, and top symbol of the stack, a decision is made, then the input head is moved ahead one symbol. 2. Next move is decided by the current state and the top symbol of the stack only. The input symbol is not used. Hence the input head is not moved at all after the decision is made. This type of move is called ε-move that allows the PDA to manipulate the stack without reading input symbol.
  • 5. Languages accepted by PDA's There are two ways to accept inputs: 1. The PDA accepts an input if after reading the input and the machine empty its stack. The set of inputs accepted by the PDA is the language accepted by empty stack. 2. Some states of the PDA are final states. The PDA accepts an input if the machine enters a final state. The set of inputs accepted by the PDA is the language accepted by final state.
  • 6. Definition of PDA's A pushdown automaton M is a system (Q, Σ, Γ, δ, q0, Z0 , F), where 1. Q is a finite set of states; 2. Σ is an alphabet called the input alphabet; 3. Γ is an alphabet, called the stack alphabet; 4. q0 in Q is the initial state; 5. Z0 in Γ is a particular stack symbol called the start symbol; 6. F, a subset of Q, is the set of final states; 7. mapping δ: Q×(Σ∪{ε}) ×Γ → finite subset of Q×Γ*.
  • 7. Moves: δ(q, a, Z) = {(p1, r1), (p2, r2), ..., (pm, rm)}, where q and pi, 1 i m, are states, a is in ≦ ≦ , Z is a stack symbol, and ri is in Γ*, 1 i m, ≦ ≦ means PDA in state q, reading input symbol a with top symbol Z on the stack, can enter any of the state pi and replaces top symbol Z by ri, and advances reading head one symbol. Example: δ(q1, 0, G) = {(q1, BG)} 0 1 0 q1 G R 0 0 1 0 q1 G R 0 B δ
  • 8. -Moves: δ(q, , Z) = {(p1, r1), (p2, r2), ..., (pm, rm)}, where q and pi, 1 i m, are states, Z is a stack symbol, and r ≦ ≦ i is in Γ*, 1 i m, ≦ ≦ means PDA in state q, without reading any input symbol with top symbol Z on the stack, can enter any of the state pi and replaces top symbol Z by ri, and the reading head remains at the same place. Example: δ(q1, , G) = {(q1, BG)} 0 1 0 q1 G R 0 0 1 0 q1 G R 0 B δ
  • 9. Example: N(M) = {wwR | w in (0+1)*}, where M = ({q1, q2}, {0, 1}, {Z0, 0, 1}, δ, q1, Z0, {}), and δ is as follows: δ(q1, 0, Z0) ={(q1, 0Z0)}, δ(q1, 1, Z0) ={(q1, 1Z0)}, δ(q1, 0, 0) ={(q1, 00), (q2, )}, δ(q1, 0, 1) ={(q1, 01)}, δ(q1, 1, 0) ={(q1, 10)}, δ(q1, 1, 1) ={(q1, 11), (q2, )}, δ(q1, , Z0) = {(q2, )}, δ(q2, 0, 0) ={(q2, )}, δ(q2, 1, 1) ={(q2, )}, δ(q2, , Z0) ={(q2, )}. M = ({q1, q2, q3}, {0, 1}, {Z0, 0, 1}, δ, q1, Z0, {q3}) δ(q2, , Z0) ={(q3, )}.
  • 10. Let Lwwr = {wwR | w is in (0+1)*} • CFG for Lwwr : S==> 0S0 | 1S1 |  • PDA for Lwwr : • P := ( Q,∑, , δ,q0,Z0,F ) = ( {q0, q1, q2},{0,1},{0,1,Z0},δ,q0,Z0,{q2})
  • 11. 11 PDA for Lwwr 1. δ(q0,0, Z0)={(q0,0Z0)} 2. δ(q0,1, Z0)={(q0,1Z0)} 3. δ(q0,0, 0)={(q0,00)} 4. δ(q0,0, 1)={(q0,01)} 5. δ(q0,1, 0)={(q0,10)} 6. δ(q0,1, 1)={(q0,11)} 7. δ(q0, , 0)={(q1, 0)} 8. δ(q0, , 1)={(q1, 1)} 9. δ(q0, , Z0)={(q1, Z0)} 10. δ(q1,0, 0)={(q1, )} 11. δ(q1,1, 1)={(q1, )} 12. δ(q1, , Z0)={(q2, Z0)} First symbol push on stack Grow the stack by pushing new symbols on top of old (w-part) Switch to popping mode (boundary between w and wR ) Shrink the stack by popping matching symbols (wR -part) Enter acceptance state Z0 Initial state of the PDA: q0 Stack top
  • 12. 12 PDA as a state diagram qi qj a, X / Y Next input symbol Current state Current stack top Stack Top Replacement (w/ string Y) Next state δ(qi,a, X)={(qj,Y)}
  • 13. 13 PDA for Lwwr: Transition Diagram q0 q1 q2 0, Z0/0Z0 1, Z0/1Z0 0, 0/00 0, 1/01 1, 0/10 1, 1/11 0, 0/  1, 1/  , Z0/Z0 , 0/0 , 1/1 , Z0/Z0 Grow stack Switch to popping mode Pop stack for matching symbols Go to acceptance ∑ = {0, 1} = {Z0, 0, 1} Q = {q0,q1,q2} , Z0/Z0 This would be a non-deterministic PDA
  • 14. Instantaneous descriptions: Example: δ(q1, 0, G) = {(q1, BG)} 0 1 0 q1 G R 0 0 1 0 q1 G R 0 B δ If δ(q, a, Z) = contains (p, ), we say (q, a, Z) M(p, ,  ).  For the above case, we have that (q1, 010, GR) M(q1, 01, BGR).  Let be the reflexive and transitive closure of M. * M 
  • 15. 15 PDA’s Instantaneous Description (ID) A PDA has a configuration at any given instance: (q,w,y) – q - current state – w - remainder of the input (i.e., unconsumed part) – y - current stack contents as a string from top to bottom of stack If δ(q,a, X)={(p, A)} is a transition, then the following are also true: – (q, a, X ) |--- (p,,A) – (q, aw, XB ) |--- (p,w,AB) |--- sign is called a “turnstile notation” and represents one move |---* sign represents a sequence of moves
  • 16. 16 How does the PDA for Lwwr work on input “1111”? All moves made by the non-deterministic PDA (q0,1111,Z0) (q0,111,1Z0) (q0,11,11Z0) (q0,1,111Z0) (q0,,1111Z0) (q1, ,1111Z0) (q1, ,11Z0) (q1,1,111Z0) (q1,11,11Z0) (q1,111,1Z0) (q1,1111,Z0) Path dies… Path dies… (q1,1,1Z0) (q1, ,Z0) (q2, ,Z0) Acceptance by final state: = empty input AND final state Path dies… Path dies…
  • 17. 18 Acceptance by… • PDAs that accept by final state: – For a PDA P, the language accepted by P, denoted by L(P) by final state, is: • {w | (q0,w,Z0) |---* (q,, A) }, s.t., q  F • PDAs that accept by empty stack: – For a PDA P, the language accepted by P, denoted by N(P) by empty stack, is: • {w | (q0,w,Z0) |---* (q, , ) }, for any q  Q. Checklist: - input exhausted? - in a final state? Checklist: - input exhausted? - is the stack empty? There are two types of PDAs that one can design: those that accept by final state or by empty stack Q) Does a PDA that accepts by empty stack need any final state specified in the design?
  • 18. 19 Example 2: language of balanced paranthesis q0 q1 q2 (, Z0 / ( Z0 , Z0 / Z0 , Z0 / Z0 Grow stack Switch to popping mode Pop stack for matching symbols Go to acceptance (by final state) when you see the stack bottom symbol ∑ = { (, ) } = {Z0, ( } Q = {q0,q1,q2} (, (/ ( ( ), ( /  ), (/  To allow adjacent (, ( / ( ( (, Z0 / ( Z0 , Z0 / Z0
  • 19. 20 Example 2: language of balanced paranthesis (another design) ∑ = { (, ) } = {Z0, ( } Q = {q0,q1} q0 (,Z0 / ( Z0 (,( / ( ( ), ( /  start q1 ,Z0/ Z0 ,Z0/ Z0
  • 20. Example: L of balanced parenthesis 21 q0 (,Z0 / ( Z0 (,( / ( ( ), ( /  start q1 ,Z0/ Z0 ,Z0/ Z0 PDA that accepts by final state q0 start (,Z0 / ( Z0 (, (/ ( ( ), (/  ,Z0 /  An equivalent PDA that accepts by empty stack ,Z0/ Z0 PF: PN: How will these two PDAs work on the input: ( ( ( ) ) ( ) ) ( )
  • 21. 23 PDAs accepting by final state and empty stack are equivalent • PF <= PDA accepting by final state – PF = (QF,∑, , δF,q0,Z0,F) • PN <= PDA accepting by empty stack – PN = (QN,∑, , δN,q0,Z0) • Theorem: – (PN==> PF) For every PN, there exists a PF s.t. L(PF)=L(PN) – (PF==> PN) For every PF, there exists a PN s.t. L(PF)=L(PN)
  • 22. 24 PN==> PF construction • Whenever PN’s stack becomes empty, make PF go to a final state without consuming any addition symbol. new state pf is needed. • To detect empty stack in PN: PF pushes a new stack symbol X0 (not in  of PN) initially before simulating PN • New start state p0 in Pf that pushes Z0 onto TOS and goes to PN PF = (QN U {p0,pf}, ∑,  U {X0}, δF, p0, X0, {pf}) q0 … pf p0 , X0/Z0X0 New start , X0/ X0 , X0/ X0 , X0/ X0 , X0/ X0 PN PF: PN: , X0 / X0 How to convert an empty stack PDA into a final state PDA? PN = (QN,∑, , δN,q0,Z0)
  • 23. 25 Example: Matching parenthesis “(” “)” PN: ( {q0}, {(,)}, {Z0,Z1}, δN, q0, Z0 ) δN: δN(q0,(,Z0) = { (q0,Z1Z0) } δN(q0,(,Z1) = { (q0, Z1Z1) } δN(q0,),Z1) = { (q0, ) } δN(q0, ,Z0) = { (q0, ) } q0 start (,Z0 /Z1Z0 (,Z1 /Z1Z1 ),Z1 /  ,Z0 /  q0 (,Z0/Z1Z0 (,Z1/Z1Z1 ),Z1/   ,Z0/  start p0 pf ,X0/Z0X0 ,X0/ X0 Pf: ( {p0,q0 ,pf}, {(,)}, {X0,Z0,Z1}, δf, p0, X0 , pf) δf: δf(p0, ,X0) = { (q0,Z0) } δf(q0,(,Z0) = { (q0,Z1 Z0) } δf(q0,(,Z1) = { (q0, Z1Z1) } δf(q0,),Z1) = { (q0, ) } δf(q0, ,Z0) = { (q0, ) } δf(p0, ,X0) = { (pf, X0 ) } Accept by empty stack Accept by final state
  • 24. 26 PF==> PN construction • Main idea: – Whenever PF reaches a final state, just make an  -transition into a new end state, clear out the stack and accept – Danger: What if PF design is such that it clears the stack midway without entering a final state?  to address this, add a new start symbol X0 (not in  of PF) PN = (Q U {p0,pe}, ∑,  U {X0}, δN, p0, X0) p0 , X0/Z0X0 New start , any/  , any/  , any/  q0 … pe , any/  PF PN: How to convert an final state PDA into an empty stack PDA?
  • 26. 28 CFGs == PDAs ==> CFLs CFG PDA by final state PDA by empty stack ? ≡
  • 27. 29 Converting CFG to PDA Main idea: The PDA simulates the leftmost derivation on a given w, and upon consuming it fully it either arrives at acceptance (by empty stack) or non-acceptance. This is same as: “implementing a CFG using a PDA” PDA (acceptance by empty stack) CFG w accept reject implements INPUT OUTPUT
  • 28. 30 Main idea: The PDA simulates the leftmost derivation on a given w, and upon consuming it fully it either arrives at acceptance (by empty stack) or non-acceptance. Steps: 1. Push the right hand side of the production onto the stack, with leftmost symbol at the stack top 2. If stack top is the leftmost variable, then replace it by all its productions (each possible substitution will represent a distinct path taken by the non-deterministic PDA) 3. If stack top has a terminal symbol, and if it matches with the next symbol in the input string, then pop it State is inconsequential (only one state is needed)
  • 29. 31 Formal construction of PDA from CFG • Given: G= (V,T,P,S) • Output: PN = ({q}, T, V U T, δ, q, S) • δ: – For all A  V , add the following transition(s) in the PDA: • δ(q,  ,A) = { (q, ) | “A ==>”  P} – For all a  T, add the following transition(s) in the PDA: • δ(q,a,a)= { (q,  ) } A Before: … a Before: …  After: … a After: … Note: Initial stack symbol (S) same as the start variable in the grammar pop a…
  • 30. 32 Example: CFG to PDA • G = ( {S,A}, {0,1}, P, S) • P: – S ==> AS |  – A ==> 0A1 | A1 | 01 • PDA = ({q}, {0,1}, {0,1,A,S}, δ, q, S) • δ: – δ(q, , S) = { (q, AS), (q, )} – δ(q, , A) = { (q,0A1), (q,A1), (q,01) } – δ(q, 0, 0) = { (q, ) } – δ(q, 1, 1) = { (q, ) } How will this new PDA work? Lets simulate string 0011 q ,S/ S 1,1/  0,0/  ,A/ 01 ,A/ A1 ,A/ 0A1 ,S/  ,S/ AS
  • 31. Simulating string 0011 on the new PDA … 33 PDA (δ): δ(q,  , S) = { (q, AS), (q,  )} δ(q,  , A) = { (q,0A1), (q,A1), (q,01) } δ(q, 0, 0) = { (q,  ) } δ(q, 1, 1) = { (q,  ) } S Stack moves (shows only the successful path): S A S 1 A 0 S 1 A 0 S 1 1 0 S 1 1 0 S 1 1 S 1  Accept by empty stack q ,S/ S 1,1/  0,0/  ,A/ 01 ,A/ A1 ,A/ 0A1 ,S/  ,S/ AS S => AS => 0A1S => 0011S => 0011 Leftmost deriv.: S =>AS =>0A1S =>0011S => 0011
  • 32. Example 2 L ={an bn | n 1} is a context-free language . ≧ Let M = ({q}, T, V, δ, q, S , {}), a PDA, where δ(q, a, S) contains (q, SB), where SaSB is in P, L = L(G), G = (V, T, P, S) a CFG in Greiback normal form, where S  aSB, S  aB,B  b. δ(q, a, S) contains (q, B), where SaB is in P, δ(q, b, B) contains (q, ), where Bb is in P.
  • 33. a a b b q S δ(q, a, S) := (q, SB) a a b b q B S δ(q, b, B) := (q, ) a a b b q B a a b b q B B δ(q, a, S) := (q, B) δ(q, b, B) := (q, ) a a b b q
  • 34. 37 Converting a PDA into a CFG • Main idea: Reverse engineer the productions from transitions If δ(q,a,Z) => (p, Y1Y2Y3…Yk): 1. State is changed from q to p; 2. Terminal a is consumed; 3. Stack top symbol Z is popped and replaced with a sequence of k variables. – Action: Create a grammar variable called “[qZp]” which includes the following production: – [qZp] => a[pY1q1] [q1Y2q2] [q2Y3q3]… [qk-1Ykqk] – Proof discussion (in the book)
  • 35. 38 Example: Bracket matching PDA to CFG • To avoid confusion, we will use b=“(“ and e=“)” PN: ( {q0}, {b,e}, {Z0,Z1}, δ, q0, Z0 ) 1. δ(q0,b,Z0) = { (q0,Z1Z0) } 2. δ(q0,b,Z1) = { (q0,Z1Z1) } 3. δ(q0,e,Z1) = { (q0,  ) } 4. δ(q0,  ,Z0) = { (q0,  ) } 0. S => [q0Z0q0] 1. [q0Z0q0] => b [q0Z1q0] [q0Z0q0] 2. [q0Z1q0] => b [q0Z1q0] [q0Z1q0] 3. [q0Z1q0] => e 4. [q0Z0q0] =>  Let A=[q0Z0q0] Let B=[q0Z1q0] 0. S => A 1. A => b B A 2. B => b B B 3. B => e 4. A =>  Simplifying, 0. S => b B S |  1. B => b B B | e If you were to directly write a CFG: S => b S e S | 
  • 36. 39 Two ways to build a CFG Build a PDA Construct CFG from PDA Derive CFG directly Derive a CFG Construct PDA from CFG Design a PDA directly Similarly… (indirect) (direct) (indirect) (direct) Two ways to build a PDA
  • 38. 41 This PDA for Lwwr is non-deterministic q0 q1 q2 0, Z0/0Z0 1, Z0/1Z0 0, 0/00 0, 1/01 1, 0/10 1, 1/11 0, 0/  1, 1/  , Z0/Z0 , 0/0 , 1/1 , Z0/Z0 Grow stack Switch to popping mode Pop stack for matching symbols Accepts by final state Why does it have to be non- deterministic? To remove guessing, impose the user to insert c in the middle
  • 39. 42 D-PDA for Lwcwr = {wcwR | c is some special symbol not in w} q0 q1 q2 0, Z0/0Z0 1, Z0/1Z0 0, 0/00 0, 1/01 1, 0/10 1, 1/11 0, 0/  1, 1/  c, Z0/Z0 c, 0/0 c, 1/1 , Z0/Z0 Grow stack Switch to popping mode Pop stack for matching symbols Accepts by final state Note: • all transitions have become deterministic Example shows that: Nondeterministic PDAs ≠ D-PDAs
  • 40. 43 Deterministic PDA: Definition • A PDA is deterministic if and only if: δ(q,a,X) has at most one member for any a  ∑ U {}  If δ(q,a,X) is non-empty for some a∑, then δ(q, ,X) must be empty.
  • 41. 44 PDA vs DPDA vs Regular languages Regular languages D-PDA non-deterministic PDA Lwwr Lwcwr
  • 42. 45 Summary • PDAs for CFLs and CFGs – Non-deterministic – Deterministic • PDA acceptance types 1. By final state 2. By empty stack • PDA – IDs, Transition diagram • Equivalence of CFG and PDA – CFG => PDA construction – PDA => CFG construction
  翻译: