Download - expresiones regulares
Tema 3: Expresiones regulares
Departamento de Sistemas Informaticos y Computacion
DSIC - UPV http://www.dsic.upv.es – p.1/14
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
Relaciones entre formalismos
AFD AFN AFλ
Gramaticas lineales(por la derecha)
Expresiones regulares
DSIC - UPV http://www.dsic.upv.es – p.3/14
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
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
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
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
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
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
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
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
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
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
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