Aut mato a pilha
This presentation is the property of its rightful owner.
Sponsored Links
1 / 29

AUTÔMATO A PILHA PowerPoint PPT Presentation


  • 60 Views
  • Uploaded on
  • Presentation posted in: General

A 1. A 2. A 3. A 4. z. AUTÔMATO A PILHA. fita de entrada esquerda p/ direita,read only. x 1. x 2. x 3. x 4. x 5. x 6. x n. Q. pilha. push/pop. unidade de controle. Definição NPDA. autômato a pilha não-determinís-tico M=< Q, ,,,q 0 ,,F> Q ► estados

Download Presentation

AUTÔMATO A PILHA

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Aut mato a pilha

A1

A2

A3

A4

z

AUTÔMATO A PILHA

fita de entrada

esquerda p/ direita,read only

x1

x2

x3

x4

x5

x6

...

xn

Q

pilha

push/pop

unidade

de controle


Defini o npda

DefiniçãoNPDA

autômato a pilha não-determinís-ticoM=< 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 *


Aut mato a pilha

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.


Aut mato a pilha

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,)}


Aut mato a pilha

  • 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.


Aut mato a pilha

  • 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 finalq3 se e somente a cadeia de entrada está na linguagem

    L = {anbn | n 0}  {a}


Aut mato a pilha

  • 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.


Aut mato a pilha

  • 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


A linguagem aceita por um aut mato a pilha

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 *}


Aut mato a pilha

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.


Aut mato a pilha

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.


Aut mato a pilha

  • 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:


Aut mato a pilha

(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)


Aut mato a pilha

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!


Aut matos pilha e linguagens livre de contexto

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.


Aut mato a pilha

  • 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, Φ)


Aut mato a pilha

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) )


Aut mato a pilha

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,))


Aut mato a pilha

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,,)


Aut mato a pilha

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


Aut mato a pilha

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.


Aut mato a pilha

  • 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)


Aut mato a pilha

  • 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.


Aut mato a pilha

  • 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 eql varrem todo o Q.

  • como símbolo inicial faça: (q0zqf)


Aut mato a pilha

  • 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)


Aut mato a pilha

  • 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


Aut mato a pilha

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:


Aut mato a pilha

  • 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


Aut mato a pilha

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


  • Login