¿Cómo demostrar que un idioma no está libre de contexto?


89

Aprendimos sobre la clase de lenguajes libres de contexto . Se caracteriza tanto por gramáticas libres de contexto como por autómatas pushdown, por lo que es fácil demostrar que un lenguaje determinado no tiene contexto.CFL

Sin embargo, ¿cómo muestro lo contrario? Mi TA ha insistido en que para hacerlo, tendríamos que mostrar a todas las gramáticas (o autómatas) que no pueden describir el idioma en cuestión. ¡Esto parece una gran tarea!

He leído sobre algunos lemas de bombeo pero parece realmente complicado.


Ntpick: es indecidible mostrar si un idioma no tiene contexto.
reinierpost

1
@reinierpost No veo cómo se relaciona tu comentario con la pregunta. Se trata de probar cosas, no decidir (algorítmicamente).
Raphael

Simplemente haciendo que el punto de que es no fácil demostrar que es un lenguaje libre de contexto, en general . Si es fácil para frafl, eso se debe a ciertas condiciones especiales que no son válidas para los idiomas en general, como recibir un autómata pushdown que describe el idioma.
reinierpost

@reinierpost Esa línea de razonamiento parece suponer que indecidible implica (¿igual?) Difícil de probar. Me pregunto si eso es cierto.
Raphael

Respuestas:


69

Que yo sepa, el lema de bombeo es, con mucho, la técnica más simple y más utilizada. Si te resulta difícil, prueba primero la versión normal , no está tan mal. Existen otros medios para los idiomas que están lejos de ser libres de contexto. Por ejemplo, los lenguajes indecidibles no son trivialmente libres de contexto.

Dicho esto, también estoy interesado en otras técnicas además del lema de bombeo, si las hay.

EDITAR: Aquí hay un ejemplo para el lema de bombeo: suponga que el lenguaje está libre de contexto ( es el conjunto de números primos). El lema de bombeo tiene muchos cuantificadores , así que haré esto un poco como un juego:P / L={akkP}P/

  1. El lema de bombeo te da unap
  2. Usted da una palabra del lenguaje de longitud al menospsp
  3. El lema de bombeo lo reescribe así: con algunas condiciones ( y )| v x y | p | v y | 1s=uvxyz|vxy|p|vy|1
  4. Usted da un número enteron0
  5. Si no está en , usted gana, no está libre de contexto.L LuvnxynzLL

Para este lenguaje particular para cualquier (con y es un número primo) hará el truco. Entonces el lema de bombeo le da con . No refute la libertad de contexto, necesita encontrar tal queNo es un número primo.a k k p k u v x y z | v y | 1 n | u v n x y n z |sakkpkuvxyz|vy|1n|uvnxynz|

|uvnxynz|=|s|+(n1)|vy|=k+(n1)|vy|

Y entonces hará: no es primo de modo . El lema de bombeo no se puede aplicar, por lo que no está libre de contexto.k + k | v y | = k ( 1 + | v y | ) u v n x y n z L Ln=k+1k+k|vy|=k(1+|vy|)uvnxynzLL

Un segundo ejemplo es el idioma . Nosotros (por supuesto) tenemos que elegir una cadena y mostrar que no hay forma posible de que pueda dividirse en esas cinco partes y que cada cadena bombeada derivada permanezca en el idioma.{www{a,b}}

La cadena es una opción adecuada para esta prueba. Ahora solo tenemos que ver dónde pueden estar e . Las partes clave son que o tiene que tener algo (tal vez ambos), y que e (y ) están contenidos en una subcadena de longitud , por lo que no pueden estar demasiado separados. v y v y v y x ps=apbpapbpvyvyvyxp

Esta cadena tiene varias posibilidades de donde e podrían estar, pero resulta que varios de los casos en realidad se parecen bastante.yvy

  1. v y b a b | v y | = k pvya o . Entonces, ambos están contenidos en una de las secciones de s o s . Este es el caso relativamente fácil de discutir, ya que no importa en qué se encuentren. Supongamos que . vybab|vy|=kp
    • Si están en la primera sección de s, entonces cuando bombeamos, la primera mitad de la nueva cadena es , y la segunda es . Obviamente esto no es de la forma .a p + k b p - k / 2 b k / 2 a p b p w waap+kbpk/2bk/2apbpww
    • El argumento para cualquiera de las otras tres secciones es casi el mismo, es justo donde y terminan en los índices.k / 2kk/2
  2. vxy extiende a dos de las secciones. En este caso el bombeo de abajo es su amigo. Una vez más, hay varios lugares donde esto puede suceder (3 para ser exactos), pero haré uno ilustrativo, y el resto debería ser fácil de resolver a partir de ahí.
    • Supongamos que extiende a ambos lados de la frontera entre la primera sección y la primera sección. Deje (no importa exactamente dónde están los s y s en e , pero sabemos que están en orden). Luego, cuando bombeamos (es decir, el caso ), obtenemos la nueva cadena , pero entonces si podría dividirse en , el punto medio debe estar en algún lugar en el segundo sección, por lo que la primera mitad esa b v y = a k 1 b k 2 a b v y i = 0 s = a p - k 1 b p - k 2 a p b p s w w a a p - k 1 b p - k 2 a ( k 1 + k 2 )vxyabvy=ak1bk2abvyi=0s=apk1bpk2apbpswwa a p - ( k 1 + k 2 ) / 2 b p vyapk1bpk2a(k1+k2)/2, y la segunda mitad es . Claramente, estos no son la misma cadena, por lo que no podemos poner e allí.ap(k1+k2)/2bpvy

Los casos restantes deberían ser bastante transparentes a partir de ahí: son las mismas ideas, solo ponen e en los otros 3 puntos en la primera instancia y 2 puntos en la segunda instancia. Sin embargo, en todos los casos, puede bombearlo de tal manera que el orden se vea claramente desordenado cuando divida la cadena por la mitad.yvy


de hecho, el juego de Kozen es la forma de hacerlo.
Sócrates

45

Lema de Ogden

Lemma (Ogden). Deje que sea ​​un lenguaje sin contexto. Luego hay una constante tal que por cada y cualquier forma de marcar o más posiciones (símbolos) de como "posiciones distinguidas", entonces puede escribirse como , de modo queN z L N z z z = u v w x yLNzL Nzzz=uvwxy

  1. vx tiene al menos una posición distinguida.
  2. Nvwx tiene como máximo posiciones distinguidas.N
  3. Por todo , .u v i w x i y Li0uviwxiyL

Ejemplo. Deje . Suponga que tiene contexto y deje que sea ​​la constante dada por el lema de Ogden. Supongamos que (Que pertenece a ), y supongamos que marcamos como distinguidas todas las posiciones del símbolo (es decir, las primeras posiciones de ) . Sea una descomposición de satisfaga las condiciones del lema de Ogden.L N z = a N b N + N ! c N + 2 N ! L a N z z = u v w x y zL={aibjck:ij,jk,ik}LNz=aNbN+N!cN+2N!LaNzz=uvwxyz

  • Si o contienen símbolos diferentes, entonces , porque habrá símbolos en el orden incorrecto.x u v 2 w x 2 y Lvxuv2wx2yL
  • Al menos uno de y debe contener sólo símbolos , ya que sólo los 's se han distinguido. Por lo tanto, si o , entonces . Deje. Entonces , lo que significa que divide. Deje . Entonces debe pertenecer a . Sin embargo, . Como tiene exactamente símbolos , entoncesx a a x L ( b ) x L ( c ) v L ( A + ) p = | v | 1 p N p N ! q = N ! / p z = u v 2 q + 1 w x 2 q + 1 y LvxaaxL(b)xL(c)vL(A+)p=|v|1pNpN!q=N!/pz=uv2q+1wx2q+1yL u w y N - p a z 2 N ! + N a v x c z 2 N ! + N c z L x L ( A + ) x L ( cv2q+1=a2pq+p=a2N!+puwyNpaztiene símbolos . Pero tanto como no tienen 's, por lo que también tiene símbolos , lo que significa , y esto contradice el lema de Ogden. Una contradicción similar ocurre si o . Concluimos que no está libre de contexto.2N!+Navxcz2N!+NczLxL(A+)LxL(c)L

Ejercicio. Usando el Lema de Ogden, demuestre que no está libre de contexto.L={aibjckd:i=0 or j=k=}

Lemma de bombeo

Este es un caso particular del Lema de Ogden en el que se distinguen todas las posiciones.

Lema Deje que sea ​​un lenguaje sin contexto. Entonces hay una constante tal que por cada , puede escribirse como , de modo queN z L z z = u v w x yLNzLzz=uvwxy

  1. |vx|>0 .
  2. |vwx|N .
  3. Por todo , .u v i w x i y Li0uviwxiyL

Teorema de Parikh

Esto es aún más técnico que el Lemma de Ogden.

Definición. Deje . Definimos por donde es el número de apariciones de en .Σ={a1,,an}ΨΣ:ΣNn

ΨΣ(w)=(m1,,mn),
miaiw

Definición. Un subconjunto de se llama lineal si se puede escribir: SNn

S={u0+1ikaiui: for some set of uiNn and aiN}

Definición. Un subconjunto de se llama semi-lineal si es la unión de una colección finita de conjuntos lineales.SNn

Teorema (Parikh). Deje ser un lenguaje sobre . Si tiene contexto, entonces es semi-lineal.LΣL

ΨΣ[L]={ΨΣ(w):wL}

Ejercicio. Usando el Teorema de Parikh, demuestre que no está libre de contexto.L={0m1n:m>n or (m is prime and mn)}

Ejercicio. Usando el Teorema de Parikh, demuestre que cualquier lenguaje libre de contexto sobre un alfabeto unario también es regular.


1
Acepté la respuesta de jmad porque la pregunta menciona explícitamente Pumping Lemma. Sin embargo, aprecio mucho tu respuesta; tener todos los métodos principales recopilados aquí es una gran cosa.
Raphael

1
Está bien, pero tenga en cuenta que el lema de bombeo es un caso particular del lema de Ogden ;-)
Janoma

Por supuesto. Aún así, la mayoría de la gente intentará PL primero; muchos ni siquiera saben OL.
Raphael

1
Un teorema de Ginsburg y Spanier, basado en el teorema de Parikh, da una condición necesaria y suficiente para la libertad de contexto en el caso acotado. math.stackexchange.com/a/122472
sdcvvc

¿Puede definir "posiciones distinguidas" en términos de otras operaciones? O al menos informalmente? Encuentro la definición de OL copiada literalmente en muchos lugares diferentes, pero ninguno de ellos hasta ahora se preocupaba por explicar lo que eso significa.
wvxvw

34

Propiedades de cierre

Una vez que tenga una pequeña colección de lenguajes no libres de contexto, a menudo puede usar las propiedades de cierre de esta manera:CFL

Suponga . Luego, mediante la propiedad de cierre X (junto con Y), . Esto contradice que sabemos que tiene, por lo tanto, .LCFLLCFLLCFLLCFL

Esto es a menudo más corto (y a menudo menos propenso a errores) que usar uno de los otros resultados que usan menos conocimiento previo. También es un concepto general que se puede aplicar a todo tipo de clase de objetos.

Ejemplo 1: Intersección con lenguajes regulares

Observamos el lenguaje regular especificado por cualquier expresión regular .L(e)e

Deje . ComoL={ww{a,b,c},|w|a=|w|b=|w|c}

LL(abc)={anbncnnN}CFL

y está cerrado bajo intersección con los idiomas regulares, .CFLLCFL

Ejemplo 2: Homomorfismo (inverso)

Deje . Con el homomorfismoL={(ab)2ncmd2nm(aba)nm,nN}

ϕ(x)={ax=aεx=bbx=cx=d

tenemosϕ(L)={a2nb2na2nnN}.

Ahora con

ψ(x)={aax=ax=cbbx=bandL1={xnbnynx,y{a,c}nN},

obtenemos .L1=ψ1(ϕ(L)))

Finalmente, intersectando con el lenguaje regular obtenemos el lenguaje .L1L2=L(abc)L3={anbncnnN}

En total, tenemos .L3=L2ψ1(ϕ(L))

Ahora suponga que contexto. Entonces, dado que está cerrado contra el homomorfismo, el homomorfismo inverso y la intersección con conjuntos regulares, está libre de contexto. Pero sabemos (a través de Pumping Lemma, si es necesario) que no está libre de contexto, por lo que esto es una contradicción; hemos demostrado que .LCFLL3L3LCFL


Lema de intercambio

El Lema de intercambio [1] propone una condición necesaria para la libertad de contexto que es incluso más fuerte que el Lema de Ogden . Por ejemplo, se puede usar para mostrar que

{xyyzx,y,z{a,b,c}+}CFL

que resiste muchos otros métodos. Este es el lema:

Deje . Entonces hay una constante tal que para cualquier número entero , cualquier conjunto cualquier número entero con hay cadenas conLCFLcLn2QnLn=LΣnmnm2k|Qn|cLn2ziQn

  1. zi=wixiyi para ,i=1,,k
  2. |w1|=|w2|==|wk|,
  3. |y1|=|y2|==|yk|,
  4. m|x1|=|x2|==|xk|>m2 y
  5. wixjyiLn para todos .(i,j)[1..k]2

Aplicando que significa encontrar y tal que 1.-4. mantener pero 5. se viola. El ejemplo de aplicación dado en el documento original es muy detallado y, por lo tanto, se deja aquí.n,mQn

En este momento, no tengo una referencia disponible gratuitamente y la formulación anterior está tomada de una preimpresión de [1] de 1981. Agradezco la ayuda para localizar mejores referencias. Parece que la misma propiedad ha sido (re) descubierta recientemente [2].


Otras condiciones necesarias

Boonyavatana y Slutzki [3] examinan varias condiciones similares a la Lemma de bombeo e intercambio.


  1. Un "Lema de intercambio" para lenguajes libres de contexto por W. Ogden, RJ Ross y K. Winklmann (1985)
  2. Intercambiando lemas por lenguajes regulares y sin contexto por T. Yamakami (2008)
  3. Los lemas de intercambio o bomba (DI) para lenguajes libres de contexto por R. Boonyavatana y G. Slutzki (1988)


19

No existe un método general ya que el conjunto de lenguajes libres de contexto no es semi-decidible (akare). Si hubiera un método general, podríamos usarlo para semi-decidir este conjunto.

La situación es aún peor, dado que con dos CFL no es posible decidir si su intersección es también una CFL.

Referencia: Hopcroft y Ullman, "Introducción a la teoría de autómatas, idiomas y computación", 1979.


2
Una pregunta interesante (pero probablemente más avanzada y abierta) sería categorizar la subclase de no CFL que se puede demostrar que no son CFL utilizando un método particular.
Kaveh

No busco un método computable , sino técnicas de prueba de lápiz y papel. Lo último no implica necesariamente lo primero.
Rafael

13

Una versión más fuerte de la condición de Ogden ( OC ) es el

Condición de Bader-Moura (BMC)

Un lenguaje satisface BMC si existe una constante tal que si y etiquetamos en él las posiciones "distinguidas" y posiciones "excluidas", con , entonces podemos escribir tal que:LΣnzLd(z)e(z)d(z)>ne(z)+1z=uvwxy

  1. e ( v x ) = 0d(vx)1 ye(vx)=0
  2. d(vwx)ne(vwx)+1 y
  3. para cada , está en .u v i w x i y Li0uviwxiyL

Decimos que un lenguaje si satisface la condición de Bader-Moura.LLBMC(Σ)L

Tenemos , por lo que BMC es estrictamente más fuerte que OC.CFL(Σ)BMC(Σ)OC(Σ)

Referencia: Bader, C., Moura, A., Una generalización del lema de Ogden. JACM 29, no. 2, (1982), 404–407


2
¿Por qué no simplemente ir hasta la generalización de Dömösi y Kudlek dx.doi.org/10.1007/3-540-48321-7_18 ...
András Salamon

@ AndrásSalamon: ¡No lo sabía! :-) ... tal vez pueda publicarlo como una nueva respuesta diciendo que OC, BMC, PC son casos especiales (todas las posiciones distinguidas o no excluidas).
Vor

puedes publicarlo, no tienes tiempo en este momento.
András Salamon

Esta respuesta se beneficiaría de un ejemplo.
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.