Você está na página 1de 6

FACENS - Faculdade de Engenharia de Sorocaba

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

Um automato mnimo de uma linguagem regular L e


um automato finito determinstico M = (, Q, , q0 , F ) tal
que ACEITA(M ) = L e que, para qualquer outro AFD
M 0 = (, Q0 , 0 , q00 , F 0 ) tal que ACEITA(M 0 )= L, tem-se que
#Q0 #Q.
O automato finito mnimo e unico (a menos de isomorfismo,
ou seja, diferenciam-se na identificacao dos estados). Assim, dois
automatos distintos que aceitam a mesma linguagem, ao serem
minimizados, geram o mesmo automato mnimo.

Profa. Tiemi Christine Sakata

O algoritmo para minimizar um AFD identifica os estados


equivalentes por exclusao. A partir de uma tabela de estados, sao
marcados os estados nao-equivalentes. Ao final do algoritmo, as
referencias nao marcadas representam os estados equivalentes.

FACENS - Faculdade de Engenharia de Sorocaba

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

se pu 6= pv e o par {pu , pv } nao esta


marcado, {qu , qv } fica para posterior analise

b a
a

se pu 6= pv e o par {pu , pv } esta marcado:


{qu , qv } deve ser marcado (6)
verificar se esta marcacao inclui outro par

a
q4

q5

Utilizaremos o AFD acima para exemplificar os passos da


minimizacao. Este automato satisfaz os pre-requisitos de minimizacao e consequentemente nao e necessario incluir o estado d.
Como exerccio, descreva o formalismo do AFD acima e verifique
qual a linguagem aceita.

3.

Analise do par {q0 , q4 }


(q0 , a) = q2
(q4 , a) = q3

(q0 , b) = q1
(q4 , b) = q2

Como {q1 , q2 } e {q2 , q3 } sao nao-marcados, entao


{q0 , q4 } e includo nas listas encabecadas por {q1 , q2 }
e {q2 , q3 }.
Analise do par {q0 , q5 }

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

Como {q1 , q4 } e marcado, entao {q1 , q2 } tambem deve


ser marcado.Como {q1 , q2 } encabeca uma lista, o par
{q0 , q4 } deve ser marcado.
1. Tabela de estados (generica):
q1
q2

qn
d
q0
q1

qn1
2. q1
q2
q3
q4
q5

Analise do par {q1 , q3 }


(q1 , a) = q1
(q3 , a) = q5
qn

q0

(q1 , b) = q0
(q3 , b) = q4

Como {q1 , q5 } bem como {q0 , q4 } sao marcados, entao


{q1 , q3 } tambem deve ser marcado.Como {q1 , q3 } encabeca uma lista, o par {q0 , q5 } deve ser marcado.
Analise do par {q2 , q3 }

q1

q2

q3

q4

(q2 , a) = q4
(q3 , a) = q5

(q2 , b) = q5
(q3 , b) = q4

Como {q4 , q5 } e nao-marcado, entao {q2 , q3 } e includo


na lista encabecada por {q4 , q5 }.

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

Topicos em Computacao I

Analise do par {q4 , q5 }


(q4 , b) = q2
(q5 , b) = q3

(q4 , a) = q3
(q5 , a) = q2

Como {q2 , q3 } e nao-marcado, entao {q4 , q5 } e includo


na lista encabecada por {q2 , q3 }.

5. Exclusao dos estados inuteis um estado q e


inutil se e nao-final e a partir de q nao e
possvel atingir um estado final. Deve-se
reparar que o estado d (se includo) sempre e
inutil.

Tabela de estados resultante:

q0

q1
q2
q3
q4
q5

q1

q2

Algoritmo de Minimizac
ao

q3

q4

Algoritmo de Minimizac
ao

5. Neste exemplo, nao houve um estado inutil para ser excludo.

4. Unificacao dos estados equivalentes estados


nao marcados sao equivalentes
a equivalencia de estados e transitiva
pares de estados nao finais equivalentes
podem ser unificados como um unico estado
nao final
pares de estados finais equivalentes podem
ser unificados como um unico estado final
se algum estado equivalente e inicial, entao
o correspondente estado unificado e inicial
4. Como os pares {q2 , q3 } e {q4 , q5 } sao nao-marcados, as
seguintes unificacoes podem ser feitas:
q23 representa a unificacao dos estados nao-finais q2 e
q3 ;
q45 representa a unificacao dos estados finais q4 e q5 ;
O automato mnimo para o AFD do exemplo e:

q0
a

q1

q23

a, b a, b

q45

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

Topicos em Computacao I

Analise do par {q0 , q4 }

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

Como {q1 , q5 } e marcado, entao {q0 , q4 } tambem deve ser


marcado.

q0 q1

q0

q4 q5

q4

q1 q2

q1

q5 q0

q5

q2 q3

q2

q3 q4

q3

Analise do par {q1 , q3 }


(q1 , b) = q1
(q3 , b) = q3

(q1 , a) = q2
(q3 , a) = q4

Como {q2 , q4 } e marcado, entao {q1 , q3 } tambem deve ser


marcado.
Analise do par {q1 , q4 }

q0

q1

q2

a
a

q5

q4

q3

(q1 , b) = q1
(q4 , b) = q4

(q1 , a) = q2
(q4 , a) = q5

Como {q2 , q5 } e nao-marcado, entao {q1 , q4 } e includo na


lista encabecada por {q2 , q5 }.
Analise do par {q2 , q5 }
(q2 , b) = q2
(q5 , b) = q5

(q2 , a) = q3
(q5 , a) = q0

Como {q0 , q3 } e nao-marcado, entao {q2 , q5 } e includo na


lista encabecada por {q0 , q3 }.

O automato satisfaz as condicoes de pre-requisitos para a


minimizacao. A tabela apos a marcacao de estados diferentes e
descrita abaixo.
q1
q2
q3
q4
q5

q0

q1

Analise do par {q3 , q4 }


(q3 , b) = q3
(q4 , b) = q4

(q3 , a) = q4
(q4 , a) = q5

Como {q4 , q5 } e marcado, entao {q3 , q4 } tambem deve ser


marcado.

q2

q3

Automato mnimo:

q4

Analise do par {q0 , q1 }


(q0 , a) = q1
(q1 , a) = q2

(q0 , b) = q0
(q1 , b) = q1

Como {q1 , q2 } e marcado, entao {q0 , q1 } tambem deve ser


marcado.

q03

q14
a

Analise do par {q0 , q3 }

q25
(q0 , a) = q1
(q3 , a) = q4

(q0 , b) = q0
(q3 , b) = q3

Como {q1 , q4 } e nao-marcado, entao {q0 , q3 } e includo na


lista encabecada por {q1 , q4 }.

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

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

Como {q3 , q5 } e nao-marcado, entao {q0 , q2 } e includo na


lista encabecada por {q3 , q5 }.
Analise do par {q1 , q3 }
(q1 , a) = q4
(q3 , a) = q0

(q1 , b) = q2
(q3 , b) = q4

Analise do par {q1 , q4 }

(q1 , a) = q4
(q4 , a) = d

q3

q4

Como {q0 , q4 } e marcado, entao {q1 , q3 } tambem deve ser


marcado.

a
a

q3

Analise do par {q0 , q2 }


(q0 , a) = q1
(q2 , a) = q1

q3

q5

(q1 , b) = q2
(q4 , b) = d

Como {q2 , d} e marcado, entao {q1 , q4 } tambem deve ser


marcado.
Analise do par {q1 , q5 }

Para transformar a funcao programa em total, devemos inserir


um estado d da seguinte maneira:

q0

q1

q3

q4

q2

Analise do par {q1 , d}

q5
a,b

Temos entao a seguinte funcao programa total:


a b
q0 q1 q3
q1 q4 q2
q2 q1 q5
q3 q0 q4
q4 d d
q5 q2 q4
d d d

Vamos agora marcar os estados nao equivalentes:

Profa. Tiemi Christine Sakata

(q1 , b) = q2
(q5 , b) = q4

Como {q2 , q4 } e marcado, entao {q1 , q5 } tambem deve ser


marcado.

a
a

(q1 , a) = q4
(q5 , a) = q2

(q1 , a) = q4
(d, a) = d

a,b

(q1 , b) = q2
(d, b) = d

Como {q2 , d} e marcado, entao {q1 , qd } tambem deve ser


marcado.
Analise do par {q3 , q4 }
(q3 , a) = q0
(q4 , a) = d

(q3 , b) = q4
(q4 , b) = d

Como {q0 , d} e marcado, entao {q3 , q4 } tambem deve ser


marcado.
Analise do par {q3 , q5 }
(q3 , a) = q0
(q5 , a) = q2

(q3 , b) = q4
(q5 , b) = q4

Como {q0 , q2 } e nao-marcado, entao {q3 , q5 } e includo na


lista encabecada por {q0 , q2 }.

FACENS - Faculdade de Engenharia de Sorocaba

Analise do par {q3 , d}


(q3 , a) = q0
(d, a) = d

(q3 , b) = q4
(d, b) = d

Topicos em Computacao I

Finalmente, devemos excluir os estados inuteis, e portanto,


teremos o seguinte automato:

a
q02

Como {q0 , d} e marcado, entao {q3 , d} tambem deve ser


marcado.

q1
b

Analise do par {q4 , q5 }


(q4 , b) = d
(q5 , b) = q4

(q4 , a) = d
(q5 , a) = q2

Como {q2 , d} e marcado, entao {q4 , q5 } tambem deve ser


marcado.

q35

Analise do par {q4 , d}


(q4 , a) = d
(d, a) = d

(q4 , b) = d
(d, b) = d

Como {d, d} sao equivalentes, entao {q4 , d} nao e marcado.

Analise do par {q5 , d}


(q5 , b) = q4
(d, b) = d

(q5 , a) = q2
(d, a) = d

Como {q2 , d} e marcado, entao {q5 , d} tambem deve ser


marcado.
Unificando os estados equivalentes, temos entao o seguinte
automato:

a
q02

q1
b

q35

q4

Profa. Tiemi Christine Sakata

a,b