¿Cómo puedo demostrar que este lenguaje no está libre de contexto?

11

Tengo el siguiente idioma

{0i1j2k0ijk}

Estoy tratando de determinar en qué clase de idioma Chomsky encaja. Puedo ver cómo se podría hacer usando una gramática sensible al contexto, así que sé que al menos es sensible al contexto. Parece que no sería posible hacerlo con una gramática libre de contexto, pero tengo un problema para demostrarlo.

Parece pasar el lema de bombeo de horquilla porque si se coloca en la tercera parte de cualquier palabra (la sección con todos los s). Podría bombear y tantas veces como desee y permanecería en el idioma. Si me equivoco, ¿podría decirme por qué, si estoy en lo cierto, sigo pensando que este lenguaje no está libre de contexto, entonces, ¿cómo podría probarlo?2 v xuvwxy2vx

justausr
fuente
No estoy seguro de cómo convertirlo en una prueba formal, pero asegurar que i <= j <= k requiere contexto (el valor de la variable anterior).
Kevin
@Raphael, leí esa publicación antes de esta y no sabía cómo aplicarla a mi ejemplo debido a su abstracción. Con la relación de cada carácter siendo> = el número de caracteres anteriores, no pude ver cómo dividir el uxyzv en la palabra para usar el lema de Ogden. BlueMagister y jmad se expandieron en la otra publicación para dejarlo claro para mi ejemplo.
justausr
@Raphael No estoy de acuerdo con que esta sea una aplicación trivial del caso general. Elegir qué método usar y a qué ejemplo aplicarlo no es tan fácil.
Gilles 'SO- deja de ser malvado'

Respuestas:

7

Puede forzar el bombeo en algunos lugares, utilizando el lema de Ogden , por ejemplo, marcando todos los 0.

Supongamos que está libre de contexto, luego el lema de Ogden le da un , le da que está en el lenguaje y "marca" todos los 0. Entonces cualquier factorización debe ser tal que haya un en o . También puede suponer y ya que y deben ser subcadenas de su idioma.w = 0 p 1 p 2 p w = u x y z v 0 x z x = a k z = b m x x z zp>0w=0p1p2pw=uxyzv0xzx=akz=bmxxzz

  1. Si entonces tiene más 0 que 1w = u x 2 y z 2 vz=0...0w=ux2yz2v

  2. Si y entonces tiene más de 1 que de 2.z = 1..1 w = u x 2 y z 2 vx=0..0z=1..1w=ux2yz2v

  3. Si y entonces tiene más 0 que 1.z = 2..2 w = u x 2 y z 2 vx=0..0z=2..2w=ux2yz2v

Entonces no es una palabra de tu idioma. Por lo tanto, no está libre de contexto.ux2yz2v

Para otras técnicas, vea la discusión: ¿Cómo demostrar que un lenguaje no está libre de contexto?

jmad
fuente
¿Es para el mismo idioma que tengo? Parece ser para el lenguaje similar donde todos los 0's 1's y 2's son de igual longitud. Este idioma tiene el número de 2's> = el número de 1's> = el número de 0's
justausr
1
Sí, pero usando cualquiera de los lemas de bombeo, puedes elegir la palabra (y elegí ): se supone que el lema de Ogden funciona para todos ellos. 0p1p2p
jmad
Gotcha, nunca he oído hablar del lema de Ogden, así que tendré que investigarlo. ¿Estaba en lo cierto al afirmar que falla el lema de bombeo?
justausr
@justausr tampoco, hasta hace poco (y gracias a la discusión a la que me referí). Y sí, tenía razón: el lema de bombeo hace casi lo mismo, pero no elegir dónde bombear lo hace inútil aquí.
jmad
5

El lema de bombeo debería resolver su problema con respecto a la tercera parte de la palabra; tenga en cuenta que cuando divide , cualquier combinación de también está en el lenguaje, incluso cuando . Trata eso.u v n w x n y n = 0z=uvwxyuvnwxnyn=0

EDITAR: como dice jmad , Pumping Lemma es como un juego:

  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

Entonces, lo que debe hacer es decir una palabra, dividir 3 en casos y mostrar que para cada caso puede encontrar un tal que la palabra resultante no esté en el idioma.n

Cuando , piensa en todos los casos en los que puede caer. Usted nota que si no cae en los 2, entonces es fácil bombear los 0 y 1 hasta que superen en número a los 2, y entonces tiene una palabra que no está en el idioma. Mi sugerencia es que, si cae en 2 territorios, también puede hacer que e desaparezcan estableciendo , entonces . Luego, al eliminar un 2, puede llegar a una palabra que no cae en el idioma.v x y v x y v x y v y n = 0 u v n x y n z = u x zs=uvxyzvxyvxyvxyvyn=0uvnxynz=uxz

Magister azul
fuente
¿Estás diciendo poner todo uvwxy en la sección con 2?
justausr
Si se le da la palabra correcta. Explicaré mi respuesta.
Blue Magister
Aquí, pruébalo ahora. No estoy seguro de si mi lema de bombeo es el mismo que tu lema de bombeo, por lo que apelo a Wikipedia .
Blue Magister