Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Captulo
Autmatos de pilha
7.1. Autmatos de pilha no-determinsticos (NPDA)
7.2. Autmatos de pilha e linguagens livres de contexto
7.3. Autmatos de pilha determinsticos e linguagens
livres de contexto determinsticas.
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
301
cadeia de entrada
a a b b
q0
q2
q1
CONTROLO
carcter
de
d entrada
d
estado actual
smbolo
b l no topo
t
da
d pilha
ilh
a
b
c
0
1
#
P
i
l
h
a
estado seguinte
movida
escreve na pilha
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
302
303
Notas
uma transio pode ter como carcter de entrada , sendo
a
b
c
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
304
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
305
transio
smbolo de entrada
novo estado
estado actual
push
push 1
1 no topo da
pilha
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
306
Transies
Significado
push
2 (q
2.
( 0, b,
b 1) = { ((q1, ) }
pop
acrescenta 0
pilha com #
apaga 1
3. (q1, b, 0) = { (q1, 1) }
substituio
substitui 0 por 1
4. (q0, b, 1) = { (q1, 1) }
nenhuma
no altera
5. (q1, , 0) = { (q2, ) }
pop
apaga 0
push
acrescenta 1
sem consumir entrada
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
307
Exemplo 1
308
Exemplo 2
NPDA
= {a, b}
= {#,
{# 0,
0 1}
z0= #
(q1 , b , 1 ) = {(q2 , )}
F= {q3}
(q2 , b , 1 ) = {(q2 , )}
(q
( 2 , , # ) = {(q
{( 3 , )}
309
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
310
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
311
L = {an bn : n 0} {a}.
Pode-se
P
d
afirmar,
fi
por analogia
l i com o que acontece
t
nos DFA,
DFA
que o NPDA aceita esta linguagem.
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
312
(q, w, u))
(q
q : estado actual do autmato.
w : parte ainda no lida da cadeia de entrada.
u : contedo da pilha
pilha, sendo o topo o smbolo mais
esquerda (conveno).
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
313
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
314
||M
indica que a movida se refere ao autmato M.
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
315
( p , , u), p F, u * }
316
D fi i 7.3.
Definio
7 3 Aceitao
A it por pilha
ilh vazia
i
M = (Q , , , , q0 , z0 , F )
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
317
A dduas ddefinies
As
fi i so
equivalentes:
i l
Se existe um NPDA que aceita uma linguagem
L por um estado final, ento existe um NPDA
que aceita a mesma L pela pilha vazia
vazia.
... e vice-versa
Ver Hopcroft e Coll. (p. 230-236)
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
318
Exemplo 3
Qual o NPDA que aceita
319
320
O no-determinismo no autmato
A transio com na entrada introduz no-determinismo:
321
Grafo do PDA
A etiqueta de cada aresta da forma (notao de Linz e
do JFLAP):
Pilha
a, 1 ; 01
q0
q1
0
1
322
Grafo do PDA
A etiqueta de cada aresta da forma (notao de Taylor
e do Deus Ex Mquina):
Pilha
a, 1 ; 01
q0
q1
1
0
323
Grafo do PDA
b, # ; 1#
a, # ; 0#
a,, # ; # 0
2
b, # ; # 1
3
a, 0 ; 0 0
, # ; #
q0
qf
b, 0;
7
6
b, 1 ; 1 1
(Taylor, p.538)
( a azul notao DEM)
a, 1 ;
1. (q0, , #) = {(qf, #)}
5. (q0, b, 0) = {(q0, )}
6 (q0, a,
6.
a 1) = {(q0, )}
4 (q0, a,
4.
a 0) = {(q0, 00)}
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
324
aabbabba
produz as seguintes movidas:
325
Exemplo 4
Desenhar o grafo do NPDA da linguagem (Taylor, 541).
L = {{a n b m : 0 n < m , m 2 }
b,, 0 ;
a,, 0 ; 0 0
a, #;
# #0
b, # ; #
q0
b, 0 ;
q1
b,, # ; #
b #;#
b,
qf
326
7 2 Autmatos
7.2.
A
d
de pilha
ilh e li
linguagens
livres de contexto
Para toda a linguagem livre de contexto existe um NPDA que a
aceita. mais fcil de demonstrar para gramticas na forma
normalizada da Greibach , em que todas as produes so da
forma
A ax,
ax a T,
T x V*.
V*
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
327
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
328
A
#
x
#
A ax
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
329
E
Exemplo
l 5
Projectar
ojec um
u NPDA
N
que aceite
ce e a linguagem
gu ge gerada
ge d pela
pe gramtica
g
c
S aSbb | a
transformar a ggramtica na forma de Greibach
S aSA | a
A bB
Bb
O autmato correspondente ter 3 estados {q0, q1, q2} sendo q2=qf.
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
330
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
S
A
#
#
331
3 simular a produo A bB
b b
A
#
(q1, b, B) = { (q1, )}
B
#
#
332
S aSA | a
A bB,
B b.
S aSbb | a
a, S ;
q0
, # ; S#
(Notao JFLAP)
a, S ; SA
q1
b, A ; B
, # ; #
qf
b, B ;
2(n-1)
1) : n 1 }
L (G) = { a n b 2(n
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
333
Exemplo 6
Seja a CFG em forma normal de Greibach
S aA | aB
1.1-1.2.
A aAB | aBB
2.1.-2.2
Bb
3.1
L (G) = { a n b n : n 1 }
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
334
d i pela
derivao
l extrema
t
esquerda
d de
d aaaabbbb
bbbb
S aA
aaAB
aaaABB
aaaaBBBB
aaaabBBB
aaaabbBB
aaaabbbB
aaaabbbb
( 1.1))
(de
(de 2.1)
(de 2.1)
(d 2.2)
(de
2 2)
(de 3.1)
(de 3.1)
3 1)
(de 3.1)
((de 3.1))
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
335
Produo
Movida
Grafo
Carregar S
q0
S aA
q1
S aB
A aAB
q1
, # ; S#
q1
a, S ; A
a, S ; B
q1
a, A ; AB
A aBB
Bb
(q1, b, B) = { (q1, )}
aceitar a cadeia
Notao
JFAP
Notao
JFLAP
q1
a, A ; BB
q1
q1
b, B ;
, # ; # q
f
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
336
S aA | aB
A aAB | aBB
Bb
a,, S ; A
q0
, # ; S#
(Notao JFLAP)
a, S ; B
q1
a, B ;
, # ; #
qf
a, A ; BB
a, A ; AB
3 estados para
qualquer gramtica
de Greibach
L (G)
( ) = { a nb n : n 1 }
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
337
Teorema 7.1
Para qu
qualquer
que linguagem
gu ge L livre
v e de contexto,
co e o, existe
e s e um
u NPDA
N
M
que a aceita, i.e, existe um M tal que
L = L (M)
se L uma CFL sem , ento existe uma CFG na forma
normal de Greibach para L.
contri-se uma NPDA para simular as derivaes pela
extrema-esquerda dessa gramtica.
A forma de Greibach apenas para facilitar o desenvolvimento.
O teorema aplica
aplica-se
se a toda a CFG.
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
338
, # ; S#
a, S ; B
q1
, # ; #
qf
a, A ; BB
a, B ;
a, A ; AB
Este
E
t resultado
lt d
geral: para
qualquer CFL
com ,existe um
NPDA com dois
estados sem ,
estados,
trs estados.
(Notao JFLAP)
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
339
, # ; S$
a, S ; B
Finalmente:
q1
, $ ; #
qf
a, A ; BB
a, B ;
a A ; AB
a,
(N t JFLAP)
(Notao
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
340
341
77.3.
3 Autmatos
A
d
de pilha
ilh d
determinsticos
i i
e
linguagens livres de contexto determinsticas
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
342
b :
2. Q
Quanto ppossvel uma transio ppara alguma
g
configurao,
g , no
existe nenhuma alternativa que consuma caracteres de
entrada para essa mesma configurao.
se (q, , b) no vazia, ento (q, c, b) deve ser vazia para todo o c
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
343
DFA
DPDA
no admite transies
admite transies
no necessariamente
uma funo total
h equivalncia entre os
determinsticos e os no
determinsticos
no h equivalncia entre
os determinsticos e os no
determinsticos
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
344
RE r = a*b
DFA
q0
a
q1
qf
b
a, # ; #
b ,# ;#
a, # ; #
b, # ; #
DPDA
q0
qf
q1
b, #;#
a, # ; #
( pilha
(a
ilh no
usada)
d )
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
345
D fi i 7.5.
Definio
7 5 Linguagem
Li
CFL determinstica
d
i i
L = L(M)
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
346
Exemplo
CFL :
L = { an bn : n 1 }
aceita L. Logo
g L CFL determinstica.
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
347
L = { a n b n : n 1 }
b ,1 ;
a, 1 ; 11
q0
a, # ; 1#
q1
b, 1 ;
q2
, # ;
qf
(notao JFLAP)
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
348
L = { a n b n : n 0 }
b ,1 ;
a, 1 ; 11
q0
a, # ; 1#
q1
b, 1 ;
q2
, # ;
qf
(notao
JFLAP))
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
349
L = { a n b n : n 0 }
b ,1 ;
a, 1 ; 11
qf
a, # ; 1#
q1
b 1;
b,
q2
, # ;
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
350
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
351
Bibliografia
An Introduction to Formal Languages and Automata, Peter Linz, 3rd
Ed., Jones and Bartelett Computer Science, 2001
M d l off Computation
Models
C
i andd Formal
F
l Languages,
L
R.
R Gregory
G
Taylor,
T l
Oxford University Press, 1998.
Introduction to Automata Theory,
Theory Languages and Computation,
Computation 2nd
Ed., John Hopcroft, Rajeev Motwani, Jeffrey Ullman,
Addison Wesley, 2001.
Elements for the Theory of Computation, Harry Lewis and Christos
Papadimitriou, 2nd Ed., Prentice Hall, 1998.
Introduction th the Theory of Computation, Michael Sipser, PWS
Publishing Co, 1997.
ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC
352