Escolar Documentos
Profissional Documentos
Cultura Documentos
Aut Omato Com Pilha (AP) Aut Omato Com Pilha
Aut Omato Com Pilha (AP) Aut Omato Com Pilha
T opicos em Computa ca o I
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.
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).
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
(a,A,)
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
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:
T opicos em Computa ca o I
(a, ,B)
(b,B, )
Exerc cio 2
q0
(b,B, )
q1
(?,?, )
qf
(?,?, )
(,,)
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.
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.
T opicos em Computa ca o I
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
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
q0
( , ,S)
q1
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 , )}