Escolar Documentos
Profissional Documentos
Cultura Documentos
{w2w
R
| w {0, 1}
}
Nao e reconhecida por um automato nito, porque para x {0, 1, 2}
e
necessario que ele memorize os smbolos que vai lendo ate encontrar um
2, e depois conrme se o resto coincide com o que foi lido, por ordem
inversa...
Para 1002001 e necessario guardar 1, 0, 0 e depois do 2, comparar esses
smbolos com os que forem lidos...Podemos fazer isso se tivermos uma
pilha:
1 0 0 2 0 0 1
1
0
1
0
0
1
0
0
1
0
1 1
Departamento de Ciencia de Computadores da FCUP MC Aula 17 1
Automatos de Pilha
Um automato de pilha (nao determinstico) (AP) e um automato nito
nao determinstico com transicoes , acrescido de uma memoria innita
a pilha em que o modo de acesso `a informacao e restrito `as operacoes
duma pilha: pop() e push().
Departamento de Ciencia de Computadores da FCUP MC Aula 17 2
Cada transicao e caracterizada pelo estado, smbolo que esta ser lido e o
elemento no topo da pilha.Em cada transicao:
o estado e alterado
o elemento no topo da pilha e substitudo por uma sequencia, eventual-
mente vazia, de elementos. Isto e:
O topo da pilha X e substitudo pela sequencia X
1
. . . X
k
correspondente a retirar X e colocar sucessivamente X
k
, . . . , X
1
,
passando o topo a ser X
1
.
se nao for uma transicao-, avanca um smbolo nos dados.
A informacao na pilha so pode ser acedida retirando os elementos do topo
da pilha.
Inicialmente, a pilha contem um unico smbolo inicial.
Departamento de Ciencia de Computadores da FCUP MC Aula 17 3
Formalmente, um automato de pilha P e um tuplo
(S, , , , s
0
, Z
0
, F)
S e o conjunto de estados (sendo S nito)
e o alfabeto de entrada
e o alfabeto da pilha
s
0
S e o estado inicial
Z
0
o smbolo inicial na pilha
F o conjunto de estados nais
(funcao de transicao) e uma funcao de S ({}) no conjunto
dos subconjuntos nitos de S
O
Z
0
O
O
Z
1
O
Z
1
Z
Departamento de Ciencia de Computadores da FCUP MC Aula 17 6
A linguagem aceite pelo automato por estados nais e
{0
n
1
n
| n N}
Mas a linguagem aceite pelo automato por pilha vazia e (porque Z nunca
e retirado).
Se compararmos com o automato nito que reconhece {0
n
1
m
| n, m
N} = L(0
),
G` _ \
0
1
G` _ \
1
, )
Para o automato do exemplo 17.1 vem:
G '` __
s
0
0,Z/OZ
0,O/OO
3
1,O /
G
,Z/Z
T
'` __
s
1
1,O /
,Z/Z
G '` __ \ __
s
2
Departamento de Ciencia de Computadores da FCUP MC Aula 17 8
AP para a linguagem dos parentesis
bem casados
({s
0
}, {(, )}, {Z, A}, , s
0
, Z, )
(s
0
, , Z) = {(s
0
, )} (s
0
, (, Z) = {(s
0
, AZ)}
(s
0
, (, A) = {(s
0
, AA)} (s
0
, ), A) = {(s
0
, )}
G '` __
s
0
,Z/
(,Z/AZ
(,A/AA
),A/
%
A linguagem dos parentesis bem casados sobre {(, )}
e aceite pelo
automato por pilha vazia.
Departamento de Ciencia de Computadores da FCUP MC Aula 17 9
O processamento da palavra (())() e.
Z
(
A
Z
(
A
A
Z
)
A
Z
)
Z
(
A
Z
)
s
0
s
0
s
0
s
0
s
0
s
0
s
0
s
0
Departamento de Ciencia de Computadores da FCUP MC Aula 17 10
Conguracoes
Uma conguracao do automato de pilha (ou descricao instantanea) e um
triplo (s, x, ) S
onde:
s e o estado corrente
x e a porcao da palavra de entrada que falta ler
conteudo da pilha: sendo o topo da pilha, o primeiro smbolo de
Nota que no caso de um AF apenas o estado era necessario, para o descrever
em cada momento.
Departamento de Ciencia de Computadores da FCUP MC Aula 17 11
Por exemplo, (s
0
, )(), AZ) e uma conguracao do automato anterior, ao
processar (())():
Departamento de Ciencia de Computadores da FCUP MC Aula 17 12
Mudanca de conguracao
Dado P = (S, , , , s
0
, Z
0
, F) e x
, a conguracao inicial e
(s
0
, x, Z
0
).
A relacao
1
P
mudan ca de conguracao num passo e uma relacao binaria
no conjunto das conguracoes, denida para s S, a {}, X ,
x
e ,
por:
(s, ax, X)
1
P
(q, x, ) se e so se (q, ) (s, a, X)
Denimos
n
P
e
P
, sendo C, D, E conguracoes:
C
0
P
C
C
n+1
P
D
def
E C
n
P
E e E
1
A
D
C
P
D
def
n 0 C
n
P
D
P
e o fecho reexivo e transitivo de
1
P
Departamento de Ciencia de Computadores da FCUP MC Aula 17 13
As mudancas de conguracao do AP do exemplo 17.1 com dados 0011 e:
(s
0
, 0011, Z) (s
0
, 011, OZ)
(s
0
, 11, OOZ)
(s
1
, 1, OZ)
(s
1
, , Z)
(s
2
, , Z)
Nota que como um automato de pilha pode ser nao determinstico, em cada
conguracao podera haver varias alternativas de movimento.
Departamento de Ciencia de Computadores da FCUP MC Aula 17 14
Aceitacao dum AP (II)
Formalmente, dado um automato de pilha P = (S, , , , s
0
, Z
0
, F)
a linguagem aceite por estados nais e
L(P) = {x | f F
(s
0
, x, Z
0
)
P
(f, , )}
e a linguagem aceite por pilha vazia e
N(P) = {x | s S (s
0
, x, Z
0
)
P
(s, , )}
Departamento de Ciencia de Computadores da FCUP MC Aula 17 15
Exemplo 17.2. (Exemplo 17.1) Sendo P = ({s
0
, s
1
, s
2
}, {0, 1}, {Z, O}, , s
0
, Z, {s
2
})
(s
0
, , Z) = {(s
2
, Z)} (s
0
, 0, Z) = {(s
0
, OZ)}
(s
0
, 0, O) = {(s
0
, OO)} (s
0
, 1, O) = {(s
1
, )}
(s
1
, 1, O) = {(s
1
, )} (s
1
, , Z) = {(s
2
, Z)}
G '` __
s
0
0,Z/OZ
0,O/OO
9
1,O /
G
,Z/Z
T
'` __
s
1
1,O /
,Z/Z
G '` __ \ __
s
2
Mostrar que L(P) = {0
n
1
n
| n N}
Dem. ()Se x = entao (s
0
, , Z) (s
2
, , Z).
Se x = 0
n
1
n
, para algum n > 0, entao (s
0
, 0
n
1
n
, Z)
(s
0
, 1
n
, O
n
Z)
(s
1
, , Z) (s
2
, , Z)
Departamento de Ciencia de Computadores da FCUP MC Aula 17 16
() Para entrar no estado nal s
2
e necessario que Z esteja no topo
da pilha e estar no estado s
1
ou s
0
. Mas estando em s
0
isso so pode
acontecer se nao for lido nenhum smbolo, i.e, x = . Caso contrario,
sera necessario passar por s
1
. Vamos ver que: Se (s
0
, x, )
(s
1
, , )
entao x = 0
n
1
n
para algum n.
E entao em particular para = Z temos que : (s
0
, x, Z)
(s
1
, , Z)
(s
2
, , Z) entao x = 0
n
1
n
para algum n > 0.
Por inducao em |x|.
Base. x = entao a conclusao verica-se para n = 0 embora
(s
0
, x, )
(s
1
, , ) nao se verique.
Inducao. Seja x = a
1
a
2
. . . a
n
, n > 0.Entao
a
1
= 1 entao (s
0
, a
1
a
2
. . . a
n
, ) (s
1
, a
2
. . . a
n
,
) e = O
.Mas
entao se (s
0
, x, )
(s
1
, , ), entao || < ||.
a
1
= 0 entao (s
0
, a
1
a
2
. . . a
n
, ) (s
0
, a
2
. . . a
n
, O). Para
que (s
0
, x, )
(s
1
, , ) entao o ultimo passo
Departamento de Ciencia de Computadores da FCUP MC Aula 17 17
tem de ser: (s
1
, a
n
, O) (s
1
, , ) e a
n
= 1.
E se (s
0
, a
2
. . . a
n
, O)
(s
1
, a
n
, O) entao tambem
(s
0
, a
2
. . . a
n1
, O)
(s
1
, , O).Entao por hipotese de inducao,
a
2
. . . a
n1
= 0
m
1
m
para algum m 0. E entao x = a
1
0
m
1
m
a
n
=
0
m+1
1
m+1
.
2
Departamento de Ciencia de Computadores da FCUP MC Aula 17 18
Exemplos
Exerccio 17.1. Descreve automatos de pilha que reconhecam (por pilha
vazia ou por estados nais) cada uma das linguagens seguintes.
(a) {x {a, b}
| x e capcua}
(b) {w {0, 1, 2}