You are on page 1of 4

Aut

omatos e Teoria da Computac


ao
aula 15: Aut
omatos de pilha

Introduc
ao

Suponha que os smbolos de uma palavra s


ao mostrados a voce um a um, digamos em uma tela.
Ao final desse processo voce deve decidir se a palavra pertence ou n
ao a uma certa linguagem.
Desta vez, alem dos seus dedos, voce pode escrever smbolos em pequenas folhas de papel. Cada
folha s
o pode conter um smbolo, mas voce pode usar quantas folhas quiser. A u
nica restric
ao
e que as folhas escritas devem permanecer empilhadas, de modo que voce s
o pode examinar a
folha que est
a no topo da pilha. Alem disso, ap
os examinar uma folha ela deve ser amassada e
jogada em uma lixeira, de onde ela n
ao pode ser recuperada mais tarde.
Quais as linguagens que voce pode reconhecer dessa maneira?
facil ver que voce pode reconhecer todas as linguagens regulares: basta ignorar as folhas de
E
papel e voce se comporta como um aut
omato. Mas, vejamos outro exemplo.
Voce pode reconhecer a linguagem an bn da seguinte maneira. A cada vez que voce ve um
smbolo a na palavra de entrada, voce escreve um a em uma folha de papel e a coloca na pilha.
Quando aparece um smbolo b, voce examina a folha que se encontra no topo da pilha, que
certamente contem um a, e joga a folha na lixeira. Se n
ao existe nenhuma folha na pilha nesse
momento, a palavra e rejeitada. A partir da ocorrencia primeira do primeiro b, a leitura de
qualquer smbolo a tambem leva `
a rejeicao da palavra. O procedimento continua dessa maneira
ate que chegamos ao final da palavra de entrada. Se a pilha se encontra vazia nesse momento,
a palavra e aceita, caso contr
ario ela e rejeitada.
Exerccio: Quais das linguagens abaixo voce conseguiria reconhecer dessa maneira?
a) Palavras que contem a mesma quantidade de as e bs
b) PAL
c) an bn an

Aut
omatos de pilha

A Figura abaixo ilustra um aut


omato de pilha
< Figura: aut^
omato de pilha >
(. . . )
Considere a linguagem an bn ( . . . )
(. . . )
q1

b[a,e]

q2

b[a,e]

a[e,a]

(. . . )

Outros exemplos:
a) Considere a linguagem an b2n
(. . . )
q1

q2

b[a,e]

b[a,e]

a[e,aa]

(. . . )
Exerccio: Construa um aut
omato de pilha que reconhece a linguagem a2n b3n .

b) Considere a linguagem

an bm ,

onde n m 2n.

(. . . )
q1

q2

b[a,e]

b[a,e]

a[e,a]
a[e,aa]

(. . . )
Exerccio: Construa um aut
omato de pilha que reconhece an bm , onde n < m < 2n.
(Note que dessa vez a desigualdade e estrita.)

c) Considere a linguagem das palavras balanceadas


BAL = palavras que possuem a mesma quantidade de as e bs
(. . . )
a[b,e]
a[a,aa]
a[ , a]

q0
e[e, ]

q2

q1

e[ ,e]

b[ , b]
b[b,bb]
b[a,e]

(. . . )
Exerccio: Construa um aut
omato de pilha que reconhece as palavras w {a, b} que
satisfazem a condic
ao




max |w|a , |w|b 2 min |w|a , |w|b
Isto e, o smbolo que aparece mais vezes tem no m
aximo o dobro de ocorrencias do que
o outro smbolo.

d) Considere a linguagem
L = palavras que possuem dois blocos de as do mesmo tamanho
A ideia aqui e utilizar o n
ao-determinismo para identificar os dois blocos de as que possuem
o mesmo tamanho.
b

b
a[e,a]

a[a,e]

a[e,a]

a[a,e]

a,b

(. . . )
Exerccio: Construa um aut
omato de pilha que reconhece a linguagem
L = palavras que possuem dois blocos de as de tamanhos diferentes

e) Considere a linguagem
L = palavras que possuem a mesma quantidade de blocos de as pares e mpares
(. . . )

f) Aceitacao por estado final


(. . . )

g) Aceitacao por pilha vazia


(. . . )

Exerccios
1. Faca o exerccio indicado na Introducao.
2. Faca os exerccios indicados nos exemplos (a)-(d) da Secao 2.
3. Construa aut
omatos de pilha para as seguintes linguagens
a) an bm , onde n 6= m.
b) an bm an+m , onde n, m 0.
c) ak bm an , onde k = m ou k = n ou m = n.
d) ai bj , onde i j

3i
2

4. Construa aut
omatos de pilha para as seguintes linguagens
a) Palavras que possuem exatamente duas vezes mais as do que bs
b) Palavras onde todo bloco de as e seguido por um bloco de bs do mesmo tamanho
c) Palavras w que podem ser escritas como w = xy, onde |y|a = |y|b
d) Palavras que possuem a mesma quantidade de as e bs isolados
5. Construa um aut
omato de pilha que reconheca as palavras que possuem mais ocorrencias
do padrao aab do ocorrencias do padrao abb.
(Note que as ocorrencias dos dois padroes podem aparecer sobrepostas)

You might also like