El algoritmo de minimización DFA original fue diseñado para máquinas Moore , guiado por su comportamiento aparentemente más observable. Pero el algoritmo presentado aquí es una reconstrucción de la minimización de DFA, ya que descubrí la evidencia histórica después del hecho.
Después de Wikipedia (con algunos cambios notacionales):
Una máquina Moore se puede definir como una tupla de 6 consiste en lo siguiente:( Q , q0 0, Σ , Π , δ, γ)
- un conjunto finito de estados Q
- un estado inicial (también llamado estado inicial) que es un elemento de Qq0 0Q
- un conjunto finito llamado alfabeto de entrada Σ
- un conjunto finito llamado alfabeto de salida Λ
- una función de transición mapeando un estado y el alfabeto de entrada al siguiente estado δ: Q × Σ → Q
- una función de salida mapeando cada estado al alfabeto de salida γ: Q → Π
A partir de esta definición, una máquina Moore es un transductor determinista de estado finito.
No tengo referencia para la minimización de los autómatas de Moore. Sin embargo, no parece demasiado difícil imaginar un algoritmo, derivado del algoritmo utilizado para autómatas deterministas de estado finito.
La idea en la minimización de DFA se basa en la caracterización de Myhill-Nerode de los idiomas regulares .
LXyzxzyzLRLxRLyxyRL
LRLLRL
qWqRL
LWqRL
Por lo tanto, la minimización del DFA en realidad consiste en fusionar estados (considerados como conjuntos de cadenas equivalentes), siempre que se demuestre que dos estados distintos contienen cadenas equivalentes.
O(n2)O(nlogn)
RTTRLRT
TxyzT(xz)=T(x)uT(yz)=T(y)vu≠vzxy
RTΣ∗
El siguiente algoritmo imita el algoritmo de Moore para la minimización de DFA.
PQSe
∀e∈Π:Se={q∈Q∣γ(q)=e}
P
S
∀a∈Σ,
∃S′∈P,∀q∈S,δ(q,a)∈S′
SSi
SiS′∈P∀q∈Si,δ(q,a)∈S′
SiSP
Cuando no quede ninguna clase que deba dividirse, las clases restantes de estados formarán los estados de la máquina mínima de Moore.
Por construcción, todos los estados en una clase tienen la misma salida que es la salida para la clase.
a∈Σ
n=|Q|s=|Σ|
nO(sn2)
No tengo ninguna referencia para esta minimización de las máquinas Moore. Posiblemente está incluido en su artículo:
Moore, Edward F (1956). "Experimentos Gedanken en máquinas secuenciales". Automata Studies , Annals of Mathematical Studies (Princeton, NJ: Princeton University Press) (34): 129-153.
Este documento es la referencia principal que presenta las Máquinas Moore . También es la referencia para el algoritmo de minimización DFA de Moore . Por lo tanto, debería ser sorprendente si la adaptación del algoritmo a la minimización de las máquinas Moore no se sugiriera al menos en ese documento. Verifiqué el documento, y la versión del algoritmo de minimización que se presenta es en realidad para máquinas Moore, no para DFA. El documento está bien escrito, pero el estilo de la época hace que sea un poco más difícil de leer. Es interesante ver que muchas de las ideas de la teoría de Myhill-Nerode de las máquinas de estados finitos ya están esbozadas en este documento.
O(snlogn)