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
Exemplos de Solu
Exemplos de Solu
ç
ç
ão dos Exerc
ão dos Exerc
í
í
cios da Aula Anterior
cios da Aula Anterior
Novo Exerc
Novo Exerc
í
í
cio
cio
–
–
(Turma INF1626 de 2011
(Turma INF1626 de 2011
-
-
2)
2)
Dica visual
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
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).
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
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)
•
Algoritmo de Conversão
Algoritmo de Conversão
Ramos, 2009 p.161
Ramos, 2009 p.161
©Clarisse S. de Souza, 2013 8Sejam:
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
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: Q1X22Q1Q1))
O AFD equivalente = {Q2,
O AFD equivalente = {Q2,,,2,F22,F2} (} (2 são transi2 são transiçções: Q2Xões: Q2X22Q2Q2) )
constr
constróóii--se pelo seguinte mse pelo seguinte méétodo:todo: 1.
1. Q2 Q2 ;;
2.
2. ii0, se q1i 0, se q1i Q1 então Q2 Q1 então Q2 Q2 Q2 {q2i}{q2i}
3.
3. F2 F2 ;;
4.
4. ii0, se q1i 0, se q1i F1 então F2 F1 então F2 F2 F2 {q2i}{q2i} 5.
5. 2 2 ;;
6.
6. qiqiQ1,Q1, se se 1(q1i,1(q1i,)={q11...q1n} n)={q11...q1n} n1 então 1 então 222(q2i,2(q2i,)={q21...q2n})={q21...q2n}
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
Exemplo
Exemplo
Primeira
Primeira
itera
iteraççãoão (Qnovo1)
Exemplo
Exemplo
©Clarisse S. de Souza, 2013 12 Primeira Primeira iteraiteraççã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
Exemplo
Exemplo
©Clarisse S. de Souza, 2013 13 Segunda Segunda iteraiteraççãoão (Qnovo2) (Qnovo2) q4 q4 ééestadoestado destino de destino de v
váárias transirias transiçções;ões; não pode ser
Autômato Resultante da Conversão
Autômato Resultante da Conversão
©Clarisse S. de Souza, 2013 14
Exerc
Exerc
í
í
cio: Conversão
cio: Conversão
AFND em AFD
AFND em AFD
Exemplo do Exercício sobre L = anbk para