Está en la página 1de 9

Captulo 8: Propiedades de Lenguajes Regulares

8.1. Identificacin de lenguajes no regulares


8.1.1. Lema de Bobeo 8.1.2. Aplicaciones del lema de bombeo 8.2. Propiedades de Cierre 8.2.1. Unin, Concatenacin, Clausura 8.2.2. Respecto a otras operaciones

Definicin (Lenguaje regular): Un lenguaje L se denomina regular si y slo si existe un autmata finito determinista A tal que L=L(A).

Se pueden dar definiciones equivalentes, utilizando expresiones regulares o gramticas regulares, ya que estos formalismos definen la misma clase de lenguajes:

Gramticas regulares

Gramtica lineal por la izquierda

Gramtica lineal por la Derecha

Autmatas Finitos

Autmata Finito Determinista

Autmata Finito NO Determinista

Expresiones regulares

8.3. Algoritmos de decisin


8.3.1. Es L finito? 8.3.2. Es L vaco? 8.3.3. Pertenencia de una palabra 8.3.4. L1=L2?

Preguntas: Son los lenguajes que se obtienen al aplicar determinadas operaciones a lenguajes regulares tambin regulares? Cmo se puede decidir (de forma automtica) si un lenguaje regular tiene ciertas propiedades: si es finito, vaco, o infinito? Existe algn mtodo para saber si un lenguaje dado es regular o no?

8.1 Identificacin de lenguajes no regulares


No todos los lenguajes son regulares. Los autmatas finitos slo tienen una capacidad limitada en el proceso de identificacin de palabras: tienen un nmero limitado de estados la nica informacin de la que disponen est en la estructura de este nmero finito de estados Ejemplo: El lenguaje L={anbn|n>=0} no es regular. Ilustracin intuitiva de este hecho: Se requera un autmata reconocedor con infinitos estados para aceptar este lenguaje, por lo que no puede ser regular. Construir de manera incremental los AFD para los siguientes lenguajes: L0={} L1={,ab} L2={,ab,aabb} L3={,ab,aabb,aaabbb} ... Se puede observar que el nmero de estados de los autmatas aumenta para cada uno de estos lenguajes. No es posible encontrar autmatas finitos deterministas, tales que el nmero de estados no aumente de un lenguaje Li al siguiente Li+1. Eso indica que el autmata que reconoce el lenguaje L requiere un nmero infinito de estados.

8.1.1 Lema de Bombeo

Que caractersticas tiene un lenguaje para ser regular/no regluar?

Lenguajes finitos: Todos los lenguajes finitos son regulares. (Demostracin: Ejercicio)

Lenguajes infinitos: No todos los lenguajes infinitos son regulares. Consideramos el lenguaje regular infinito: L={a(ab)na|n0}. El siguiente AFD A reconoce L: q0

q1

q2*

q3

A reconoce las palabras aa, aaba, aababa, ... Se puede observar lo siguiente: La palabra x=aaba se puede descomponer en tres cadenas: x=u.v.w=a.ab.a (con v) y todas las palabras u.vi.w, es decir, a.(ab)i.a, (con i0) pertenecen a L. Este hecho se repite para todas xL con |x|4. Ejemplo: aabababa=a.ab.ababa a.(ab)i.ababaL (i0) Las palabras xL con |x|<4 no tienen esta propiedad. Ejemplo: aa Intento 1: aa=a.a. a.ai.L Intento 2: aa=.a.a .ai.aL Intento 3: aa=.aa. .(aa)i.L

La causa de este comportamiento es la siguiente: Al aceptar una palabra x suficientemente grande (como aababa), el autmata necesariamente tiene que entrar en un bucle q0...qi...qi...qf. Por tanto, se puede descomponer x en tres partes u.v.w, donde: u la subcadena que se acepta antes del bucle (de q0 a qi) v la subcadena que se acepta en el bucle (de qi a qi) w la subcadena que se acepta despus del bucle (de a qi qf ) El autmata, al aceptar palabras similar a x, podra recorrer el bucle 0,1,2,3,... veces. Por tanto, el autmata tambin acepta las cadenas que se obtienen a partir de x=u.v.w eliminando la subcadena v o bombendola varias veces. La propiedad de bombeo es comn a todos los lenguajes regulares infinitos y se describe de forma general en el Lema de Bombeo. Teorema 10 (Lema de Bombeo): Sea L un lenguaje regular infinito. Entonces existe una constante n tal que para toda palabra xL con |x|n existe una descomposicin de x en tres subcadenas, x=u.v.w verificando las siguientes propiedades: a) |u.v|n b) |v|>0 c) para todo i0: u.vi.w L. Demostracin: 5

Como L es regular, existe un AFD mnimo A=(Q ,,q0,f,F) con L(A)=L. Definimos n=|Q|. Sea x=a1a2a3...amL una palabra arbitraria del lenguaje, con mn. Dado que xL, A acepta x. Sea la secuencia de transiciones que recorre A para aceptar x la siguiente: a3 ...a a2 q a1 q m qm (con qiQ, qmF) q 0 1 2 Esta cadena tiene m+1 estados (pues x tiene m letras). Como A slo tiene n estados distintos y m+1>n, se sigue que en la secuencia existe por lo menos un estado repetido: ak ak+1 aj aj+1 am 1 ... qk...qj...qm con qk=qj. q0a (sean qk /qj el primer estado de la secuencia que se repite)

x puede descomponerse en tres subcadenas: x=u . v . w = a1...ak . ak+1...aj . aj+1...am que cumplen lo siguiente: a) |u.v|n: La primera repeticin de un estado ocurre obviamente en los n+1 primeros estados. Por tanto, u.v=a1...ak . ak+1...aj tiene como mucho n smbolos. b) |v|>0: Entre los dos estados repetidos hay por lo menos una ak+1 aj transicin: ...qk ...qj.... Por tanto, v= ak+1...aj tiene por lo menos un smbolo.

8.1.2 Aplicacin del Lema de Bombeo

Para que sirve el lema de bombeo?

Para demostrar que ciertos lenguajes no son regulares.

Observacin: El lema no sirve para demostrar que un lenguaje es regular. (Proporciona una condicin necesaria pero no suficiente.)

Para demostrar que un lenguaje no es regular basta probar que no cumple el lema de bombeo. Estas demostraciones son siempre por contradiccin.

c) u.vi.w L para i0: se observa del grafo de transicin ... ak+1 aj qk=qj q0
...

u.v0.w= a1...ak.aj+1...amL u.vi.w= a1...ak.(ak+1...aj)i .aj+1...amL

a1 ak

aj+1 ... am q m+1

Lo que demuestra el teorema.

Los pasos son los siguientes: 1. Se supone que L es regular y, por tanto, debe cumplir el lema de bombeo. 2. Se elige un valor genrico n (no especificado) para la constante. 3. Se selecciona una palabra xL (en funcin de n) con |x|n 4. Se descompone x en u.v.w, tal que |u.v|n y |v|>0, de todas las formas posibles. 5. Se demuestra que para todas estas descomposiciones existe siempre i tal que u.vi.w L. 6. Si se consigue demostrar que para todas estas descomposiciones existe siempre i, tal que u.vi.w L, L no cumple el lema y, por tanto, no es regular.

Ejemplo: L={amb2m| mN, m0} 1. Supongamos que L sea regular. 2. Sea n=N la constante del lema 3. Seleccionamos la palabra x con x=aNb2NL (|x|=3N>n) 4. Descomponemos x=u.v.w de todas las formas posibles, tales que |u.v|n y |v|>0: Todas las descomposiciones tienen la forma: ak . aj . aN-k-jb2N con k0 ; j1 5. consideramos la palabra u.v0.w de estas composiciones: u.v0.w= u.w= ak.aN-k-jb2N = aN-jb2N con k0 y j1 Por tanto, u.v0.wL (ya que 2(N-j)2N). 6. Por tanto, L no cumple el lema y no puede ser regular. Ejercicios: 1. Es el lenguaje L={yy-1| y{a,b}*} regular? 2. Sea el lenguaje L={anbmcm| m,n1}. Demuestra que L no cumple el lema de bombeo. 3. Sea el lenguaje L={anbmcm| m,n1}{bmcn|m,n0}. Cumple L el lema de bombeo. Es L un lenguaje regular? 4. Es el lenguaje L={am| m=ni=0(i) , n0} regular?

8.2 Propiedades de Cierre

8.2.1 Unin, concatenacin y cierre

Teorema 1: Dados dos lenguajes regulares L1 y L2, los lenguajes L1L2, L1L2 y L1* tambin son regulares.

Demostracin: Si L1 y L2 son regulares, existen dos expresiones regulares r1 y r2 tales que:

L1=L(r1) y L2=L(r2)

Por definicin de las operaciones de cierre, concatenacin y suma de expresiones regulares:

L1L2 = L(r1) L(r2) = L(r1+r2) L1L2= L(r1)L(r2) = L(r1r2) L1*= L(r1)* =L(r1*)

Es decir, existen expresiones regulares que describen los lenguajes L1L2, L1L2 y L1* y, por tanto, estos lenguajes son regulares.

10

8.2.2 Otras operaciones


Teorema 2: Dado un lenguaje regular L definido, su complemento L tambin es regular. Demostracin: Dado que L es regular, existe un AFD A=(Q, , q0, f, F), tal que L(A) = L. Consideremos el autmata A=(Q, , q0, f, Q-F). Este autmata A acepta exactamente todas las palabras del lenguaje universal * que el autmata A rechaza. Por tanto: L(A) = *- L(A) = *- L = L . Ejemplo: ={a,b}, L=L(b*a)={bna|n0} q0 q 1* b,a q2 a,b b a

Teorema 3: Dados dos lenguajes regulares L1 y L2 definidos, el lenguaje L1L2 tambin es regular. Demostracin: a) No constructiva:

Por las leyes de Morgan:

L1L2= L1 L 2 (La operacin de interseccin se puede reducir a las operaciones complemento y unin.)

b) Constructiva: Dado que L1 y L2 son regulares, existen dos AFDs: A1=(Q1, , q01, f1, F1) y A2=(Q2, , q02, f2, F2) tales que L(A1)=L1 y L(A2)=L2.

A:

Considrese el autmata: A=(Q1 Q2, , (q01,q02), f, F1F2) donde: f((p,q),a)=(f1(p,a), f2(q,a))

A: b

q 0*

q1

b,a

q2* a,b

Evidentemente, L(A)= L1L2, por lo que L1L2 es un lenguaje regular.

L(A)={bn|n0}{bnax|n0,x{a,b}*, |x|>0} =L

Ejercicio: Sean L1={ax|x{a,b}* y x tiene por lo menos una subcadena ab} y L2={a(ab)n|n0} Aplicando la demostracin del ltimo teorema, construye un AFD para el lenguaje L1L2.

11

12

Teorema 4: Dado un lenguaje regular L, su lenguaje inverso L-1 tambin es regular. Demostracin: Dado que L es regular, existe una expresin regular r tal que L(r)=L. Para demostrar que L-1es regular construiremos una expresin regular r -1 tal que L(r1)=L-1 a partir de r: Si r = , o r=a o r=, entonces r-1=r Si r=r1+r2, entonces r-1= r1-1 +r2-1 Si r=r1r2, entonces r-1= r2-1r1-1 Si r=r1*, entonces r-1=(r1-1)* Por construccin, L(r-1)=L-1. Teorema 5: Dados dos lenguajes regular L1 y L2, el lenguaje diferencia L1-L2 tambin es regular. Demostracin: Por las leyes de Morgan: L1-L2=L1 L 2 . Ya se ha demostrado que tanto el complemento de un lenguaje regular como la unin de dos lenguajes regulares son regulares.

Definicin (homomorfismo): Sean y alfabetos. Se llama homomorfismo a una funcin h:*, tal que asigna una palabra de * a cada smbolo de .

Esta definicin se puede extender para definir la funcin h para palabras de : h(w)=h(a1)h(a2)...h(an) * w=a1a2...an*

Definicin (imagen homomrfica): Dado un lenguaje L* y dado un homomorfismo h:*, se llama imagen homomrfica de L respecto a h al lenguaje definido de la siguiente manera: h(L)={h(w) | wL}.

13

14

Teorema 6: Sean y dos alfabetos y sea L un lenguaje regular definido sobre . Sea h:* un homomorfismo. Entonces la imagen homomrfica de L respecto a h tambin es regular. Demostracin: Dado que L es regular, existe una expresin regular r tal que L(r)=L. Para demostrar que h(L) es regular construiremos recursivamente una expresin regular r tal que L(r)=h(L) a partir de r: Si r = o r=, entonces r=r Si r = a, a, entonces r=(h(a)) Si r=r1+r2, entonces r= r1 +r2 Si r=r1r2, entonces r= r1r2 Si r=r1*, entonces r=(r1)* Es decir, se sustituye cada smbolo a en r por la cadena h(a). r es una expresin regular que representa h(L), por lo que h(L) es regular. Ejemplo: ={a,b}, L=L(b*ac*) y h(a)=abc, h(b)=bac, h(c)=cab h(L)=L((bac)*(abc)(cab)*)

8.3 Algoritmos de Decisin


8.3.1 Es L vaco?

Teorema 7: Dado un lenguaje regular L, existe un algoritmo para decidir si dicho lenguaje es vaco.

Demostracin: Considrese el autmata finito determinista mnimo que acepta L. L es vaco si y slo si el AFD mnimo no tiene estados finales.

8.3.2 Es L infinito?

Teorema 8: Dado un lenguaje regular L, existe un algoritmo para decidir si dicho lenguaje es infinito.

Demostracin: Considrese el diagrama de transiciones del AFD A mnimo tal que L(A)=L. L es infinito si y slo si existe un ciclo en un nodo de este autmata.

15

16

8.3.3 w pertenece a L?
Teorema 9: Dado un lenguaje regular L, existe un algoritmo para decidir si una palabra w pertenece al lenguaje. Demostracin: Considrese el diagrama de transiciones del AFD A tal que L(A)=L. Simulamos el funcionamiento del autmata tomando como entrada la palabra w. Si el estado en el que termina la simulacin es un estado final, entonces wL; en otro caso, w no pertenece a L.

8.3.4 L1=L2?
Teorema 10: Dados dos lenguajes regulares L1 y L2, existe un algoritmo para decidir si dichos lenguajes son equivalentes, es decir, si L1= L2. Demostracin: a) Dado que L1 y L2 son regulares, existen dos AFD mnimos A1 y A2 tales que L(A1)=L1 y L(A2)=L2. Los dos lenguajes son equivalentes si A1 y A2 son isomorfos (iguales salvo renombramiento de estados). b) Construye un AFD A para L3=(L1 L2 ) ( L1 L2). L1=L2, si y solo si L3 es vaco.

17

También podría gustarte