Você está na página 1de 6

5.

Reduo de estados de um autmato finito

Definio 07:
Um autmato mnimo de uma Linguagem Regular L um Autmato Finito Determinstico
M = (Q, , , q0, F) tal que L = L(M) e que, para qualquer outro Autmato Finito Determinstico
M = (Q, , , q0, F) tal que L = L(M), tem-se que #Q >= #Q.

Um autmato Finito a ser minimizado deve satisfazer aos seguintes pr-requisitos:


1. Deve ser Determinstico (AFD)
2. No pode ter estados inacessveis (no atingveis a partir do estado inicial)
3. A funo programa deve ser total (a partir de qualquer estado so previstas transies para todos os
smbolos do alfabeto)
Caso o autmato no satisfaa algum dos pr-requisitos, necessrio gerar um autmato equivalente:
1. gerar um AFD equivalente
2. eliminar os estados inacessveis e suas correspondentes transies
3. para transformar a funo transio em total, suficiente introduzir um novo estado no-final d e
incluir as transies no previstas, tendo d como estado destino. Por fim, incluir um ciclo em d
para todos os smbolos do alfabeto.

Algoritmo de minimizao
Suponha um AFD M = (Q, , , q0, F) que satisfaz aos pr-requisitos de minimizao. Os passos do
algoritmo de minimizao so os seguintes:
1. TABELA. Construir uma tabela relacionando os estados distintos, onde cada par de estados ocorre
somente uma vez.
2. MARCAO DOS ESTADOS TRIVIALMENTE NO EQUIVALENTES. Marcar todos os
pares do tipo {estado final, estado no-final}, pois obviamente, estados finais no so equivalentes
a no-finais.
3. MARCAO DOS ESTADOS NO EQUIVALENTES. Para cada par {qu, qv} no marcado e
para smbolo a
, suponha que (qu, a) = pu e (qv, a) = pv e:
a. Se pu = pv, ento qu equivalente a qv para o smbolo a e no deve ser marcado;
b. Se pu pv e o par {pu ,pv} no esto marcados, ento {qu ,qv} includo em uma lista a
partir de {pu ,pv} para posterior anlise;
c. Se pu pv e o par {pu ,pv} esto marcados, ento:
{qu ,qv} no equivalente e deve ser marcado
se {qu ,qv} encabea uma lista de pares, ento marcar todos pares da lista
(recursivamente)
_______________________________________________________________________________________________________________
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 02

- 14 -

4. UNIFICAO DOS ESTADOS EQUIVALENTES. Os estados dos pares no marcados so


equivalentes e podem ser unificados como segue:
a. A equivalncia de estados transitiva;
b. pares de estados no finais equivalentes podem ser unificados como um nico estado no
final;
c. Pares de estados finais equivalentes podem ser unificados como um nico estado final;
d. Se algum dos estados equivalentes inicial, ento correspondente estado unificado inicial
5. EXCLUSO DOS ESTADOS INTEIS. Por fim, os estados chamados inteis devem ser
excludos. Um estado q intil se no final e a partir de q no possvel atingir um esto final.
Deve-se reparar que o estado d (se includo) sempre intil.
Exemplo 11:
Considere um AFD como segue:
M = {{q0, q1, q2, q3, q4, q5}, {a,b}, , q0, {q0, q4, q5}}
(q0, a) = q2
(q1, a) = q1
(q2, a) = q4
(q0, b) = q1
(q1, b) = q0
(q2, b) = q5
(q4, a) = q3
(q4, b) = q2
(q5, a) = q2

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

Percebe-se que os pr-requisitos (1, 2 e 3) so satisfeitos. Ento se pode fazer a minimizao.


Para construir um AFM tem-se:
PASSO 1. TABELA
Pode-se montar a tabela em qualquer formato, porm deve-se ater ao fato de combinar todos os pares.
Veja algumas situaes:
Opo 01
q0
q1
q2
q3
q4
q5
Opo 03
q5
q4
q3
q2
q1
q0

q0

q0

q1

q1

q2

q2

q3

q3

q4

q4

q5

q5

Opo 02
q0
q1
q2
q3
q4
q5
Opo 04
q5
q4
q3
q2
q1
q0

q0

q1

q2

q3

q4

q5

q0

q1

q2

q3

q4

q5

Nesta apostila iremos adotar a Opo 01

_______________________________________________________________________________________________________________
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 02

- 15 -

PASSO 2. MARCAO DOS ESTADOS TRIVIALMENTE NO EQUIVALENTES.


Marcar todos os pares do tipo {estado final, estado no-final}, ou seja,
Estados finais: {q0, q4, q5}
Estados no finais: {q1, q2, q3}
Ento, devem ser marcados, na tabela, os pares:
{q0, q1}, {q0, q2}, {q0, q3},
{q4, q1}, {q4, q2}, {q4, q3},
{q5, q1}, {q5, q2}, {q5, q3}
q0
q1
q2
q3
q4
q5

X
X
X
q0

X
X
q1

X
X
q2

X
X
q3

q4

q5

PASSO 3. MARCAO DOS ESTADOS NO EQUIVALENTES


Para isso, percorrem-se todos os pares no marcados na tabela, ou seja,
{q0, q4}, {q0, q5}, {q1, q2}, {q1, q3}, {q3, q2}, {q5, q4}
e verifica se so ou no equivalentes.
Para o par: {q0, q4}
(q0, a) = q2
(q4, a) = q3
(q0, b) = q1
(q4, b) = q2

forma o par {q2, q3}, q2 q3 e o par no est marcado(3.b) aguarde na lista


forma o par {q1, q2}, q1 q2 e o par no est marcado(3.b) aguarde na lista

Para o par: {q0, q5}


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

forma o par {q2, q2}, q2 = q2 e o par descartado (3.a)


forma o par {q1, q3}, q1 q3 e o par no est marcado(3.b) aguarde na lista

Para o par: {q1, q2}


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

forma o par {q1, q4}, q1


....

q4 e o par est marcado (3.a) marca {q1, q2}

Como vai marcar {q1, q2} e o par {q0, q4} estava esperando que {q1, q2} fosse marcado, ento sero
marcados os dois pares: {q1, q2} e {q0, q4}.
q0
q1
q2
q3
q4
q5
Para o par: {q1, q3}
(q1, a) = q1
(q3, a) = q5
(q1, b) = q0
(q3, b) = q4

X
X
X
X
q0

X
X
X
q1

X
X
q2

forma o par {q1, q5}, q1


....

X
X
q3

q4

q5

q5 e o par est marcado (3.a) marca {q1, q3}

_______________________________________________________________________________________________________________
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 02

- 16 -

Como vai marcar {q1, q3} e o par {q0, q5} estava esperando que {q1, q3} fosse marcado, ento sero
marcados os dois pares: {q1, q3} e {q0, q5}.
q0
q1
q2
q3
q4
q5

X
X
X
X
X
q0

X
X
X
X
q1

X
X
q2

X
X
q3

q4

q5

Para o par: {q3, q2}


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

forma o par {q4, q5}, q4 q5 e o par no est marcado(3.b) aguarde na lista


forma o par {q5, q4}, q5 q4 e o par no est marcado(3.b) aguarde na lista

Para o par: {q5, q4}


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

forma o par {q2, q3}, q2 q3 e o par no est marcado(3.b) aguarde na lista


forma o par {q3, q2}, q3 q2 e o par no est marcado(3.b) aguarde na lista

PASSO 4. UNIFICAO DOS ESTADOS EQUIVALENTES


Foram verificados todos os pares e os pares {q3, q2} e {q5, q4} ficaram ser serem marcados. Portanto:
(1) como {q3, q2} no foi marcado, ento q3 equivalente a q2. Cria-se o estado q23 para unific-los.
(2) como {q5, q4} no foi marcado, ento q5 equivalente a q4. Cria-se o estado q45 para unific-los.
PASSO 5. EXCLUSO DOS ESTADOS INTEIS
Sero excludos os estados: q2 , q3, q4, q5
Ento:
M = {{q0, q1, q23, q45}, {a,b}, , q0, {q0, q45}}
(q0, a) = q23
(q1, a) = q1
(q23, a) = q45
(q0, b) = q1
(q1, b) = q0
(q23, b) = q45

(q45, a) = q23
(q45, b) = q23

Exemplo 12:
Considere um AFD como segue:
M = {{q0, q1, q2, q3, q4}, {0,1}, , q0, {q4}}
(q0, 0) = q1
(q1, 0) = q2
(q2, 0) = q1
(q0, 1) = q3
(q1, 1) = q4
(q2, 1) = q4
(q3, 0) = q2
(q4, 0) = q4
(q3, 1) = q4
(q4, 1) = q4
_______________________________________________________________________________________________________________
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 02

- 17 -

PASSO 1. TABELA

q0
q1
q2
q3
q4

q0

q1

q2

q3

q4

PASSO 2. MARCAO DOS ESTADOS TRIVIALMENTE NO EQUIVALENTES.


Marcar todos os pares do tipo {estado final, estado no-final}, ou seja,
Estados finais: q4
Estados no finais: {q0, q1, q2, q3}
Ento deve marcar na tabela os pares:
{q4, q0}, {q4, q1}, {q4, q2}, {q4, q3}
q0
q1
q2
q3
q4
X
X
X
X
q0
q1
q2
q3
q4
PASSO 3. MARCAO DOS ESTADOS NO EQUIVALENTES
Para isso deve percorrer todos os pares no marcados na tabela, ou seja,
{q0, q1}, {q0, q2}, {q0, q3}, {q1, q2}, {q1, q3}, {q2, q3}
e verificar se so no equivalentes.
O par: {q0, q1}
(q0, 0) = q1
(q1, 0) = q2
(q0, 1) = q3
(q1, 1) = q4

forma o par {q1, q2}, q1


forma o par {q3, q4}, q3
q0
q1
q2
q3
q4

O par: {q0, q2}


(q0, 0) = q1
(q2, 0) = q1
(q0, 1) = q3
(q2, 1) = q4

q2 e o par no est marcado(3.b) aguarde na lista


q4 e o par est marcado (3.a) marcar {q0, q1}

X
X
q0

X
q1

X
q2

X
q3

q4

forma o par {q1, q1}, q1 = q1 e o par descartado (3.a)


forma o par {q3, q4}, q3 q4 e o par est marcado (3.a) marcar {q0, q2}
q0
q1
q2
q3
q4

X
X
X
q0

X
q1

X
q2

X
q3

q4

_______________________________________________________________________________________________________________
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 02

- 18 -

O par: {q0, q3}


(q0, 0) = q1
(q3, 0) = q2
(q0, 1) = q3
(q3, 1) = q4

forma o par {q1, q2}, q1


forma o par {q3, q4}, q3
q0
q1
q2
q3
q4

X
X
X
X
q0

X
q1

q2 e o par no est marcado(3.b) aguarde na lista


q4 e o par est marcado (3.a) marcar {q0, q3}

X
q2

X
q3

q4

O par: {q1, q2}


(q1, 0) = q2
(q2, 0) = q1
(q1, 1) = q4
(q2, 1) = q4

forma o par {q2, q1}, q2 q1 e o par no est marcado(3.b) aguarde na lista


forma o par {q4, q4}, q4 = q4 e o par descartado (3.a)

O par: {q1, q3}


(q1, 0) = q2
(q3, 0) = q2
(q1, 1) = q4
(q3, 1) = q4

forma o par {q2, q2}, q2 = q2 e o par descartado (3.a)


forma o par {q4, q4}, q4 = q4 e o par descartado (3.a)

O par: {q2, q3}


(q2, 0) = q1
(q3, 0) = q2
(q2, 1) = q4
(q3, 1) = q4

forma o par {q1, q2}, q1 q2 e o par no est marcado(3.b) aguarde na lista


forma o par {q4, q4}, q4 = q4 e o par descartado (3.a)

PASSO 4. UNIFICAO DOS ESTADOS EQUIVALENTES


Foram verificados todos os pares e os pares {q3, q2} e {q1, q2} e {q1, q3} ficaram ser serem marcados.
Portanto:
(1) como {q3, q2} no foi marcado, ento q3 equivalente a q2.
(2) como {q1, q2} no foi marcado, ento q1 equivalente a q2.
(3) como {q1, q3} no foi marcado, ento q1 equivalente a q3.
Ento q1 equivalente a q2 que equivalente a q3. Cria-se o estado q123 para unific-los.
PASSO 5. EXCLUSO DOS ESTADOS INTEIS
Sero excludos os estados: q1, q2 , q3
Portanto:
M = {{q0, q123, q4}, {0,1}, , q0, {q4}}
(q0, 0) = q123
(q123, 0) = q123
(q0, 1) = q123
(q123, 1) = q4

(q4, 0) = q4
(q4, 1) = q4

_______________________________________________________________________________________________________________
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 02

- 19 -

Você também pode gostar