+ All Categories
Home > Documents > Capítulo 7: Expresiones Regulares

Capítulo 7: Expresiones Regulares

Date post: 29-Jan-2023
Category:
Upload: independent
View: 0 times
Download: 0 times
Share this document with a friend
30
1 Capítulo 7: Expresiones Regulares 7.1. Concepto de expresión regular 7.1.1. Definición 7.1.2. Lenguaje descrito 7.1.3. Propiedades 7.2. Teoremas de equivalencia 7.2.1. Obtener un AFND a partir de una expresión regular 7.2.2. Obtener una expresión equivalente a partir de un autómata finito
Transcript

1

Capítulo 7: Expresiones Regulares

7.1. Concepto de expresión regular

7.1.1. Definición

7.1.2. Lenguaje descrito

7.1.3. Propiedades

7.2. Teoremas de equivalencia

7.2.1. Obtener un AFND a partir de una expresión regular

7.2.2. Obtener una expresión equivalente a partir de un autómata finito

2

7.1. Co ncepto de Ex presi ó n Reg ul a r

El objetivo de las expresiones regulares esrepresentar todos los posibles lenguajesdefinidos sobre un alfabeto , en base auna serie de lenguajes primitivos, y unosoperadores de composición.

Lenguajes primitivos: el lenguaje vacío,el lenguaje formado por la palabravacía, y los lenguajes correspondientesa los distintos símbolos del alfabeto.

Operadores de composición: la unión, laconcatenación y el cierre.

Ejemplo:

1. Lenguaje formado por las cadenas que terminan en 01:{0,1}*.{01}=({0} {1})*.{01}

⇒ Expresión regular: (0+1)*012. Lenguaje formado por palabras de longitud par sobre a’s y b’s:{aa,ab,ba,bb}*=({aa} {ab} {ba} {bb})*

⇒Expresión: (aa+ab+ba+bb)*

3

7.1.1 Definición

Dado un alfabeto , las expresiones regulares sobre se definen de forma recursiva por las siguientes reglas:1. Las siguientes expresiones son expresiones regulares primitivas:

a, siendoa .

2. Sean y expresiones regulares, entonces son expresiones regulares derivadas:

+ (unión). (o simplemente ) (concatenación)*

(cierre) ( )

3. No hay más expresiones regulares sobre que las construidas mediante estas reglas.

Precedencia de los operadores:1. ()2. * cierre3. . concatenación

4

4. + unión

Ejemplo:Algunos ejemplos de expresión

regular son: (0 + 1)*01(aa + ab + ba+ bb)* a*(a +b) (aa)*(bb)*b

5

7.1.2 Lenguaje descrito por una ER

Definición (Lenguaje descrito por una ER):Sea r una expresión regular sobre . El lenguaje descrito por r, L(r), se define recursivamente de la siguiente forma:1. Si r= ⇒ L( )=2. Si r= ⇒ L( )= { }3. Si R=a, a ⇒ L(a)= {a}4. Si R= + ⇒ L( + )= L( ) L( )5. Si R= . ⇒ L( . )= L( )L()6. Si R= * ⇒ L( *)= L( )*7. Si R=( ) ⇒ L(( ))= L( )

donde y son expresiones regulares.

6

Ejemplo: Mostrar el lenguaje descrito por una ER mediante notación conjuntista:

1 L(a*(a+b) = L(a*)L((a+b)) L(a)*L(a+b)= L(a)*(L(a)

L(b)) ={a}*({a} {b})= { ,a,aa,aaa,...}{a,b}

= {a,aa,...,b,ab,aab,...}= {an|n 1} {anb|n 0}

2. L((aa)*(bb)*b) = {a2nb2m+1|n,m 0}

3. Si ={a,b,c}, entonces L((a+b+c)*)= *.

4. L(a*.(b+c))

5. L(0*.1.0*)

6. L((a+b+c+...+z)*.(a+b)*)

7. ¿Que lenguaje describe la expresión a*.(a+b).c*?

8. Dado el lenguaje L={w |w {a,b,c}* donde w tiene al menos un par de a’s consecutivos}. Escribe la expresión regularpara L.

7

9. Escribe todas las palabras de longitud <4 deL((a+b)*.b.(a+a.b)*).

8

7.1.3 Propiedades deExpresiones Regulares

Definición(equivalencia de ER):Dos expresiones regulares r1 y r2 se dicen equivalentes, r1 = r2, si describen el mismolenguaje, esto es, si L(r1)=L(r2).

En base a esta definición se pueden establecer las siguientes equivalencias y propiedades:

Respecto a lasoperaciones + y . :1. + y . son asociativas: +( +)=( + )+ = + + y

.( . )=( . ). = . .2. + es conmutativa e idempotente:+ = + y + =3. Distributividad: .( + )= .+ . y ( + ). = . + .4. Elemento neutro: . = . =y + = + =5. .= . =6. Si L( ),entonces + =

9

Respecto a laoperación *:7. *=+ . *8.*=9.*=10. *.*= *11. .*= *.12. (*)*= *13. ( *+ *)*=( *. *)*=(+ )*=( *. )*. *14. ( . )*.= .( . )*

Para comprobar si dos expresiones sonequivalentes se puede intentartransformarlos mediante estas reglas en unamisma expresión.

1

Ejemplos:

={a,b,c}1. c*.c+c*=c*¿?c*.c+c* = c*.c+c*+ (por 6)

= c.c*+c*+ (por 11)= +c.c*+c* (por 2)= c*+c* (por 7)= c* (por 2)

2. c+c*=c*¿?c+c* = c+ +c.c* (por 7)

= +c+c.c* (por 2)= +c. +c.c* (por 4)= +c.( +c*) (por 3)= +c.c* (por 6)= c* (por 7)

3. ((c+b.a)*.a*)*=((c+b.a)+a)* ¿?

4. Dado dos expresiones regulares R= b.c+a.c*.a.c+a.c*.c+a yS=(b+a.c*a).c+a.c*. ¿Representan S y R elmismo lenguaje?

5. Demuestre que las expresiones R=(a*.(b+c)*+b*)* yS=(a+b+c)* son iguales.

Observación: De este modo sólo se puede demostrar que dos expresiones regulares

1

son equivalentes. Sin embargo, mediante este método, no es posible demostrar que dos expresiones regulares describen lenguajes distintos.

1

7 .2 Teo rema s de equi v a l enci a

Tal y como indica su nombre, medianteexpresiones regulares se puede representarlenguajes regulares. De hecho, la clase delenguajes que se puede representarmediante una ER, es equivalente a la clasede lenguajes regulares.

Hasta ahora hemos visto que los lenguajesregulares pueden describirse mediante:

Gramáticas lineales por la izquierda Gramáticas lineales por la derecha Autómatas finitos deterministas Autómatas finitos no deterministas

Por tanto, deben existir algoritmos quepermiten obtener un autómata o unagramática regular a partir de unaexpresión regular y viceversa.

1

7.2.1 ER equivalente a unautómata finitoTres métodos principales para convertirexpresiones regulares en autómatas:Método de las rnij (Hopcroft). Eliminación deestados (Hopcroft,Linz)Ecuaciones características (Alfonseca, Isasi) (equivalente al método de la eliminación de estados)

Definición (ecuacióncaracterística):Sea un autómata finito A=({q0,q1,…,qn}, ,f,q0,F).Cada estado del autómata tieneasignado una ecuacióncaracterística correspondiente, quedescribe las distintas formas de llegardesde este estado a un estado final. Laecuación característica para el estado qi esla siguiente:

Xi =bjXj+ bkXk +…+bwXw+ai

donde: La expresión bkXk forma parte de la

ecuación si y sólo si existe una

1

transicióndelestado qialestado qkparaelsímbolodeentradabkaiesunaexpresióntalqueai=siqiF;ai=enotrocaso.

10

q

Ejemplo:

a q1

c2

b

dq4*

q0

c

b,d a,b,c a,b,c,d q3* c

a,da,b,d q5

a,b,c,d

x0=b.x1+c.x3+a.x5+d.x5+ =b.x1+c.x3+(a+d).x5+x1=c.x2+a.x0+(b+d).x5+ x2=d.x4+(a+b+c).x5+ x3=c.x3+(a+b+d).x5+ x4=(a+b+c+d).x5+x5=(a+b+c+d).x5+

Observación:1. Se puede definir lasecuaciones características paraautómatas finitos deterministas y nodeterministas.

2. Xi es una expresión regular (convariables) que describe las cadenas que

11

llevan del estado qi a un estado final.Evidentemente L(X0)=L(A).

Teniendo todas las ecuacionescaracterísticas, se puede resolver laecuación para el estado inicial obteniendola expresión regular del lenguaje. Elsiguiente lema proporciona una regla paraeliminar las variables en las ecuaciones.

12

Lema 1:Sea X una variable y A y B expresiones regulares. Si X=A.X+By L(A), enconces X=A*.B.

Demostración:

Sea cualquier palabra x L(X) con |x|=ny X=A.X+B. Se demuestra que se cumple xL(A*B).Consideramos la definición de X:X=A.X+B X=A.(A.X+B)+B=A2.X+A.B+B X=A2.(A.X+B)+A.B+B=A3.X+A2.B+A.B+B…X=An+1.X+An.B+…+A.B+B= An+1.X+(An+…+A+ ).B

Por tanto, L(X)=L(An+1.X) L((An+…+A+ ).B) y dado que x L(X) se sigue x L(An+1.X) o x L((An+…+A+ ).B).Dado que L(A), para cualquier w L(An+1.X) se cumple|w| n+1.x tiene longitud n por lo que x L(An+1.X).Por tanto, x L((An+…+A+ ).B) y, entonces también se verifica x L(A*B).

Razonando de forma similar se puede demostrar que para cualquier palabra x L(A*B) también se cumple x L(X).

13

Ejemplos: Resolución de ecuaciones1. X=abX X=abX+ =(ab)* =2. X=abX+ X=(ab)* = (ab)*3. X=abX+cX X=(ab+c)X+ = (ab+c)* =

Teorema 1:Dado un autómata finito A=(Q, ,f,q0,F), existe una expresión regular R tal que L(R)=L(A).

Demostración:La expresión regular equivalente se obtieneresolviendo de forma sucesiva las ecuacionescaracterísticas del autómata. La expresiónregular R será la que se obtiene a partir dela ecuación característica correspondienteal estado inicial del autómata: R=X0.

Ejemplo: (para el autómata anterior) Ecuaciones características: x0=b.x1+c.x3+(a+d).x5+ x1=c.x2+a.x0+(b+d).x5+ x2=d.x4+(a+b+c).x5+ x3=c.x3+(a+b+d).x5+x4=(a+b+c+d).x5+x5=(a+b+c+d).x5+

14

Resolviendo x5: x5=(a+b+c+d)*. = Resolviendo x4: x4=(a+b+c+d).+ = Resolviendo x2: x2=d. +(a+b+c). + =dResolviendo x3: x3=c.x3+(a+b+d). + =c.x3+ =c*. =c* Resolviendo x1: x1=c.d+a.x0+(b+d). + =cd+a.x0Resolviendo x0: x0 =b.(cd+a.x0)+c.c*+(a+d). +

= bax0+bcd+c.c*= (ba)*(bcd+cc*)

15

Observaciones:La aplicación de la regla “Si X=A.X+B, enconcesX=A*.B” sólo es posible si L(A).Si el autómata tiene transiciones ,entonces es posible que no se pude aplicar esta regla.En consecuencia, será necesario eliminar transiciones antes (convertir el autómata en uno sin transiciones ).

Ejemplo:

q2

a a, q0

q1*

x2=c x1=cx1+(a+ )x0+=c*.((a+ )x0+ )

=(c*.a+c*)x0+c*x0= x1+ax2+= ((c*.a+c*)x0+c*)+a=(c*.a+c*)x0+c*

¡¡¡ (c*.a+c*)*.c* !!!!

Transformación del autómata (eliminación de transiciones ):similar a la conversión a un autómata deterministalos estados nuevos son las clausuras de los estados originales respecto a :

q2

16

a a, q0 c

q1*q2

a{q0,q1}*

c,a

x2=x01=(c+a)x01+ +ax2=(c+a)x01+ +a =(c+a)x01+ =(c+a)*. =(c+a)*

a bpq

qp

pq

0 1ABC

BCC

AAC

17

Ejemplos: Obtener las expresiones regulares para los siguientes autómatas:

1. A

*

xp=axq+bxp+xq=axp+bxq+

Solución: xp=(ab*a+b)*(ab*)

2. A **

xA=0xB+1xA+xB=0xC+1xA+xC=0xC+1xC+

Solución: xA=(01+1)*(0+ )

3.

q0 b

q1*

c

a,b,cq3*a

a,b,cq4

q2 ca b

Solución: x0=b+c.c*.a

4. Autómata no determinista

a,b,c

18

a

q0 a c,

b

q1*

c q2

Solución:x0=(b+a.c*a)*.a.c*

19

7.2.2 AFND equivalente a una Expresión RegularDos métodos principales para convertir expresiones regulares en autómatas:Método de las derivadas (Alfonseca) ⇒ se obtiene una gramática regular que se puede convertir en AFNDMétodo de composición de autómatas (Alfonseca, Linz, Hopcroft)

Teorema 2:Dada una expresión regular R sobre el alfabeto ∑, existe un autómata finito no determinista A tal que L(R)=L(A).

Demostración:Basándose en la estructura de la expresión regular R, la demostración procede por inducción estructural. Sea∑={a1,…,an}.

Si R es una expresión regular primitiva:R=

R={ }

R={a1}

a1 … anq0qf

a1 … anq0qf

{qf}

a1 … anq0qf

{qf}

*

20

A

*

A

*

A q0 qf*

q0 qf

q0 a1

* qf*

a1 … anq0 q0_R1 qf_R1 q0_R

{q0_R1,q0_R2}…{qf}…{qf}

a1… a

nq0q0_R1qf_R1

{q0_R1}…{q0_R2}

a1… an

q0

q0_R1

… … …

{q0_R1, qf}…{qf}

21

Si R es una expresión regular derivada: Si R=R1+R2 :

A

q0

*

q0_R1

q0_R2

qf_R1R1

qf_R2R2

qf*

Si R=R1.R2 :

A

*

q0 q0_R1

q0_R2

qf_R1R1

qf_R2R2qf*

Si R=R1*:A

q0 q0_R1 qf_R1R1

qf*

*

Se construye el autómata de forma recursiva:q0_R1 y q0_R2: estados iniciales de los subautómatas para

22

R1 y R2 (¡no se marcan como estados iniciales!)qf_R1 y qf_R2: estados finales de los subautómatas para R1 yR2 (¡no se marcarán como estados finales!)

23

Ejemplos: Obtener los AFND correspondientes a las siguientes expresiones regulares:

1. R=(1+01)*(0+ ):

q0

0

1

1

0

qf*

1

24

Como se puede observar, los autómatas así construidas tienen muchas transiciones que se pueden unir:

0 q1q0

1,q2 0,

qf*

El AFD mínimo correspondiente es el siguiente:

q0*

1

1

0 q1* 0 q2

1,0

2. R=(1+01*)*

3. R=a.a*.b.b*

4. R= (b+a).a*

25

Corolario:Sean LREG, LAF y LER las clases de loslenguajes aceptados por autómatas finitos,generados por gramáticas regulares ydescritos por expresiones regulares,respectivamente.

LREG=LAF=LER

Gramáticas regularesGramática Lineal por la izquierda

Gramática Lineal por la Derecha

Autómatas FinitosAutómatas FinitosDeterministas

Autómatas Finitos NO Deterministas

Expresiones Regulares


Recommended