Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma) Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad Javeriana Cali 28 de marzo de 2008
Lenguajes No Regulares Algunos lenguajes no pueden ser reconocidos mediante autómatas finitos. Por ejemplo: L = {0 n 1 n n 0} Se observa que el autómata debe recordar una cantidad ilimitada (de ceros) mediante un número limitado de estados y eso no es posible.
Lenguajes No Regulares Sin embargo, tampoco significa que todos los lenguajes que requieren conteo estén por fuera de los lenguajes regulares. Por ejemplo: D = {w w tiene igual número de ocurrencias de 01 y 10 como subcadenas} Es decir, que se necesita un método riguroso para determinar si un lenguaje es regular o no, ya que la mera intuición puede llevar a conclusiones equivocadas.
Lema de Bombeo Lema Si A es un lenguaje regular, existe un número p tal que si s A y s p, entonces s puede dividirse en tres partes s = xyz de manera que se satisfacen las siguientes condiciones: 1 Para cada i 0,xy i z A 2 y > 0 3 xy p
Demostración del Lema de Bombeo Preliminares: Sea M = {Q,Σ,δ,q 0,F } un DFA que reconoce A, y p el número de estados de M. Sea s = s 1,s 2,...,s n A y s = n y n p. Sea también r = r 1,r 2,...,r n+1 la secuencia de estados que se recorre en M al aceptar la cadena s, es decir, i,0 i n,r i+1 = δ(r i,s i ) Entre los primeros p + 1 elementos de la secuencia r, hay dos que tienen que corresponder al mismo estado (por el principio de las palomas), sea r j la primera ocurrencia del estado repetido y r l la segunda, notar que l p + 1
Demostración del Lema de Bombeo Demostración. Sea x = s 1,...,s j 1, y = s j,...,s l 1 y z = s l,...,s n. Como x lleva la máquina desde el estado inicial r 1 hasta el estado r j, y leva la máquina desde r j hasta r j y z la lleva desde r j hasta el estado de aceptación r n, entonces M tiene que aceptar xy i z para i 0. Sabemos que j l, y > 0 y l p + 1 así que xy p por lo que se satisfacen todas las condiciones del lema.
Uso del lema para probar que un lenguaje no es regular Se realiza la demostración por contradicción: Se supone el que lenguaje si es regular Se aplica el lema que garantiza que existe un valor p. Finalmente se muestra que no es posible dividir la cadena en tres partes xyz de manera que las cadenas xy i z para i 0 pertenezcan también al lenguaje.
Ejemplo 1. Sea B = {0 n 1 n n 0}, mostrar que B no es un lenguaje regular. Demostración. Sea p la longitud de bombeo y sea s = 0 p 1 p B y s > p. Por el lema de bombeo xyz = s tal que xy i z B i,i 0. Surgen entonces los siguientes casos: Si y contiene únicamente ceros ó únicamente unos, la cadena xyyz no pertenece al lenguaje, por tener mayor cantidad de elementos de un símbolo que del otro. Si y contiene ceros y unos, la cadena xyyz no pertenece al lenguaje por no tener todos los ceros juntos y todos los unos juntos. Por lo tanto, B no es un lenguaje regular.
Ejemplo 2. Sea C = {w w tiene el mismo número de unos y ceros}, mostrar que C no es un lenguaje regular. Demostración. Sea p la longitud de bombeo y sea s = 0 p 1 p C y s > p. Por el lema de bombeo xyz = s tal que xy i z C i 0. Sea x = ε y z = ε, en este caso, xyz efectivamente pertenece a C, sin embargo, la condición 3 requiere además que xy p y esa condición no se cumple. Por lo tanto, C no es un lenguaje regular.
Ejemplo 3. Sea F = {ww w {0,1}, mostrar que F no es un lenguaje regular. Demostración. Sea p la longitud de bombeo y sea s = 0 p 10 p 1 F y s > p. Por el lema de bombeo xyz = s tal que xy i z F i 0. La condición 3 implica que y sólo puede contener ceros y de ese modo xyyz no pertenecería a F. Por lo tanto, F no es un lenguaje regular.
Ejemplo 4. Sea D = {1 n2 n 0}, mostrar que D no es un lenguaje regular. Demostración. Por la condición 3, tenemos que xy p por lo tanto y p. Tenemos que xyz = p 2 y xyyz = P 2 +p, pero p 2 +p < (p +1) 2, como la condición 2 requiere que y > 0, entonces xyyz > p 2. Por lo tanto: p 2 < xyyz < (p + 1) 2 y xyyz D. De donde se deduce que D no es un lenguaje regular.