Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 77

Abuzer Ansari

1
Input String

Stack

States

2
Initial Stack Symbol

Stack Stack

stack
$ z top
head

bottom special symbol


Appears at time 0
3
Input Pop Push
symbol symbol symbol

q1 a
,bc q2

4
a
,bc
q1 q2

input
a  a 

stack
b top c
h Replace h
e e
$ $ 5
,
a c
q1 q2

input
a  a 

stack c
b top b
h Push h
e e
$ $ 6
q1
a
,bq2

input
a  a 

stack
b top
h Pop h
e e
$ $ 7
,
a 
q1 q2

input
a  a 

stack
b top b
h No Change h
e e
$ $ 8
Pop from Empty Stack
a
,bc
q1 q2
input
a 
stack Pop Automaton halts!

top

If the automaton attempts to pop from


empty stack then it halts and rejects input
9
PDAs are non-deterministic
Allowed non-deterministic transitions

q2
a
,bc

q1 q1

,bc
q 2

a
,bcq


tra
3
10
PDA M: L
(
M)
{a
b:
nn
0
}n

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
11
L
(
M)
{a
b:
n0
}nn

Basic Idea:

1. Push the a’s 2. Match the b’s on input


on the stack with a’s on stack

3. Match
,
a a b
,a found

q0 
,q 1 b
,aq 2 
,$$q
3
12
Execution Example: Time 0
Input
a a a b b b
$
Stack

current ,
a a b
,a
state

q0 
,q 1 b
,aq 2 
,$$q
3
13
Time 1
Input
a a a b b b
$
Stack

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
14
Time 2
Input
a a a b b b a
$
Stack

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
15
Time 3
Input a
a a a b b b a
$
Stack

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
16
Time 4
a
Input
a
a a a b b b a
$
Stack

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
17
Time 5
a
Input
a
a a a b b b a
$
Stack

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
18
Time 6
Input a
a a a b b b a
$
Stack

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
19
Time 7
Input
a a a b b b a
$
Stack

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
20
Time 8
Input
a a a b b b
$
Stack

,
a a b
,a
accept
q0 
,q 1 b
,aq 2 
,$$q
3
21
A string is accepted if there is
a computation such that:

All the input is consumed


AND
The last state is an accepting state

we do not care about the stack contents


at the end of the accepting computation
22
Rejection Example: Time 0
Input
a a b
$
Stack

current ,
a a b
,a
state

q0 
,q 1 b
,aq 2 
,$$q
3
23
Rejection Example: Time 1
Input
a a b
$
Stack

current ,
a a b
,a
state

q0 
,q 1 b
,aq 2 
,$$q
3
24
Rejection Example: Time 2
Input
a a b a
$
Stack

current ,
a a b
,a
state

q0 
,q 1 b
,aq 2 
,$$q
3
25
Rejection Example: Time 3
Input a
a a b a
$
Stack

current ,
a a b
,a
state

q0 
,q 1 b
,aq 2 
,$$q
3
26
Rejection Example: Time 4
Input a
a a b a
$
Stack

current ,
a a b
,a
state

q0 
,q 1 b
,aq 2 
,$$q
3
27
Rejection Example: Time 4
Input a
a a b a
$
Stack
reject
current ,
a a b
,a
state

q0 
,q 1 b
,aq 2 
,$$q
3
28
There is no accepting computation for aab
The string aabis rejected by the PDA

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
29

PDA M: L
(
M
){
vv
:
v{
a
,
b}} R

a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
30

Basic Idea: L
(
M
){
vv
:
v{
a
,
b}} R

1. Push v 3. Match on input


2. Guess
on stack with v on stack
middle
of input
a,  a R
a, a  4. Match
b,  b v b, b  found

q0 
, q1 
,$$ q
2
31
Execution Example: Time 0
Input
a b b a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
32
Time 1
Input
a b b a a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
33
Time 2
Input
b
a b b a a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
34
Time 3
Input
b
a b b a
Guess the middle a
of string $
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
35
Time 4
Input
b
a b b a a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
36
Time 5
Input
a b b a a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
37
Time 6
Input
a b b a
$
Stack
a,  a a, a 
b,  b b, b 
accept
q0 
, q1 
,$$ q
2
38
Rejection Example: Time 0
Input
a b b b
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
39
Time 1
Input
a b b b a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
40
Time 2
Input
b
a b b b a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
41
Time 3
Input
b
a b b b
Guess the middle a
of string $
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
42
Time 4
Input
b
a b b b a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
43
Time 5
Input There is no possible transition.

a b b b Input is not con a


sumed
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
44
Another computation on same string:
Input Time 0
a b b b
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
45
Time 1
Input
a b b b a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
46
Time 2
Input
b
a b b b a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
47
Time 3
Input b
b
a b b b a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
48
Time 4 b
Input b
b
a b b b a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
49
Time 5 b
Input b
No accept state b
a b b b is reached a
$
Stack
a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
50
There is no computation
that accepts string abbb


abbb
L(
M)

a,  a a, a 
b,  b b, b 

q0 
, q1 
,$$ q
2
51
Input Pop Push
symbol string string

a
,w w
12
q1 q2

52
Example:
a
,eb
cdf

q1 q2

input
a a

stack
top c push
pop
e top d string
b f
string h Replace h
e e
$ $
53
a
,eb
cdf

q1 q2

Equivalent
transitions
pop

q1
a 
,e a
,b

, push
,
a f ,
a d ,
a cq
2

54
L
(
M
)
{
w{
a
,
b
}:n
(
w
)
n(
w
b) *
a

PDA M

a
,$0
$b,$1
$
a
,000b
,111
a
,1 b
,0

q1

,$$ q2
55
Execution Example: Time 0
Input
a b b b a a

$
a
,$0
$b,$1
$
Stack
a
,000b
,111
a
,1 b
,0
current
state
q1

,$$ q2
56
Time 1
Input
a b b b a a
0
$
a
,$0
$b,$1
$
Stack
a
,000b
,111
a
,1 b
,0

q1

,$$ q2
57
Time 3
Input
a b b b a a
0
$
a
,$0
$b,$1
$
Stack
a
,000b
,111
a
,1 b
,0

q1

,$$ q2
58
Time 4
Input
a b b b a a
1
$
a
,$0
$b,$1
$
Stack
a
,000b
,111
a
,1 b
,0

q1

,$$ q2
59
Time 5
Input
a b b b a a 1
1
$
a
,$0
$b,$1
$
Stack
a
,000b
,111
a
,1 b
,0

q1

,$$ q2
60
Time 6
Input
a b b b a a 1
1
$
a
,$0
$b,$1
$
Stack
a
,000b
,111
a
,1 b
,0

q1

,$$ q2
61
Time 7
Input
a b b b a a
1
$
a
,$0
$b,$1
$
Stack
a
,000b
,111
a
,1 b
,0

q1

,$$ q2
62
Time 8
Input
a b b b a a

$
a
,$0
$b,$1
$
Stack
a
,000b
,111
a
,1 b
,0
accept
q1

,$$ q2
63
64
a
,w w
12
q1 q2

Transition function:


(
q,
a,
w){(

1q
,
w)} 1 22

65
a
,w1w
2
q 2

q1

a
,w w
13 q
3

Transition function:

(
q
,
1a
,
w)

1{(
q
,
w
2),
2(
q
3,
w
3)}

66
Pushdown Automaton (PDA)


M
(
Q


δ
,,
q,
0z
,
F)Accept
states
States

Input Stack
alphabet Transition Initial start
Stack
function state symbol
alphabet
67
(
q,u
,s)

Current Current
Remaining
state stack
input
contents

68
Example: Instantaneous Description
(
q,
1bbb
,
aaa
$)
a
Time 4: Input a
a a a b b b a
$
Stack
,
a a b
,a

q0 
,q 1 b
,aq 2

,$$q
3
69
Example: Instantaneous Description
(
q2,
bb,
aa$)
a
Time 5: Input a
a a a b b b a
$
Stack
,
a a b
,a

q0 
,q 1 b
,aq 2

,$$q
3
70
We write:

(
q
,
bbb
1, 
aaa
$)
(
q
,
2bb
,
aa
$
Time 4 Time 5

71
A computation:

(
q,
0 
aaabbb
,$)
(
q,
1 
aaabbb
,$)
(
q,
1 
aabbb
,
a$)
(
q,
1abbb
,
aa 
$)
(
q,
1bbb
,
aa$
(
q,
2bb
,
aa 
$)
(
q,
2b
,a
$)(
q 
,,$)
2 (
q,,$
3  

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
72
(
q,
0 
aaabbb
,$)
(
q,
1 
aaabbb
,$)
(
q,
1 
aabbb
,
a$)
(
q,
1abbb
,
aa 
$)
(
q,
1bbb
,
aa$
(
q,
2bb
,
aa 
$)
(
q,
2b
,a
$)(
q 
,,$)
2 (
q,,$
3  
For convenience we write:



(
q,
0 
aaabbb
,$)
(
q,,$)
3

73
Language L(M) accepted by PDA M :

L
(
M)
{
w:(
q,
w
0,
z)(
q
,
f
,
s)}


Initial state Accept state

74

Example: 
(
q,
0 
aaabb
,$)
(
q,,$
3


aaab
L
(
M)

PDA M :

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
75

(
q,
0
n
an
b 
,$)
(q
,,$)
3 
ab
nn
L(
M )

PDA M :

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
76
Therefore: L
(
M)
{
ab:
nn
n
0
}

PDA M :

,
a a b
,a

q0 
,q 1 b
,aq 2 
,$$q
3
77

You might also like