Linguagens Formais e Autômatos (LFA)

Texto

(1)

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA)

Aula de 23/09/2013

Aula de 23/09/2013

Parte 1

Parte 1

Exerc

(2)

Exemplos de Solu

Exemplos de Solu

ç

ç

ão dos Exerc

ão dos Exerc

í

í

cios da Aula Anterior

cios da Aula Anterior

(3)

Novo Exerc

Novo Exerc

í

í

cio

cio

(Turma INF1626 de 2011

(Turma INF1626 de 2011

-

-

2)

2)

Dica visual

(4)

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA)

Aula de 23/09/2013

Aula de 23/09/2013

Parte 2

Parte 2

Elimina

Elimina

ç

ç

ão de Arcos Vazios

ão de Arcos Vazios

Transforma

Transforma

ç

ç

ão AFND em AFD

ão AFND em AFD

(5)

Elimina

Elimina

ç

ç

ão de Arcos Vazios

ão de Arcos Vazios

O que são arcos vazios?

O que são arcos vazios?

Arcos que permitem uma transi

Arcos que permitem uma transiç

ção de estado SEM

ão de estado SEM

avan

avan

ç

ç

o da posi

o da posi

ç

ç

ão do cursor na fita de entrada.

ão do cursor na fita de entrada.

Criam um

Criam um

não determinismo

não determinismo

(pois o avan

(pois o avan

ço

ç

o é

é

sempre

sempre

uma possibilidade).

(6)

Para eliminar transi

Para eliminar transi

ç

ç

ões em vazio

ões em vazio

Se houver uma transi

Se houver uma transi

ç

ç

ão em vazio de qi para qj (ou seja: qi,

ão em vazio de qi para qj (ou seja: qi,

,qj)

,qj)

copiar para as transi

copiar para as transi

ç

ç

ões de qi todas as transi

ões de qi todas as transi

ç

ç

ões que

ões que

partem

partem

de qj

(7)

Transforma

Transforma

ç

ç

ão de AFND em AFD

ão de AFND em AFD

1.

1.

A eliminaç

A elimina

ção das transi

ão das transi

ções em vazio

ç

ões em vazio é

é

um dos casos

um dos casos

2.

2.

O outro caso é

O outro caso

é

o de qi,

o de qi,

,{qj1,qj2,...,qjn}.

,{qj1,qj2,...,qjn}.

O procedimento para eliminar o não determinismo

O procedimento para eliminar o não determinismo

quando as transi

quando as transi

ç

ç

ões não são vazias tem similaridades

ões não são vazias tem similaridades

com a elimina

com a elimina

ç

ç

ão das transi

ão das transi

ç

ç

ões em vazio:

ões em vazio:

Envolve fusão de estados

Envolve fusão de estados

Envolve có

Envolve c

ópias (+ substitui

pias (+ substituiç

ções)

ões)

(8)

Algoritmo de Conversão

Algoritmo de Conversão

Ramos, 2009 p.161

Ramos, 2009 p.161

©Clarisse S. de Souza, 2013 8

Sejam:

Sejam:

Q1 o conjunto de estados do

Q1 o conjunto de estados do

AFND

AFND

Q2 o conjunto de estados do

Q2 o conjunto de estados do

AFD

AFD

q01 o estado inicial do AFND

q01 o estado inicial do AFND

q02 o estado inicial do AFD

q02 o estado inicial do AFD

F1 o conjunto de estados finais

F1 o conjunto de estados finais

de AFND

de AFND

F2 o conjunto de estados finais

F2 o conjunto de estados finais

de AFD

(9)

Algoritmo de Conversão AFND

Algoritmo de Conversão AFND

ADF (1/n)

ADF (1/n)

Seja um AFND = {Q1,

Seja um AFND = {Q1,,,1,F11,F1} (} (1 são transi1 são transiçções: Q1Xões: Q1X22Q1Q1))

O AFD equivalente = {Q2,

O AFD equivalente = {Q2,,,2,F22,F2} (} (2 são transi2 são transiçções: Q2Xões: Q2X22Q2Q2) )

constr

constróóii--se pelo seguinte mse pelo seguinte méétodo:todo: 1.

1. Q2 Q2  ;;

2.

2. ii0, se q1i 0, se q1i  Q1 então Q2 Q1 então Q2  Q2 Q2  {q2i}{q2i}

3.

3. F2 F2  ;;

4.

4. ii0, se q1i 0, se q1i  F1 então F2 F1 então F2  F2 F2  {q2i}{q2i} 5.

5. 2 2  ;;

6.

6.  qiqiQ1,Q1, se se 1(q1i,1(q1i,)={q11...q1n} n)={q11...q1n} n1 então 1 então 222(q2i,2(q2i,)={q21...q2n})={q21...q2n}

(10)

Algoritmo de Conversão AFND

Algoritmo de Conversão AFND

ADF (1/n)

ADF (1/n)

7.

7. Substituir todos os elementos {q2i} de Substituir todos os elementos {q2i} de 2 por q2i2 por q2i

8.

8. Enquanto houver transiEnquanto houver transiçções ND em ões ND em 2, fa2, façça:a:

a) Selecione uma transição ND 2(q,) = {q21,...,q2i,...q2n} para n>1

b) Acrescente um novo estado Qnovo a Q2 para representar a reunião de {q21,...,q2i,...q2n}

c) Substitua todas as ocorrências de {q21,...,q2i,...q2n} por Qnovo

d) Para cada 

i. 2(Qnovo,) 

ii. Para cada estado q2j {q21,...,q2i,...q2n}, faça: 2(Qnovo,) 2(Qnovo,)  (q2j, )

Se q2j F2 então F2  F2 {q21,...,q2i,...q2n} Elimina estados inúteis/inacessíveis

©Clarisse S. de Souza, 2013 10

Para todas as transições únicas, trocar conjunto unitário por estado (direto)

Inicializa transições de Qnovo para cada símbolo do alfabeto

Constrói transições para Qnovo correspondentes às de

(11)

Exemplo

Exemplo

Primeira

Primeira

itera

iteraççãoão (Qnovo1)

(12)

Exemplo

Exemplo

©Clarisse S. de Souza, 2013 12 Primeira Primeira itera

iteraççãoão (Qnovo1) (Qnovo1) q1 e q2 q1 e q2 não são não são destino de destino de nenhuma nenhuma trnasi

trnasiçção;ão;

são in

(13)

Exemplo

Exemplo

©Clarisse S. de Souza, 2013 13 Segunda Segunda itera

iteraççãoão (Qnovo2) (Qnovo2) q4 q4 ééestadoestado destino de destino de v

váárias transirias transiçções;ões; não pode ser

(14)

Autômato Resultante da Conversão

Autômato Resultante da Conversão

©Clarisse S. de Souza, 2013 14

(15)

Exerc

Exerc

í

í

cio: Conversão

cio: Conversão

AFND em AFD

AFND em AFD

Exemplo do Exercício sobre L = anbk para

Imagem

Referências

temas relacionados :