Complejidad de verificar si dos palabras tienen un intercalado en un idioma

9

Para un lenguaje fijo en algún alfabeto , consideremos el siguiente problema, que llamo -INTERLEAVING :A LLAL

  • Entrada: dos palabras u,vA
  • Salida: si existe un entrelazado de u y v que está en L .

Aquí, un entrelazado de dos palabras u y v es una palabra w que puede obtenerse intuitivamente tomando las letras de u y v manteniendo su orden relativo. Formalmente, w es un entrelazado de u y v si podemos dividirlo en dos subsecuencias disjuntas, una que es igual a u y la otra que es igual a v . Por ejemplo, "bheleloll" es una combinación de "hola" y "campana".

¿Cuál es la complejidad del problema L -INTERLEAVING, dependiendo del lenguaje L ? En particular:

  • Si L es regular, entonces podemos resolver el problema con un algoritmo dinámico en las dos cadenas que muestra que está en la clase NL. ¿Es difícil para algunos idiomas regulares? Sin embargo, para algunos lenguajes regulares, el problema está claramente en L (espacio de registro determinista). ¿Existe alguna caracterización de los idiomas para los cuales el problema está en L?
  • Si L no es regular, el problema todavía está en NL cuando L tiene una complejidad de espacio determinista polinómica en línea (vea aquí esta noción o mi pregunta anterior ). Sin embargo, esto no cubre, por ejemplo, todos los lenguajes libres de contexto; sin embargo, también se puede demostrar que algunos otros (por ejemplo, palíndromos) son NL (por ejemplo, al hacer un algoritmo dinámico simultáneamente desde el principio y desde el final). ¿Existe un lenguaje sin contexto cuyo problema de intercalación en L es NP-hard?
a3nm
fuente

Respuestas:

6

Para una palabra y para dos enteros con denotamos con la subparte de . Además, dejamos que denote la palabra vacía. i , j 1 i j w ( i , j ) w i w i + 1 ... w j w w ( 0 , 0 )w=w1wi,j1ijw(i,j)wiwi+1wjww(0,0)

  • Sean y las dos palabras bajo consideración. v = v 1 ... v nu=u1umv=v1vn
  • Suponga que el lenguaje libre de contexto está especificado por una gramática libre de contexto en forma normal de Chomsky.L

Construya un programa dinámico, donde un estado se especifica mediante[i,j,r,s,A]

  • dos enteros con o1 i j m i = j = 0i,j1ijmi=j=0
  • dos enteros con or1 r s n r = s = 0r,s1rsnr=s=0
  • un símbolo no terminal en la gramática libre de contextoA

Para cada estado, decidir si en la gramática libre de contexto existe alguna derivación que comienza con el no terminal y que termina con un poco de entrelazado de las dos palabras y . Esta decisión se puede tomar fácilmente si los estados se manejan en el orden correcto (subpalabras cortas antes que subpalabras más largas).u ( i , j ) w ( r , s )Au(i,j)w(r,s)

Con todo, esto produce un algoritmo de tiempo polinómico para el problema de intercalación de cualquier lenguaje sin contexto .LLL

Gamow
fuente
¡Gracias! De hecho, no me había dado cuenta de que esta variante de en.wikipedia.org/wiki/CYK_algorithm funcionaría para mostrar que el problema está en P para los lenguajes sin contexto. Dicho esto, no vemos cómo demostrar que el problema está en NL usando este algoritmo: parece que necesitamos hacer un número logarítmico de conjeturas (la altura del árbol), cada conjetura es logarítmica (es decir, posiciones en el cuerda). ¿Alguna idea sobre esto?
a3nm
2
@ a3nm Si la palabra vacía pertenece a una CFL ya es P-hard.
Sylvain
@Sylvain: OK, es P-hard, pero en función de la CFL. :) Recuerde que en mi problema el idioma (o un CFL para él) son fijos, y la entrada es solo las dos cadenas, por lo que no creo que este argumento se aplique.
a3nm
2
@ a3nm lo siento, realmente me había perdido el hecho de que el idioma fue corregido. Entonces el candidato natural sería la dureza LogCFL.
Sylvain
@Sylvain: Así es, ¡gracias! Entonces, de hecho, supongo que el problema verbal es LogCFL-hard incluso para un lenguaje CFL fijo (es decir, el lenguaje más difícil de Greibach), por lo que en particular hay lenguajes CFL para los que mi problema es LogCFL-hard (tome instancias donde la segunda cadena esté vacía) ) Por el contrario, me imagino que el algoritmo de Gamow está en LogCFL (?). Sin embargo, esto hace que me pregunte acerca de los idiomas para que mi problema sería más fácil que esta obligado, y cómo se podría clasificarse ...
a3nm