expresiones regulares

14

Click here to load reader

Transcript of expresiones regulares

Page 1: expresiones regulares

Tema 3: Expresiones regulares

Departamento de Sistemas Informaticos y Computacion

DSIC - UPV http://www.dsic.upv.es – p.1/14

Page 2: expresiones regulares

Tema 3: Expresiones regulares

• Definiciones y propiedades• Obtención de AFD a partir de expresiones regulares

◦ Reglas para el cálculo de las derivadas◦ Método de las derivadas

• Sistemas de ecuaciones en ER• Sistemas de ecuaciones asociados a autómatas finitos

DSIC - UPV http://www.dsic.upv.es – p.2/14

Page 3: expresiones regulares

Relaciones entre formalismos

AFD AFN AFλ

Gramaticas lineales(por la derecha)

Expresiones regulares

DSIC - UPV http://www.dsic.upv.es – p.3/14

Page 4: expresiones regulares

Expresiones Regulares. Definicion

• Inductivamente, una expresión regular sobre Σ se define:◦ ∅ denota el lenguaje vacio◦ λ denota el lenguaje {λ}◦ ∀a ∈ Σ, a denota el lenguaje {a}◦ Si r y s son expresiones regulares que denotan Lr y Ls:

• (r) denota el lenguaje Lr

• r + s denota el lenguaje Lr ∪ Ls

• rs denota el lenguaje LrLs

• (r)∗ denota el lenguaje L∗

r

◦ Sólo son expresiones regulares las construidas de esta forma

• Prioridad de operadores:

()

ConcatenaciónUnión

DSIC - UPV http://www.dsic.upv.es – p.4/14

Page 5: expresiones regulares

Expresiones Regulares. Propiedades

• Sean α, β y γ expresiones regulares1. α + (β + γ) = (α + β) + γ α(βγ) = (αβ)γ

2. α + β = β + α

3. α(β + γ) = (αβ) + (αγ) (α + β)γ = (αγ) + (βγ)

4. αλ = λα = α

5. α + ∅ = ∅ + α = α α∅ = ∅α = ∅

6. λ∗ = λ

7. ∅∗ = λ

8. α∗ = λ + αα∗

9. (α∗ + β∗)∗ = (α∗β∗)∗ = (α + β)∗

10. (αβ)∗α = α(βα)∗

11. (α∗β)∗α∗ = (α + β)∗

12. (α∗β)∗ = (α + β)∗β + λ

DSIC - UPV http://www.dsic.upv.es – p.5/14

Page 6: expresiones regulares

Obtencion de AFD a partir de expresiones regulares

• Reglas para el cálculo de las derivadas◦ Respecto a símbolos (a, b ∈ Σ, r, s E.R.)

1. a−1∅ = ∅2. a−1λ = ∅3. a−1a = λ; a−1b = ∅ si (a = b)4. a−1(r + s) = a−1r + a−1s

5. a−1(rs) =

{

(a−1r)s si λ 6∈ r

(a−1r)s + a−1s si λ ∈ r

6. a−1r∗ = (a−1r)r∗

◦ Respecto a cadenas (a ∈ Σ, x ∈ Σ∗)1. λ−1r = r

2. (xa)−1r = a−1(x−1r)

DSIC - UPV http://www.dsic.upv.es – p.6/14

Page 7: expresiones regulares

Obtencion de AFD a partir de expresiones regulares

• Método de las derivadasUn autómata A es equivalente a una expresión regular r sii:

L(A) = L(r)

Entrada: Expresión regular r

Salida: AFD A equivalente a r

Método:1. Calcular {x−1 | x ∈ Σ∗}

2. Definir A = (Q, Σ, δ, q0, F ) como sigue:◦ Q = {x−1r|x ∈ Σ∗}◦ Σ alfabeto de r◦ δ(x−1r, a) = (xa)−1r◦ q0 = λ−1r = r◦ x−1r ∈ F ⇔ λ ∈ x−1r

DSIC - UPV http://www.dsic.upv.es – p.7/14

Page 8: expresiones regulares

Obtencion de AFD a partir de expresiones regulares

• ejemplos:◦ r1 = aa∗bb∗

◦ r2 = ab∗ + b

◦ r3 = 1(01)∗

◦ r4 = a∗bb∗a

◦ r5 = (0 + 1)∗00◦ r6 = (a + b)∗bb(a + b)∗

◦ r7 = a(bb∗a)∗

◦ r8 = (a + b)∗b(a + b)∗b(a + b)∗

DSIC - UPV http://www.dsic.upv.es – p.8/14

Page 9: expresiones regulares

Sistemas de ecuaciones en expresiones regulares

• Ecuación en expresiones regulares: Ecuación lineal dondevariables y coeficientes toman la forma de expresiones regulares.

X = rX + s

• Lema de Arden: Sea X = rX + s una ecuación en expresionesregulares. X = r∗s es una solución para la ecuación. Es única siλ 6∈ r

◦ demostramos que r∗s es solución:

rX + s =X=r∗s

rr∗s + s = (rr∗ + λ)s =prop.10

r∗s

◦ Si λ ∈ r existen infinitas soluciones: ∀t ⊆ Σ∗, r∗(s + t) essolución:

X =rX + s = rr∗(s + t) + s = rr∗s + rr∗t + s =

=(rr∗ + λ)s + rr∗t =rr∗+λ=r∗

r∗s + r∗t =X=r∗(s+t)

X

DSIC - UPV http://www.dsic.upv.es – p.9/14

Page 10: expresiones regulares

Sistemas de ecuaciones en expresiones regulares

• Dado un sistema de ecuaciones en expresiones regulares:

X1 = r11X1 + r12X2+ . . . + r1nXn + s1

X2 = r11X1 + r12X2+ . . . + r1nXn + s2

. . .

Xn = r11X1 + r12X2+ . . . + r1nXn + s3

la resolución viene tras aplicar el método de Gauss utilizando elLemma de Arden para reducir.

• Útil para obtener una E.R. a partir de un A.F. o una gramáticaregular.

DSIC - UPV http://www.dsic.upv.es – p.10/14

Page 11: expresiones regulares

Sistemas de ecuaciones asociados a automatas finitos

Entrada: Autómata finito A = (Q, Σ, δ, q1, F ) conQ = {q1, q2, . . . , qn}

Salida: Sistema de ecuaciones donde X1 es el lenguaje delautómata

Método:1. Por cada estado qi introducir una variable Xi

2. Si qi ∈ F entonces en la parte derecha de la i-esimaecuación aparece el término λ

3. Si qj ∈ δ(qi, a) entonces en la parte derecha de lai-esima ecuación aparece el término aXj , cona ∈ Σ ∪ {λ}

DSIC - UPV http://www.dsic.upv.es – p.11/14

Page 12: expresiones regulares

Sistemas de ecuaciones asociados a automatas finitos

• Ejemplos:

q1 q2

1

1

0 0q0 q1

q2 q3

a

b a

b

a,b

a,b

DSIC - UPV http://www.dsic.upv.es – p.12/14

Page 13: expresiones regulares

Sistemas de ecuaciones asociados a G.R. (l.d.)

Entrada: G = (N, Σ, P, S)

Salida: Sistema de ecuaciones donde XS = L(G)

Método:1. Por cada A ∈ N introducir una variable XA

2. Si A → a ∈ P , a ∈ Σ ∪ {λ} entonces: XA = . . . + a

3. Si A → aB ∈ P , a ∈ Σ ∪ {λ} entonces: XA = . . . + aXB

DSIC - UPV http://www.dsic.upv.es – p.13/14

Page 14: expresiones regulares

Sistemas de ecuaciones asociados a G.R. (l.d.)

• Ejemplos:

S → aS | bA

A → bB | aS | λ

B → bB | λ | aB

=⇒

XS → aXS + bXA

XA → bXB + aXS + λ

XB → bXB + λ + aXB

S → 1S | 0A

A → 1S | 0B

B → 1S | λ | 0B

=⇒

XS → 1XS + 0XA

XA → 1XS + 0XB

XB → 1XS + λ + 0XB

DSIC - UPV http://www.dsic.upv.es – p.14/14