Es el complemento de {www | ...} sin contexto?


12

Es bien sabido que el complemento de tiene contexto. Pero, ¿qué pasa con el complemento de ?{wwwΣ}{wwwwΣ}


1
He descubierto que este es el Teorema 4 en P. Dömösi, S. Horváth, M. Ito, L. Kászonyi, M. Katsura: lenguajes formales que consisten en palabras primitivas. link.springer.com/chapter/10.1007/3-540-57163-9_15
domotorp

Respuestas:


11

Todavía CFL, creo, con una adaptación de la prueba clásica. Aquí hay un boceto.

Considere L={xyz:|x|=|y|=|z|(xyyz)} , que es el complemento de {www} , con las palabras de longitud no 0 mod 3 eliminadas.

Deje L={uv:|u|3|v|30u2|u|/3v|v|/3} . Claramente, L es CFL, ya que puede adivinar una posición p y considerar que u termina p/2 después de eso. Mostramos que L=L .

  • LL : Letw=xyzL . Suponga que hay unap tal quexpyp . Luego escribau para los3p/2 primeros caracteres dew , yv para el resto. Naturalmente,u2|u|/3=xp . Ahora que esv|v|/3 ? Primero:

|v|/3=(|w|3p/2)/3=|w|/3p/2.

Por lo tanto, en w , esta es la posición:

|u|+|v|/3=3p/2+|w|/3p/2=|w|/3+p,
o, en otras palabras, posicionar p en y . Esto muestra que u2|u|/3=xpyp=v|v|/3 .

Si ypzp , entonces que u sea el primero 32(|w|/3+p)caracteres dew, de modo queu2|u|/3esyp; ves el resto dew. Entonces:

|u|+|v|/3=2|w|/3+p
tanto,v|v|/3=zp.

  • LL : Revertimos el proceso anterior. Seaw=uvL . Escribep=2|u|/3 . Entonces:
    p+|w|/3=2|u|/3+|uv|/3=|u|+|v|/3.
    Asíwp=u2|u|/3v|v|/3=wp+|w|/3 , ywL (ya que siw tiene la formaxxx , debe contener quewp=wp+|w|/3 para todop ).

2
¡Guau, increíble! No pretendo haber seguido todos los detalles de su argumento, como si no entendiera lo que quiere decir con la última línea ('Para el último bit'), o por qué no separa el caso cuando , pero su solución funciona eventualmente. Resumiría el truco principal como 3 a + 3 b = 2 a + ( b - a ) + 2 a + 2 b . El truco similar también funciona para el complemento de cualquier L r = { w r|w|/3<p/23a+3b=2a+(ba)+2a+2b . Me pregunto si L = { x y z : | x | = | y | = | z | ( x y ) } no tiene contexto o no. Lr={wr}L={xyz:|x|=|y|=|z|(xy)}
domotorp

1
@domotorp: ¡Salud! Muy bien, "lo último" era innecesario, ¡gracias! En cuanto a "el caso cuando ", no estoy seguro de dónde quiere decir eso. ¿Me he perdido algo? En cuanto a tu L ' , me preguntaba lo mismo haciendo esta "prueba". Aún no estoy seguro :)|w|/3<p/2L
Michaël Cadilhac

2
Oh, mi mal, siempre se sostiene! p/2|w|/3
domotorp

Probablemente no sea un problema, pero puede ser extraño, por lo que debe manejar los casos | u | = 3 p / 2 ( ? ) Cuando p es impar. p|u|=3p/2(?)p
Marzio De Biasi

@MarzioDeBiasi: Sí, precisamente por eso es un boceto :-)
Michaël Cadilhac

10

Esta es la forma en que pienso en resolver este problema, con un PDA. En mi opinión, es intuitivamente más claro.

Una palabra x no tiene la forma www iff tampoco (i) |x|0 (mod 3), que es fácil de verificar, o (ii) hay algún símbolo de entrada a que difiere del símbolo b correspondiente que ocurre |w|posiciones más tarde.

Usamos el truco habitual de usar la pila para mantener un entero t al tener un nuevo símbolo Z "de la parte inferior de la pila" , almacenando el valor absoluto |t|como el número de contadores en la pila, y sgn ( t ) por el estado del PDA. Por lo tanto, podemos aumentar o disminuir t haciendo la operación apropiada.

El objetivo es usar el no determinismo para adivinar las posiciones de los dos símbolos que está comparando, y usar la pila para registrar t:=|x|3d , donde d es la distancia entre estos dos símbolos.

Logramos esto de la siguiente manera: incremente t para cada símbolo visto hasta que se elija el primer símbolo adivinado a , y registre a en el estado. Para cada símbolo de entrada posterior, hasta que decida que ha visto b , disminuya t en 2 ( 1 para la longitud de entrada y 3 para la distancia). Adivina la posición del segundo símbolo b y registra si ab . Continúe incrementando t para los siguientes símbolos de entrada. Acepte si t=0 (detectable por Z en la parte superior) yab .

Lo bueno de esto es que debe quedar completamente claro cómo extender esto a poderes arbitrarios.


2
De hecho, muy ordenado!
domotorp

1
Ah, mucho mejor :-)
Michaël Cadilhac

4

Solo una perspectiva diferente ("orientada a la gramática") para demostrar que el complemento de {wk} es CF para cualquier k fija que use propiedades de cierre.

Primero tenga en cuenta que en el complemento de {wk} siempre hay i tal que wiwi+1 . Nos centramos en w1w2 y comenzamos con una gramática CF simple que genera:

L={a00...0w1b00...0w2...000...0wk|wi|=n}={a0n1b0n(k1)1}

Por ejemplo, para k=3 , tenemos L={ab0,a0b000,a00b00000,...} ,GL={Sab0|aX00,X0X00|0b0}

Luego aplique cierre bajo homomorfismo inverso y unión :

Primer homomorfismo: φ(1)a,φ(0)b,φ(1)0,φ(0)0

Segundo homomorfismo: φ(0)a,φ(1)b,φ(1)0,φ(0)0

L=φ1(L)φ1(L) todavía está libre de contexto

Aplique el cierre debajo de los desplazamientos cíclicos a L para obtener el conjunto de cadenas de longitud kn no de la forma wk :

L=Shift(L)={uuwk|u|=kn} .

Finalmente, agregue el conjunto regular de cadenas cuya longitud no es divisible por k para obtener exactamente el complemento de {wk} :

L{{0,1}nnmodk0}={uuwk}

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.