La comprobación del teorema de Myhill y Nerode nos proporciona un
hecho muy importante: el autómata basado en las clases de equivalencia
es el autómata mínimo dentro de todos los posibles autómatas
finitos deterministas y completos que aceptan el mismo lenguaje,
porque un tal autómata definiría un refinamiento de
, es decir,
y el
AFD de las clases de equivalencia
representa las mismas clases
, entonces
.
Una pregunta surge: ¿Cómo sabemos si un AFD ya es mínimo?
Pues, no es mínimo, si
En tal caso, podemos unir los dos estados en un único estado.
Basta con `realizar las pruebas' con todas las palabras con
porque no hace falta visitar un estado dos veces.
Con dicho argumento describimos el algoritmo de minimización (sin comprobación) a continuación.
Decimos que dos estados y
son distinguibles (o no-equivalentes)
si existe una palabra
que nos lleva desde
a un estado final
pero no desde
, o al revés, es decir:
El algoritmo calculará la relación de distinguibilidad (o no-equivalencia) entre los estados y contiene 5 pasos.
para cada parejano marcada y para cada símbolo
siestá marcada, también se marca
.
Ejemplo: partimos del siguiente AFD completo:
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
- | ||||
![]() |
- | - | |||
![]() |
- | - | - | ||
![]() |
- | - | - | - | |
![]() |
- | - | - | - | - |
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
- | 1 | |||
![]() |
- | - | 1 | ||
![]() |
- | - | - | 1 | |
![]() |
- | - | - | - | 1 |
![]() |
- | - | - | - | - |
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
- | 2 | 3 | 1 | |
![]() |
- | - | 4 | 1 | |
![]() |
- | - | - | 5 | 1 |
![]() |
- | - | - | - | 1 |
![]() |
- | - | - | - | - |
Observa que en la construccón del autómata podemos comprobar de cierta manera la corrección de la tabla: cuando recorremos todas las aristas del autómata original, tenemos que o bien añadir o bien encontrar su homóloga en el autómata en construcción.
El paso 4 se puede implementar más eficiente. En vez de mirar tantas veces las parejas no marcados, se mantiene listas de espera que se marcan recursivamente. Observamos:
Con está mejora el algoritmo tiene complejidad
.