LC vs. Regulares Teoría de la Computabilidad GLC APND Módulo 5: Propiedades de lenguajes libres de contexto regulares Libres de Contexto 015 Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina GR AF 1 LC vs. Regulares Recordatorio: Clausura de LR regulares Libres de Contexto L L 4 3... L n L * LLCs L L Autómatas Finitos Autómatas a Pila ND L Σ*- LRs Autómatas 3 La clase de lenguajes regulares es cerrada bajo: unión, concatenación, estrella de Kleene, complemento e intersección. 4 Propiedades de LLC Estudiaremos ahora propiedades de los Libres de Contexto. Enunciaremos primeramente una serie de propiedades de clausura, que son análogas a las enunciadas para LR, excepto en que los LLC no son cerrados bajo intersección ni complemento. Propiedades de Clausura Teo.: Los LLC son cerrados bajo reflexión, unión, concatenación, estrella de Kleene e intersección con un LR. Demostración: Consideraremos cada caso en particular. Las demostraciones serán constructivas. 5 6
Propiedades de Clausura - Unión Consideremos dos gramáticas LCs G 1 =( Vn1, Vt1, S 1, P 1 ) y G =(Vn, Vt, S, P ) Desde el símbolo no terminal S 1 podemos generar todaslascadenas del(g 1 ) Desde el símbolo no terminal S podemos generar todaslascadenas del(g ) Una gramática que genere la unión de estos lenguajes debe ser capaz de generar todas las cadenas de cada uno Cómo puede construirse esta gramática? Propiedades de Clausura - Unión Ejemplo: G 1 =( {S 1 },{a,b,$}, S 1, {S 1 as 1 a, S 1 bs 1 b, S 1 $}), G =( {S },{c}, S, {S cs c, S c} ) Queremos definir G para generar L(G 1 ) L(G ). Podemos hacer lo siguiente: G=( Vn, Vt, S, P) Vn = {S, S 1, S }, Vt = {a,b,$, c}, P= {SS 1, SS } P 1 P S S S S 1 7 8 Propiedades de Clausura - Unión Sean G 1 =(V n1,v t1,s 1, P 1 ) y G =(V n,v t,s,p ) dos GLC (podemossuponerv n1 V n ). Probaremos que L(G 1 ) L(G ) es LC, construyendo G para generar el lenguaje unión. Sea S un nuevo no terminal, S V n1 V n. Luego definimos G=(V n,v t,s,p), V n =V n1 V n {S}, V t =V t1 V t P=P 1 P {S S 1,SS } Si S 1 λ P 1 o S λ P, las eliminamos y agregamos S λ.luegol(g 1 ) L(G )=L(G),puesSS 1 yss, yentoncess G* >ωcon ω (V t1 V t )*sssis G* 1 >ω obien S G* >ω. Ya que G 1 y G tienen no terminales disjuntos, ent.s G* >ωsssis G1* 1 >ωós G* >ωsssis G* >ω,cqd. 9 Propiedades de Clausura - Concatenación Consideremos dos gramáticas LCs G 1 =( Vn1, Vt1, S 1, P 1 ) y G =(Vn, Vt, S, P ) Desde el símbolo no terminal S 1 podemos generar todaslascadenas del(g 1 ) Desde el símbolo no terminal S podemos generar todaslascadenas del(g ) Una gramática LC que genere la concatenación de estos lenguajes debe ser capaz de generar una cadena deg 1 seguida deotradeg Cómo puede construirse esta gramática? 10 Propiedades de Clausura - Concatenación Consideremos G 1 =(V n1,v t1,s 1,P 1 ) y G =(V n,v t,s,p ) Ejemplo: G 1 =({S 1 },{a,b,$},s 1, {S 1 as 1 a, S 1 bs 1 b, S 1 $}), G =({S },{c}, S, {S cs c, S c}) QueremosdefinirG paragenerarl(g 1 ) L(G ). Podemos hacer lo siguiente: G=( Vn, Vt, S, P) S Vn = {S, S 1, S }, Vt = {a,b,$, c}, S 1 S P= {SS 1 S } P 1 P 11 Propiedades de Clausura - Concatenación Sean G 1 = (V n1,v t1,s 1, P 1 ) y G =(V n,v t,s,p ) dos GLC (podemos suponer V n1 V n ). Para probar que L(G 1 ) concatenado L(G )eslc,sedefineg=(v n,v t,s,p): V n =V n1 V n {S}, V t =V t1 V t P=P 1 P {S S 1 S } Si S 1 λ P 1 sustituimos S 1 λ por S S. Si S λ P sustituimos S λ por S S 1. Si S 1 λ P 1 y S λ P ent.eliminamosambasreglas dep,yagregamosss 1, SS ysλ Sea ω L(G), ent. S G* >ω, es decir S G >S 1 S G* >ω. Pero S 1 S G* >ω sssi S G1* 1 >ω 1 y S G* >ω con ω= ω 1 ω, ent. ω =ω 1 ω sssi ω 1 L(G 1 ) y ω L(G ). Luego L(G 1 ) L(G ) = L(G). cqd. 1
Propiedades de Clausura - Estrella de Kleene Consideremos una gramáticas LCs G 1 =( Vn1, Vt1, S 1, P 1 ) Desde el símbolo no terminal S 1 podemos generar todaslascadenas del(g 1 ) Una gramática LC que genere la estrella de Kleene de este lenguaje debe ser capaz de generar una cadena formada por la concatenación de cero o máscadenas deg 1 Cómo puede construirse esta gramática? Propiedades de Clausura - Estrella de Kleene Consideremos G 1 =( Vn1, Vt1, S 1, P 1 ) Ejemplo: G 1 =( {S 1 },{a,b,$}, S 1, {S 1 as 1 a, S 1 bs 1 b, S 1 $}), QueremosdefinirG paragenerarl(g 1 )*. Podemos hacer lo siguiente: G=( Vn, Vt, S, P) Vn = {S, S 1 }, Vt = {a,b,$}, P= {Sλ,SS 1,S 1 S 1 S 1 } P 1 13 14 Propiedades de Clausura - Estrella de Kleene Sea G 1 = (V n1,v t1,s 1, P 1 ). Construiremos ahora G = (V n,v t,s,p),talquel(g 1 )*=L(G). V n =V n1 {S}, V t =V t1 P=P 1 {S λ, S S 1, S 1 S 1 S 1 } SiS 1 λ P 1 dicharegladebeeliminarse. Veamos que L(G 1 )*=L(G). Sea ω L(G). Ent. S G* >ω ; pero si S deriva ω, entonces o bien ω= λ o bien S G* 1 >ω (pues las únicas producciones que involucran S en G sonsλyss 1 ). Si S G* 1 >ω solo pueden usarse las reglas SS 1 y S 1 S 1 S 1 paraobtener unasecuenciadeunoomásno terminales iniciales de G 1 : S 1 S 1 S 1...S 1 y esto solo permitegenerarcadenas ω L(G 1 )*,cqd. 15 Propiedades de Clausura - Intersección Si L p es un LLC, y L f es un lenguaje regular, entonces L=L p L f esunllc. Demostraremos esto usando la equivalencia con máquinas: Si L p es LLC => existe AP M p que lo reconoce. Si L f es LR=> existe AF M f que lo reconoce. Probaremos que puedo definir un nuevo autómata M (que será Autómata a Pila) que reconoce L p L f 16 Propiedades de Clausura - Intersección Si L p es un LLC, y L f es un lenguaje regular, entonces L=L p L f esunllc. L p =L(M p )paraunciertoautómata apila M p = (S p, Σ, Γ, δ p, s 0p, F p ), yl f =L(M f )paraunaut. finitodeterminista M f =(S f, Σ,δ f,s 0f,F f ) Idea: combinar M p y M f en un único autómata a pila M que lleve la computación de M p y M f en paralelo, y acepte sólo las cadenas que ambas hubieran aceptado. Propiedades de Clausura - Intersección Construimos M= (S p x S f, Σ, Γ, δ, (s 0p, s 0f ), F p x F f ). δ((s p,s f ),u, γ 1 )=( (t p,t f ), γ )sssi δ p (s p,u, γ 1 )=(t p,γ ) yδ f (s f,u)=t f Esto es, M pasa del estado (s p,s f ) a (t p,t f ) de la misma forma que M p pasa de s p a t p, y además considera el cambio de estado de M f por la misma entrada. Queda como ejercicio demostrar que L(M)=L(M p ) L(M f ) 17 18
Propiedades de Clausura en LRs y LLCs L 3 L 4... L n L L L L 3 L 4 L 3 L 4 * L Σ*- L 4 L LLCs L 3 * LRs Los LLC son cerrados bajo unión, concatenación, estrella de Kleene e intersección con un LR. 19 Utilidad de las Propiedades de Clausura Sea L = {a n b n n>=0} podemos asegurar queesunllc. Porqué? Por poder expresarlo como L, es libredecontexto yl esregular. ={w w {a,b}*ywtieneigualcantdea syb s} L =a*b* es LLC, pues puede definirse un AP que apile cadaaydesapile alrecibirunab. L esclaramenteregular. Luego L esllc. 0 Def.: Sean Σ 1 y Σ dos alfabetos. Llamaremos sustitución a un mapeo f s : Σ 1 P(Σ *). Una sustitución f s es una función que asocia un lenguajeacada símbolodeσ. El mapeo función se extiende a cadenas de Σ 1 * ya lenguajes como sigue: Σ 1 a b c f s (a) f s (b) f s (c) Σ * f c :Σ 1 * P(Σ *) f L : P(Σ 1 *) P(Σ *) f c (α) = f c (λ) ={λ} f c (x a)= f c (x) f s (a) f L (L) = U α L f c (α) 1 Gracias a este mapeo de símbolos en conjuntos de cadenas podemos obtener, de un lenguaje L, nuevos lenguajes substituyendo las cadenas de L por el lenguaje generado con f s fs(abc) s = fs(a) s fs(b) s fs(c) s esto es un lenguaje Σ * Σ * L = f L ( ) Cada cadena wde define un lenguaje f s (w) La unión de todos estos mini-lenguajes forma por supuesto un nuevo lenguaje... Cada cadena wde define un lenguaje f s (w) La unión de todos estos mini-lenguajes forma por supuesto un nuevo lenguaje... L se obtiene por sustitución a partir de 3 4
Sustitución. Ejemplo Sea el lenguaje regular 0*(0+1)1*, con Σ 1 ={0,1}, Σ ={a,b},ylasustitución f s (α) = f c (x) = f s (0) = {a} f s (1)=b* Cuálesf L ( )?Enestecaso basándonos en f s podemos definir: f c ( λ) = {λ} f c (x 0)= f c (x) apara long(x)>=0 f c (x 1)= f c (x) b*para long(x)>=0 Luego f L ( )esellenguajerepresentado por a*(a+b*)(b*)* La sust. f L es llamada regular, pues f s (0) y f s (1) son regulares 5 Hemos visto que los leng. usados para sustitución pueden ser finitos o infinitos. Def.: Una familia de lenguajes se dice cerrada bajo sustitución si siempre que un lenguaje L Σ* es y se aplica una sustituciónf s talquef s (a)es detipoiparacada a Σ,entonces f L (L)tambiénesdetipoi. 6 Σ * Σ * L = f L ( ) Si es y para cada cadena w de, se cumple que f s (w) es, entonces......el lenguaje L =f L ( ) es también. 7 8 Podemos enunciar el siguiente teorema: Teo.: La clase de lenguajes LC es cerrada bajo sustitución. Σ * es LC f c es LC entonces f L ( ) = U α L1 f c (α) es libre de contexto 9 Demostración: Sea G=(V n,v t,s,p) una GLC, L=L(G) un LLC, L Σ* y para cada símbolo a Σ tomemos L a un LLC generado a partir de una gramática G a =(V na,v ta,s a,p a ). Puede asumirse que V n V na =. Construimos ent.g =(V n,v t,s,p )talque V n =U a Σ V a n V n V t =U a Σ V a t S =S P = U a Σ P a {A α A α se obtiene a partir de A α de P, sustituyendo S a en cada aparición de a Σenα} Naturalmente, si el lenguaje original era LC, su gramática lo era. Luego la parte dcha. de cada regla será del tipo (V n V t )*, y también lo será el tipodereglasdep. 30
Sustitución. Ejemplo Sustitución. Ejemplo Sea Σ={0,1},yf s unasustitución talque Lenguaje Generado por Tipo f s (0)={a}, f s (1)={ww r w {b,c} + } La sustitución f L mapea el cjto. {0 n 1 n n 1} en el cjto. ={a n w 1 w 1r w w r...w n w nr w i {b,c} +,1 i n} Siqueremosprobarque eslc,podemosusarla propiedad anterior. Si probamos que f s (0) y f s (1) son LLC, como {0 n 1 n n 1} es un LLC, entonces =f L (L)esLC. 31 {0 n 1 n n 1} f s (0)= {a} f s (1)= {ww r w {b,c} + } Por teorema... f L (L) G=( {S},{0,1},S, {S01,S 0S1} ) G 1 =( {S 1 },{a},s 1, {S 1 a} ) G =({S },{b,c},s, {S bs b, S cs c, S bb, S cc} ) G L =( {S,S 1,S }, {a,b,c}, S, { SS 1 S, SS 1 SS } P 1 P ) 3 Sustitución Libre de λ- Concepto Def.: Una sustitución f s se denomina sustitución libre de λ si ninguno de los lenguajes f s (a), para todoa Σcontienelapalabranula λ. Sustitución libre de λ. Ejemplos Usos conocidos de homomorfismo libre de la cadena vacía son el código morse, el código Braille y el código ASCII. Caso particular:homomorfismos sobre cadenas, la fc. asocia a cada símbolo del alfabeto una palabra. Más formalmente, hes tal que h(a)=w, para cada a Σ 1 y alguna palabra w Σ *. Un homomorfismo sobre cadenas es entonces un mapeo h:σ 1 Σ *. El homomorfismo es libre de λsi ninguna de las palabras de la imagen es λ. hola 686F6C61 33 34 LCs son cerrados bajo homomorfismos Corolario (del teo. anterior): La clase de lenguajes LC es cerrada bajo homomorfismo. Notemos que en el caso de homomorfismos no es necesario demostrar el tipo de lenguaje que genera la cadena a utilizar para la sustitución. Por ser una cadena una secuencia conocida de símbolos, siempre podemos definir un AF para reconocerlo (o una G regular para generarla). Ejemplo:Sea la gramáticag=(v n,v t,s,p), con V n ={S}, V t ={[,]}, P={ S[], SSS, S[S]}. 35 LCs son cerrados bajo homomorfismos - Ejemplo Sea L el lenguaje de las cadenas de corchetes balanceados. Probar que el lenguaje L de cadenas balanceadas de begin y end es libre de contexto utilizando un homomorfismo. Seaelhomomorfismo h:{[,]}{begin,end},tq: h(x) = h( [) = begin h ( ])= end QPQ probar que L es LC. Como h(l)=l, ent. podemos usar la prop. anterior para probar que h(l)eslc. h([)es generable por una GLC, G 1 =({S},{b,e,g,i,n},S,{Sbegin}) Lo mismo para h(])usando otra gram. G L es LC(ya lo hemos probado anteriorm.) Luego h(l)=l es LC. 36
Corolario importante Corolario (de los resultados anteriores): Los lenguajes regulares son cerrados bajo sustitución y homomorfismo. Justificación: Dado que las pruebas anteriores las realizamos sobre lenguajes libres de contexto, se aplican en particular a los lenguajes regulares. Teos. sobre LLC para y complemento Teorema : La clase de lenguajes libres de contexto no es cerrada bajo intersección. Demostración: Para probar esto, recurriremos a un contraejemplo. Dados dos lenguajes y L que son LC, mostraremos que L= L no es LC. Consideremos ={a n b n c i n 1, i 0} y L ={a j b n c n n 1, j 0}. Ambos son LC. 37 38 Teos. sobre LLC para y complemento Teos. sobre LLC para y complemento ={a n b n c i n 1, i 0} L ={a j b n c n n 1, j 0} Teorema : La clase de lenguajes libres de contexto no es cerrada bajo complemento. L = L = {a n b n c n n 1} Como se verá más adelante, este lenguaje no es LC. Luego podemos concluir que los lenguajes que son LC no son cerrados bajo intersección (pues existe un contraejemplo). L 39 Demostración: Queda como ejercicio. Se sugiere hacerlo por contradicción, combinando las estrategias usadas para LR cuando se consideró la clausura bajo intersección. 40 Que hemos visto en este módulo Propiedades de clausura de LLC: union, intersección, est.kleene, intersección. con un lenguaje regular. Substitución. Concepto. Sustitución libre de cadena vacía. Homomorfismo para LLCs. Vimos que los LLCs son cerrados bajo homomorfismo Vimos que existen lenguajes que no son LLCs: L= {a n b n c n n 1} 41