Se sabe que el lenguaje de las palabras que contienen el mismo número de 0 y 1 no es regular, mientras que el lenguaje de las palabras que contienen el mismo número de 001 y 100 es regular ( ver aquí ).
Dadas dos palabras , ¿es decidible si el lenguaje de las palabras que contienen el mismo número de y es regular?w 1 w 2
Respuestas:
Dadas dos palabras , w 2 , ¿es decidible si el lenguaje L de las palabras que contienen el mismo número de w 1 y w 2 es regular?w1 w2 L w1 w2
Primero algunas definiciones:
podrían hacerse más concisas, y las anotaciones podrían mejorarse si se van a usar en pruebas. Este es solo un primer borrador.
Dados dos palabras y w 2 , se dice que:w1 w2
siempre ocurrecon w 2 , anotado w 1 ◃ w 2 , iffw1 w2 w1◃w2
siempre coincidecon w 2 , anotado w 1 ◃ ▹w1 w2 , si cada uno siempre ocurre con el otro,w1◃▹w2
y w 2 ocurren independientemente, anotado w 1 ▹ ◃w1 w2 , si ninguno de los dos ocurre siempre con el otro,w1▹◃w2
siempre ocurre m veces o másque w 2 , anotado w 1 ◃ m w 2 , iff para cualquier cadena s tal que s = x w 2 y con ∣ x ∣ , ∣ y ∣ | ≥ ∣ w 1 ∣ + ∣ w 2 ∣ hayotras m descomposiciones s = x i w 1 y iw1 m w2 w1◃mw2 s s=xw2y ∣x∣, ∣y∣| ≥∣w1∣+∣w2∣ m s=xiw1yi para
tal que i ≠ j implica x i ≠ x j .i∈[1,m] i≠j xi≠xj
Estas definiciones se construyen de modo que podamos ignorar lo que sucede en los extremos de la cadena donde se supone que y w 2 ocurren. Los efectos de límite al final de la cadena deben analizarse por separado, pero representan un número finito de casos (en realidad creo que olvidé uno o dos de estos sub-casos de límite en mi primer análisis a continuación, pero en realidad no importa). Las definiciones son compatibles con la superposición de ocurrencias.w1 w2
Hay 4 casos principales a considerar (ignorando la simetría entre y w 2 ):w1 w2
Ambas palabras se unen necesariamente, excepto posiblemente en los extremos de la cadena. Esto se refiere solo a pares de la forma 1 i 0 y 01 i , o 0 i 1 y 10 i . Esto es fácilmente reconocido por unautómata finitoque solo comprueba si hay eventos solitarios en ambos extremos de la cadena que se reconocerán, para asegurarse de que haya un evento solitario en ambos extremos o en ninguno de los extremos. También existe el caso degenerado cuando w 1 = w 2 : entonces el lenguaje L es obviamente regular.w1◃▹w2
1i0 01i 0i1 10i w1=w2
, pero no w 2 ◃ w 1 Una de las 2 palabras no puede aparecer sin la otra, pero lo contrario no es cierto (excepto posiblemente en los extremos de la cadena). Esto sucede cuando:w1◃w2 w2◃w1
es una subcadena de w 2 : entonces un autómata finito puede simplemente verificar que w 1 no ocurra fuera de una instancia de w 2 .w1 w2 w1 w2
y w 2 = v 1 j para alguna palabra v ∈ { 0 , 1 } ∗ , v ≠ 01 i : luego una comprobación de autómata finita como en el caso anterior de que w 1 no ocurre separado de w 2 . Sin embargo, el autómata permite contar una instancia adicional de w 1 que permitirá la aceptación si w 2w1=1i0 w2=v1j v∈{0,1}∗ v≠01i w1 w2 w1 w2 es un sufijo de la cadena. Hay otros tres casos simétricos (simetría 1-0 y simetría izquierda-derecha).
Una de las 2 palabras aparece dos veces en la otra. Eso puede ser reconocido por una automatización finita que verifica que la palabra más pequeña nunca aparece en la cadena. También es una variante un poco más compleja que combina las dos variaciones del caso 2. En este caso, el autómata verifica que la cadena más pequeña 1 i 0 nunca ocurra, excepto posiblemente como parte de v en la más grande v 1 j que viene como sufijo de la cadena (y otros 3 casos por simetría).w1◃2w2
1i0 v v1j
Las 2 palabras pueden aparecer independientemente una de la otra. Construimos una máquina secuencial-generalizada (GSM) G que la producción de una cuando se reconoce una aparición de W 1 y b al reconocer una aparición de W 2 , y se olvida de todo lo demás. El idioma L es regular solo si el idioma G ( L ) es regular. Pero G ( L ) = { w ∈ { a , b } ∗ ∣ ∣ w ∣ aw1▹◃w2
G a w1 b w2 L G(L) que está claramente libre de contexto y no es regular. Por lo tanto, L no es regular.
En realidad tenemos L = G - 1 ( G ( L ) ) . Dado que los lenguajes regulares y los lenguajes libres de contexto están cerrados bajo mapeo gsm y mapeo gsm inverso, también sabemos que L está libre de contexto.G(L)={w∈{a,b}∗∣ ∣w∣a=∣w∣b} L
L=G−1(G(L)) L
Una forma de organizar una prueba formal podría ser la siguiente. Primero construya un PDA que reconozca el lenguaje. En realidad, se puede hacer con una máquina de 1 contador, pero es más fácil tener dos símbolos de pila para evitar duplicar el control finito. Luego, para los casos en que debería ser un FA, demuestre que el contador puede estar limitado por una constante que depende solo de las dos palabras. Para los otros casos, demuestre que el contador puede alcanzar cualquier valor arbitrario. Por supuesto, el PDA debe organizarse de modo que las pruebas sean lo suficientemente fáciles de llevar.
Representar al FA como un PDA de 2 símbolos de pila es probablemente la representación más simple para él. En el caso no regular, la parte de control finito del PDA es la misma que la del GSM en el bosquejo de prueba anterior. En lugar de generar 's y b ' s como el GSM, el PDA cuenta la diferencia en número con la pila.a b
fuente