Encontrar la factorización máxima de los idiomas regulares


13

Deje que el lenguaje sea ​​regular.L⊆Σ∗

Una factorización de es un par máximo ( X , Y ) de conjuntos de palabras conL(X,Y)

  • X⋅Y⊆L
  • ,X≠∅≠Y

donde | x ∈ X , y ∈ Y } .X⋅Y={xyx∈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 ′ .(X,Y)(X′,Y′)≠(X,Y)X′⋅Y′⊆LX⊈X′Y⊈Y′

¿Existe un procedimiento simple para descubrir qué pares son máximos?

Ejemplo:

Deje . Se calcula el conjunto F = { u , v , w } :L=Σ∗abΣ∗F={u,v,w}

  • u=(Σ∗,Σ∗abΣ∗)

  • v=(Σ∗aΣ∗,Σ∗bΣ∗)

  • w=(Σ∗abΣ∗,Σ∗)

donde .Σ={a,b}

Otro ejemplo:

y L = Σ * un Σ Factorización establece F = { q , r , s , t } conΣ={a,b}L=Σ∗aΣF={q,r,s,t}

  • q=(Σ∗,L)

  • r=(Σ∗a,Σ+L)

  • s=(Σ∗aa,ϵ+Σ+L)

  • t=(L,ϵ+L)


44
Recomiendo leer el siguiente artículo (especialmente la subsección 4.1) de Jacques Sakarovitch: perso.telecom-paristech.fr/~jsaka/PUB/Files/TUA.pdf
— Cornelius Brand

1
Me pregunto si es posible que desee ser más específico sobre el problema, es decir, la última oración de su pregunta. ¿Nos dan y queremos probar si ( X , Y ) es máximo? ¿Nuestra tarea es enumerar todos ( X , Y ) que son máximos? Si es lo último, ¿está claro que esta lista es finita o de tamaño polinómico? Probablemente no tenga sentido pedir un algoritmo para enumerar todas las posibilidades si hay exponencialmente muchas de ellas. Además, ¿desea especificar cómo se representa el lenguaje L cuando se nos presenta y cómo se representa? (p. ej., DFA, NFA, regexp)X,Y(X,Y)(X,Y)LX,Y
— DW

2
No entiendo tus ejemplos. ¿Se supone que son todos pares máximos? v no parece ser válido ...u,v,wv
— Raphael

1
El ejemplo está tomado del artículo mencionado anteriormente. Se supone que son pares máximos. Asimismo, no entiendo como v se calcula ya que no parece ser necesariamente en L . Publicaré otro ejemplo. u,v,wvL
— Laura

1
@Raphael, me parece que es válido. Dejar X = Σ ∗ a Σ ∗ , Y = Σ ∗ b Σ ∗ , ( X , Y ) es una factorización, ya que X ⋅ Y = L (considere cualquier cadena que contenga una a , luego cualquier secuencia de a 'sy / o b 's, luego eventualmente a b : esta cadena debe tener algún punto donde aparezca la primera b , por lo que es un punto donde contiene unvX=Σ∗aΣ∗Y=Σ∗bΣ∗(X,Y)X⋅Y=Laabbbab ) Yo no tengo una prueba de que es máxima, pero no puedo encontrar ninguna conjuntos más grandes , que son una factorización de L . X′,Y′L
— DW

Respuestas:


8

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

Y=⋂x∈Xx−1L,X=⋂y∈YLy−1,
LLLL

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Σ∗Lx−1Lx∈Σ∗uΣ∗xxu∈Ly−1L=x−1Lx,yxy 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.yL

Para , vemos que nuestras clases de equivalencia de Nerode sonL

  • , el conjunto de palabras que no contiene una b como factor y que termina con a , N1aba
  • , el conjunto de palabras que termina con b y no contiene una b como factor, y N2bab
  • , el conjunto de palabras que contiene una b como factor, es decir, N 3 = LN3abN3=L

Se pueden aumentar con los siguientes conjuntos (es decir, estos son los cocientes izquierdos de las palabras en las clases respectivas):

  • para x en N 1 consta de todas las palabras en L (cualquier palabra se puede aumentar con una palabra que contenga a b como factor y, por lo tanto, se convierte en una palabra en L ) y b Σ ∗ , es decir S 1 = L ∪ b Σ ∗S1=x−1LxN1LabLbΣ∗S1=L∪bΣ∗
  • para x en N 2 es el lenguaje en sí, es decir, S 2 = L yS2=x−1LxN2S2=L
  • para x en N 3 es obviamente Σ ∗ . Es decir, hemos encontrado tres factores de la derecha de L . Como S 2 ⊂ S 1 ⊂ S 3 , sucierre estable ∩ es trivial S 1 , S 2 , S 3 , y esos son precisamente los factores correctos.S3=x−1LxN3Σ∗LS2⊂S1⊂S3∩S1,S2,S3

FL(P1,S1),(P2,S2),(P3,S3).

Ahora, para los factores izquierdos Pi, we use the equations of the beginning of this answer:

Pi=⋂x∈SiLx−1
.

P1L∪Σ∗aP2Σ∗P3, we obtain L. You can see this by inspection (the most popular excuse for being too lazy to state a formal proof) or by explicitly computing the right quotients (which is fairly analogous, although not completely, to computing the left quotients). Our factorizations are thus given by FL=u,v,w where

  • u=(P1,S1)=(Σ∗abΣ∗∪Σ∗a,Σ∗abΣ∗∪bΣ∗)
  • v=(P2,S2)=(Σ∗,Σ∗abΣ∗) and
  • w=(P3,S3)=(Σ∗abΣ∗,Σ∗)

Summary

To summarize (as you were asking for a simple procedure):

  • For computing the factorizations of a language L, first compute the left quotients of L.
  • You can do so, in the language of the paper, by constructing a minimal DFA A for L and then for each state q in A (corresponding, as a Nerode-equivalence class, to a left quotient) compute the future of q in A, thus obtaining one left quotient of the language for each state.
  • The collection of left quotients obtained in this way yields, in general, a subset SR of the right factors.
  • Compute then the ∩-stable closure of SR, which can be done in practice by forming the intersection of any subset of SR and adding any subset obtained in this way to SR.
  • The set SR together with all the intersections from the previous step is then the set of right factors of L.
  • In order to obtain the left factors, we can compute the right quotients of L.
  • These are sets of the form Ly−1, for y∈Σ∗. Now, these are again only finitely many, and for x≠y, we have Ly−1=Lx−1 if and only if for all u∈Σ∗, ux∈L⇔uy∈L, that is they can be prefixed to words in the language with precisely the same set of strings.
  • To compute Lx−1, consider those states q in A such that x is contained in the future of q. The union of the pasts of those states constitute one right quotient. Find all these quotients.
  • You know you are done when you have found as many left factors as you have right factors.
  • Find those pairs of left and right factors X,Y such that X⋅Y⊆L. This is FL.

  1. The Universal Automaton by Lombardy and Sakarovitch (in Texts in Logic and Games, Vol 2: Logic and Automata: History and Perspectives, 2007)

3
¡Agradable! Tengamos en cuenta queUN⊆si is decidable for regular languages and that these factors X, Y end up being regular due to closure properties. Hence we can not only effectively compute the last bullet in the summary, but we can also filter out the maximal pairs.
— Raphael
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.