• No results found

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 (+ba) 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 α= 010, tenemos que:

L(010) =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α 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·10x 1+ 1x2 x3 = 1∗·0x1 99K x1=λ+ (1 + 0·1010)x1 x2= 1·010x 1 x3= 10x1

Ahora obtenemos soluciones y sustituimos variables por soluciones: x1= (1 + 01010)

x2= 1010 (1 + 01010)

x3= 10 (1 + 01010)

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)bb B =b∗(bA+b)

99K

S =(a+ (b+a)b∗b)(b+a)bb+λ

A= (a+ (b+a)b∗b)·(b+a)bb

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α∗=Pn=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 1010 (01010 + 1)01+ 1 de forma que s´olo aparezca un operador +. 1010 (01010 + 1) | {z } (15) 01+ 1= 1010 (1∗·01010) | {z } (16) 1∗·01+ 1= (1010·10)1010101+ 1 | {z } (8) =   (101010)101010 +λ | {z } (13)   1= (1∗·01010)1 | {z } (15) = (1 + 01010) 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(ba) ?

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)

Related documents