Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Rubn Bjar Hernndez, Pedro Javier lvarez Dpto. Informtica e Ingeniera de Sistemas Universidad de Zaragoza
Introduccin ________________________________________________________________________3 Enunciado del Lema de Bombeo _____________________________________________________3 Demostracin de que un lenguaje no es regular _________________________________________3 Ejemplo de demostracin de que un lenguaje no es regular ________________________________4 Errores habituales al intentar la demostracin anterior ____________________________________5
Introduccin
El lema de bombeo para lenguajes regulares enuncia una propiedad que cumplen todos los lenguajes regulares infinitos (y tambin 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.
regular, tendremos que demostrar que no hay ninguna forma de partir la palabra en tres cumpliendo las restricciones del lema, y que despus 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. Ms formalmente, para demostrar que un lenguaje L sobre un alfabeto no es regular habr que demostrar que: nN w L / |w| n, x, y ,z * / w = xyz, y , |xy| <= n, k 0 / xykz L Es importante hacer notar que en esta demostracin, por reduccin al absurdo, de que un lenguaje no es regular, los cuantificadores existenciales para todo y existe estn alternados al revs que en el enunciado del lema. Esto es, intuitivamente, porque estamos demostrando lo contrario que el lema de bombeo: ste enuncia una propiedad que cumplen todos los lenguajes regulares y la demostracin precedente demuestra que un lenguaje no es regular, o sea que no cumple esa propiedad.
Debo encontrar ahora una constante k 0 con la que ninguna de las posibles particiones de w que hemos encontrado en el punto anterior sea bombeable. Si elijo k = 2 y bombeo las x, y, z encontradas en el punto anterior para esa constante, tendr que: xy2z = ai a2j a2n-i-jbn = a2n+jbn (para cualquier i y j, o sea para cualquiera de las particiones legales de la w elegida segn el lema de bombeo). Pero como j 1 (ver punto 2, es una de las restricciones del lema) tengo que xy2z = a2n+jbn , es una palabra que no pertenece al lenguaje porque tiene ms del doble de aes que de bs (al menos una a ms). He llegado por tanto a una contradiccin (una palabra que no es bombeable de ninguna forma para al menos una constante k en un lenguaje supuestamente regular) que viene de suponer precisamente que el lenguaje L es regular, luego L no es regular.
la demostracin desconociendo esta constante (y por tanto, dndole un nombre y trabajando con l). Ejemplo nmero 2: 1. Comprobamos si L es regular por medio del lema de bombeo. Suponemos que L es regular. Entonces existe una constante n tal que w L, |w| n, w = xyz, y , |xy| <= n, teniendo que xyiz L. Se elige w = a2nbn, w L y |w| = 3n y por tanto |w| n. 2. Probamos, por ejemplo, con la siguiente descomposicin - u=a - v=a - x = a2n-2bn 3. Bombeamos: uv2x = a a a a2n-2bn = a2n+1bn Podemos observar que uv2x no pertenece a L. Por lo tanto, el lenguaje es no regular. Error: 1. Se ha elegido una descomposicin concreta de la palabra w, lo cual no implica que no existan otras descomposiciones vlidas que puedan bombearse y, por lo tanto, el lenguaje sea regular. Recordad que para demostrar que no es regular debe cumplirse que x, y ,z * / w = xyz, y , |xy| <= n, k 0 / xykz L. Este error es cometido con frecuencia por los alumnos porque en el paso 1. de la demostracin no diferencian claramente entre el enunciado del lema y lo que deben demostrar para verificar que ste no se cumple. Si se estuviera tratando de demostrar que el lema de bombeo se cumple para ese lenguaje, entonces si que se podran elegir u, v y x, pero aqu se est tratando de demostrar lo contrario, as que hay que trabajar con cada u, v y x posibles que cumplan las restricciones del lema. Ejemplo nmero 3: Esta respuesta no utiliza el lema de bombeo, pero ilustra un error tpico para tratar de demostrar que un lenguaje es regular, y por tanto se ha considerado relevante incluirla aqu. Para demostrar que es un lenguaje regular se van a aplicar las propiedades de cierre de los lenguajes regulares. Podemos descomponer el lenguaje L tal que L = L1 L2, siendo L1 = { a2n | n 0} y L2 = { bn | n 0}. - L1 es un lenguaje regular porque se puede construir un AFD formado por dos estados que lo reconozca (ver la figura).
a a
Rubn Bjar Hernndez y Pedro Javier lvarez Prez-Aradros 6
El lenguaje resultante de la concatenacin de dos lenguajes regulares es tambin regular. Por lo tanto, L es un lenguaje regular. Error: 1. L L1 L2. L est formado por todas aquellas palabras cuyo nmero de smbolos a es el doble de smbolos b (notad que el ndice n determina la relacin entre los smbolos a y b de las palabras de L). Sin embargo, L1 L2 es el lenguaje formado por las palabra que tienen un nmero par de smbolos a y cualquier nmero de smbolos b. El error est en considerar que a2n y bn son dos partes independientes de las palabras de L.