Você está na página 1de 5

29/03/2016

Linguagens Formais – Aula 6 Minimização de um AF


• AFD equivalente com menor número de
estados possíveis
• Autômato Finito mínimo é único
– a menos de isomorfismo
– diferenciando-se pela identificação dos estados
Filipe de Aguiar Geissler
Centro Universitário Lasalle
Unilasalle – Canoas/RS

Algoritmo de Minimização Definição de Estados Equivalentes


• Unificação dos estados equivalentes Seja M = (Σ, Q, δ, q0, F) um AFD qualquer
• Estados equivalentes
– Processamento de uma entrada qualquer a partir q e p de Q estados equivalentes sse, para
de estados equivalentes resulta na mesma qualquer w ϵ Σ*
condição de aceita

δ(q, w) e δ(p, w)
resultam simultaneamente em estados finais
ou não finais

1
29/03/2016

Definição de AF mínimo Regras


Seja L uma linguagem regular, o autômato • AF ser determinístico
finito mínimo é um AFD • estados alcançáveis a partir do estado inicial
Mm = (Σm, Qm, δm, q0m, Fm) • função programa total
• Caso não satisfaça, deve ser gerado um autômato
determinístico equivalente
tal que ACEITA(Mm) = L • eliminar estados não alcançáveis
para qualquer AFD M = (Σ, Q, δ, q0, F), tal que • Função programa total:
ACEITA(M) = L – Introduzir um estado não final d
– Incluir transições não previstas, tendo d como estado
#Q ≥ #Qm destino
– Incluir um ciclo em d para todos os símbolos do
alfabeto

Algoritmo de Minimização Definição do Algoritmo


• Identificação dos estados equivalentes por Seja M = (Σ, Q, δ, q0, F) AFD que satisfaz as
exclusão regras:
• Tabela de estados Passo 1: Construção da tabela: relaciona
– Marcar estados não equivalentes estados distintos
– Entradas não marcadas: estados equivalentes

2
29/03/2016

Passo 2: Marcação dos estados trivialmente Passo 3: Marcação dos estados não equivalentes
não equivalentes
Para {qu, qv} não marcado e a ϵ Σ, suponha que:
- pares do tipo
δ(qu, a) = pu e δ(qv, a) = pv
{estado final, estado não final – pu = pv
• qu é equivalente a qv para a: não marcar
– pu ≠ pv e {pu, pv} não está marcado
• {qu, qv} incluído na lista encabeçada por {pu, pv}
– pu ≠ pv e {pu, pv} está marcado
• {qu, qv} não é equivalente: marcar
• se {qu, qv} encabeça uma lista: marcar todos os pares da
lista (e, recursivamente, se algum par da lista encabeça
outra lista)

Passo 4: Unificação dos estados equivalentes Passo 5: Exclusão dos estados inúteis
Pares não marcados são equivalentes
• equivalência de estados é transitiva • q é um estado inútil
• pares de estados não finais equivalentes – não final
– um único estado não final – a partir de q não é possível atingir um estado final
• pares de estados finais equivalentes – d (se incluído) é inútil
– um único estado final • Transições com origem ou destino em estado
• se algum dos estados equivalentes é inicial inútil
– estado unificado é inicial
– excluir
• transições com origem (destino) em um
estado equivalente
– origem (destino) no estado unificado

3
29/03/2016

Exemplo de Minimização Passo 1 e Passo 2


• Construção da tabela
• Marcação dos pares
{estado final, estado não final}

{ q1, q2 }
Passo 3 δ(q1, a) = q1 δ(q1, b) = q0
δ(q2, a) = q4 δ(q2, b) = q5
• Análise dos pares de estado não marcados
{q0, q4}
- { q1, q4 } é marcado: marca { q1, q2 }
δ(q0, a) = q2 e δ(q0, b) = q1 - { q1, q2 } encabeça uma lista: marca { q0, q4 }
δ(q4, a) = q3 e δ(q4, b) = q2
- {q1, q2} e {q2, q3} são não marcados {q1, q3}
• inclui {q0, q4} nas listas de {q1,q2} e {q2,q3}
δ(q1, a) = q1 δ(q1, b) = q0
{q0, q5}
δ(q0, a) = q2 e δ(q0, b) = q1 δ(q3, a) = q5 δ(q3, b) = q4
δ(q5, a) = q2 e δ(q5, b) = q3 - { q1, q5 } e { q0, q4 } são marcados: marca { q1, q3 }
- {q1, q3} é não marcado (e {q2, q2} é trivialmente - { q1, q3 } encabeça uma lista: marca { q0, q5 }
equivalente)
* Inclui {q0,q5} na lista de {q1, q3}

4
29/03/2016

• { q2, q3 }
δ(q2, a) = q4 δ(q2, b) = q5
δ(q3, a) = q5 δ(q3, b) = q4
- { q4, q5 } é não marcado: inclui { q2, q3 } na
lista de { q4, q5 }
{ q4, q5 }
δ(q4, a) = q3 δ(q4, b) = q2
δ(q5, a) = q2 δ(q5, b) = q3
- { q2, q3 } é não marcado: inclui { q4, q5 } na
lista de { q2, q3 }

Passo 4: {q2, q3} e {q4, q5} são não marcados Teorema: autômato finito mínimo
– q23: unificação dos estados q2 e q3
– q45: unificação dos estados finais q4 e q5

O autômato construído usando o algoritmo de


minimização
– AFD com menor número de estados que aceita a
linguagem