Chapter 4PROPIEDADES DE LOSLENGUAJES REGULARESEn este capítulo se estudiarán propieda<strong>de</strong>s <strong>de</strong> clausura y problemas <strong>de</strong> <strong>de</strong>cisión para los lenguajes regulares.Hay varias preguntas que se pue<strong>de</strong>n hacer respecto <strong>de</strong> los conjuntos regulares. Una pregunta es: dado unlenguaje L, especificado en alguna forma, ¿Es L regular? También es posible preguntarse si los lenguajes<strong>de</strong>scritos por expresiones regulares distintas son el mismo lenguaje4.1 Lema <strong>de</strong> Bombeo para Conjuntos RegularesEn esta sección se verá un resultado básico, llamado el Lema <strong>de</strong> Bombeo (o Pumping Lemma), que es uninstrumento muy po<strong>de</strong>roso para <strong>de</strong>mostrar que ciertos lenguajes no son regulares. También es útil para el<strong>de</strong>sarrollo <strong>de</strong> algoritmos que respondan preguntas tales como si un AF acepta un lenguaje finito o no.Si un lenguaje es regular, es aceptado por un AFD, M = (Q, Σ, δ, q 0 , F ) con algún número particular (yfinito) <strong>de</strong> estados, N. Considérese ahora un string <strong>de</strong> entrada con más <strong>de</strong> N símbolos (o N):a 1 a 2 . . . a M (M ≥ N)y para i = 1, 2, . . . , M seaδ(q 0 , a 1 a 2 . . . a i ) = q i (1 ≤ i ≤ M)No es posible que los N + 1 estados (q 0 , q 1 , . . . , q N ) sean todos diferentes ya que hay sólo N estadosdistintos. Por lo tanto hay dos enteros j y k (con 0 ≤ j < k ≤ N) tales que q j = q k . El camino con etiquetaa 1 a 2 . . . a M se ilustra en la siguiente figura:a j+1 ... a k✛✘a 1 ... a j ✛✘ak+1 ... a M✛✘qq0 q=q j kM✚✙ ✚✙ ✚✙Figure 4.1: Esquema explicativo <strong>de</strong>l Lema <strong>de</strong> BombeoDado que j < k, el string a j+1 . . . a k es <strong>de</strong> longitud 1 a lo menos y como k ≤ N, su longitud no es mayora N.67
68 CHAPTER 4. PROPIEDADES DE LOS LENGUAJES REGULARESSi q M ∈ F , esto es, a 1 a 2 . . . a M ∈ L(M), entonces a 1 a 2 . . . a j a k+1 . . . a M también pertenece a L(M) yaque hay un camino que va <strong>de</strong> q 0 a q M , pasando por q j pero no por el loop con etiqueta a j+1 . . . a k .Formalmenteδ(q 0 , a 1 . . . a j a k+1 . . . a M ) = δ(δ(q 0 , a 1 . . . a j ), a k+1 . . . a M )= δ(q j , a k+1 . . . a M )= δ(q k , a k+1 . . . a M )= q m ∈ FEn forma similar, es posible reconocer el loop más <strong>de</strong> una vez, <strong>de</strong> hecho, tantas veces como se <strong>de</strong>see. Es<strong>de</strong>cir:a 1 . . . a j (a j+1 . . . a k ) i a k+1 . . . a Mestá en L(M) para cualquier i ≥ 0. Lo que se ha <strong>de</strong>mostrado es que dado un string suficientementelargo, aceptado por un AF, se pue<strong>de</strong> encontrar un substring cerca <strong>de</strong>l comienzo <strong>de</strong>l string, el que pue<strong>de</strong> serbombeado, es <strong>de</strong>cir repetido, cuantas veces se <strong>de</strong>see y el string resultante también será aceptado por el AF.Lema 2 Sea L un conjunto regular. Entonces hay una constante N tal que si z ∈ L y |z| ≥ N, se pue<strong>de</strong>escribir z = uvw, <strong>de</strong> tal forma que |uv| ≤ N y |v| ≥ 1 y, a<strong>de</strong>más, para todo i ≥ 0 uv i w ∈ L. A<strong>de</strong>más, N noes mayor que el número <strong>de</strong> estados <strong>de</strong>l más pequeño AF que acepta L.Demostración : Ver la discusión anterior al enunciado <strong>de</strong>l lema. En ella z = a 1 a 2 . . . a M ; u = a 1 a 2 . . . a j ;v = a j+1 . . . a k y w = a k+1 . . . a M .Nótese que el lema <strong>de</strong> bombeo indica que si un lenguaje regular contiene un string suficientemente largo,z, entonces contiene un conjunto infinito <strong>de</strong> strings <strong>de</strong> la forma uv i w. El lema no establece que cada stringsuficientemente largo <strong>de</strong> un conjunto regular sea <strong>de</strong> la forma uv i w para algún valor <strong>de</strong> i. De hecho, (0 + 1) ∗contiene strings arbitrariamente largos en que ningún substring aparece tres veces consecutivas.El lema <strong>de</strong> bombeo es muy útil para probar que ciertos conjuntos no son lenguajes regulares. Lametodología usual es un “argumento adverso” <strong>de</strong>l siguiente tipo:• Seleccione el lenguaje L que se <strong>de</strong>sea probar no es regular.• El “adversario” elige N, la constante que se menciona en el lema <strong>de</strong> bombeo. Este pue<strong>de</strong> ser cualquiervalor entero finito, pero una vez elegido, el adversario no lo pue<strong>de</strong> cambiar.• Seleccione un string z ∈ L. La elección <strong>de</strong>l string pue<strong>de</strong> <strong>de</strong>pen<strong>de</strong>r <strong>de</strong>l valor <strong>de</strong> N.• El adversario divi<strong>de</strong> z en u, v y w, sujeto a que |uv| ≤ N y que |v| ≥ 1.• Se obtiene una contradicción con el lema <strong>de</strong> bombeo, mostrando que para cualquier u, v y w elegidospor el adversario, existe un entero i para el cual uv i w no pertenece a L. Se pue<strong>de</strong> entonces concluirque L no es regular. La selección <strong>de</strong> i pue<strong>de</strong> <strong>de</strong>pen<strong>de</strong>r <strong>de</strong> N, u, v y w.Es interesante notar que las selecciones propias correspon<strong>de</strong>n a los cuantificadores universales y lasselecciones <strong>de</strong>l adversario, a los cuantificadores existenciales en una presentación formal <strong>de</strong>l lema <strong>de</strong> bombeo:(Para todo lenguaje regular L)(Existe un entero positivo N)(Para todo string z ∈ L con |z| ≥ N)(Existen u, v y w con z = uvw, |uv| ≤ N, |v| ≥ 1)(Para todo i no negativo uv i w ∈ L)✷