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

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

esquerda p/ direita,read only

Apresentações semelhantes


Apresentação em tema: "esquerda p/ direita,read only"— Transcrição da apresentação:

1 esquerda p/ direita,read only
AUTÔMATO A PILHA fita de entrada esquerda p/ direita,read only x1 x2 x3 x4 x5 x6 ... xn A1 A2 A3 A4 z Q pilha push/pop unidade de controle

2 autômato a pilha não-determinís-tico M=< Q,,,,q0,,F>
Definição NPDA autômato a pilha não-determinís-tico M=< Q,,,,q0,,F> Q ► estados  ► alfabeto da fita  ► alfabeto da pilha q0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,B1B2. …Bk ) )   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 B1B2. …Bk na pilha (Bk primeiro e B1 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={q0,q1,q2,q3),={a,b},={0,1}, z=0, F = {q3} e (q0,a,0)={(q1,10),(q3,)} (q0, ,0) = {(q3,)} (q1,a,1) = {(q1,11)} ((q1,b,1) = {(q2,)} (q2,b,1) = {(q2,)} (q2, ,0) = {(q3,)}

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  (q1,a,1) = {(q1,11)} adiciona 1 a pilha quando é lido um a ;  (q2,b,1) = {(q2,)} remove 1 quando um b é encontrado.

6 Estas duas etapas contam o número de a’s e compara este número com o número de b’s.
A unidade de controle fica no estado q1 até ser encontrado o primeiro b e aí entra no estado q2. Isto assegura que nenhum b precede o último a. Após analisar as transições restantes, veremos que o npda terminará no estado final q3 se e somente a cadeia de entrada está na linguagem L = {anbn | 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 |—
(q1,aw,bx)|—(q2 ,w,yx) é possível se e somente se (q2,y)(q1,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 = <Q,,,,q0,z,F> a linguagem L(M) aceita por M por estado final é L(M)={w|(q0,w,z) |—* (p,,)pF e *}

10 L(M)={w|(q0,w,z) |—* (p,,), qQ}
a linguagem L(M) aceita por M por pilha vazia é L(M)={w|(q0,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}, ={[,]},  = {,[}, q0=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aB1B2…Bk, 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  aB1B2…Bk em P,  contém a transição ((q,a,A),(q,B1B2…Bk) )

18 (i) S  [BS ((q,,S),(q,BS)) (ii) S  [B ((q,,S),(q,B))
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  S * x por uma derivação a esquerda  (q,x,s) *(q, , ) (lema)
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 qf no qual só entra sss a pilha estiver vazia. 2. Todas as transições devem ter a forma (q,a,A)={C1,C2,…,Cn}, onde: Ci=(p,) (a) ou Ci=(p,BC) (b)

23 Estas restrições não são tão severas quanto parece
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 (qiAql)a(qjBqk)(qkBql)
Logo as varáveis da gramática têm que ter a forma (qiAqj). (qiAqj)*w sss o pda apaga (desem-pilha) A da pilha, indo de qi para qj enquanto lê a cadeia w. se (qj,)(qi,a,A) (tipo 2a), então (qiAqj)a se (qj,BC)(qi,a,A) (tipo 2b), então (qiAql)a(qjBqk)(qkBql) onde qk e ql varrem todo o Q. como símbolo inicial faça: (q0zqf)

25 Exemplo: seja o pda definido por:
(q0,a,z)=(q0,Az) (q0,a,A)=(q0,A) (q0,b,A)=(q1,) (q1,,z)=(q2,) não satisfaz condição 2, mas ... (q0,a,A)=(q3,) (q3,,z)=(q3,Az)

26 De (q0,a,A)=(q3,), (q0,b,A)=(q1,) e (q1,,z)=(q2,) geramos:
(q0Aq3)  a (q0Aq1)  b (q1zq2)   De (q0,a,z)=(q0,Az) geramos: (q0zqi)a(q0Aq0)(q0zqi)| a(q0Aq1)(q1zqi)| a(q0Aq2)(q2zqi)| a(q0Aq3)(q3zqi) para i=0,1,2,3

27 E de (q3,,z)=(q3,Az) geramos:
(q3zqi)(q3Aq0)(q0zqi)| (q3Aq1)(q1zqi)| (q3Aq2)(q2zqi)| (q3Aq3)(q3zqi) para i=0,1,2,3 o símbolo inicial é (q0zq2). Vejamos como se comportam M e G em aab:

28  aa(q3zq2)  aa(q0Aq1)(q1zq2)  aab(q1zq2)  aab
Em M: (q0,aab,z) |— (q0,ab,Az) |— (q3,b,z) |— (q0,b,Az) |— (q1,,z) |— (q2,, ) em G: (q0z q2)  a(q0Aq3)(q3zq2)  aa(q3zq2)  aa(q0Aq1)(q1zq2)  aab(q1zq2)  aab

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


Carregar ppt "esquerda p/ direita,read only"

Apresentações semelhantes


Anúncios Google