SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Lema de Bombeo

Bayron Rubén De León Pérez 12-0542
Josué Augusto Puntiel Mena 13-0972
Profesora Rina Familia
Lenguajes Formales y Teoría de Autómatas

Universidad Iberoamericana (UNIBE)
Santo Domingo, República Dominicana
25 de Febrero del 2014|
Índice
Introducción …………………………………………………………………………………..…...…… 3
Lenguaje Regular ………………………………………………………………………………..……… 4
Importancia de los Lenguajes Regulares ……………………………………………………………… 5
Cómo Demostrar que un Lenguaje no es Regular …………………………………………………… 5
El lema de bombeo para los lenguajes regulares ………………………………………………..…… 5
Teorema……………………………………………………………………………………………...…… 6
Demostración de que un lenguaje no es regular ……………………………………………………… 7
Ejemplo de demostración de que un lenguaje no es regular …………………………………...…… 8
El Lema de Bombeo para los Lenguajes Regulares ……………………………………….………… 9
Demostración…………………………………………………………………………………...…...…… 9
El Lema de Bombeo como un juego entre adversarios ……………………………………..……… 11
Aplicaciones del Lema de Bombeo ……………………………………………………………..…… 11
Definición de las Gramáticas Independientes del Contexto………………………………..………. 12
El Lema de Bombeo para lenguajes independientes del contexto ………………………………… 13
El Tamaño de los Árboles de Derivación……………………………………………………….…… 14
Enunciado del Lema de Bombeo ………………………………………………………………..…… 15
Demostración……………………………………………………….……………………………...…… 15
Conclusión……………………………………………………..…………………………………..…… 17
Referencias………………………………………………………………………..………………..…… 18
Introducción
La teoría de autómatas es el estudio de dispositivos de cálculo abstractos, es decir, de las
“máquinas”. En las décadas de los años cuarenta y cincuenta, una serie de investigadores
estudiaron las máquinas más simples, las cuales todavía hoy denominamos “autómatas finitos”.
Originalmente, estos autómatas se propusieron para modelar el funcionamiento del cerebro y,
posteriormente, resultaron extremadamente útiles para muchos otros propósitos.

Todos estos desarrollos teóricos afectan directamente a lo que los expertos en
computadoras hacen. Algunos de los conceptos, como el de autómata finito y determinados tipos
de gramáticas formales, se emplean en el diseño y la construcción de importantes clases de
software.

El lema de bombeo para lenguajes regulares enuncia una propiedad que cumplen todos
los lenguajes regulares infinitos (y también algunos lenguajes que no son regulares). Gracias a
este lema podremos demostrar que ciertos lenguajes infinitos no son regulares. Es importante
hacer notar que el lema de bombeo es una herramienta adecuada para demostrar que un lenguaje
no es regular, pero no lo será para demostrar que un lenguaje si es regular (por el hecho de que
existen algunos lenguajes no regulares que la cumplen). Por tanto, si un lenguaje no cumple el
lema de bombeo no es regular, pero si lo cumple no podremos decir si es o no regular.
Lenguaje Regular
Se dice que un lenguaje es regular si y sólo si se cumple cualquiera de las
siguientes proposiciones:


Tiene al menos una gramática regular G que lo produce.



Puede ser reconocido por un autómata finito A.



Existe una expresión regular Er que representa a todas las cadenas de L.
Lenguaje regular. En Lingüística, Matemáticas e Informática y en la jerarquía de

Chomsky se refiere a los lenguajes de tipo 3, aquellos que pueden representarse
mediante gramáticas regulares, autómatas finitos o expresiones regulares.

Son los lenguajes formales más simples, con los mecanismos de representación y
reconocimiento más estudiados. Su aplicación práctica en la teoría y construcción
de intérpretes y compiladores de lenguajes

de

programación o

de especificación o formato de información, especialmente como microcomponentes
del analizador lexicográfico que detecta los tókenes como constantes numéricas, cadenas
de texto, operadores, palabras reservadas (keywords), separadores, etc. Pero también se
puede apreciar su uso en máquinas expendedoras, teléfonos públicos, calculadoras y otros
artefactos electromecánicos.
También puede realizarse una definición recursiva-constructiva de los lenguajes
regulares mediante el álgebra de lenguajes formales.

Un lenguaje regular sobre un alfabeto T ó LR(T) es:


El lenguaje vacío {}.



El lenguaje conformado por la cadena vacía



Un lenguaje {x} conformado por un único símbolo x de T.



Si A y B son

lenguajes

lenguajes), Archivo:

A

regulares
unión

o lenguaje trivial.

sobre T,

B.gif (Unión

entonces AB (Concatenación

de

de

de

lenguajes), A* (Clausura

lenguaje o Estrella de Kleene) son también lenguajes regulares sobre T.


Cualquier otro lenguaje que pueda obtenerse a partir de 1 a 4.
Importancia de los Lenguajes Regulares
La existencia y formalización de los lenguajes regulares (LR) y su vinculación con otros
artefactos lingüísticos-matemáticos ya bien formalizados, estudiados e incluso llevados a la
práctica ha sido de vital importancia en el ulterior desarrollo de los mecanismos de
procesamiento de lenguajes de computadora, fundamentalmente en los analizadores
lexicográficos gracias a la posibilidad de derivar el reconocimiento de los LR mediante
autómatas finitos que son fáciles de implementar computacionalmente con mecanismos simples
y rápidos, óptimos en la obtención de parsers veloces y robustos que a su vez le ofrecen a los
desarrolladores información detallada de los errores léxicos, sintácticos e incluso advierten sobre
errores semánticos.
Lo mismo sucede por ejemplo con las expresiones regulares implementadas ya en
muchos Lenguaje de programación de propósito general modernos que permiten a los
desarrolladores de lenguajes mecanismos muy eficientes para la obtención intuitiva de partes de
compiladores que reconocen los tókenes o partículas lexicales del código fuente como fase del
proceso completo de interpretación o compilado, según sea el caso
Cómo Demostrar que un Lenguaje no es Regular
No todo lenguaje es un lenguaje regular. El lema de bombeo permite demostrar que
determinados lenguajes no son regulares.
El lema de bombeo para los lenguajes regulares

El lema de bombeo para lenguajes regulares enuncia una propiedad que cumplen todos
los lenguajes regulares infinitos (y también algunos lenguajes que no son regulares). Gracias a
este lema podremos demostrar que ciertos lenguaje infinitos no son regulares. Es importante
hacer notar que el lema de bombeo es una herramienta adecuada para demostrar que un lenguaje
no es regular, pero no lo será para demostrar que un lenguaje si es regular (por el hecho de que
existen algunos lenguajes no regulares que la cumplen). Por tanto, si un lenguaje no cumple el
lema de bombeo no es regular, pero si lo cumple no podremos decir si es o no regular.
Considerando el lenguaje L01 = {0n1n | n≥1}. Este lenguaje contiene las cadenas 01,
0011, 000111, etc., que constan de uno o más ceros seguidos de un número igual de unos.
Establecemos que L01 no es un lenguaje regular. El argumento intuitivo es que si L01
fuera regular, entonces L01 sería el lenguaje de algún AFD A, que tendría un
determinado número de estados, digamos k estados. Imagine que este autómata recibe k
ceros como entrada. Después de recibir los k+1 prefijos de la entrada: ε,0,00,...,0k se
encontrará en un cierto estado. Dado que sólo existen k estados distintos, el principio del
juego de las sillas nos dice que después de leer dos prefijos diferentes, por ejemplo, 0i y
0j, A tiene que encontrarse en el mismo estado, por ejemplo q.
Sin embargo, en lugar de esto, suponemos que después de leer i o j ceros, el
autómata A comienza a recibir unos como entrada. Después de recibir i unos, debe
aceptar si previamente ha recibido i ceros, pero no si ha recibido j ceros. Puesto que
estaba en el estado q cuando comenzaron a llegar unos, no puede “recordar” si había
recibido i o j ceros, por lo que podemos “engañar” a A y hacerle cometer un error: aceptar
cuando no debe hacerlo o no aceptar cuando debería hacerlo.

El argumento anterior es de carácter informal, pero puede precisarse. Sin
embargo, puede llegarse a la misma conclusión, que el lenguaje L01 no es un lenguaje
regular, utilizando un resultado general de la forma siguiente.

Teorema

El lema de bombeo para lenguajes regulares) Sea L un lenguaje regular. Existe entonces
una constante n (que depende de L) tal que para toda cadena w perteneciente a L con |w| ≥n,
podemos descomponer w en tres cadenas,

W = xyz, tales que:


y ≠ ε (o dicho de otro modo, que |y| ≥ 1),



|xy| <= n



Para cualquier k ≥ 0, la cadena xy z pertenece a L.

k
Más formalmente:
∀ lenguaje regular infinito L sobre un alfabeto Σ


∃n∈N/



∀ w ∈ L / |w| ≥ n



∃ x, y ,z ∈ Σ* / w = xyz, y ≠ ε, |xy| <= n,



∀ k ≥ 0, xy z ∈ L

k

O sea que para cualquier cadena de L lo bastante larga, siempre podremos encontrar una
partición en tres subcadenas, con una no vacía en el medio (la y) que no está demasiado lejos del
comienzo de la palabra, que podremos “bombear”; es decir, que si se repite la subcadena y
cualquier número de veces, la cadena resultante también pertenecerá a L.

Demostración de que un lenguaje no es regular

Dado que para todo lenguaje regular infinito se cumple el lema de bombeo, si se da un
lenguaje infinito y se demuestra que para él no se cumple, se habra demostrado que no es un
lenguaje regular. Como el lema de bombeo es una propiedad que se cumple para todas las
cadenas de longitud mayor o igual a cierta n, bastará encontrar una cadena de ese lenguaje, de
longitud mayor o igual a esa n, que no se pueda “bombear” para demostrar que el lenguaje no es
regular. Con esta idea en mente, los pasos a dar para demostrar que un lenguaje dado no es
regular son los siguientes:
1. Elegir una palabra w que pertenezca al lenguaje dado. Podemos elegir cualquier palabra
del lenguaje, pero debe ser una cuya longitud sea mayor o igual que una constante n que
desconocemos (la constante del lema de bombeo). Como desconocemos n, lo habitual será elegir
una palabra en función de un n cualquiera y cuya longitud sea mayor o igual que n.
2. El lema de bombeo dice que si el lenguaje fuera regular, podríamos encontrar una forma
de partir esa palabra w en tres, cumpliendo ciertas restricciones, y que esa partición sería
bombeable. Como queremos demostrar que el lenguaje no es regular, tendremos que demostrar
que no hay ninguna forma de partir la palabra en tres cumpliendo las restricciones del lema, y
que después se pueda bombear siempre.
3. Finalmente bastará con encontrar una constante k ≥ 0 que haga que ninguna de las
particiones posibles de w sea bombeable.
Más formalmente, para demostrar que un lenguaje L sobre un alfabeto Σ no es regular
habrá que demostrar que:
∀ n∈N
∃ w ∈ L / |w| ≥ n,
∀ x, y ,z ∈ Σ* / w = xyz, y ≠ ε, |xy| <= n,
k

∃ k ≥ 0 / xy z ∉ L

Es importante hacer notar que en esta demostración, por reducción al absurdo, de que un
lenguaje no es regular, los cuantificadores existenciales “para todo” y “existe” están alternados al
revés que en el enunciado del lema. Esto es, intuitivamente, porque se esta demostrando lo
contrario que el lema de bombeo: éste enuncia una propiedad que cumplen todos los lenguajes
regulares y la demostración precedente demuestra que un lenguaje no es regular, o sea que no
cumple esa propiedad.

Ejemplo de demostración de que un lenguaje no es regular
Sea el lenguaje L = {a2nbn | n ≥ 0}. Demostrar que L no es regular.

Suponiendo que el lenguaje es regular. Si lo es, y como es infinito, para él se cumplirá el
lema de bombeo. Sea por tanto n ∈ N la constante del lema de bombeo para L (constante que no
se conoce).
Eligiendo una palabra que pertenezca a L y de longitud mayor o igual a n:
2n n

w = a b , tenemos que w ∈ L y |w| = 3n y por tanto |w| ≥ n, sea cual sea n.

El Lema de Bombeo para los Lenguajes Regulares
Considerando el lenguaje L01 = {0n1n | n ≥ 1}. Este lenguaje contiene las cadenas 01,
0011, 000111, etc., que constan de uno o más ceros seguidos de un número igual de unos.
Establecemos que L01 no es un lenguaje regular. El argumento intuitivo es que si L01 fuera
regular, entonces L01 sería el lenguaje de algún AFD A, que tendría un determinado número de
estados, digamos k estados. Imaginar que este autómata recibe k ceros como entrada. Después de
recibir los k+1 prefijos de la entrada: ε ,0,00, . . . ,0k se encontrará en un cierto estado.
Dado que sólo existen k estados distintos, el principio del juego de las sillas nos dice que
después de leer dos prefijos diferentes, por ejemplo, 0i y 0j, A tiene que encontrarse en el mismo
estado, por ejemplo q.

Sin embargo, en lugar de esto, se supone que después de leer i o j ceros, el autómata A
comienza a recibir unos como entrada. Después de recibir i unos, debe aceptar si previamente ha
recibido i ceros, pero no si ha recibido j ceros. Puesto que estaba en el estado q cuando
comenzaron a llegar unos, no puede “recordar” si había recibido i o j ceros, por lo que podemos
“engañar” a A y hacerle cometer un error: aceptar cuando no debe hacerlo o no aceptar cuando
debería hacerlo.
El argumento anterior es de carácter informal, pero puede precisarse. Sin embargo, puede
llegarse a la misma conclusión, que el lenguaje L01 no es un lenguaje regular, utilizando un
resultado general de la forma siguiente.

Demostración

Supongamos que L es regular. Entonces L =L(A) para algún AFD A. Supongamos que A
tiene n estados. Consideremos ahora cualquier cadena w de longitud n o mayor, por ejemplo w =
a1a2 · · ·am, donde m ≥ n y cada ai es un símbolo de entrada. Para i = 0,1, . . . ,n definimos el
estado pi como _ δ (q0,a1a2 · · ·ai), donde δ es la función de transición de A y q0 es el estado
inicial de A. Es decir, pi es el estado en que se encuentra A después de leer los primeros i
símbolos de w. Observe que p0 = q0.

Por el principio del juego de las sillas, no es posible que los n+1 pi para i = 0,1, . . . ,n
sean diferentes, ya que sólo existen n estados distintos. Por tanto, podemos determinar dos
enteros distintos i y j, con 0 ≤ i< j ≤ n, tales que pi = pj . Ahora podemos descomponer w = xyz
como sigue:

1. x = a1a2 · · ·ai.
2. y = ai+1ai+2 · · ·aj .
3. z = aj+1aj+2 · · ·am.

Es decir, x lleva a pi una vez; y lleva desde pi a pi de nuevo (ya que pi también es pj) y z
es el resto de w.

Considerando ahora lo que ocurre si el autómata A recibe la entrada xykz para cualquier k
≥ 0. Si k = 0, entonces el autómata va desde el estado inicial q0 (que también es p0) hasta pi para
la entrada x. Puesto que pi también es pj , al leer la entrada z. Por tanto, A acepta xz.

Si k > 0, entonces A va desde q0 hasta pi para la entrada x, va en círculo desde pi hasta pi
k veces para la entrada yk, y luego pasa al estado de aceptación para la entrada z. Por tanto, para
cualquier k ≥ 0, A también acepta xykz; es decir, xykz pertenece a L.
El Lema de Bombeo como un juego entre adversarios
Un teorema cuya proposición implica varias alternativas de cuantificadores “para todo” y
“existe” puede interpretarse como un juego entre dos personas. El lema de bombeo es un ejemplo
importante de este tipo de teorema, ya que implica cuatro identificadores diferentes:
“para todos los lenguajes L existe n tal que para toda w perteneciente a L con |w| ≥ n
existe xyz igual a w tal que · · · ”. Podemos interpretar la aplicación del lema de bombeo como un
juego en el que:

1. El jugador 1 selecciona el lenguaje L para demostrar que no es regular.
2. El jugador 2 selecciona n, pero no revela al jugador 1 lo que vale n; el jugador 1 debe
plantear el juego para todos los n posibles.
3. El jugador 1 selecciona w, que puede depender de n y cuya longitud tiene que ser al
menos igual a n.
4. El jugador 2 divide w en x, y y z, teniendo en cuenta las restricciones que se estipulan
en el lema de bombeo; y _=ε y |xy| ≤ n. De nuevo, el jugador 2 no dice al jugador 1 qué valores
tienen x, y y z, aunque debe respetar las restricciones.
5. El jugador 1 “gana” eligiendo un valor de k, que puede ser una función de n, x,y y z, tal
que xykz no pertenezca a L.

Aplicaciones del Lema de Bombeo
Demostrar que el lenguaje Leq que consta de todas las cadenas con un número igual de
ceros que de unos (en ningún orden en particular) no es un lenguaje regular. Siendo el jugador 1
y se debe enfrentar con cualquier elección que haga el jugador 2. Suponiendo que n es la
constante que existiría si Leq fuera regular, de acuerdo con el lema de bombeo; es decir, el
“jugador 2” elige n. El jugador 1 selecciona w = 0n1n, es decir, n ceros seguidos de n unos, una
cadena que seguramente pertenece a Leq.
Ahora el “jugador 2” divide w en xyz. Todo lo que sabemos es que y _= ε y |xy| ≤ n. Sin
embargo, dicha información es muy útil y “gana” de la forma siguiente. Dado que |xy| ≤ n y que
xy procede del principio de w, se sabe que x e y constan sólo de ceros. El lema de bombeo nos
dice que xz pertenece a Leq, si Leq es regular.
Esta conclusión corresponde al caso en que k = 0 en el lema de bombeo. Sin embargo, xz
tiene n unos, ya que todos los unos de w están en z. Pero xz también tiene menos de n ceros,
porque hemos perdido los ceros de y.
Puesto que y _= ε , se sabe que no puede haber más de n−1 ceros entre x y z. Por tanto,
después de suponer que Leq es un lenguaje regular, se ha demostrado un hecho que se sabe que
es falso, que xz pertenece a Leq.

Se Tiene una demostración por reducción al absurdo del hecho de que Leq no es regular.

Definición de las Gramáticas Independientes del Contexto

Existen cuatro componentes importantes en una descripción gramatical de un lenguaje:

1. Un conjunto finito de símbolos que forma las cadenas del lenguaje que se está
definiendo. Este conjunto era {0,1} en el ejemplo de los palíndromos que acabamos de ver.
Denominamos a este conjunto alfabeto terminal o alfabeto de símbolos terminales.
2. Un conjunto finito de variables, denominado también en ocasiones símbolos no
terminales o categorías sintácticas. Cada variable representa un lenguaje; es decir, un conjunto
de cadenas. En el ejemplo anterior, sólo había una variable, P, que hemos empleado para
representar la clase de palíndromos del alfabeto {0,1}.
3. Una de las variables representa el lenguaje que se está definiendo; se denomina
símbolo inicial. Otras variables representan las clases auxiliares de cadenas que se emplean para
definir el lenguaje del símbolo inicial. En el ejemplo anterior, la única variable, P, también es el
símbolo inicial.
4. Un conjunto finito de producciones o reglas que representan la definición recursiva de
un lenguaje. Cada producción consta de:
a) Una variable a la que define (parcialmente) la producción. Esta variable a menudo se
denomina cabeza de la producción.
b) El símbolo de producción→.
c) Una cadena formada por cero o más símbolos terminales y variables. Esta cadena,
denominada cuerpo de la producción, representa una manera de formar cadenas pertenecientes al
lenguaje de la variable de la cabeza. De este modo, dejamos los símbolos terminales invariables
y sustituimos cada una de las variables del cuerpo por una cadena que sabemos que pertenece al
lenguaje de dicha variable.

Los cuatro componentes que acabamos de describir definen una gramática independiente
del contexto, (GIC), o simplemente una gramática, o en inglés CFG, context-free grammar. Se
representa una GIC G mediante sus cuatro componentes, es decir, G = (V,T,P,S), donde V es el
conjunto de variables, T son los símbolos terminales, P es el conjunto de producciones y S es el
símbolo inicial.
El Lema de Bombeo para lenguajes independientes del contexto
Si se considera el lenguaje de los palíndromos. Un palíndromo es una cadena que se lee
igual de izquierda a derecha que de derecha a izquierda, como por ejemplo, otto o
dabalearrozalazorraelabad (“Dábale arroz a la zorra el abad”). Dicho de otra manera, la cadena w
es un palíndromo si y sólo si w = wR. Para hacer las cosas sencillas, consideremos únicamente
los palíndromos descritos con el alfabeto {0,1}. Este lenguaje incluye cadenas del tipo 0110,
11011 y ε , pero no cadenas como 011 o 0101.

Es fácil verificar que el lenguaje Lpal de los palíndromos formados por ceros y unos no
es un lenguaje regular. Para ello, utilizamos el lema de bombeo. Si Lpal es un lenguaje regular,
sea n la constante asociada y consideremos el palíndromo w = 0n10n. Si Lpal es regular,
entonces podemos dividir w en w = xyz, tal que y consta de uno o más ceros del primer grupo.
Por tanto, xz, que también tendría que pertenecer a Lpal si Lpal fuera regular, tendría menos
ceros a la izquierda del único 1 que los que tendría a la derecha del mismo. Por tanto, xz no
puede ser un palíndromo. Luego hemos llegado a una contradicción de la hipótesis establecida,
que Lpal es un lenguaje regular.
Existe una definición recursiva y natural que nos dice cuándo una cadena de ceros y unos
pertenece a Lpal . Se parte de un caso básico estableciendo que unas cuantas cadenas obvias
pertenecen a Lpal , y luego se aplica la idea de que si una cadena es un palíndromo, tiene que
comenzar y terminar con el mismo símbolo. Además, cuando el primer y último símbolos se
eliminan, la cadena resultante también tiene que ser un palíndromo. Es decir,
Base. ε , 0 y 1 son palíndromos.
Paso Inductivo. Si w es un palíndromo, también lo son 0w0 y 1w1. Ninguna cadena es
un palíndromo de ceros y unos, a menos que cumpla el caso base y esta regla de inducción.

Una gramática independiente del contexto es una notación formal que sirve para expresar
las definiciones recursivas de los lenguajes. Una gramática consta de una o más variables que
representan las clases de cadenas, es decir, los lenguajes. En este ejemplo sólo necesitamos una
variable P, que representa el conjunto de palíndromos; ésta es la clase de cadenas que forman el
lenguaje Lpal . Existen reglas que establecen cómo se construyen las cadenas de cada clase. La
construcción puede emplear símbolos del alfabeto, cadenas que se sabe que pertenecen a una de
las clases, o ambos elementos.
El teorema, conocido como “lema de bombeo para lenguajes independientes del
contexto”, establece que en cualquier cadena lo suficientemente larga de un LIC, es posible
encontrar a los sumo dos subcadenas cortas y muy próximas que pueden “bombearse” en
tándem. Es decir, se puede repetir ambas cadenas i veces, para cualquier entero i, y la cadena
resultante pertenecerá al lenguaje.
El Tamaño de los Árboles de Derivación

El primer paso para obtener un lema de bombeo para los LIC consiste en examinar la
forma y el tamaño de los árboles de derivación. Una de las aplicaciones de la FNC es transformar
los árboles de derivación en árboles binarios. Estos árboles tienen propiedades interesantes y
aquí vamos a aprovechar una de ellas.
Enunciado del Lema de Bombeo
El lema de bombeo para los LIC es bastante similar al lema de bombeo para los lenguajes
regulares, pero se descomponen cada cadena z del LIC L en cinco partes y bombeamos en
tándem la segunda y la cuarta partes.

Lema de bombeo para los lenguajes independientes del contexto. Sea L un LIC. Entonces
existe una constante n tal que si z es cualquier cadena de L tal que |z| es al menos n, entonces
podemos escribir z = uvwxy, sujeta a las siguientes condiciones:
1. |vwx| ≤ n. Es decir, la parte central no es demasiado larga.
2. vx _= ε . Puesto que v y x son las partes que se van a “bombear”, esta condición
establece que al menos una de las cadenas que se van a bombear no tiene que ser vacía.
3. Para todo i ≥ 0, uviwxiy pertenece a L. Es decir, las dos cadenas v y x pueden
“bombearse” cualquier número de veces, incluyendo cero, y la cadena resultante pertenecerá a L.

Demostración
El primer paso consiste en determinar una gramática G en la forma normal de Chomsky
para L. Técnicamente, no se puede determinar tal gramática si L es el LIC /0 o {ε }. Sin embargo,
si L = /0 entonces el enunciado del teorema, que establece que una cadena z de L no puede
violarse, ya que no existe dicha cadena z en / 0. Además la gramática en la FNC G generará L−{ε
}, pero de nuevo esto no es importante, ya que sin dudas se seleccionara n > 0, en cuyo caso z no
puede ser ε de ninguna manera.
Se parte de una gramática en la FNC G = (V,T,P,S) tal que L(G) = L−{ε } y suponiendo
que G tiene m variables. Se Elige n = 2m. A continuación, se supone que z de L tiene una
longitud al menos igual a n. Un árbol de derivación así no puede tener un resultado z, porque z es
demasiado larga. Por tanto, cualquier árbol de derivación con resultado z tiene un camino de
longitud al menos igual a m+1.

La cadena w es el resultado del subárbol con raíz en Aj . Las cadenas v y x son las
cadenas a la izquierda y a la derecha, respectivamente, de w en el resultado del subárbol más
largo con raíz en Ai. Observe que, dado que no existen producciones unitarias, v y x no pueden
ser ambas ε , aunque una sí podría serlo. Por último, u e y son aquellas partes de z que están a la
izquierda y a la derecha, respectivamente, del subárbol con raíz en Ai.

Si Ai = Aj = A, entonces se puede construir nuevos árboles de derivación a partir del árbol
original. Primero se puede reemplazar el subárbol con raíz en Ai, lo que da como resultado vwx,
por el subárbol con raíz en Aj , que tiene como resultado w. La razón de poder hacer esto es que
ambos árboles tienen A como raíz.

El detalle que queda es la condición (1), que establece que |vwx| ≤ n. Sin embargo,
elegimos Ai cerca de la parte inferior del árbol; es decir, k−i ≤ m. Por tanto, el camino más largo
en el subárbol con raíz en Ai no es mayor que m+1. De acuerdo con el Teorema 7.17, el subárbol
con raíz en Ai tiene un resultado cuya longitud no es mayor que 2m = n.
Conclusión
El lema de bombeo para las expresiones regulares es una simplificación de un resultado
de los lenguajes independientes del contexto obtenido por Bar- Hillel, Perles y Shamir

Si un lenguaje es regular, entonces toda cadena lo suficientemente larga del lenguaje tiene
una subcadena no vacía que puede ser “bombeada”, es decir, repetida cualquier número de veces
siempre y cuando las cadenas resultantes pertenezcan también al lenguaje. Este hecho puede
utilizarse para demostrar que muchos lenguajes no son regulares.
El lema de bombeo. En cualquier LIC, es posible encontrar, dentro de cualquier cadena lo
suficientemente larga del lenguaje, una subcadena corta tal que los dos extremos de dicha
subcadena puedan ser “bombeados” en tándem; es decir, cada uno de ellos puede repetirse el
número de veces que se desee. Las dos cadenas que van a bombearse no pueden ser ambas ε .
Este lema, y su versión más potente, conocida como el lema de Ogden permiten demostrar que
muchos lenguajes no son independientes del contexto.
Referencias

Conocimiento con todos y para todos (S.F). Lenguaje Regular. Recuperado el 20 de Febrero del
2014 de: http://www.ecured.cu/index.php/Lenguaje_regular

Elena Jurado Málaga (2008). Teoría de Automatas. Recuperado el 22 de Febrero del 2014 de:
http://campusvirtual.unex.es/ebooks/files/file/TeoriaAutomatas.pdf

Rubén Béjar Hernández (S.F). El lema de bombeo para lenguajes regulares. Recuperado el 21 de
Febrero del 2014 de: http://webdiis.unizar.es/asignaturas/LGA

John E. Hopcroft (S.F). Teoría de autómatas, lenguajes y computación. Recuperado el 20 de
Febrero

del

2014

de:

http://computacion.cs.cinvestav.mx/~efranco/docencia/teoriacomputacional/files/books/T
eoriaDeAutomatas,lenguajesYComputacion-Hopcroft.pdf

Más contenido relacionado

La actualidad más candente

Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y Problemas
Raul
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
Ricardo Quintero
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
Kenia Adams
 

La actualidad más candente (20)

Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Autómatas de pila
Autómatas de pila Autómatas de pila
Autómatas de pila
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Gramáticas formales
Gramáticas formales Gramáticas formales
Gramáticas formales
 
Lenguajes no regulares
Lenguajes no regularesLenguajes no regulares
Lenguajes no regulares
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y Problemas
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Teoría de autómatas
Teoría de autómatasTeoría de autómatas
Teoría de autómatas
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
Automatas de pila
Automatas de pilaAutomatas de pila
Automatas de pila
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Lenguajes de una maquina de turing
Lenguajes de una maquina de turingLenguajes de una maquina de turing
Lenguajes de una maquina de turing
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 

Destacado (10)

Biología Computacional
Biología ComputacionalBiología Computacional
Biología Computacional
 
De qué tamaño es mi problema
De qué tamaño es mi problemaDe qué tamaño es mi problema
De qué tamaño es mi problema
 
Gramáticas dependiente del contexto
Gramáticas dependiente del contextoGramáticas dependiente del contexto
Gramáticas dependiente del contexto
 
GRAMATICA GENERATIVA Y AUTOMATA DE PILA
GRAMATICA GENERATIVA Y AUTOMATA DE  PILAGRAMATICA GENERATIVA Y AUTOMATA DE  PILA
GRAMATICA GENERATIVA Y AUTOMATA DE PILA
 
Practica 11 Laboratorio de Computación para Ingenieros FI
Practica 11 Laboratorio de Computación para Ingenieros FIPractica 11 Laboratorio de Computación para Ingenieros FI
Practica 11 Laboratorio de Computación para Ingenieros FI
 
Gramatica libre de contexto
Gramatica libre de contextoGramatica libre de contexto
Gramatica libre de contexto
 
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
 
Quimica 1
Quimica 1Quimica 1
Quimica 1
 
Mol y calculos químicos
Mol  y  calculos químicosMol  y  calculos químicos
Mol y calculos químicos
 
Biologia computacional
Biologia computacionalBiologia computacional
Biologia computacional
 

Similar a Lema de bombeo

Jerarquia de chomsky
Jerarquia de chomsky Jerarquia de chomsky
Jerarquia de chomsky
daniel9026
 
Gramática de contexto libre abel rodriguez (08 1297)
Gramática de contexto libre abel rodriguez (08 1297)Gramática de contexto libre abel rodriguez (08 1297)
Gramática de contexto libre abel rodriguez (08 1297)
abelrod12
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
Elbery
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
Juanchi Novas
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
Santiago Ramirez
 

Similar a Lema de bombeo (20)

Jerarquia de chomsky
Jerarquia de chomsky Jerarquia de chomsky
Jerarquia de chomsky
 
Gramática de contexto libre abel rodriguez (08 1297)
Gramática de contexto libre abel rodriguez (08 1297)Gramática de contexto libre abel rodriguez (08 1297)
Gramática de contexto libre abel rodriguez (08 1297)
 
Presentacion automata grupo 1 unibe 02-02-2018
Presentacion automata grupo 1   unibe 02-02-2018Presentacion automata grupo 1   unibe 02-02-2018
Presentacion automata grupo 1 unibe 02-02-2018
 
Preguntas tc
Preguntas tcPreguntas tc
Preguntas tc
 
Unidad 6 introduccion a los lenguajes formales
Unidad 6 introduccion a los lenguajes formalesUnidad 6 introduccion a los lenguajes formales
Unidad 6 introduccion a los lenguajes formales
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
lenguajes formales
lenguajes formaleslenguajes formales
lenguajes formales
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1
 
Tarea111
Tarea111Tarea111
Tarea111
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
 
Investigación Expositiva
Investigación ExpositivaInvestigación Expositiva
Investigación Expositiva
 
Tipos de lenguaje formal según Chomsky
Tipos de lenguaje formal según ChomskyTipos de lenguaje formal según Chomsky
Tipos de lenguaje formal según Chomsky
 
Automatas
AutomatasAutomatas
Automatas
 
Intro lógica de predicados
Intro lógica de predicadosIntro lógica de predicados
Intro lógica de predicados
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
 
Omar portillo hijo de dios
Omar portillo hijo de diosOmar portillo hijo de dios
Omar portillo hijo de dios
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
 
Unidad 7 lenguajes gramaticas y automatas
Unidad 7 lenguajes gramaticas y automatasUnidad 7 lenguajes gramaticas y automatas
Unidad 7 lenguajes gramaticas y automatas
 
Gramaticas
GramaticasGramaticas
Gramaticas
 
Expresiones regulares y gramaticas
Expresiones regulares y gramaticasExpresiones regulares y gramaticas
Expresiones regulares y gramaticas
 

Lema de bombeo

  • 1. Lema de Bombeo Bayron Rubén De León Pérez 12-0542 Josué Augusto Puntiel Mena 13-0972 Profesora Rina Familia Lenguajes Formales y Teoría de Autómatas Universidad Iberoamericana (UNIBE) Santo Domingo, República Dominicana 25 de Febrero del 2014|
  • 2. Índice Introducción …………………………………………………………………………………..…...…… 3 Lenguaje Regular ………………………………………………………………………………..……… 4 Importancia de los Lenguajes Regulares ……………………………………………………………… 5 Cómo Demostrar que un Lenguaje no es Regular …………………………………………………… 5 El lema de bombeo para los lenguajes regulares ………………………………………………..…… 5 Teorema……………………………………………………………………………………………...…… 6 Demostración de que un lenguaje no es regular ……………………………………………………… 7 Ejemplo de demostración de que un lenguaje no es regular …………………………………...…… 8 El Lema de Bombeo para los Lenguajes Regulares ……………………………………….………… 9 Demostración…………………………………………………………………………………...…...…… 9 El Lema de Bombeo como un juego entre adversarios ……………………………………..……… 11 Aplicaciones del Lema de Bombeo ……………………………………………………………..…… 11 Definición de las Gramáticas Independientes del Contexto………………………………..………. 12 El Lema de Bombeo para lenguajes independientes del contexto ………………………………… 13 El Tamaño de los Árboles de Derivación……………………………………………………….…… 14 Enunciado del Lema de Bombeo ………………………………………………………………..…… 15 Demostración……………………………………………………….……………………………...…… 15 Conclusión……………………………………………………..…………………………………..…… 17 Referencias………………………………………………………………………..………………..…… 18
  • 3. Introducción La teoría de autómatas es el estudio de dispositivos de cálculo abstractos, es decir, de las “máquinas”. En las décadas de los años cuarenta y cincuenta, una serie de investigadores estudiaron las máquinas más simples, las cuales todavía hoy denominamos “autómatas finitos”. Originalmente, estos autómatas se propusieron para modelar el funcionamiento del cerebro y, posteriormente, resultaron extremadamente útiles para muchos otros propósitos. Todos estos desarrollos teóricos afectan directamente a lo que los expertos en computadoras hacen. Algunos de los conceptos, como el de autómata finito y determinados tipos de gramáticas formales, se emplean en el diseño y la construcción de importantes clases de software. El lema de bombeo para lenguajes regulares enuncia una propiedad que cumplen todos los lenguajes regulares infinitos (y también algunos lenguajes que no son regulares). Gracias a este lema podremos demostrar que ciertos lenguajes infinitos no son regulares. Es importante hacer notar que el lema de bombeo es una herramienta adecuada para demostrar que un lenguaje no es regular, pero no lo será para demostrar que un lenguaje si es regular (por el hecho de que existen algunos lenguajes no regulares que la cumplen). Por tanto, si un lenguaje no cumple el lema de bombeo no es regular, pero si lo cumple no podremos decir si es o no regular.
  • 4. Lenguaje Regular Se dice que un lenguaje es regular si y sólo si se cumple cualquiera de las siguientes proposiciones:  Tiene al menos una gramática regular G que lo produce.  Puede ser reconocido por un autómata finito A.  Existe una expresión regular Er que representa a todas las cadenas de L. Lenguaje regular. En Lingüística, Matemáticas e Informática y en la jerarquía de Chomsky se refiere a los lenguajes de tipo 3, aquellos que pueden representarse mediante gramáticas regulares, autómatas finitos o expresiones regulares. Son los lenguajes formales más simples, con los mecanismos de representación y reconocimiento más estudiados. Su aplicación práctica en la teoría y construcción de intérpretes y compiladores de lenguajes de programación o de especificación o formato de información, especialmente como microcomponentes del analizador lexicográfico que detecta los tókenes como constantes numéricas, cadenas de texto, operadores, palabras reservadas (keywords), separadores, etc. Pero también se puede apreciar su uso en máquinas expendedoras, teléfonos públicos, calculadoras y otros artefactos electromecánicos. También puede realizarse una definición recursiva-constructiva de los lenguajes regulares mediante el álgebra de lenguajes formales. Un lenguaje regular sobre un alfabeto T ó LR(T) es:  El lenguaje vacío {}.  El lenguaje conformado por la cadena vacía  Un lenguaje {x} conformado por un único símbolo x de T.  Si A y B son lenguajes lenguajes), Archivo: A regulares unión o lenguaje trivial. sobre T, B.gif (Unión entonces AB (Concatenación de de de lenguajes), A* (Clausura lenguaje o Estrella de Kleene) son también lenguajes regulares sobre T.  Cualquier otro lenguaje que pueda obtenerse a partir de 1 a 4.
  • 5. Importancia de los Lenguajes Regulares La existencia y formalización de los lenguajes regulares (LR) y su vinculación con otros artefactos lingüísticos-matemáticos ya bien formalizados, estudiados e incluso llevados a la práctica ha sido de vital importancia en el ulterior desarrollo de los mecanismos de procesamiento de lenguajes de computadora, fundamentalmente en los analizadores lexicográficos gracias a la posibilidad de derivar el reconocimiento de los LR mediante autómatas finitos que son fáciles de implementar computacionalmente con mecanismos simples y rápidos, óptimos en la obtención de parsers veloces y robustos que a su vez le ofrecen a los desarrolladores información detallada de los errores léxicos, sintácticos e incluso advierten sobre errores semánticos. Lo mismo sucede por ejemplo con las expresiones regulares implementadas ya en muchos Lenguaje de programación de propósito general modernos que permiten a los desarrolladores de lenguajes mecanismos muy eficientes para la obtención intuitiva de partes de compiladores que reconocen los tókenes o partículas lexicales del código fuente como fase del proceso completo de interpretación o compilado, según sea el caso Cómo Demostrar que un Lenguaje no es Regular No todo lenguaje es un lenguaje regular. El lema de bombeo permite demostrar que determinados lenguajes no son regulares. El lema de bombeo para los lenguajes regulares El lema de bombeo para lenguajes regulares enuncia una propiedad que cumplen todos los lenguajes regulares infinitos (y también algunos lenguajes que no son regulares). Gracias a este lema podremos demostrar que ciertos lenguaje infinitos no son regulares. Es importante hacer notar que el lema de bombeo es una herramienta adecuada para demostrar que un lenguaje no es regular, pero no lo será para demostrar que un lenguaje si es regular (por el hecho de que existen algunos lenguajes no regulares que la cumplen). Por tanto, si un lenguaje no cumple el lema de bombeo no es regular, pero si lo cumple no podremos decir si es o no regular. Considerando el lenguaje L01 = {0n1n | n≥1}. Este lenguaje contiene las cadenas 01, 0011, 000111, etc., que constan de uno o más ceros seguidos de un número igual de unos.
  • 6. Establecemos que L01 no es un lenguaje regular. El argumento intuitivo es que si L01 fuera regular, entonces L01 sería el lenguaje de algún AFD A, que tendría un determinado número de estados, digamos k estados. Imagine que este autómata recibe k ceros como entrada. Después de recibir los k+1 prefijos de la entrada: ε,0,00,...,0k se encontrará en un cierto estado. Dado que sólo existen k estados distintos, el principio del juego de las sillas nos dice que después de leer dos prefijos diferentes, por ejemplo, 0i y 0j, A tiene que encontrarse en el mismo estado, por ejemplo q. Sin embargo, en lugar de esto, suponemos que después de leer i o j ceros, el autómata A comienza a recibir unos como entrada. Después de recibir i unos, debe aceptar si previamente ha recibido i ceros, pero no si ha recibido j ceros. Puesto que estaba en el estado q cuando comenzaron a llegar unos, no puede “recordar” si había recibido i o j ceros, por lo que podemos “engañar” a A y hacerle cometer un error: aceptar cuando no debe hacerlo o no aceptar cuando debería hacerlo. El argumento anterior es de carácter informal, pero puede precisarse. Sin embargo, puede llegarse a la misma conclusión, que el lenguaje L01 no es un lenguaje regular, utilizando un resultado general de la forma siguiente. Teorema El lema de bombeo para lenguajes regulares) Sea L un lenguaje regular. Existe entonces una constante n (que depende de L) tal que para toda cadena w perteneciente a L con |w| ≥n, podemos descomponer w en tres cadenas, W = xyz, tales que:  y ≠ ε (o dicho de otro modo, que |y| ≥ 1),  |xy| <= n  Para cualquier k ≥ 0, la cadena xy z pertenece a L. k
  • 7. Más formalmente: ∀ lenguaje regular infinito L sobre un alfabeto Σ  ∃n∈N/  ∀ w ∈ L / |w| ≥ n  ∃ x, y ,z ∈ Σ* / w = xyz, y ≠ ε, |xy| <= n,  ∀ k ≥ 0, xy z ∈ L k O sea que para cualquier cadena de L lo bastante larga, siempre podremos encontrar una partición en tres subcadenas, con una no vacía en el medio (la y) que no está demasiado lejos del comienzo de la palabra, que podremos “bombear”; es decir, que si se repite la subcadena y cualquier número de veces, la cadena resultante también pertenecerá a L. Demostración de que un lenguaje no es regular Dado que para todo lenguaje regular infinito se cumple el lema de bombeo, si se da un lenguaje infinito y se demuestra que para él no se cumple, se habra demostrado que no es un lenguaje regular. Como el lema de bombeo es una propiedad que se cumple para todas las cadenas de longitud mayor o igual a cierta n, bastará encontrar una cadena de ese lenguaje, de longitud mayor o igual a esa n, que no se pueda “bombear” para demostrar que el lenguaje no es regular. Con esta idea en mente, los pasos a dar para demostrar que un lenguaje dado no es regular son los siguientes: 1. Elegir una palabra w que pertenezca al lenguaje dado. Podemos elegir cualquier palabra del lenguaje, pero debe ser una cuya longitud sea mayor o igual que una constante n que desconocemos (la constante del lema de bombeo). Como desconocemos n, lo habitual será elegir una palabra en función de un n cualquiera y cuya longitud sea mayor o igual que n.
  • 8. 2. El lema de bombeo dice que si el lenguaje fuera regular, podríamos encontrar una forma de partir esa palabra w en tres, cumpliendo ciertas restricciones, y que esa partición sería bombeable. Como queremos demostrar que el lenguaje no es regular, tendremos que demostrar que no hay ninguna forma de partir la palabra en tres cumpliendo las restricciones del lema, y que después se pueda bombear siempre. 3. Finalmente bastará con encontrar una constante k ≥ 0 que haga que ninguna de las particiones posibles de w sea bombeable. Más formalmente, para demostrar que un lenguaje L sobre un alfabeto Σ no es regular habrá que demostrar que: ∀ n∈N ∃ w ∈ L / |w| ≥ n, ∀ x, y ,z ∈ Σ* / w = xyz, y ≠ ε, |xy| <= n, k ∃ k ≥ 0 / xy z ∉ L Es importante hacer notar que en esta demostración, por reducción al absurdo, de que un lenguaje no es regular, los cuantificadores existenciales “para todo” y “existe” están alternados al revés que en el enunciado del lema. Esto es, intuitivamente, porque se esta demostrando lo contrario que el lema de bombeo: éste enuncia una propiedad que cumplen todos los lenguajes regulares y la demostración precedente demuestra que un lenguaje no es regular, o sea que no cumple esa propiedad. Ejemplo de demostración de que un lenguaje no es regular Sea el lenguaje L = {a2nbn | n ≥ 0}. Demostrar que L no es regular. Suponiendo que el lenguaje es regular. Si lo es, y como es infinito, para él se cumplirá el lema de bombeo. Sea por tanto n ∈ N la constante del lema de bombeo para L (constante que no se conoce).
  • 9. Eligiendo una palabra que pertenezca a L y de longitud mayor o igual a n: 2n n w = a b , tenemos que w ∈ L y |w| = 3n y por tanto |w| ≥ n, sea cual sea n. El Lema de Bombeo para los Lenguajes Regulares Considerando el lenguaje L01 = {0n1n | n ≥ 1}. Este lenguaje contiene las cadenas 01, 0011, 000111, etc., que constan de uno o más ceros seguidos de un número igual de unos. Establecemos que L01 no es un lenguaje regular. El argumento intuitivo es que si L01 fuera regular, entonces L01 sería el lenguaje de algún AFD A, que tendría un determinado número de estados, digamos k estados. Imaginar que este autómata recibe k ceros como entrada. Después de recibir los k+1 prefijos de la entrada: ε ,0,00, . . . ,0k se encontrará en un cierto estado. Dado que sólo existen k estados distintos, el principio del juego de las sillas nos dice que después de leer dos prefijos diferentes, por ejemplo, 0i y 0j, A tiene que encontrarse en el mismo estado, por ejemplo q. Sin embargo, en lugar de esto, se supone que después de leer i o j ceros, el autómata A comienza a recibir unos como entrada. Después de recibir i unos, debe aceptar si previamente ha recibido i ceros, pero no si ha recibido j ceros. Puesto que estaba en el estado q cuando comenzaron a llegar unos, no puede “recordar” si había recibido i o j ceros, por lo que podemos “engañar” a A y hacerle cometer un error: aceptar cuando no debe hacerlo o no aceptar cuando debería hacerlo. El argumento anterior es de carácter informal, pero puede precisarse. Sin embargo, puede llegarse a la misma conclusión, que el lenguaje L01 no es un lenguaje regular, utilizando un resultado general de la forma siguiente. Demostración Supongamos que L es regular. Entonces L =L(A) para algún AFD A. Supongamos que A tiene n estados. Consideremos ahora cualquier cadena w de longitud n o mayor, por ejemplo w = a1a2 · · ·am, donde m ≥ n y cada ai es un símbolo de entrada. Para i = 0,1, . . . ,n definimos el estado pi como _ δ (q0,a1a2 · · ·ai), donde δ es la función de transición de A y q0 es el estado
  • 10. inicial de A. Es decir, pi es el estado en que se encuentra A después de leer los primeros i símbolos de w. Observe que p0 = q0. Por el principio del juego de las sillas, no es posible que los n+1 pi para i = 0,1, . . . ,n sean diferentes, ya que sólo existen n estados distintos. Por tanto, podemos determinar dos enteros distintos i y j, con 0 ≤ i< j ≤ n, tales que pi = pj . Ahora podemos descomponer w = xyz como sigue: 1. x = a1a2 · · ·ai. 2. y = ai+1ai+2 · · ·aj . 3. z = aj+1aj+2 · · ·am. Es decir, x lleva a pi una vez; y lleva desde pi a pi de nuevo (ya que pi también es pj) y z es el resto de w. Considerando ahora lo que ocurre si el autómata A recibe la entrada xykz para cualquier k ≥ 0. Si k = 0, entonces el autómata va desde el estado inicial q0 (que también es p0) hasta pi para la entrada x. Puesto que pi también es pj , al leer la entrada z. Por tanto, A acepta xz. Si k > 0, entonces A va desde q0 hasta pi para la entrada x, va en círculo desde pi hasta pi k veces para la entrada yk, y luego pasa al estado de aceptación para la entrada z. Por tanto, para cualquier k ≥ 0, A también acepta xykz; es decir, xykz pertenece a L.
  • 11. El Lema de Bombeo como un juego entre adversarios Un teorema cuya proposición implica varias alternativas de cuantificadores “para todo” y “existe” puede interpretarse como un juego entre dos personas. El lema de bombeo es un ejemplo importante de este tipo de teorema, ya que implica cuatro identificadores diferentes: “para todos los lenguajes L existe n tal que para toda w perteneciente a L con |w| ≥ n existe xyz igual a w tal que · · · ”. Podemos interpretar la aplicación del lema de bombeo como un juego en el que: 1. El jugador 1 selecciona el lenguaje L para demostrar que no es regular. 2. El jugador 2 selecciona n, pero no revela al jugador 1 lo que vale n; el jugador 1 debe plantear el juego para todos los n posibles. 3. El jugador 1 selecciona w, que puede depender de n y cuya longitud tiene que ser al menos igual a n. 4. El jugador 2 divide w en x, y y z, teniendo en cuenta las restricciones que se estipulan en el lema de bombeo; y _=ε y |xy| ≤ n. De nuevo, el jugador 2 no dice al jugador 1 qué valores tienen x, y y z, aunque debe respetar las restricciones. 5. El jugador 1 “gana” eligiendo un valor de k, que puede ser una función de n, x,y y z, tal que xykz no pertenezca a L. Aplicaciones del Lema de Bombeo Demostrar que el lenguaje Leq que consta de todas las cadenas con un número igual de ceros que de unos (en ningún orden en particular) no es un lenguaje regular. Siendo el jugador 1 y se debe enfrentar con cualquier elección que haga el jugador 2. Suponiendo que n es la constante que existiría si Leq fuera regular, de acuerdo con el lema de bombeo; es decir, el “jugador 2” elige n. El jugador 1 selecciona w = 0n1n, es decir, n ceros seguidos de n unos, una cadena que seguramente pertenece a Leq.
  • 12. Ahora el “jugador 2” divide w en xyz. Todo lo que sabemos es que y _= ε y |xy| ≤ n. Sin embargo, dicha información es muy útil y “gana” de la forma siguiente. Dado que |xy| ≤ n y que xy procede del principio de w, se sabe que x e y constan sólo de ceros. El lema de bombeo nos dice que xz pertenece a Leq, si Leq es regular. Esta conclusión corresponde al caso en que k = 0 en el lema de bombeo. Sin embargo, xz tiene n unos, ya que todos los unos de w están en z. Pero xz también tiene menos de n ceros, porque hemos perdido los ceros de y. Puesto que y _= ε , se sabe que no puede haber más de n−1 ceros entre x y z. Por tanto, después de suponer que Leq es un lenguaje regular, se ha demostrado un hecho que se sabe que es falso, que xz pertenece a Leq. Se Tiene una demostración por reducción al absurdo del hecho de que Leq no es regular. Definición de las Gramáticas Independientes del Contexto Existen cuatro componentes importantes en una descripción gramatical de un lenguaje: 1. Un conjunto finito de símbolos que forma las cadenas del lenguaje que se está definiendo. Este conjunto era {0,1} en el ejemplo de los palíndromos que acabamos de ver. Denominamos a este conjunto alfabeto terminal o alfabeto de símbolos terminales. 2. Un conjunto finito de variables, denominado también en ocasiones símbolos no terminales o categorías sintácticas. Cada variable representa un lenguaje; es decir, un conjunto de cadenas. En el ejemplo anterior, sólo había una variable, P, que hemos empleado para representar la clase de palíndromos del alfabeto {0,1}. 3. Una de las variables representa el lenguaje que se está definiendo; se denomina símbolo inicial. Otras variables representan las clases auxiliares de cadenas que se emplean para definir el lenguaje del símbolo inicial. En el ejemplo anterior, la única variable, P, también es el símbolo inicial. 4. Un conjunto finito de producciones o reglas que representan la definición recursiva de un lenguaje. Cada producción consta de:
  • 13. a) Una variable a la que define (parcialmente) la producción. Esta variable a menudo se denomina cabeza de la producción. b) El símbolo de producción→. c) Una cadena formada por cero o más símbolos terminales y variables. Esta cadena, denominada cuerpo de la producción, representa una manera de formar cadenas pertenecientes al lenguaje de la variable de la cabeza. De este modo, dejamos los símbolos terminales invariables y sustituimos cada una de las variables del cuerpo por una cadena que sabemos que pertenece al lenguaje de dicha variable. Los cuatro componentes que acabamos de describir definen una gramática independiente del contexto, (GIC), o simplemente una gramática, o en inglés CFG, context-free grammar. Se representa una GIC G mediante sus cuatro componentes, es decir, G = (V,T,P,S), donde V es el conjunto de variables, T son los símbolos terminales, P es el conjunto de producciones y S es el símbolo inicial. El Lema de Bombeo para lenguajes independientes del contexto Si se considera el lenguaje de los palíndromos. Un palíndromo es una cadena que se lee igual de izquierda a derecha que de derecha a izquierda, como por ejemplo, otto o dabalearrozalazorraelabad (“Dábale arroz a la zorra el abad”). Dicho de otra manera, la cadena w es un palíndromo si y sólo si w = wR. Para hacer las cosas sencillas, consideremos únicamente los palíndromos descritos con el alfabeto {0,1}. Este lenguaje incluye cadenas del tipo 0110, 11011 y ε , pero no cadenas como 011 o 0101. Es fácil verificar que el lenguaje Lpal de los palíndromos formados por ceros y unos no es un lenguaje regular. Para ello, utilizamos el lema de bombeo. Si Lpal es un lenguaje regular, sea n la constante asociada y consideremos el palíndromo w = 0n10n. Si Lpal es regular, entonces podemos dividir w en w = xyz, tal que y consta de uno o más ceros del primer grupo. Por tanto, xz, que también tendría que pertenecer a Lpal si Lpal fuera regular, tendría menos ceros a la izquierda del único 1 que los que tendría a la derecha del mismo. Por tanto, xz no puede ser un palíndromo. Luego hemos llegado a una contradicción de la hipótesis establecida, que Lpal es un lenguaje regular.
  • 14. Existe una definición recursiva y natural que nos dice cuándo una cadena de ceros y unos pertenece a Lpal . Se parte de un caso básico estableciendo que unas cuantas cadenas obvias pertenecen a Lpal , y luego se aplica la idea de que si una cadena es un palíndromo, tiene que comenzar y terminar con el mismo símbolo. Además, cuando el primer y último símbolos se eliminan, la cadena resultante también tiene que ser un palíndromo. Es decir, Base. ε , 0 y 1 son palíndromos. Paso Inductivo. Si w es un palíndromo, también lo son 0w0 y 1w1. Ninguna cadena es un palíndromo de ceros y unos, a menos que cumpla el caso base y esta regla de inducción. Una gramática independiente del contexto es una notación formal que sirve para expresar las definiciones recursivas de los lenguajes. Una gramática consta de una o más variables que representan las clases de cadenas, es decir, los lenguajes. En este ejemplo sólo necesitamos una variable P, que representa el conjunto de palíndromos; ésta es la clase de cadenas que forman el lenguaje Lpal . Existen reglas que establecen cómo se construyen las cadenas de cada clase. La construcción puede emplear símbolos del alfabeto, cadenas que se sabe que pertenecen a una de las clases, o ambos elementos. El teorema, conocido como “lema de bombeo para lenguajes independientes del contexto”, establece que en cualquier cadena lo suficientemente larga de un LIC, es posible encontrar a los sumo dos subcadenas cortas y muy próximas que pueden “bombearse” en tándem. Es decir, se puede repetir ambas cadenas i veces, para cualquier entero i, y la cadena resultante pertenecerá al lenguaje. El Tamaño de los Árboles de Derivación El primer paso para obtener un lema de bombeo para los LIC consiste en examinar la forma y el tamaño de los árboles de derivación. Una de las aplicaciones de la FNC es transformar los árboles de derivación en árboles binarios. Estos árboles tienen propiedades interesantes y aquí vamos a aprovechar una de ellas.
  • 15. Enunciado del Lema de Bombeo El lema de bombeo para los LIC es bastante similar al lema de bombeo para los lenguajes regulares, pero se descomponen cada cadena z del LIC L en cinco partes y bombeamos en tándem la segunda y la cuarta partes. Lema de bombeo para los lenguajes independientes del contexto. Sea L un LIC. Entonces existe una constante n tal que si z es cualquier cadena de L tal que |z| es al menos n, entonces podemos escribir z = uvwxy, sujeta a las siguientes condiciones: 1. |vwx| ≤ n. Es decir, la parte central no es demasiado larga. 2. vx _= ε . Puesto que v y x son las partes que se van a “bombear”, esta condición establece que al menos una de las cadenas que se van a bombear no tiene que ser vacía. 3. Para todo i ≥ 0, uviwxiy pertenece a L. Es decir, las dos cadenas v y x pueden “bombearse” cualquier número de veces, incluyendo cero, y la cadena resultante pertenecerá a L. Demostración El primer paso consiste en determinar una gramática G en la forma normal de Chomsky para L. Técnicamente, no se puede determinar tal gramática si L es el LIC /0 o {ε }. Sin embargo, si L = /0 entonces el enunciado del teorema, que establece que una cadena z de L no puede violarse, ya que no existe dicha cadena z en / 0. Además la gramática en la FNC G generará L−{ε }, pero de nuevo esto no es importante, ya que sin dudas se seleccionara n > 0, en cuyo caso z no puede ser ε de ninguna manera.
  • 16. Se parte de una gramática en la FNC G = (V,T,P,S) tal que L(G) = L−{ε } y suponiendo que G tiene m variables. Se Elige n = 2m. A continuación, se supone que z de L tiene una longitud al menos igual a n. Un árbol de derivación así no puede tener un resultado z, porque z es demasiado larga. Por tanto, cualquier árbol de derivación con resultado z tiene un camino de longitud al menos igual a m+1. La cadena w es el resultado del subárbol con raíz en Aj . Las cadenas v y x son las cadenas a la izquierda y a la derecha, respectivamente, de w en el resultado del subárbol más largo con raíz en Ai. Observe que, dado que no existen producciones unitarias, v y x no pueden ser ambas ε , aunque una sí podría serlo. Por último, u e y son aquellas partes de z que están a la izquierda y a la derecha, respectivamente, del subárbol con raíz en Ai. Si Ai = Aj = A, entonces se puede construir nuevos árboles de derivación a partir del árbol original. Primero se puede reemplazar el subárbol con raíz en Ai, lo que da como resultado vwx, por el subárbol con raíz en Aj , que tiene como resultado w. La razón de poder hacer esto es que ambos árboles tienen A como raíz. El detalle que queda es la condición (1), que establece que |vwx| ≤ n. Sin embargo, elegimos Ai cerca de la parte inferior del árbol; es decir, k−i ≤ m. Por tanto, el camino más largo en el subárbol con raíz en Ai no es mayor que m+1. De acuerdo con el Teorema 7.17, el subárbol con raíz en Ai tiene un resultado cuya longitud no es mayor que 2m = n.
  • 17. Conclusión El lema de bombeo para las expresiones regulares es una simplificación de un resultado de los lenguajes independientes del contexto obtenido por Bar- Hillel, Perles y Shamir Si un lenguaje es regular, entonces toda cadena lo suficientemente larga del lenguaje tiene una subcadena no vacía que puede ser “bombeada”, es decir, repetida cualquier número de veces siempre y cuando las cadenas resultantes pertenezcan también al lenguaje. Este hecho puede utilizarse para demostrar que muchos lenguajes no son regulares. El lema de bombeo. En cualquier LIC, es posible encontrar, dentro de cualquier cadena lo suficientemente larga del lenguaje, una subcadena corta tal que los dos extremos de dicha subcadena puedan ser “bombeados” en tándem; es decir, cada uno de ellos puede repetirse el número de veces que se desee. Las dos cadenas que van a bombearse no pueden ser ambas ε . Este lema, y su versión más potente, conocida como el lema de Ogden permiten demostrar que muchos lenguajes no son independientes del contexto.
  • 18. Referencias Conocimiento con todos y para todos (S.F). Lenguaje Regular. Recuperado el 20 de Febrero del 2014 de: http://www.ecured.cu/index.php/Lenguaje_regular Elena Jurado Málaga (2008). Teoría de Automatas. Recuperado el 22 de Febrero del 2014 de: http://campusvirtual.unex.es/ebooks/files/file/TeoriaAutomatas.pdf Rubén Béjar Hernández (S.F). El lema de bombeo para lenguajes regulares. Recuperado el 21 de Febrero del 2014 de: http://webdiis.unizar.es/asignaturas/LGA John E. Hopcroft (S.F). Teoría de autómatas, lenguajes y computación. Recuperado el 20 de Febrero del 2014 de: http://computacion.cs.cinvestav.mx/~efranco/docencia/teoriacomputacional/files/books/T eoriaDeAutomatas,lenguajesYComputacion-Hopcroft.pdf