Você está na página 1de 4

FACENS - Faculdade de Engenharia de Sorocaba

T opicos em Computa ca o I

Aut omatos com Pilha


Aut omato com Pilha (AP)
LLC pode ser associada a um Aut omato com Pilha Aut omato com Pilha: Aut omato Finito pilha como mem oria auxiliar u ltimo s mbolo gravado e o primeiro a ser lido Qualquer LLC pode ser reconhecida por um AP

Aut omato com Pilha


Um AP (AP N ao-Determin stico) e composto por: 1. Fita an aloga a aut omatos nitos 2. Pilha mem oria auxiliar que pode ser usada livremente para leitura e grava c ao c elulas (cada uma com um s mbolo) leitura ou grava c ao pelo topo n ao possui tamanho m aximo inicialmente, pilha vazia
A pilha e dividida em c elulas, armazenando, cada uma, um s mbolo do alfabeto. Em uma estrutura do tipo pilha, a leitura ou grava c ao e sempre na mesma extremidade, denominada topo. N ao possui tamanho xo e nem m aximo, sendo seu tamanho corrente igual ao tamanho da palavra armazenada. Seu valor inicial e vazio.

Analogamente ` as Linguagens Regulares, a Classe das Linguagens Livres de Contexto pode ser associada a um formalismo do tipo aut omato, denominado Aut omato com Pilha. O Aut omato com Pilha e an alogo ao Aut omato Finito, incluindo uma pilha como mem oria auxiliar e a facilidade do n aodeterminismo. A pilha e independente da ta de entrada e n ao possui limite m aximo de tamanho.

Aut omato com Pilha (cont.)


3. Unidade de Controle estado corrente da m aq. uma cabe ca de ta leitura da ta. Movimenta-se para a direita.

Aut omato com Pilha Deni c ao


2 deni co es: o valor inicial da pilha e vazio e o aut omato p ara aceitando ao atingir um estado nal a pilha cont em, inicialmente, um s mbolo especial denominado s mbolo inicial da pilha. N ao existem estados nais e o aut omato p ara aceitando quando a pilha estiver vazia

uma cabe ca de pilha leitura e grava c ao. Movimenta-se para cimabaixo lendo um s mbolo por vez. Leitura exclui s mbolo lido. 4. Programa (Fun c ao) Transi c ao comanda a leitura da ta, leitura e grava c ao da pilha e dene o estado da m aquina
A unidade de controle possui um n umero nito e predenido de estados. Possui: cabe ca da ta unidade leitora. Acessa um c elula da ta cada vez e movimenta-se exclusivamente para a direita. E poss vel testar se a entrada foi completamente lida

O modelo de Aut omato com Pilha possui duas deni co es universalmente aceitas que diferem no crit erio de parada do aut omato. As deni co es est ao descritas no slide. As duas deni co es possuem o mesmo poder computacional, sendo f acil modicar um Aut omato com Pilha para satisfazer a outra deni c ao. Nesta disciplina, e adotada a com estados nais.

cabe ca da pilha unidade de leitura e grava c ao. Acessa um s mbolo de cada vez e move-se para a direita (cima) e para a esquerda (baixo) ao ler um s mbolo. A leitura exclui o poss s mbolo lido. E vel testar se a pilha est a vazia. O programa e a fun c ao parcial que, dependendo do estado corrente, s mbolo lido da ta e s mbolo lido da pilha, determina o novo estado e a palavra a ser gravada (na pilha). Permite mudar de estado sem ler da ta (movimento vazio).

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

T opicos em Computa ca o I

APN - Formalismo
Um aut omato com pilha n ao-determin stico (APN) e uma 6-upla: M = (, Q, , q0 , F, V )
p q

Aceita, Rejeita ou Loop


Em um Aut omato com Pilha, se: um dos caminhos alternativos assume um estado nal: aut omato p ara, palavra e aceita; todos os caminhos alternativos rejeitam a entrada: aut omato p ara, palavra e rejeitada; pelo menos um caminho alternativo est a em loop innito e os demais rejeitam (ou tamb em em loop innito): o aut omato est a em loop innito.
O processamento de um AP, para uma palavra w consiste na sucessiva aplica c ao da fun c ao programa para cada s mbolo de w at e ocorrer uma condi c ao de parada. Entretanto e poss vel que um AP nunca atinja uma condi c ao de parada. Neste caso, ca processando indenidamente (ciclo ou loop innito). Um exemplo simples de ciclo e um programa que empilha e desempilha o mesmo s mbolo indenidamente, sem ler da ta. As seguintes nota co es s ao adotadas (suponha M um AP): ACEITA(M ) ou L(M ) conjunto de todas as palavras de aceitas por M . REJEITA(M ) conjunto de todas as palavras de rejeitadas por M . LOOP(M ) conjunto de todas as palavras de para as quais M ca processando indenidamente.

(a,A,)

a s mbolo lido da ta A s mbolo lido da pilha palavra gravada na pilha

alfabeto de s mbolos de entrada Q conjunto de estados poss veis do aut omato o qual e nito fun c ao programa ou fun c ao de transi c ao e uma fun c ao parcial: : Q ( { , ?}) (V { , ?}) 2QV q0 estado inicial do aut omato (q0 Q) F conjunto dos estados nais tal que F est a contido em Q V alfabeto auxiliar ou alfabeto da pilha

Caracter sticas da Fun c ao Programa


n ao pode ser total na leitura indica a facilidade de movimento vazio da ta ou da pilha. na grava c ao indica que nenhuma grava c ao e realizada na pilha.

Exemplo de um Aut omato com Pilha


L1 = {an bn | n 0} M1 = ({a, b}, {q0 , q1 , qf }, 1 , q0 , {qf }, {B }) 1 (q0 , a, ) = {(q0 , B )} 1 (q0 , b, B ) = {(q1 , )} 1 (q0 , ?, ?) = {(qf , )} 1 (q1 , b, B ) = {(q1 , )} 1 (q1 , ?, ?) = {(qf , )}

Ex.: (p, ?, ) = {(q, )}

A fun c ao programa n ao pode ser total, ou seja, indenida para alguns argumentos do conjunto de partida. A omiss ao do par ametro de leitura, representada por ?, indica teste de pilha vazia ou toda palavra de entrada lida. Ao ler ou gravar um s mbolo , o aut omato n ao l e nem move a cabe ca. No exemplo (p, ?, ) = {(q, )}, temos que no estado p, se a entrada foi completamente lida, n ao l e da pilha, assume o estado q e n ao grava na pilha.

O aut omato M1 e determin stico. No estado q0 , para cada s mbolo a lido da ta e armazenado um s mbolo B na pilha. No estado q1 , e realizado um batimento, vericando se para cada s mbolo b da ta, existe um correspondente B na pilha. O algoritmo somente aceita se ao terminar de ler toda a palavra de entrada a pilha estiver vazia. O aut omato pode ser representado pelo grafo como segue:

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

T opicos em Computa ca o I

(a, ,B)

(b,B, )

Exerc cio 2
q0

(b,B, )

q1

Considere a seguinte linguagem: L3 = {an bm an+m | wn 0, m 0}

(?,?, )
qf

(?,?, )

Descreva o AP e seu formalismo para a linguagem acima.

(,,)
q0 q1

(,,)
q2

(?,?, )
qf

Exerc cio 1
Escreva o formalismo para o aut omato abaixo e dena qual a linguagem aceita pelo aut omato. (,,) (a, ,a) (b, ,b) (?,?, ) (a,a, ) (b,b, )

(a, ,X)

(b, ,X)

(a,X, )

q0

q1

qf

M3 = ({a, b}, {q0 , q1 , q2 , qf }, 3 , q0 , {qf }, {X }) 3 (q0 , a, ) = {(q0 , X )} 3 (q0 , , ) = {(q1 , )} 3 (q1 , b, ) = {(q1 , X )} 3 (q1 , , ) = {(q2 , )} 3 (q2 , a, X ) = {(q2 , )} 3 (q2 , ?, ?) = {(qf , )} O aut omato n ao-determin stico M3 e tal que ACEITA(M3 ) = L3 . M3 empilha um s mbolo auxiliar X para cada a ou b em q0 ou q1 , respectivamente. Ap os, em q2 , verica se o n umero de a no suxo e igual ao de X empilhado.

L2 = {wwr | wpertence a {a, b} }

M2 = ({a, b}, {q0 , q1 , qf }, 2 , q0 , {qf }, {a, b}) 2 (q0 , a, ) = {(q0 , a)} 2 (q0 , b, ) = {(q0 , b)} 2 (q0 , , ) = {(q1 , )} 2 (q1 , a, a) = {(q1 , )} 2 (q1 , b, b) = {(q1 , )} 2 (q1 , ?, ?) = {(qf , )}

Note que M2 e n ao-determin stico devido ao movimento vazio de q0 para q1 . Al em disso, o alfabeto auxiliar e igual ao de entrada. Em q0 , e empilhado o reverso do prexo. A cada s mbolo empilhado, ocorre um movimento n ao-determinista para q1 o qual verica se o suxo da palavra e igual ao conte udo da pilha.

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

T opicos em Computa ca o I

GLC (FNG) AP AP e LLC


A classe das linguagens reconhecidas pelos APs e igual ` a classe das LLC. Constru c ao de um reconhecedor para LLC a partir de sua gram atica e imediata. Qualquer LLC pode ser reconhecida por um AP. Constru c ao de um AP a partir da gram atica G = (V, T, P, S ): G = (V , T , P , S ): seja M = (T , {q0 , q )1, qf }, , q0 , {qf }, V ), (q0 , , ) = {(q1 , S )} (q1 , a, A) = {(q1 , ) | A a P } (q1 , ?, ?) = {(qf , )}

A classe das linguagens reconhecidas pelos Aut omatos com Pilha e igual ` a classe das linguagens geradas pelas Gram aticas Livres de Contexto. A constru c ao de um AP a partir de uma GLC qualquer permite concluir que: (i) e poss vel construir um reconhecedor para uma LLC a partir de sua gram atica de forma simples; (ii) qualquer LLC pode ser reconhecida por um AP com somente um estado de controle l ogico, o que signica que a facilidade de memoriza c ao de informa co es atrav es de estados n ao aumenta o poder computacional dos AP.

Utilizando as regras apresentadas, podemos construir um AP a partir de qualquer gram atica livre de contexto. Devemos notar que a gram atica deve estar na forma normal de Greibach.

GLC (FNG) AP Exemplo


L1 = {an bn | n 1} A linguagem L1 e representada pela seguinte gram atica na FNG:

GLC (FNG) AP
Gram atica na forma normal de Greibach Simula deriva c ao mais ` a esquerda. Para cada produ c ao A a: l e s mbolo a da ta l e s mbolo A da pilha empilha a palavra

G1 = ({S, B }, {a, b}, P1 , S ), onde: P1 = {S aB | aSB, B b} Construa o AP que reconhece L1

A linguagem L1 e reconhecida pelo Aut omato com Pilha:

q0

( , ,S)

q1

(?,?, ) (a,S,B) (a,S,SB) (b,B, )

qf

M1 = ({a, b}, {q0 , q1 , qf }, 1 , q0 , {qf }, {S, B }) A partir de qualquer gram atica livre de contexto na forma normal de Greibach pode-se construir um Aut omato com Pilha. O AP gerado simula a deriva c ao mais a esquerda. (q0 , , ) = {(q1 , S )} (q1 , a, S ) = {(q1 , B )} (q1 , a, S ) = {(q1 , SB )} (q1 , b, B ) = {(q1 , )} (q1 , ?, ?) = {(qf , )}

Profa. Tiemi Christine Sakata

Você também pode gostar