Escolar Documentos
Profissional Documentos
Cultura Documentos
Topicos em Computacao I
Minimizac
ao de um Aut
omato Finito
Minimizac
ao
Ao construirmos um AFD a partir de um AFN,
percebe-se que o numero de estados pode
crescer.
mnimo de estados possveis facilita a
implementacao
Minimizacao de um AFD: construir um AFD
equivalente com o mnimo de estados possveis.
O tempo de processamento nao depende do automato de reconhecimento. Entretanto, uma otimizacao possvel e a reducao
do numero de estados. O objetivo da minimizacao e gerar um
automato finito equivalente com o menor numero de estados
possvel.
Em algumas aplicacoes especiais, a minimizacao do numero
de estados nao implica necessariamente no menor custo de implementacao (por exemplo, em desenhos de circuitos eletronicos,
quando e desejavel introduzir estados intermediarios em determinadas posicoes).
Pr
e-requisitos para Minimizac
ao
1. deve ser determinstico
2. nao pode ter estados inacessveis
3. a funcao programa deve ser total (a partir de
qualquer estado sao previstas transicoes para
todos os smbolos do alfabeto). Como
transformar a funcao programa em total?
Um automato finito a ser minimizado deve satisfazer aos prerequisitos citados acima.
Para gerar um AFD a partir de um AFN ou um AF, basta
utilizar os algoritmos vistos nas aulas anteriores. Eliminar um estado inatingvel significa verificar quais estados nao estao sendo
alcancados pela funcao programa. Para transformar a funcao
programa em total, e suficiente introduzir um novo estado nao
final d e incluir as transicoes nao previstas, tendo d como estado
destino. Por fim, incluir um ciclo de d para todos os smbolos do
alfabeto.
Aut
omato Mnimo
Um AFD M e mnimo para a linguagem L(M)
se nenhum AFD para L(M) contem menor
numero de estados que M.
M = (, Q, , q0 , F )| ACEITA(M ) = L
M 0 = (, Q0 , 0 , q00 , F 0 )| ACEITA(M 0 )= L
M e mnimo se #Q0 #Q
O automato finito mnimo e unico.
Estados Equivalentes
Algoritmo de minimizacao unifica os estados
equivalentes.
Os estados p e q Q sao equivalentes (p q)
para qualquer palavra w (w ), (q, w)
e (p, w) resultam simultaneamente em
estados finais ou nao finais.
Como determinar estados equivalente?
Mais facil determinar quando p 6 q
Topicos em Computacao I
Algoritmo de Minimizac
ao
b
q0
q1
a
q2
Algoritmo de Minimizac
ao
3. Marcacao dos estados nao-equivalentes para
cada par (qu , qv ) nao marcado e para cada
smbolo a , (qu , a) = pu e (qv , a) = pv :
se pu = pv qu qv para o smbolo a e
nao deve ser marcado
q3
b
b
b a
b a
a
a
q4
q5
3.
(q0 , b) = q1
(q4 , b) = q2
Algoritmo de Minimizac
ao
1. Tabela construir uma tabela relacionando os
estados distintos
2. Marcacao dos estados trivialmente
nao-equivalentes estado final nao e
equivalente a um estado nao final
(q0 , a) = q2
(q5 , a) = q2
(q0 , b) = q1
(q5 , b) = q3
Como {q1 , q3 } e nao-marcado e {q2 , q2 } e equivalente, entao {q0 , q5 } e includo na lista encabecada por
{q1 , q3 }.
Analise do par {q1 , q2 }
(q1 , a) = q1
(q2 , a) = q4
(q1 , b) = q0
(q2 , b) = q5
qn
d
q0
q1
qn1
2. q1
q2
q3
q4
q5
q0
(q1 , b) = q0
(q3 , b) = q4
q1
q2
q3
q4
(q2 , a) = q4
(q3 , a) = q5
(q2 , b) = q5
(q3 , b) = q4
Topicos em Computacao I
(q4 , a) = q3
(q5 , a) = q2
q0
q1
q2
q3
q4
q5
q1
q2
Algoritmo de Minimizac
ao
q3
q4
Algoritmo de Minimizac
ao
q0
a
q1
q23
a, b a, b
q45
Topicos em Computacao I
Exerccio 1
(q0 , b) = q0
(q4 , b) = q4
(q0 , a) = q1
(q4 , a) = q5
Minimize o automato M :
M = {{a, b}, {q0 , q1 , q2 , q3 , q4 , q5 }, , q0 , {q2 , q5 }}
q0 q1
q0
q4 q5
q4
q1 q2
q1
q5 q0
q5
q2 q3
q2
q3 q4
q3
(q1 , a) = q2
(q3 , a) = q4
q0
q1
q2
a
a
q5
q4
q3
(q1 , b) = q1
(q4 , b) = q4
(q1 , a) = q2
(q4 , a) = q5
(q2 , a) = q3
(q5 , a) = q0
q0
q1
(q3 , a) = q4
(q4 , a) = q5
q2
q3
Automato mnimo:
q4
(q0 , b) = q0
(q1 , b) = q1
q03
q14
a
q25
(q0 , a) = q1
(q3 , a) = q4
(q0 , b) = q0
(q3 , b) = q3
Exerccio 2
Minimize o automato abaixo:
a
q0
q1
q2
q7
a
a
b a
Topicos em Computacao I
q1
q2
q3
q4
q5
d
q0
q1
q2
q4
q5
q6
Este automato nao satisfaz os pre-requisitos para a minimizacao. Primeiro, devemos eliminar os estados inacessveis:
q0
q1
q2
q4
q5
(q0 , b) = q3
(q2 , b) = q5
(q1 , b) = q2
(q3 , b) = q4
(q1 , a) = q4
(q4 , a) = d
q3
q4
a
a
q3
q3
q5
(q1 , b) = q2
(q4 , b) = d
q0
q1
q3
q4
q2
q5
a,b
(q1 , b) = q2
(q5 , b) = q4
a
a
(q1 , a) = q4
(q5 , a) = q2
(q1 , a) = q4
(d, a) = d
a,b
(q1 , b) = q2
(d, b) = d
(q3 , b) = q4
(q4 , b) = d
(q3 , b) = q4
(q5 , b) = q4
(q3 , b) = q4
(d, b) = d
Topicos em Computacao I
a
q02
q1
b
(q4 , a) = d
(q5 , a) = q2
q35
(q4 , b) = d
(d, b) = d
(q5 , a) = q2
(d, a) = d
a
q02
q1
b
q35
q4
a,b