Beruflich Dokumente
Kultur Dokumente
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 Autmatas Finitos Autmata Finito Determinista Autmata Finito NO Determinista Gramtica lineal por la Derecha
Expresiones regulares
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?
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 qi a 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 q 0 qm (con qiQ, qmF) 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. c) u.vi.w L para i0: se observa del grafo de transicin ... ak+1 q0 a1
...
ak
qk=qj
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 cumple el lema de bombeo. Es L un lenguaje regular? 3. Es el lenguaje L={am| m=ni=0(i) , n0} regular?
10
A:
b,a
A:
q 0* b
q1
b,a
q 2* a,b
L(A)={bn|n0}{bnax|n0,x{a,b}*, |x|>0} =L
11
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. Considrese el autmata: A=(Q1 Q2, , (q01,q02), f, F1F2) donde: f((p,q),a)=(f1(p,a), f2(q,a)) Evidentemente, L(A)= L1L2, por lo que L1L2 es un lenguaje regular. 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.
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.
13
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 : w=a1a2...an* h(w)=h(a1)h(a2)...h(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}.
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)*)
15
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.
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