A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

AUTÔMATO A PILHA x2x2 x3x3 x4x4 x5x5 x1x1 x6x6...xnxn Q A1A1 A2A2 A3A3 A4A4 z push/pop pilha fita de entrada esquerda p/ direita,read only unidade de controle.

Apresentações semelhantes


Apresentação em tema: "AUTÔMATO A PILHA x2x2 x3x3 x4x4 x5x5 x1x1 x6x6...xnxn Q A1A1 A2A2 A3A3 A4A4 z push/pop pilha fita de entrada esquerda p/ direita,read only unidade de controle."— Transcrição da apresentação:

1 AUTÔMATO A PILHA x2x2 x3x3 x4x4 x5x5 x1x1 x6x6...xnxn Q A1A1 A2A2 A3A3 A4A4 z push/pop pilha fita de entrada esquerda p/ direita,read only unidade de controle

2 Definição NPDA autômato a pilha não-determinís-tico M= Q estados alfabeto da fita alfabeto da pilha q 0 Q estado inicial z símbolo de início da pilha F Q estados finais função de transição : Q x ( U { } ) x Q x *

3 se ( (p,a,A),(q,B 1 B 2. …B k ) ) isto significa intuitivamente que quando a máquina está no estado p lendo o símbolo a (na fita de entrada) e A (no topo da pilha),ela tira A da pilha,coloca B 1 B 2. …B k na pilha (B k primeiro e B 1 por último),move a cabeça para a direita uma célula passando o símbolo a e entra no estado q.

4 EXEMPLO: Considere o npda com Q={q 0,q 1,q 2,q 3 ), ={a,b}, ={0,1}, z=0, F = {q 3 } e (q 0,a,0)={(q 1,10),(q 3, )} (q 0,,0) = {(q 3, )} (q 1,a,1) = {(q 1,11)} ((q 1,b,1) = {(q 2, )} (q 2,b,1) = {(q 2, )} (q 2,,0) = {(q 3, )}

5 Não são especificadas transições para todas as combinações possíveis de entradas e símbolos da pilha; Uma transição não especificada vai para o conjunto vazio e representa uma configuração morta do npda; Transições cruciais – (q 1,a,1) = {(q 1,11)} adiciona 1 a pilha quando é lido um a ; – (q 2,b,1) = {(q 2, )} remove 1 quando um b é encontrado.

6 Estas duas etapas contam o número de as e compara este número com o número de bs. A unidade de controle fica no estado q 1 até ser encontrado o primeiro b e aí entra no estado q 2. Isto assegura que nenhum b precede o último a. Após analisar as transições restantes, veremos que o npda terminará no estado final q 3 se e somente a cadeia de entrada está na linguagem L = {a n b n | n 0} {a}

7 A tripla (q,w,u), onde q é o estado da unidade de controle, w é a parte não lida da cadeia, e u o conteúdo da pilha (com o símbolo mais a esquerda indicando o topo da pilha) é chamada uma descrição instantânea do autô- mato a pilha.

8 Um movimento de uma descrição instantânea para outra será denotada pelo símbolo | (q 1,aw,bx)|(q 2,w,yx) é possível se e somente se (q 2,y) (q 1,a,b) | * | + | m

9 A Linguagem Aceita por um Autômato a Pilha Existem duas definições alternati- vas para aceitação, por: pilha vazia ou estado final. Para um pda M = a linguagem L(M) aceita por M por estado final é L(M)={w|(q 0,w,z) | * (p,, )p F e *}

10 a linguagem L(M) aceita por M por pilha vazia é L(M)={w|(q 0,w,z) | * (p,, ), q Q} Obs: Quando a aceitação é por pilha vazia, o conjunto de estados finais é irrelevante, e neste caso geralmente defi- nimos o conjunto de estados finais como o conjunto vazio.

11 EXEMPLO. Considere o npda com Q={q}, ={[,]}, = {,[}, q 0 =q, z= e (i) (q,[, ) = (q,[ ) (ii) (q,[,[) = (q,[[) (iii) (q,],[) = (q, ) (iv) (q,, ) = (q, ) Transições (i) e (ii) dizem que toda vez que o próximo símbolo de entrada é [,o [ deve ser colocado no topo da pilha.

12 Transição (iii) diz que quando o pró- ximo símbolo de entrada é ] com um [ no topo da pilha, removemos o [ e não colocamos mais nada na pilha. Transição (iv) ocorre quando alcan- çamos o fim da cadeia de entrada e queremos retirar da pilha e aceitar o padrão. Dada a entrada [[[]][]][] a sequência de configurações do autômato até a aceitação da cadeia:

13 (q, [[[]][]][], ) conf. Inicial (q, [[]][]][], [ ) (i) (q, []][]][], [[ ) (ii) (q, ]][]][], [[[ ) (ii) (q, ][]][], [[ ) (iii) (q, []][], [ ) (ii) (q, ]][], [[ ) (ii) (q, ][], [ ) (iii) (q, [], ) (iii) (q, ], [ ) (i) (q,, ) (iii) (q,, ) (iv)

14 Obs: A transição (iv) poderia ter sido usada várias vezes anteriormente, por exemplo, no primeiro passo levaria a seguinte configuração (q,[[[]][]][], ) e autômato pararia, com a pilha vazia mas sem ter lido toda a entrada!

15 Autômatos à Pilha E Linguagens Livre de Contexto Autômatos à pilha para linguagens livre de contexto. Mostrar que para toda linguagem livre de contexto existe um npda que a aceita. A idéia subjacente é construir um npda que possa, em algum sentido, efetuar uma derivação mais a esquer- da de qualquer cadeia da linguagem.

16 Para simplificar assumiremos que a linguagem é gerada por uma gramática na forma normal de Greibach. A aB 1 B 2 …B k, k 0 Construir de G um npda equivalente M com um único estado que aceita a linguagem por pilha vazia. M = ({q},,N,,q,S, Φ)

17 q é o único estado e é estado inicial, os terminais de G, é o alfabeto de entrada de M N, os não-terminais de G, é o alfabeto da pilha de M é a função de transição S é o símbolo inicial de G, e o símbo-lo inicial da pilha de M. Φ conjunto vazio de estados finais de M Para cada produção A aB 1 B 2 …B k em P, contém a transição ((q,a,A),(q,B 1 B 2 …B k ) )

18 Exemplo: Considere o conjunto de cadeias de parên- teses balanceadas [ ] e uma gramática G. Abaixo temos as regras de produção de G ao lado da transição correspon-dente pela construção vista anteriormente: (i) S [BS ((q,,S),(q,BS)) (ii) S [B ((q,,S),(q,B)) (iii) S [SB (q,,S),(q,S B)) (iv) S [SBS (q,,S),(q,SBS)) (v) B ] (q,,B),(q, ))

19 Considere a entrada x = regra | forma sentencial | configuração S (q,,S) (iii) S B (q,,SB) (iv) SBSB (q,,SBSB) (ii) BBSB (q,,BBSB) (v) BSB (q,,BSB) (v) SB (q,,SB) (ii) BB (q,,BB) (v) B (q,,B) (v) (q,, )

20 Lema:Para qualquer z,y Σ*, γ Г*, e A N, A *zγ por uma derivação a esquerda se e somente se (q,zy,A) * (q,y, γ). Teorema: L(M) = L(G). Prova: x L(G) S * x por uma derivação a esquerda (definição de L(G) ) (q,x,s) *(q,, ) (lema) x L(M) definição de L(M). q.e.d

21 Gramáticas livre de contexto para autômatos a pilha. A inversa do teorema acima também é verdadeira. A construção é reverter o processo de construção de L(M) = L(G), de modo que a gramática simule os movimentos do pda. Isto significa que o conteúdo da pilha deve estar refletido na parte de variá- veis na forma sentencial, enquanto a entrada processada é o prefixo termi- nal da forma sentencial.

22 Para simplificar assumamos que o pda M satisfaz: 1. Tem único estado final q f no qual só entra sss a pilha estiver vazia. 2. Todas as transições devem ter a forma (q,a,A)={C 1,C 2,…,C n }, onde: C i =(p, ) (a) ou C i =(p,BC) (b)

23 Estas restrições não são tão severas quanto parece. Mostre como, dado um pda qualquer, obter um satisfazendo 1 e 2 acima. Na construção da gramática devemos ter uma forma sentencial que reflita o conteúdo da pilha. Observe que a configuração de um pda também envolve um estado que deve ser lembrado.

24 Logo as varáveis da gramática têm que ter a forma (q i Aq j ). (q i Aq j ) *w sss o pda apaga (desem- pilha) A da pilha, indo de q i para q j enquanto lê a cadeia w. se (q j, ) (q i,a,A) (tipo 2a), então (q i Aq j ) a se (q j,BC) (q i,a,A) (tipo 2b), então (q i Aq l ) a(q j Bq k )(q k Bq l ) onde q k e q l varrem todo o Q. como símbolo inicial faça: (q 0 zq f )

25 Exemplo: seja o pda definido por: (q 0,a,z)=(q 0,Az) (q 0,a,A)=(q 0,A) (q 0,b,A)=(q 1, ) (q 1,,z)=(q 2, ) não satisfaz condição 2, mas... (q 0,a,A)=(q 3, ) (q 3,,z)=(q 3,Az)

26 De (q 0,a,A)=(q 3, ), (q 0,b,A)=(q 1, ) e (q 1,,z)=(q 2, ) geramos: (q 0 Aq 3 ) a (q 0 Aq 1 ) b (q 1 zq 2 ) De (q 0,a,z)=(q 0,Az) geramos: (q 0 zq i ) a(q 0 Aq 0 )(q 0 zq i )| a(q 0 Aq 1 )(q 1 zq i )| a(q 0 Aq 2 )(q 2 zq i )| a(q 0 Aq 3 )(q 3 zq i ) para i=0,1,2,3

27 E de (q 3,,z)=(q 3,Az) geramos: (q 3 zq i ) (q 3 Aq 0 )(q 0 zq i )| (q 3 Aq 1 )(q 1 zq i )| (q 3 Aq 2 )(q 2 zq i )| (q 3 Aq 3 )(q 3 zq i ) para i=0,1,2,3 o símbolo inicial é (q 0 zq 2 ). Vejamos como se comportam M e G em aab:

28 Em M: (q 0,aab,z) | (q 0,ab,Az) | (q 3,b,z) | (q 0,b,Az) | (q 1,,z) | (q 2,, ) em G: (q 0 z q 2 ) a(q 0 Aq 3 )(q 3 zq 2 ) aa(q 3 zq 2 ) aa(q 0 Aq 1 )(q 1 zq 2 ) aab(q 1 zq 2 ) aab

29 Teorema. Se L=L(M) para algum pda M. então L é uma linguagem livre de contexto.


Carregar ppt "AUTÔMATO A PILHA x2x2 x3x3 x4x4 x5x5 x1x1 x6x6...xnxn Q A1A1 A2A2 A3A3 A4A4 z push/pop pilha fita de entrada esquerda p/ direita,read only unidade de controle."

Apresentações semelhantes


Anúncios Google