Deje que el lenguaje sea regular.
Una factorización de es un par máximo ( X , Y ) de conjuntos de palabras con
- ,
donde | x ∈ X , y ∈ Y } .
es máximo si para cada par ( X ′ , Y ′ ) ≠ ( X , Y ) con X ′ ⋅ Y ′ ⊆ L ya sea X ⊈ X ′ o Y ⊈ Y ′ .
¿Existe un procedimiento simple para descubrir qué pares son máximos?
Ejemplo:
Deje . Se calcula el conjunto F = { u , v , w } :
donde .
Otro ejemplo:
y L = Σ * un Σ Factorización establece F = { q , r , s , t } con
Respuestas:
Como se sugiere en los comentarios a la pregunta, intentaré dar una respuesta (lamentablemente parcial) a la pregunta, al menos en la medida en que haya entendido el problema por mí mismo (esto implica que es posible que encuentre errores, y si encuentra una manera de explicar de manera más breve o clara uno de los siguientes puntos, siéntase libre de editar la respuesta en consecuencia):
Primero, uno debe notar que en realidad no tenemos que calcular el autómata universal de un idioma si queremos calcular las factorizaciones de un idioma.
Del artículo mencionado en mi comentario ¹, hay una correspondencia 1-1 entre los factores izquierdo y derecho de un idioma regular, es decir, dado un factor izquierdo del idioma, el factor derecho correspondiente se determina de manera única y viceversa. Más precisamente, tenemos lo siguiente:
Deje que ser una factorización de L . Entonces Y = ⋂ x ∈ X x - 1 L , X = ⋂ y ∈ Y L y - 1 , es decir, cualquier factor izquierdo es una intersección de los cocientes derechos, y cualquier factor derecho es una intersección de los cocientes izquierdos. A la inversa, cualquier intersección de los cocientes izquierdos de L es un factor derecha de L , y cualquier intersección de cocientes adecuados de L es un factor izquierda de L .(X,Y) L
Tenga en cuenta que para un lenguaje normal, solo hay un conjunto finito de cocientes izquierdo y derecho y, por lo tanto, el problema se reduce a calcular los cocientes izquierdo y derecho de un idioma, y luego calcular su cierre estable , es decir, un mínimo superconjunto de los cocientes que se cierra bajo intersección. Estos son, precisamente, a continuación, los factores de la derecha y la izquierda factores, y luego por lo general es fácil ver por qué pares son subconjuntos de L .∩ L
Ejemplo
Para ilustrar los puntos anteriores, considere el primer ejemplo en la pregunta (de la cual también creo que es incorrecto en el documento):
Deje . Ahora, los cocientes izquierdos de L son los conjuntos x - 1 L para x ∈ Σ * , es decir, esas palabras u en Σ * que puede ser prefijado con x , es decir, x u ∈ L . ¿Cuándo es y - 1 L = x - 1 L para distintas x , y ? Este es el caso si y solo si xL=Σ∗abΣ∗ L x−1L x∈Σ∗ u Σ∗ x xu∈L y−1L=x−1L x,y x y puede ser aumentada a las palabras en L con exactamente los mismos sufijos. Esto significa que, para ponerlo en términos más familiares, son equivalentes a Nerode, y los sufijos necesarios para agregar palabras a una clase de Nerode son precisamente los cocientes izquierdos respectivos.y L
Para , vemos que nuestras clases de equivalencia de Nerode sonL
Se pueden aumentar con los siguientes conjuntos (es decir, estos son los cocientes izquierdos de las palabras en las clases respectivas):
Ahora, para los factores izquierdosPi , we use the equations of the beginning of this answer:
Summary
To summarize (as you were asking for a simple procedure):
fuente