Escolar Documentos
Profissional Documentos
Cultura Documentos
Topicos em Computacao I
Equival
encia entre AFD e AFN
Exemplo
Aut
omato Finito N
ao-Determinstico (AFN)
estado anterior
q
a
p1
p2
...
pn
smbolo
lido
conjunto
de novos
estados
L = {w | w (a |a+ b ) }
M = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 }
F = {q0 , q1 }
q0 {q0 , q1 }
q1
{q1 }
a,b
q0
q1
q2
q3
Exerccio
AFN - Definic
ao
M = (, Q, , q0 , F )
alfabeto de smbolos de entrada
Q conj. de estados possveis do automato
o qual e finito
funcao de transicao
q0 {q0 , q1 } {q0 }
q1
{q2 }
q2
{qf }
qf
a,b
q0
q1
q2
qf
Topicos em Computacao I
3. M3 = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 , q2 , q3 , q4 , q5 , q6 , q7 , q8 }
F = {q0 }
Exerccios
Desenvolver AFNs que reconhecam as seguintes
linguagens sobre = {a, b}
1. L1 = {w | o prefixo de w e aa}
2. L2 = {w | w possui aa ou bb como
subpalavra}
3. L3 = {w | w possui um numero par de a e b}
4. L4 = {w|w possui um numero mpar de a}
q0
q1
q2
q3
q4
q5
q6
q7
q8
a
{q1 , q3 }
{q0 }
{q0 }
{q5 }
{q4 }
{q7 }
{q6 }
{q0 }
b
{q2 , q6 }
{q0 }
{q4 }
{q3 }
{q0 }
{q0 }
{q8 }
{q7 }
a
q6
Possveis solucoes:
1. M1 = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 , q2 , q3 }
F = {q2 , q3 }
q0
q1
q2
q3
a
{q1 }
{q2 }
{q2 , q3 }
-
q7
a
b
q2
b
q8
b
a
b
{q2 , q3 }
-
q0
a
q1
q5
a,b
a a
b
q3
q4
q0
q1
q2
2. M2 = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 , q2 , qf }
F = {qf }
q0
q1
q2
qf
a,b
q3
4. M4 = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 , q2 , q3 }
F = {q1 , q2 }
q0
q1
q2
qf
a
b
{q0 , q1 } {q0 , q2 }
{qf }
{qf }
{qf }
{qf }
a
{q1 , q2 }
{q3 }
{q2 }
b
{q0 }
{q1 }
{q2 }
{q3 }
b
a,b
q0
a
q0
q1
b
q1
q2
a
a
q2
b
qf
q3
a
a,b
Equival
encia entre AFD e AFN
Um automato finito nao-determinstico pode se
transformar em um automato finito
determinstico equivalente.
Dois automatos sao considerados equivalentes
se aceitam a mesma linguagem.
Embora a facilidade de nao-determinismo seja, aparentemente, um significativo acrescimo ao Automato Finito, na realidade nao aumenta seu poder computacional. Assim, para
cada AFN, e possvel construir um AFD equivalente que realiza o mesmo processamento. O contrario tambem e verdadeiro.
Equival
encia entre AFD e AFN
Para construir um AFD a partir de um AFN
qualquer, devemos realizar os seguintes passos:
1. Construir a tabela de transicoes do AFN ().
2. Construir a tabela de transicoes do AFD ()
atraves do produto cartesiano dos estados de
, incluindo como ultimo conjunto o vazio.
3. Mostrar todos os conjuntos que contem como
elemento estados finais como novo estado final
de .
Exemplo: Considere o AFN seguinte:
a
q0
q1
b
a
Topicos em Computacao I
a
b
q0 {q1, q2}
q1 {q2} {q0, q2}
q2 {q2}
{q0}
2. Construir a tabela de transicoes do AFD () atraves do
produto cartesiano dos estados de , incluindo como ultimo
conjunto o vazio:
S0
S1
S2
S3
S4
S5
S6
S7
= {q0}
= {q1}
= {q2}
= {q0, q1}
= {q0, q2}
= {q1, q2}
= {q0, q1, q2 }
={}
S0 = {q0}
S1 = {q1}
S2 = {q2}
S3 = {q0, q1}
S4 = {q0, q2}
S5 = {q1, q2}
S6 = {q0, q1, q2 }
S7 = { }
a, b
b
a
q2
Topicos em Computacao I
Equival
encia entre AFD e AFN
4. Verificar a ocorrencia de cada conjunto de
em relacao a um smbolo e colocar como
resultado o conjunto correspondente que
pertence a . Quando existir mais de um
elemento no conjunto a ocorrencia passa a ser
a uniao das ocorrencias de todas as transicoes.
5. Eliminar as linhas que possuem transicoes
somente com sadas (nao existe transicao que
chega ate ela, isto e, estado inacessvel).
Equival
encia entre AFD e AFN
6. Montar o AFD a partir de .
7. Eliminar os estados que nao possuem sada
para outro estado e nao sao finais.
8. Verificar se uma cadeia que pertencia ao AFN
tambem pertence ao AFD gerado.
S0 = {q0}
S1 = {q1}
S2 = {q2}
S3 = {q0, q1}
S4 = {q0, q2 }
S5 = {q1, q2 }
S6 = {q0, q1 , q2}
S7 = { }
a
S5
S2
S2
S5
S5
S2
S5
S7
b
S7
S4
S0
S4
S0
S4
S4
S7
S0
S5
S4
a, b
b
a
S7
S2
7. Eliminar os estados que nao possuem sada para outro estado e nao sao finais:
S0
S5
b
5. Eliminar as linhas que possuem transicoes somente com
sadas, ou seja, nao existe nenhuma transicao que chega
ate ela (estado inacessvel):
b
a
S4
b
S0 = {q0}
S2 = {q2}
S4 = {q0, q2 }
S5 = {q1, q2 }
S7 = { }
a
S5
S2
S5
S2
S7
b
S7
S0
S0
S4
S7
S2
S0
S2
a S5
b S0
a S5
a S5
a
b S4
b S4
a
S
5
Topicos em Computacao I
a,b
b
b
p0
q0
q1
q0
q1
q2
p1
p2
p3
q3
2. p0
p1
p2
p3
=
=
=
=
{q0 }
{q1 }
{q0 , q2 }
{q0 , q1 }
b
b
p0
q2
p1
b
a
p2
p3
1. p0
p1
p2
p3
=
=
=
=
{q0 }
{q0 , q1 }
{q0 , q1 , q2 }
{q0 , q1 , q2 , q3 }