Estoy interesado en una ligera generalización de DFA. Como de costumbre, tenemos un conjunto de estados , un alfabeto finito , una acción definida en por , y un estado inicial ; pero en lugar del conjunto de terminales de costumbre, tomamos una familia de subconjuntos de . Un multi-idioma de DFA es entonces la tupla
y es reconocido por iff para algunos . Defina como la familia de idiomas reconocida por M, si lo desea.
Bien, ahora para mi pregunta: dada una familia de idiomas regulares , quiero encontrar el mínimo DFA varios idiomas como se describió anteriormente, de modo que para todos , es decir, tal que se minimiza sobre todas estas máquinas. Mi pregunta es, ¿hay alguna forma eficiente de hacer esto, tal vez análoga a la teoría estándar de minimización de DFA? Por el contrario, ¿hay alguna evidencia de que este problema pueda ser difícil?
fuente
Respuestas:
Detalles . El caso corresponde a la construcción estándar y el caso general no es muy diferente en espíritu. Dado un lenguaje y una palabra , dejemos . Defina una relación de equivalencia en estableciendo Since los son regulares, esta congruencia tiene un índice finito. Además, es fácil ver que cada está saturado por y que para cada , implicaL u u - 1 L = { v ∈ A ∗ ∣ u v ∈ L } ∼ A ∗ u ∼ vn=1 L u u−1L={v∈A∗∣uv∈L} ∼ A∗ L i L i ∼ a ∈ A u ∼ v u a ∼ v a 1 [ u ] ∼ u A L = ( Q , [ 1 ] , ⋅ , ( F i ) 1 ⩽ i ⩽ n )
Por construcción, si y solo si y, por lo tanto, acepta la familia . Queda por demostrar que es mínimo. En realidad, es mínimo en un sentido algebraico fuerte (lo que implica que tiene el número mínimo de estados). Sea y ser dos multi-autómatas. Un morfismo es un mapa dejetivo de a tal que[1]⋅u∈Fi u∈Li AL L AL A=(Q,q−,⋅,(Fi)1⩽i⩽n) A′=(Q′,q′−,⋅,(F′i)1⩽i⩽n) f:A→A′ Q Q′
Entonces, para cualquier multi-autómata determinista accesible acepte , hay un morfismo de a . Para probar esto, primero se verifica que si , entonces . Ahora se define por donde es cualquier palabra tal que . Entonces se puede demostrar que satisface las tres propiedades requeridas.L A A L q - ⋅ u 1 = q - ⋅ u 2 = q u 1 ∼ u 2 f f ( q ) = [ u ] u q - ⋅ u = q fA L A AL q−⋅u1=q−⋅u2=q u1∼u2 f f(q)=[u] u q−⋅u=q f
El final es un poco incompleto, avíseme si necesita más detalles.
fuente