Muitas vezes é possível ter mais de um autômato reconhecendo o mesmo conjunto de sentenças, em geral através da presença de estados redundantes. O procedimento apresentado nesta seção permite detectar tais situações de redundância, reduzindo o número de estados do autômato ao mínimo possível.
O procedimento de minimização de estados de um autômato inicia-se pela criação de uma partição inicial do conjunto de estados contendo dois subconjuntos, um com todos os estados finais, , e outro contendo os estados não-finais, .
O procedimento prossegue com o refinamento da partição corrente para a criação de uma nova partição . Para tanto, analisa-se cada um dos conjuntos que compõem buscando a criação de novas partições que sejam equivalentes sob transições. Partindo de cada grupo de estados em , um novo subgrupo conterá dois estados e se e somente se, para todos os símbolos do alfabeto de entrada, e tenham transições para um mesmo grupo de .
A partir desse processo de refinamento dos grupos de , o conjunto dos subgrupos resultantes forma uma nova partição . O procedimento deve ser repetido até que a nova partição gerada seja igual à partição corrente, situação que indica que novos refinamentos não são mais possíveis.
Para construir o autômato com o número mínimo de estados, associa-se a cada subgrupo da partição final atingida por esse procedimento um estado da nova máquina . Eventualmente, o procedimento pode gerar ``estados mortos'', que não são estados finais e contêm transição apenas para si próprios, ou estados não-alcançáveis a partir do estado inicial. Tais estados podem ser eliminados do autômato resultante.
Aplicando esse procedimento ao autômato da Figura 3.5, tem-se que a partição inicial é
A segunda partição, , é irredutível e não será mais analisada -- este será o estado final do autômato minimizado. Para aplicar o procedimento de refinamento à primeira partição, , deve-se analisar para cada estado qual o grupo resultante pela transição para cada um dos dois símbolos do alfabeto, e :
a | ||||
b |
Observa-se que o grupo pode ser particionado em dois novos grupos, e . Assim, a nova partição a ser analisada é
Novamente há um grupo que não pode ser mais reduzido, mas o grupo precisa ainda ser analisado. Aplicando novamente o procedimento de refinamento considerando a nova partição , o resultado para o refinamento do grupo é
a | |||
b |
Nesse grupo, e permanecem com comportamento equivalente, portanto fazem parte do mesmo grupo, ; porém, faz parte de um novo grupo . Assim, a partição resultante é
Como , o grupo (o único que ainda pode ser refinado) precisa ser analisado. A análise dos estados desse grupo resulta em
a | ||
b |
Como não há novo particionamento, o procedimento de refinamento está concluído. O resultado obtido é que o estado pode ser incorporado ao estado , resultando no autômato equivalente com número mínimo de estados. Esse autômato é apresentado na Figura 3.6.