• Tidak ada hasil yang ditemukan

Lema de bombeo para LIC

4. Lenguajes y gram´ aticas independientes del contexto 81

4.13. Lema de bombeo para LIC

Demostraci´on. La siguiente tabla muestra las relaciones obtenidas entre k= n´umero de nodos de la trayectoria m´as larga de S=⇒w y la longitud de w, en los casosk= 2, k= 3, k= 4 y k= 5. En la tabla se muestran los casos extremos, es decir, los ´arboles con el mayor n´umero posible de nodos.

Se observa que |w|≤2k−2. Una demostraci´on rigurosa del caso general se hace por inducci´on sobrek.

k= n´umero de nodos de Arbol de derivaci´´ on Longitud dew la trayectoria m´as larga

k= 2

S

|w|= 1 = 20= 2k−2

k= 3

S

|w|2 = 21= 2k−2

k= 4

S

|w|4 = 22= 2k2

k= 5

S

|w|8 = 23= 2k−2

4.13.2 Corolario. Sea G= (V,Σ, S, P) una gram´atica en FNC yw∈Σ. (1) Si la longitud de la trayectoria m´as larga en un ´arbol de derivaci´on de S=⇒w tiene k+ 2(o menos) nodos, entonces |w|≤2k. Aqu´ık≥0.

4.13. LEMA DE BOMBEO PARA LIC 127 (2) Si|w|>2k (conk≥0) entonces la longitud de la trayectoria m´as larga

en un ´arbol de derivaci´on de S=⇒w tiene m´as de k+ 2nodos.

Demostraci´on.

(1) Se sigue inmediatamente del Teorema 4.13.1.

(2) Es la afirmaci´on contra-rec´ıproca de la parte (1).

4.13.3. Lema de bombeo para LIC. Dado un LIC L, existe una cons- tante n(llamada constante de bombeo deL) tal que toda z∈L con|z|> n se puede descomponer en la forma z=uvwxy donde:

(1) |vwx|≤n.

(2) uviwxiy ∈L para todo i≥0.

(3) v̸=λ ´o x̸=λ.

Demostraci´on. SeaG = (V,Σ, S, P) una gram´atica en FNC, con variable inicial no recursiva, tal que L(G) =L. Tal gram´atica existe por los Teore- mas 4.11.1 y 4.11.2. Seak=|V|= n´umero de variables deGyn= 2k. Sea z∈L con|z|> n= 2k. Por la parte (2) del Corolario 4.13.2, la trayectoria m´as larga en el ´arbol de una derivaci´onS =⇒ztiene m´as de k+ 2 nodos.

Consideremos los ´ultimosk+ 2 nodos de tal trayectoria (siguiendo el orden que va desde la ra´ız S hasta las hojas del ´arbol). El ´ultimo nodo de esa trayectoria es un terminala∈Σy los restantes k+ 1 nodos son variables.

Como hay s´olokvariables en la gram´atica, entonces hay por lo menos una variable A ̸= S repetida en la trayectoria. Por lo tanto, existen cadenas u, v, w, x, y∈Σ tales que

S =⇒uAy, A=⇒vAx, A=⇒w.

As´ı que

S=⇒uAy=⇒uvAxy=⇒uvwxy =z.

La siguiente gr´afica ilustra la situaci´on:

A

A S

! "# $ ! "# $ ! "# $ ! "# $ ! "# $

u v w x y

Puesto que la trayectoria m´as larga en el ´arbol de derivaci´on de A =⇒ vAx=⇒vwxtienek+2 nodos o menos, por la parte (1) del Corolario 4.13.2, podemos concluir que |vwx|≤2k=n. Adem´as:

S=⇒uAy=⇒uvAxy=⇒uviAxiy=⇒uviwxiy, para todoi≥0.

Obs´ervese que el caso i = 0 corresponde a la derivaci´on S =⇒ uAy =⇒ uwy.

Finalmente, la derivaci´onA=⇒vAx se puede escribir como A=⇒BC=⇒vAx

utilizando una producci´on de la forma A → BC como primer paso. Se deduce que u y x no pueden ser ambas λ porque se tendr´ıa BC =⇒ A, lo cual es imposible en una gram´atica en FNC (recu´erdese que la ´unica producci´on λ en la gram´atica es, posiblemente,S →λ; peroS no aparece en el cuerpo de ninguna producci´on de G ya que S no es recursiva). Se deduce entonces que v ̸= λ ´o x ̸= λ. Esto demuestra las propiedades (1), (2) y (3) del lema de bombeo.

4.13. LEMA DE BOMBEO PARA LIC 129

EjemploDemostrar que el lenguaje L = {aibici : i ≥ 0} sobre Σ = {a, b, c} no es un LIC.

Soluci´on. Argumento por contradicci´on. Si L fuera LIC, por el lema de bombeo, existir´ıa una constante de bombeon. Seaz=anbncn; se tiene que z∈L y|z|> n. Por lo tanto, z se puede descomponer comoz=anbncn= uvwxy con las propiedades (1), (2) y (3) del lema de bombeo. Puesto que

|vwx|≤n, en la cadenavwxno pueden aparecer los tres terminalesa,byc simult´aneamente (para que aparezcan los tres terminales simult´aneamente, una subcadena deanbncndebe tener longitud≥n+2). Comov̸=λ´ox̸=λ, se distinguen dos casos:

Caso 1. Alguna de las cadenasv´oxcontiene dos tipos de terminales.

Entonces enuv2wx2y aparecen algunasbes seguidas deaes o algunas ces seguidas de bes. En cualquier caso,uv2wx2y /∈L.

Caso 2. Las cadenasvyxcontienen un s´olo tipo de terminal cada una (o s´olo aes o s´olobes o s´oloces). Como en vwx no aparecen los tres terminalesa,bycsimult´aneamente, en la cadena bombeadauv2wx2y se altera el n´umero de dos de los terminalesa, b, c, a lo sumo, pero no de los tres. Por lo tanto, uv2wx2y /∈L.

Pero el lema de bombeo afirma queuv2wx2y∈L. Esta contradicci´on mues- tra que Lno es un LIC.

EjemploDemostrar que el lenguajeL={ai:ies primo}sobreΣ={a}

no es un LIC.

Soluci´on. Argumento por contradicci´on. Si L fuera LIC, por el lema de bombeo, existir´ıa una constante de bombeo n. Sea z = am con m primo m > n y m > 2 (m existe porque el conjunto de los n´umeros primos es infinito). Entonces z∈ L y|z|> n. Por lo tanto, z se puede descomponer como z = am = uvwxy con las propiedades (1), (2) y (3) del lema de bombeo.

Sea |u|+|w|+|y|=k; entonces |v|+|x|=m−k ≥1. Por el lema de bombeo, uviwxiy ∈ L para todo i ≥ 0; es decir, |uviwxiy| es primo para todo i≥0. Pero

|uviwxiy|=k+|vi|+|xi|=k+i|v|+i|x|=k+i(|v|+|x|) =k+i(m−k).

(i) Sik= 0, tomandoi=mse obtiene quek+i(m−k) = 0 +i(m−0) = im=mmque no es primo, pues m >2.

(ii) Sik= 1, tomandoi= 0 se obtiene quek+i(m−k) = 1 +i(m−1) = 1 + 0(m−1) = 1 que no es un n´umero primo.

(iii) Si k >1, tomandoi=kse obtiene que

|uvkwxky|=k+k(m−k) =k(1 +m−k),

el cual no es un n´umero primo puesk >1 y comom−k≥1, entonces 1 +m−k≥2.

Por (i), (ii) y (iii) se puede escogeride tal manera que|uviwxiy|no sea un n´umero primo, lo cual contradice que uviwxiy ∈L para todo i≥ 0. Esta contradicci´on muestra queL no es un LIC.

Ejercicios de la secci´on 4.13

Utilizar el lema de bombeo para demostrar que los siguientes lenguajes no son LIC:

➀ L={aibicj :j≥i}, sobre Σ={a, b, c}.

➁ L={aibjck : 1≤i≤j≤k}, sobre Σ={a, b, c}.

➂ L={0i12i0i :i≥1}, sobreΣ={0,1}.

➃ L={aibicidi:i≥0}, sobre Σ={a, b, c, d}.

➄ L={aibjcidj :i, j≥0}, sobre Σ={a, b, c, d}.

➅ L=5

ww:w∈{0,1}6 .

!➆ L={ai:i es un cuadrado perfecto}.