Professional Documents
Culture Documents
PDAs
1
2
Autmatas a Pila
Los Autmatas a Pila permiten analizar palabras para reconocer si pertenecen o
no a lenguajes de tipo 2, independientes del contexto.
Tienen la misma estructura que los Autmatas Finitos, pero se aade una pila
(memoria auxiliar) para poder guardar informacin que podr ser til en
momentos posteriores del anlisis.
Definicin
3
4
5
6
Pushdown Automaton -- PDA
Input String
Stack
States
7
Initial Stack Symbol
Stack Stack
stack
$ z top
head
q1 a, b c q2
9
a, b c
q1 q2
input
a a
stack
b top c
h Replace h
e e
$ $
10
a, c
q1 q2
input
a a
stack c
b top b
h Push h
e e
$ $
11
a, b
q1 q2
input
a a
stack
b top
h Pop h
e e
$ $
12
a,
q1 q2
input
a a
stack
b top b
h No Change h
e e
$ $
13
Empty Stack
a, $
q1 q2
input
a a
stack empty
$ top Pop
a, $ b
q1 q2
input
a a
stack
$ top Pop b
15
Non-Determinism
PDAs are non-deterministic
Allowed non-deterministic transitions
q2
a, b c
, b c
q1 q1 q2
a, b c
transition
q3
16
Example PDA
PDA M
L( M ) {a b : n 0}
n n
a, a b, a
q0 , q b, a q , $ $ q
1 2 3
17
L( M ) {a b : n 0}
n n
Basic Idea:
3. Match
a, a b, a found
q0 , q b, a q , $ $ q
1 2 3
18
Execution Example: Time 0
Input
a a a b b b
$
Stack
current a, a b, a
state
q0 , q b, a q , $ $ q
1 2 3
19
Time 1
Input
a a a b b b
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
20
Time 2
Input
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
21
Time 3
Input a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
22
Time 4
a
Input
a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
23
Time 5
a
Input
a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
24
Time 6
Input a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
25
Time 7
Input
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
26
Time 8
Input
a a a b b b
$
Stack
a, a b, a
accept
q0 , q1 b, a q2 , $ $ q3
27
A string is accepted if there is
a computation such that:
a, a b, a
q0 , q1 b, a q2 , $ $ q3
29
In general,
L {a b : n 0}
n n
a, a b, a
q0 , q1 b, a q2 , $ $ q3
30
Rejection Example: Time 0
Input
a a b
$
Stack
current a, a b, a
state
q0 , q b, a q , $ $ q
1 2 3
31
Rejection Example: Time 1
Input
a a b
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
32
Rejection Example: Time 2
Input
a a b a
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
33
Rejection Example: Time 3
Input a
a a b a
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
34
Rejection Example: Time 4
Input a
a a b a
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
35
Rejection Example: Time 4
Input a
a a b a
$
Stack
reject
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
36
The input string aab
is rejected by the PDA:
a, a b, a
q0 , q1 b, a q2 , $ $ q3
37
A string is rejected if there is
no computation such that:
L(M ) {vv : v {a, b} }
R
PDA M
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
39
Basic Idea: L(M ) {vv : v {a, b} }
R
q0 , q1 , $ $ q2
40
Execution Example: Time 0
Input
a b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
41
Time 1
Input
a b b a a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
42
Time 2
Input
b
a b b a a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
43
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 , $ $ q2
44
Time 4
Input
b
a b b a a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
45
Time 5
Input
a b b a a
$
Stack
a, a a, a
b, b b, b
q0 , , $ $ q2
q1
46
Time 6
Input
a b b a
$
Stack
a, a a, a
b, b b, b
accept
q0 , q1 , $ $ q2
47
Rejection Example: Time 0
Input
a b b b
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
48
Time 1
Input
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
49
Time 2
Input
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
50
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 , $ $ q2
51
Time 4
Input
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
52
Time 5
Input There is no possible transition.
a b b b Input is not a
consumed
$
Stack
a, a a, a
b, b b, b
q0 , , $ $ q2
q1
53
Another computation on same string:
Input Time 0
a b b b
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
54
Time 1
Input
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
55
Time 2
Input
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
56
Time 3
Input b
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
57
Time 4 b
Input b
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
58
Time 5 b
Input b
No final state b
a b b b is reached a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
59
There is no computation
that accepts string abbb
abbb L(M )
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
60
Another PDA example
L( M ) {w {a, b} :
*
a, a $
b, a Stack
b, $
q0
62
Time 1
Input
a a b a
a, a $
b, a Stack
b, $
q0
63
Time 2
Input
a
a a b a
a, a $
b, a Stack
b, $
q0
64
Time 3
Input
a a b a
a, a $
a, a Stack
b, $
accept
q0
65
Rejection example: Time 0
Input
a b b b
$
Stack
q0
66
Time 1
Input
a b b b a
a, a $
b, a Stack
b, $
q0
67
Time 2
Input
a b b b
a, a $
b, a Stack
b, $
q0
68
Time 3
Input
a b b b
a, a
b, a Stack
b, $
q0
69
Time 4
Input
a b b b
a, a
b, a Stack
b, $
q1 a, b w q2
71
Example:
a, b cdf
q1 q2
input
a a
c pushed
stack d
top string
b f
h Push h
e e
$ $
72
Another PDA example
L( M ) {w {a, b} : na ( w) nb ( w)}
*
PDA M
a, $ 0$ b, $ 1$
a, 0 00 b, 1 11
a, 1 b, 0
q1
, $ $ q2
73
Execution Example: Time 0
Input
a b b b a a
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
current
state , $ $
q1 q2
74
Time 1
Input
a b b b a a
0
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1
, $ $ q2
75
Time 3
Input
a b b b a a
0
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1
, $ $ q2
76
Time 4
Input
a b b b a a
1
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1
, $ $ q2
77
Time 5
Input
a b b b a a 1
1
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1
, $ $ q2
78
Time 6
Input
a b b b a a 1
1
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1
, $ $ q2
79
Time 7
Input
a b b b a a
1
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1
, $ $ q2
80
Time 8
Input
a b b b a a
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
accept
q1
, $ $ q2
81
Formalities for PDAs
82
q1 a, b w q2
Transition function:
(q1, a, b) {( q2 , w)}
83
a, b w
q2
q1
a, b w q3
Transition function:
M (Q, , , , q0 , z , F ) Final
States states
Input Stack
alphabet Transition Initial start
Stack
function state symbol
alphabet
85
Instantaneous Description
( q, u , s )
Current Current
Remaining
state stack
input
contents
86
Example: Instantaneous Description
(q1, bbb, aaa$)
a
Time 4: Input a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
87
Example: Instantaneous Description
(q2 , bb, aa$)
a
Time 5: Input a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
88
We write:
89
A computation:
a, a b, a
q0 , q1 b, a q2 , $ $ q3
90
(q0 , aaabbb,$) (q1, aaabbb,$)
(q1, aabbb, a$) (q1, abbb, aa$) (q1, bbb, aaa$)
(q2 , bb, aa$) (q2 , b, a$) (q2 , ,$) (q3 , ,$)
(q0 , aaabbb,$) (q3 , ,$)
91
Formal Definition
L( M ) {w : (q0 , w, s ) (q f , , s ' )}
92
Example:
(q0 , aaabbb,$) (q3 , ,$)
aaabbb L(M )
PDA M :
a, a b, a
q0 , q1 b, a q2 , $ $ q3
93
(q0 , a b ,$) (q3 , ,$)
n n
a b L(M )
n n
PDA M :
a, a b, a
q0 , q1 b, a q2 , $ $ q3
94
Therefore: L( M ) {a b : n 0}
n n
PDA M :
a, a b, a
q0 , q1 b, a q2 , $ $ q3
95