Você está na página 1de 12

UNIVERSIDADE ESTADUAL DE MARING DEPARTAMENTO DE INFORMTICA

Autmato com Pilha


Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado - 2 Prof. Yandre Maldonado - 3

Prof. Yandre Maldonado e Gomes da Costa

Autmato com Pilha


Autmato com Pilha - AP
So formalismos (mquinas) capazes de reconhecer as Linguagens Livres de Contexto; Maior poder que os Autmatos Finitos, pois possuem um espao de armazenamento extra que utilizado durante o processamento de uma cadeia; Possui uma pilha que caracteriza uma memria auxiliar onde pode-se inserir e remover informaes; Mesmo poder de reconhecimento das GLCs;

Autmato com Pilha


Exemplo de LLC: {anbn | n0} Um AF no capaz de reconhecer este tipo de linguagem devido sua incapacidade de recordar (memorizar) informao sobre a cadeia analisada; Autmatos com Pilha (AP) possuem uma pilha para armazenar informao, adicionando poder aos AFs.

Autmato com Pilha


Definio:
AP uma sextupla <,,S,S0,,B>, onde:
o alfabeto de entrada do AP; o alfabeto da pilha; S o conjunto finito no vazio de estados do AP; S0 o estado inicial, S0 S; a funo de transio de estados, : S ({}) conjunto de subconjuntos finitos de S * B o smbolo da base da pilha, B .

Prof. Yandre Maldonado - 4 Prof. Yandre Maldonado - 5 Prof. Yandre Maldonado - 6

Autmato com Pilha


Pilha: Leitura/Escrita Fita de Entrada: Leitura

Abstrao de um AP como reconhecedor de cadeias (DELAMARO, 1998).

Autmato com Pilha


Ao contrrio da fita de entrada, a pilha pode ser lida e alterada durante um processamento; O autmato verifica o contedo do topo da pilha, retira-o e substitui por uma cadeia *.
Se = A, e A , ento o smbolo do topo substitudo por A e a cabea de leitura escrita continua posicionada no mesmo lugar; Se = A1A2...An, n>1 ento o smbolo do topo da pilha retirado, sendo An colocado em seu lugar, An-1 na posio seguinte, e assim por diante. A cabea deslocada para a posio ocupada por A1 que ento o novo topo da pilha; Se = ento o smbolo do topo da pilha retirado, fazendo a pilha decrescer.

Autmato com Pilha


A funo de transio , funo do estado corrente, da letra corrente na fita de entrada e do smbolo no topo da pilha; Alm disso, esta funo determina no s o prximo estado que o AP assume, mas tambm como o topo da pilha deve ser substitudo; O AP inicia sua operao num estado inicial especial denotado por S0 e com um nico smbolo na pilha, denotado por B.

Prof. Yandre Maldonado - 7 Prof. Yandre Maldonado - 8 Prof. Yandre Maldonado - 9

Autmato com Pilha


A configurao de um AP dada por uma tripla <s, x, > onde s o estado corrente, x a cadeia da fita que falta ser processada e o contedo da pilha, com o topo no incio de ; O AP anda ou move-se de uma configurao para outra atravs da aplicao de uma funo de transio.

Autmato com Pilha


Se o AP est na configurao <s,ay,A> e temos que (s,a,A)=<t,>, ento o AP move-se para a configurao <t,y, > e denota-se <s,ay,A> | <t,y, >. Se o AP move-se de uma configurao <s1,x1,1> para uma configurao <s2,x2,2> por meio de um nmero finito de movimentos, denotamos <s1,x1,1>|*<s2,x2,2> Se o valor de para uma determinada configurao for o AP pra.

Autmato com Pilha


Note que, segundo esta definio, APs no possuem estados finais como os AFs; Assim, uma cadeia x aceita se, ao chegar ao final do processamento da mesma, a pilha estiver vazia, independentemente do estado em que o AP se encontra;

Prof. Yandre Maldonado - 10 Prof. Yandre Maldonado - 11 Prof. Yandre Maldonado - 12

Autmato com Pilha


Formalmente temos:
Dado o AP P = <,,S,S0,,B> e a cadeia x sobre , diz-se que x aceita por P sse existe s S tal que <S0,x,B>|*<s,, >. Caso contrrio, x rejeitada. Dado o AP P = <,,S,S0,,B>, a linguagem L(P) definida por P {x *| sS <S0,x,B> |*<s,, >}

Autmato com Pilha


Exemplo de AP para a LLC {anbn | n0}:
<b,A>/

(S,a,B) = {<S,A>} S (S,a,A) = {<S,AA>} (S,b,A) = {<R,>} (R,b,A) = {<R, >} <a,B>/A (S,,B) = {<S, >} <a,A>/AA
<,B>/

<b,A>/

Autmato com Pilha


Exemplo: processamento da cadeia aaabbb
<b,A>/ S
Prof. Yandre Maldonado - 13 Prof. Yandre Maldonado - 14 Prof. Yandre Maldonado - 15

<a,B>/A <a,A>/AA <,B>/

<b,A>/

B
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaabbb
<b,A>/ S R

<a,B>/A <a,A>/AA <,B>/

<b,A>/ A
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaabbb
<b,A>/ S R

<a,B>/A <a,A>/AA <,B>/

<b,A>/ A A
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaabbb
<b,A>/ S
Prof. Yandre Maldonado - 16 Prof. Yandre Maldonado - 17 Prof. Yandre Maldonado - 18

<a,B>/A <a,A>/AA <,B>/

<b,A>/

A A A
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaabbb
<b,A>/ S R

<a,B>/A <a,A>/AA <,B>/

<b,A>/ A A
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaabbb
<b,A>/ S R

<a,B>/A <a,A>/AA <,B>/

<b,A>/ A
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaabbb
<b,A>/ S
Prof. Yandre Maldonado - 19 Prof. Yandre Maldonado - 20 Prof. Yandre Maldonado - 21

<a,B>/A <a,A>/AA <,B>/

<b,A>/ CADEIA ACEITA


PILHA

Autmato com Pilha


AP para {x{a,b}*| |x|a=|x|b}:
<a,C>/A <b,C>/B <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

Est correto?

Autmato com Pilha


Um AP definitivo para {x{a,b}*| |x|a=|x|b}:
(S,a,C) = {<S,AC>} (S,b,C) = {<S,BC>} (S,,C) = {<S,>} (S,a,A) = {<S,AA>} (S,b,A) = {<S,>} (S,a,B) = {<S,>} (S,b,B) = {<S,BB>}
<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB C


PILHA

Prof. Yandre Maldonado - 22 Prof. Yandre Maldonado - 23 Prof. Yandre Maldonado - 24

BASE DA PILHA: C

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

A C
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

A A C
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

Prof. Yandre Maldonado - 25 Prof. Yandre Maldonado - 26 Prof. Yandre Maldonado - 27

A A A C
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

A A A A C
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

A A A C
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

Prof. Yandre Maldonado - 28 Prof. Yandre Maldonado - 29 Prof. Yandre Maldonado - 30

A A C
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

A A A C
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

A A C
PILHA

10

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB

Prof. Yandre Maldonado - 31 Prof. Yandre Maldonado - 32 Prof. Yandre Maldonado - 33

A C
PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB C


PILHA

Autmato com Pilha


Exemplo: processamento da cadeia aaaabbabbb

CADEIA ACEITA

<a,C>/AC <b,C>/BC <,C>/ <a,A>/AA <b,A>/ <a,B>/ <b,B>/BB


PILHA

11

Autmato com Pilha


Descreva um AP para a linguagem {anbman | n0 m>0}.
<b,B>/B <b,A>/A
Prof. Yandre Maldonado - 34 Prof. Yandre Maldonado - 35

<a,A>/ S1 S2

S0

<a,B>/A <a,A>/AA

<,B>/ <b,B>/B <b,A>/A

<a,A>/

Bibliografia
DELAMARO, Mrcio Eduardo. Linguagens Formais e Autmatos. UEM, 1998.

12