Exponential Transformation
CHAPTER 3 METHODOLOGY
3.2. C Cross Sections
1. Definici´on de expresi´on regular
Dado un alfabeto V, los s´ımbolos ∅, λ y los operadores + (uni´on), · (concatenaci´on) y ∗
(clausura), definimos (de forma recursiva) una expresi´on regular(ER) sobre el alfabeto V como:
1. el s´ımbolo ∅es una expresi´on regular 2. el s´ımbolo λes unaER
3. cualquier s´ımbolo a∈V es unaER
4. si α yβ sonER entonces tambi´en lo esα+β 5. si α yβ sonER entonces tambi´en lo esα·β 6. si α es unaER entonces tambi´en lo esα∗
¨ §
¥ ¦
Nota El orden de prioridad de los operadores es, de mayor a menor:∗, ·, +. Este orden puede alterarse mediante par´entesis, de forma an´aloga a como se hace con las expresiones aritm´eticas.
Ejemplo 2.1 aa+b∗aes una e.r sobre el alfabeto {a, b} (por simplicidad omitimos el operador
·) y esta ER es distinta a la ER (aa+b∗)a. Por otra parte, la cadena (+b∗a) no es una ER
sobre {a, b}.
2. Lenguaje descrito por una expresi´on regular
Cada expresi´on regular α sobre un alfabeto V describe o representa un lenguaje L(α) ⊆ V∗.
1. siα=∅ entoncesL(α) =∅ 2. siα=λentoncesL(α) ={λ} 3. siα=a ya∈V entoncesL(α) ={a} 4. siα yβ sonER entoncesL(α+β) =L(α)∪L(β) 5. siα yβ sonER entoncesL(α·β) =L(α)·L(β) 6. siα∗ es unaER entoncesL(α∗) = (L(α))∗
Ejemplo 2.2 Dado V ={0,1} y la ER α= 0∗10∗, tenemos que:
L(0∗10∗) =L(0∗)·L(1)·L(0∗) = (L(0))∗·L(1)·(L(0))∗={0}∗· {1} · {0}∗ ={0n10m |n, m≥0}
3. Propiedades de las expresiones regulares
Decimos que dos expresiones regulares α y β son equivalentes, y lo notamos como α = β, si describen el mismo lenguaje, es decir, siL(α) =L(β).
A continuaci´on enumeramos una serie de propiedades que cumplen las expresiones regulares, derivadas de las propiedades de las operaciones con lenguajes:
1. α+ (β+γ) = (α+β) +γ 9. λ∗ =λ 2. α+β =β+α 10. ∅∗ =λ 3. α+∅=α 11. α·α∗ =α∗·α 4. α+α=α 12. α∗=α∗·α∗= (α∗)∗ 5. α·λ=α 13. α∗=λ+α·α∗ 6. α·∅=∅ 14. (α+β)∗ = (α∗+β∗)∗ 7. α·(β·γ) = (α·β)·γ 15. (α+β)∗ = (α∗·β∗)∗= (α∗·β)∗·α∗ 8. α·(β+γ) =αβ+αγ, (β+γ)·α=βα+γα 16. α·(β·α)∗= (α·β)∗·α ¨ § ¥ ¦
Nota Si tenemos dos expresiones regulares tales que L(β) ⊆ L(α) entonces se cumple queα+β =α.
Estas propiedades muestran ciertas equivalencias que se cumple entre expresiones regulares. Por tanto, la demostraci´on de cada propiedad se har´ıa demostrando que se cumple la igualdad de los lenguajes descritos por las expresiones regulares equivalentes.
Ejemplo 2.3 Para demostrar la propiedad∅∗=λbasta probar queL(∅∗) =L(λ). En efecto,
teniendo en cuenta la definici´on de lenguaje descrito por unaER tenemos que: L(∅∗) = (L(∅))∗ =
∞
[ n=0
∅n=∅0={λ}=L(λ), c.q.d.
Las propiedades de las expresiones regulares son ´utiles porque en algunos casos nos permiten simplificar unaER (ver ejercicio 2 en la secci´on de aplicaciones).
4. Derivada de una expresi´on regular
Sea α una ER sobre cierto alfabeto V y seaa∈V. La derivada de α respecto del s´ımbolo a, y lo notamos como Da(α), es una expresi´on regular que describe el siguiente lenguaje:
L(Da(α)) ={w∈V∗ |a·w∈L(α)}
En realidad, lo que estamos haciendo al derivar α respecto de un s´ımbolo a, es describir el lenguaje que resulta de eliminar el prefijo a de todas las palabras de L(α). Teniendo esto en cuenta, para calcular la derivada de una expresi´on regular aplicamos de forma recursiva las siguientes reglas de derivaci´on:
1. Da(∅) =∅ 2. Da(λ) =∅ 3. Da(a) =λ, Da(b) =∅, ∀b∈V b6=a 4. Da(α+β) =Da(α) +Da(β) 5. Da(α·β) =Da(α)·β+δ(α)·Da(β) dondeδ(α) = ½ ∅ siλ /∈L(α) λ si λ∈L(α) 6. Da(α∗) =D a(α)·α∗
Ejemplo 2.4 Sea la expresi´on regular α=a∗ab. Vamos a derivar α respecto dea y deb:
Da(α) =Da(a∗)·ab+δ(a∗)·Da(ab) =Da(a)a∗ab+λ(Da(a)b+δ(a)Da(b)) =a∗ab+b= (a∗a+λ) | {z } (13) b=a∗b Db(α) =Db(a)a∗ab+λ(Db(a)b+δ(a)Db(b)) =∅ ¨ § ¥ ¦
Nota Tambi´en podemos derivar una expresi´on regularα respecto de una cadena x de s´ımbolos del alfabeto, teniendo en cuenta que:
L(Dx(α)) ={w∈V∗ |x·w∈L(α)}
5. Ecuaciones de expresiones regulares
Definici´on 2.1 Llamamos ecuaci´on de expresiones regulares (en forma est´andar) con inc´ognitas o variables x1, x2, . . . , xn a una ecuaci´on del tipo:
xi =αi0+αi1x1+. . .+αinxn donde cada coeficiente αij es una expresi´on regular.
Puede ser que alguno de los coeficientes seaαij =∅, en cuyo caso el t´ermino para la incognita
xj no aparece en la ecuaci´on y αi0 es el t´ermino independiente. Una soluci´on para xi es una expresi´on regular.
Definici´on 2.2 A una ecuaci´on de la forma x=αx+β dondeα yβ son expresiones regu- lares, la llamaremos ecuaci´on fundamentalde expresiones regulares.
Lema 2.1 (de Arden) Se puede probar que x=α∗β es una soluci´onpara la ecuaci´on fun- damental y esta soluci´on es ´unica siλ /∈L(α). En otro caso la ecuaci´on tiene infinitas soluciones de la forma x=α∗(β+γ) dondeγ es cualquier ER
¨ §
¥ ¦
Nota Aunque la ecuaci´on fundamental tenga infinitas soluciones, se tiene queα∗β
es la menor soluci´on o menor punto fijo de la ecuaci´on. Esto quiere decir que no existe otra expresi´on regularr que sea soluci´on y cumpla queL(r) sea subconjunto propio deL(α∗β).
En la figura 2.1 mostramos un algoritmo resuelve sistemas de ecuaciones de expresiones regulares. El algoritmo toma como entradanecuaciones de ER conninc´ognitasx1, x2, . . . , xn y proporciona como salida una soluci´on para cada variable. El m´etodo es similar al de eliminaci´on gaussiana: primero diagonalizamos el sistema para dejarlo triangular inferior, de forma que la primera ecuaci´on sea fundamental y luego se realiza una sustituci´on progresiva de las soluciones obtenidas para la primera variable en adelante.
Entrada:n ecuaciones de ER conninc´ognitasx1, x2, . . . , xn
Salida:una soluci´on para cada incognitaxi 1. i←n; {comenzamos a tratar la ´ultima ecuaci´on}
2. whilei≥2 {bucle de diagonalizaci´on}
3. expresar ecuaci´on para xi comoxi=αxi+R {R es la suma del resto de t´erminos} 4. obtenerxi ←α∗R;
5. desde j=i−1 hasta 1 sustituir en ecuaci´on paraxj la variable xi porα∗R; 6. i←i−1;
7. end-while
8. i←1; {comenzamos a tratar la primera ecuaci´on}
9. whilei≤n {bucle de sustituci´on progresiva}
10. obtener soluci´onxi ←α∗β; {la ecuaci´on para x
i ya es fundamental} 11. desde j=i+ 1 hasta nsustituir en ecuaci´on para xj la variable xi por α∗β;
12. i←i+ 1; 13. end-while
Figura 2.1: Algoritmo de resoluci´on de sistemas de ecuaciones deER
Ejemplo 2.5 Vamos a resolver el sistema de ecuaciones de expresiones regulares sobre el alfa- beto {0,1}:
x1 =λ+ 1x1+ 0x2
x2 = 1x2+ 0x3 x3 = 0x1+ 1x3
Tenemos un sistema de 3 ecuaciones con 3 inc´ognitas. Las ecuaciones no contienen todos los t´erminos, por ejemplo, a la ecuaci´on parax2 le falta el t´ermino independiente y el t´ermino para
x1. Seg´un el algoritmo primero tenemos que diagonalizar el sistema:
x1 =λ+ 1x1+ 0x2 x2 = 0·1∗0x 1+ 1x2 x3 = 1∗·0x1 99K x1=λ+ (1 + 0·1∗01∗0)x1 x2= 1∗·01∗0x 1 x3= 1∗0x1
Ahora obtenemos soluciones y sustituimos variables por soluciones: x1= (1 + 01∗01∗0)∗
x2= 1∗01∗0 (1 + 01∗01∗0)∗
x3= 1∗0 (1 + 01∗01∗0)∗
6. Expresiones regulares y gram´aticas regulares
En esta secci´on vamos a probar que el lenguaje descrito por una expresi´on regular es un lenguaje que puede ser generado por una gram´atica regular, esto es, es un lenguaje regular. Y por otra parte, todo lenguaje regular veremos que puede ser descrito por una expresi´on regular. Para ello veremos dos m´etodos:
ER −→GR para pasar de una expresi´on regular a una gram´atica regular
GR−→ER para obtener una expresi´on regular a partir de una gram´atica regular
6.1. C´alculo de la gram´atica a partir de la expresi´on regular ER−→GR
Dada una expresi´on regularα sobre cierto alfabetoV ={a1, . . . , ak}, vamos a aplicar elm´etodo de las derivadas para obtener una gram´atica regularG tal queL(α) =L(G):
1. S es el s´ımbolo inicial deG que asociaremos a la expresi´on regularα 2. Inicialmente VN ={S}, VT =V, P =∅
3. Obtenemos las reglas de producci´on paraS de la siguiente forma: a) Siλ∈L(α) entonces a˜nadimos aP la regla S →λ
b) Desdei= 1 hastak
1) calculamos Dai(S) y siλ∈L(Dai(S)) entonces a˜nadimos aP la regla S→ai 2) si Dai(S) 6=λ,∅entonces a˜nadimos la regla S →aiAi dondeAi es la variable
que asociamos aDai(S) y la a˜nadimos aVN (si es nueva)
4. Obtenemos reglas para el resto de variables de la gram´atica por derivadas sucesivas hasta que no podamos a˜nadir variables nuevas a la gram´atica:
a) Para cada variableB asociada a unaER no derivada y desdei= 1 hastak
1) calculamos Dai(B) y siλ∈L(Dai(B)) entonces a˜nadimos aP la regla B →ai 2) siDai(B)6=λ,∅entonces a˜nadimos la regla B →aiCi dondeCi es la variable
que asociamos aDai(B) y la a˜nadimos aVN (si es nueva)
Ejemplo 2.6 Sea la expresi´on regular α =aa∗bb∗ +ab sobre el alfabeto V ={a, b}. Vamos a calcular la gram´atica correspondiente por el m´etodo de las derivadas:
1. Da(S) =a∗bb∗+b=A 2. Db(S) =∅
3. Da(A) =Da(a∗bb∗+b) =D
a(a∗)·bb∗+δ(a∗)·Da(bb∗)+∅=a∗bb∗ =A, ya quea∗bb∗+b=
4. Db(A) =Db(a∗)·bb∗+δ(a∗)·D
b(bb∗) +λ=b∗+λ=b∗ =B 5. Da(B) =Da(b∗) =∅
6. Db(B) =b∗ =B, y ya no hay variables nuevas para derivar La gram´atica que se obtiene es la siguiente:
S →aA
A→aA|bB |b B →bB|b
6.2. C´alculo de la ER a partir de la gram´atica GR−→ER
Supongamos que tenemos una gram´atica G = (VN, VT, A1, P) lineal derecha (si fuera lineal
izquierda se puede obtener otra lineal derecha equivalente, aunque no vamos a ver el m´etodo), vamos a aplicar elm´etodo de resoluci´on de ecuaciones para obtener una expresi´on regular α tal queL(G) =L(α):
1. Supongamos que VN ={A1, A2, . . . An}.Obtenemos un sistema de n ecuaciones deER, una para cada variable de la gram´atica, teniendo en cuenta las reglas de producci´on para esa variable. La ecuaci´on para la variableAi ser´a de la forma:
Ai=αi0 +αi1A1+αi2A2+. . .+αinAn y los coeficientes se obtienen:
a) t´ermino independiente: Si Ai → a1 | . . . | ak | λ, donde cada aj ∈ VT, enton- ces el t´ermino independiente ser´a la suma de los terminales y λ, esto es, αi0 = (a1+. . .+ak+λ) . Si Ai no deriva en ning´un s´ımbolo terminal ni en λ entonces
αi0 =∅
b) coeficiente para variableAj: SiAi →b1Aj |. . .|bmAj, donde cadabj ∈VT,entonces αij ser´a la suma de los terminales que acompa˜nan aAj, esto es,αij = (b1+. . .+bm). Si no tenemos ninguna producci´on paraAi donde Aj aparezca en la parte derecha entoncesαij =∅
2. Resolvemos el sistema de ecuaciones obtenido en el paso anterior y la soluci´on para A1
(s´ımbolo inicial) ser´a la expresi´on regularαtal queL(G) =L(α).En general, la expresi´on regular soluci´on a una variableAi describe el conjunto de palabras que pueden generarse a partir de la variableAi.
Ejemplo 2.7 Encontrar la expresi´on regular correspondiente a la siguiente gram´atica: S→aA|λ
A→aA|aC |bB |aB B→bB |bA|b C→aC |bC
Vamos a obtener el sistema de ecuaciones para la gram´atica y resolvemos (en realidad no es necesario resolverlo completo, s´olo la primera ecuaci´on):
S =aA+λ A=aA+aC+ (b+a)B B =bB+bA+b C = (a+b)C 99K S=aA+λ A=aA+ (b+a)B B=bB+bA+b C= (a+b)∗·∅=∅ 99K S =aA+λ A=aA+ (b+a)b∗bA+ (b+a)b∗b B =b∗(bA+b)
99K
S =a·(a+ (b+a)b∗b)∗(b+a)b∗b+λ
A= (a+ (b+a)b∗b)∗·(b+a)b∗b
B =b∗·(bA+b)
Para resumir los resultados expuestos en esta secci´on enunciamos el siguiente teorema.
Teorema 2.1 Un lenguaje puede ser generado por una gram´atica regular si y solo si puede ser descrito por una expresi´on regular.
EJERCICIOS RESUELTOS
1. Sea la ER α=a+bc+b3a. ¿Cu´al es el lenguaje descrito por α? ¿Qu´e expresi´on regular
corresponde al lenguaje universal sobre el alfabeto{a, b, c}?
En primer lugar, esta no es estrictamente hablando unaER, ya que no se permiteb3a.Sin
embargo, aceptamos como v´alida la expresi´on a+bc+b3a, como una simplificaci´on de la
ER a+bc+bbba. En ese caso,L(α) ={a, bc, bbba}, que como vemos es un lenguaje finito sobre el alfabeto {a, b, c}. La ER que describe el lenguaje universal sobre este alfabeto es (a+b+c)∗.
2. Simplificar laER α=a+a(b+aa) (b∗aa)∗b∗+a(aa+b)∗.
Aplicando las propiedades de las expresiones regulares, podemos obtener unaERequiva- lente con tan s´olo 4 operadores:
a+a(b+aa) (b∗aa)∗b∗ | {z } (15) +a(aa+b)∗ =a+a(b+aa) (b+aa)∗ | {z } (8) +a(aa+b)∗ = a(λ+ (b+aa) (b+aa)∗ | {z } (13) ) +a(aa+b)∗ =a(b| {z }+aa (2) )∗+a(aa+b)∗= a(aa+b)∗+a(aa+b)∗ | {z } (4) =a(aa+b)∗ 3. Calcular Dab(α) siendo α=a∗ab.
Teniendo en cuenta que Dab(α) = Db(Da(α)), y que Da(α) = a∗b (calculada en el ejemplo 2.4), entonces Db(a∗b) =Db(a∗)·b+δ(a∗)·Db(b) =∅·b+λ·λ=λ.
4. Demostrar que Da(α∗) =Da(α)·α∗ (regla de derivaci´on para la clausura).
Podemos afirmar queα∗=P∞n=0αn, porque ambos miembros de la igualdad describen el mismo lenguaje. Teniendo esto en cuenta y seg´un la regla de derivaci´on para la suma de expresiones regulares, se cumple que:
Da(α∗) =Da ¡ α0¢+Da ¡ α1¢+Da ¡ α2¢+Da ¡ α3¢+. . . donde α0 =λ. Ahora aplicamos la regla de la concatenaci´on a cada t´ermino:
Da(α∗) =∅+Da(α) +Da(α)·α+δ(α)·Da(α) +Da(α)·α2+δ(α)·Da ¡
De aqu´ı se pueden eliminar los t´erminosδ(α)·Da ¡
αi¢, ya queD a
¡
αi¢siempre tiene que calcularse, con lo queδ(α)·Da
¡
αi¢resultar´ıa redundante, independientemente de lo que valgaδ(α). Ahora podemos sacar factor com´un y queda:
Da(α∗) =Da(α)· ¡
λ+α+α2+α3+. . .¢=Da(α)·α∗, c.q.d.
5. Demostrar quex=α∗βes una soluci´on para la ecuaci´on fundamentalx=αx+βy razonar
por qu´e la ecuaci´on fundamental puede tener en algunos casos infinitas soluciones. Para probar que es una soluci´on tenemos que sustituirxpor α∗β en ambos miembros de
la ecuaci´on y ver que se cumple la igualdad. En efecto:
α∗β =αα∗β+β= (α∗α+λ)β=α∗β, c.q.d.
Seg´un el lema de Arden, la ecuaci´on puede tener infinitas soluciones cuandoλ∈L(α) y estas soluciones deben ser de la formaα∗(β+γ). Comprobemos que es soluci´on:
α∗(β+γ) =α(α∗(β+γ)) +β=αα∗β+αα∗γ+β =α∗β+αα∗γ
La igualdad se cumple s´olo en el caso de que α∗γ = αα∗γ, pero dado que γ puede ser cualquierER, debe ser α∗ =αα∗, y para que esto se cumpla es necesario que λ∈L(α),
como afirma el lema de Arden.
6. Simplificar la expresi´on regular 1∗01∗0 (01∗01∗0 + 1)∗01∗+ 1∗ de forma que s´olo aparezca un operador +. 1∗01∗0 (01∗01∗0 + 1)∗ | {z } (15) 01∗+ 1∗= 1∗01∗0 (1∗·01∗01∗0)∗ | {z } (16) 1∗·01∗+ 1∗= (1∗01∗0·1∗0)∗1∗01∗01∗01∗+ 1∗ | {z } (8) = (1∗01∗01∗0)∗1∗01∗01∗0 +λ | {z } (13) 1∗= (1∗·01∗01∗0)∗1∗ | {z } (15) = (1 + 01∗01∗0)∗ EJERCICIOS PROPUESTOS
1. Obtener laER correspondiente a la siguiente gram´atica y aplicar el m´etodo de las deri- vadas a la expresi´on regular obtenida:
S→aA|cA|a|c A→bS
2. Obtener la gram´atica que genera el lenguaje descrito por laER α= (b+ab∗a)∗ab∗ 3. Comprobar que la equivalencia (b+ab∗a)∗ab∗ =b∗a(b+ab∗a)∗
4. Dada la expresi´on regular (ab+aba)∗: aplicar el m´etodo de las derivadas para obtener la
gram´atica y resolver el sistema de ecuaciones de la gram´atica obtenida.
5. Dada unaER αsobre cierto alfabetoV, demostrar que siα2 =α entoncesα∗ =α+λ
6. Dada la expresi´on regular α = a(bc)∗(b+bc) +a: obtener G a partir de α y resolver el
7. Obtener la expresi´on regular equivalente a la siguiente gram´atica: S→bA|λ
A→bB|λ B →aA
8. Obtener la expresi´on regular que describe el lenguaje generado por la gram´atica: S→0A|1B |λ
A→1A|0B B→1A|0B|λ
9. Aplicar el m´etodo de las derivadas para calcular la gram´atica correspondiente a la expre- si´on regular (d(ab)∗)∗da(ba)∗
10. Demostrar que para cualquier expresi´on regular se cumple α∗=α∗α+λ
CUESTIONES BREVES
1. ¿Perteneceacdcdb al lenguaje descrito por la expresi´on regular (a(cd)∗b)∗+ (cd)∗ ? 2. Si L es el lenguaje formado por todas las cadenas sobre {a, b} que tienen al menos
una ocurrencia de la subcadena b, ¿podemos describir L mediante la expresi´on regular a∗(ba∗)∗bb∗(b∗a∗)∗ ?
3. Dada cualquier expresi´on regular α, ¿se cumple que α∗α=α∗ ?
4. Dadas α, β, γ ER cualesquiera, ¿es cierto que α+ (β·γ) = (α+β)·(α+γ) ? 5. ¿Es siempre la derivada de una expresi´on regular otra expresi´on regular?
NOTAS BIBLIOGR ´AFICAS
Para este tema el libro b´asico que recomendamos es el de [Isa97] (cap´ıtulo 3).
La teor´ıa sobre ecuaciones de expresiones regulares y el m´etodo para obtener la expresi´on regular a partir de la gram´atica puede consultarse en el libro de [Aho72] (pag. 105). El lema de Arden aparece en [Alf97] (pag. 166) y [Kel95] (pag.79).
CAP´ITULO 3:
AUT ´OMATAS FINITOS
¨ §
¥ ¦
Contenidos Te´oricos
1. Arquitectura de un aut´omata finito (AF)