Expresiones Regulares Lenguaje definido por una ER Lenguajes

Anuncio
Expresiones Regulares
Lenguaje definido por una ER
• Paso básico:
• Paso básico:
Ø es una expresión regular
Ø es una ER que denota el lenguaje
ε es una ER que denota el lenguaje
∀s∈Σ, s es una ER que denota
ε es una expresión regular
∀s∈Σ, s es una expresión regular
• Paso de inducción: unión, concatenación y clausura
• Paso de inducción: Si α y β son expresiones regulares
Si α y β son expresiones regulares
α ∪ β es una ER y
α • β es una ER y
α* es una ER y
α ∪ β es una expresión regular
α • β es una expresión regular (ó simplemente denotada α β )
α* es una expresión regular
Tema 2: Lenguajes regulares
Delimitadores: “(“, “)” si no
pertenecen al alfabeto: Si α es una
expresión regular entonces (α) es
una expresión regular
25
Tema 2: Lenguajes regulares
26
Ejemplos de expresiones
regulares
• a*bba
LOS LENGUAJES REGULARES SON LOS LENGUAJES
DENOTADOS POR LAS EXPRESIONES REGULARES
denota el lenguaje:
L = {a}*. {b} . {b} . {a} = {ε, a, aa, ... } . {bba}
= {bba, abba, aabba, aaabba, ...}
[ Nota: α • β denotada α β ]
• (10)* ∪ (01)*
αDIGITO = 0 ∪1 ∪2 ∪3 ∪4 ∪5 ∪6 ∪7 ∪8 ∪9
denota el lenguaje:
L = L1 ∪ L2 = {ε,10, 1010, ... } ∪ {ε,01, 0101, ... }
= {ε,10, 01,1010, 0101, ... }
αNATURAL = (αDIGITO)* αDIGITO
• (10 ∪ 01)*
αENTERO = αNATURAL ∪ – αNATURAL
denota el lenguaje:
L = {10, 01}* = {ε,10, 01, 1010, 1001, 0110, 0101, ... }
αCOMA= αENTERO ∪ (αENTERO ∪ ε).αNATURAL ∪ αENTERO .(αNATURAL ∪ ε)
αCOMA-FLOTANTE = αCOMA( E αENTERO ∪ ε)
• Lenguaje formado por las cadenas de {a,b} con tres a’s exactamente:
b*ab*ab*ab*
L(αCOMA-FLOTANTE ) es el lenguaje de los números en coma flotante
Tema 2: Lenguajes regulares
L(α ∪ β)= L(α) ∪ L(β)
L(α • β)= L(α) • L(β)
L(α*)= L(α)*
Si α es una expresión regular entonces (α) es
una expresión regular y L((α)) = L(α)
Lenguajes regulares
EJEMPLO: Σ={0,...,9, . , – , E }
L(Ø) =Ø
L(ε) ={ε}
L(s) ={s}
27
Tema 2: Lenguajes regulares
28
Cálculo del lenguaje regular
definido por una GLD
Sistema de ecuaciones definido
por una GLD
•
ENTRADA: G=(N,Σ,S,P) gramática lineal a la derecha
•
ENTRADA: G=(N,Σ,A0,P) gramática lineal a la derecha, N={A0,...,An}
•
SALIDA: Lenguaje denotado por la expresión regular α = LS
•
SALIDA: Sistema de ecuaciones auto-referentes
•
PLANTEAR el sistema de ecuaciones auto-referentes
•
RESOLVER dicho sistema:
•
 A0  α00 α0 j α0n  A0   z0 
   
  
 M  =  αi 0 αij αin  M  ∪  M 
   
 A  α
 n   n0 α nj α nn  An   zn 
Eliminar incógnitas y ecuaciones, despejando en una ecuación y
sustituyendo en las demás
•
Hasta obtener el valor LS del lenguaje expresado por S
•
L(GRD) = L(GLD) ⊆ L(ER)
PROPOSICIÓN 6:
Obtención de la ecuación i-ésima: Ai = αi0A0 ∪... ∪ αinAn∪zi = αiiAi ∪ βi
α ij =
Los lenguajes generados por las gramáticas regulares / lineales a la
derecha son lenguajes regulares (denotados por una ER)
Tema 2: Lenguajes regulares
29
Ai → wA j ∈P
A i → w∈ P
30
Resolución del sistema de
ecuaciones
Gramática Lineal:
SaaS| bS| abA| bA| b
AaA| bba
Cualquier ecuación auto-referente:
Ai= αiiAi ∪ βi
tiene como solución el lenguaje:
Li = αii* βi
En el ejemplo anterior:
•
Uw
Tema 2: Lenguajes regulares
Ejemplo de sistema de
ecuaciones
•
zi =
Uw
SaaS| bS| abA| bA| b
AaA| bba
Sistema de ecuaciones:
S = (aa∪b)S ∪ (ab∪b)A ∪ b = (aa∪b)S ∪ βS
A=
∅S ∪
aA ∪ bba =
aA ∪ βA
A= aA∪ bba
LA = a*bba
S=(aa∪b)S ∪ (ab∪b)A ∪ b
LS = (aa∪b)* ( (ab∪b) LA ∪ b )
βS
Tema 2: Lenguajes regulares
31
Tema 2: Lenguajes regulares
= (aa∪b)* ( (ab∪b)a*bba ∪ b )
32
Autómata finito no determinista
con transiciones vacías (εε-AFND)
Autómata finito no determinista
con transiciones vacías (εε-AFND)
• Definición formal:
(q, w) ∈ Q ×Σ*
• Configuración:
M = (Q, Σ, δ, q0, F) con δ: Q × (Σ ∪ {ε}) → ℘(Q)
• Movimiento:
(p, u) |— (q, v) si y solo si
• Función de transición extendida: δ* : Q × Σ* → ℘(Q )
u=v
u = s.v y q ∈ δ(p, s)
ó
δ* (q, ε) = C ( q )
Clausura de q: todos los estados
conectados a través de ε con q.
q ∈ C(q)
p ∈ C(q) ⇒ δ(p, ε) ⊆ C(q)
δ* (q, ws) = U C (δ (p, s) )
p ∈δ * (q, w)
y q ∈ δ(p, ε)
• Lenguaje aceptado:
L(M) = { w ∈Σ*: ∃p∈F y (q0, w) |—* (p, ε) }
= { w ∈Σ*: δ*(q0, w) ∩ F ≠ ∅ }
Clausura de un conjunto de
estados:
C({q1,…qn})= C(q1) ∪… ∪ C(qn)
Tema 2: Lenguajes regulares
33
Tema 2: Lenguajes regulares
Relación entre ER y ε-AFND
Relación entre ER y ε-AFND
PROPOSICIÓN 7:
L(ER) ⊆ L(ε-AFND )
Sea α una expresión regular. Existe un ε-AFND M = (Q, Σ, δ, q0, F)
tal que L(M) = L(α)
α=ε
L(M)={x: (q0,x)|-* (q0, ε)} = {ε} = L(α)
α = s, s∈Σ
q0
q0
f0
s
f0
M = ( {q0 , f0 } , Σ, δ, q0, {f0 } )
M = ( {q0 , f0 } , Σ, δ, q0, {f0 } )
L(M)={x: (q0,x)|-* (f0, ε)} = {s} = L(α)
L(M) = {x: (q0,x)|-*(f0,ε)} = ∅ = L(α)
Tema 2: Lenguajes regulares
q0
M = ( {q0 } , Σ, δ, q0, {q0 } )
DEMOSTRACIÓN: Podemos suponer (sin pérdida de generalidad)
que el ε-AFND tiene estado aceptador único, sin transiciones de salida
y que su estado inicial no tiene transiciones de entrada.
Por inducción sobre α
1) Paso básico:
α=∅
34
35
Tema 2: Lenguajes regulares
36
Relación entre ER y ε-AFND
Relación entre ER y ε-AFND
2) Paso de inducción:
Sean β y γ expresiones regulares, M1 y M2 ε-AFND’s con estado
final único sin transiciones tales que L(β
β)=L(M1) y L(γγ)=L(M2)
α=β∪γ
ε
M1
q1
f1
α=β∪γ
M = ( Q1 ∪ Q2 ∪ {q0 , f0 } , Σ, δ, q0, {f0 } )
δ ( q0, ε ) = {q1, q2 }
δ ( q, s ) = δ1(q, s )
∀q ∈ Q1 - { f1 } ∀s ∈ Σ∪{ ε }
∀q ∈ Q2 - { f2 } ∀s ∈ Σ∪{ ε }
δ ( q, s ) = δ2(q, s )
δ ( f1, ε ) = δ (f2, ε ) = { f0 }
ε
q0
f0
ε
M2
q2
L(M) = L(β) ∪ L(γ) = L(α)
ε
f2
Tema 2: Lenguajes regulares
37
Tema 2: Lenguajes regulares
Relación entre ER y ε-AFND
Relación entre ER y ε-AFND
α = βγ
q1
38
α = β*
M1
f1
ε
q2
M2
ε
q0
f2
ε
M1
q1
f1
ε
f0
ε
M = ( Q1 ∪ Q2 , Σ, δ, q1, {f2 } )
δ ( q, s ) = δ1(q, s )
δ ( f1, ε ) = { q2 }
δ ( q, s ) = δ2(q, s )
M = ( Q1 ∪ {q0 , f0 } , Σ, δ, q0, {f0 } )
∀q ∈Q1 - { f1 } ∀s ∈ Σ∪{ ε }
δ ( q0, ε ) = δ ( f1, ε ) = {q1, f0 }
∀q ∈ Q1 - { f1 }
δ ( q, s ) = δ1(q, s )
∀q ∈Q2 ∀s ∈ Σ∪{ ε }
∀s ∈ Σ∪{ ε }
L(M) = L(β)* = L(α)
L(M)=L(β) • L(γ) = L(α)
Tema 2: Lenguajes regulares
39
Tema 2: Lenguajes regulares
40
Relación entre ε-AFND y AFD
Relación entre ε-AFND y AFD
PROPOSICIÓN 8:
L(ε-AFND ) ⊆ L(AFD)
Todo lenguaje reconocido por un ε-AFND es reconocido por un AFD
•
Lema: γ*(p0, x) = δ*(q0, x)
Se demuestra por inducción sobre la palabra x
DEMOSTRACIÓN:
γ*(p0, ε) = p0 = C(q0)
•
Sea L = L(M) un lenguaje reconocido por un ε-AFND
M = ( Q, Σ, δ, q0, F )
•
Construimos el siguiente AFD:
con
γ*(p0, ws) = γ((γ*(p0, w), s) = γ((δ*(q0, w), s)
= ∪q∈δ*(q0, w)C(δ(q, s)) = δ*(q0, ws)
N = ( P, Σ, γ, p0, G )
P ⊆ ℘(Q)
•
p0= C(q0)
A partir del lema anterior se demuestra que L(N) = L(M).
x∈L(N) ⇔ γ*(p0, x) ∈ G ⇔ δ*(q0, x) ∈ G
γ(p, s) = ∪q∈pC(δ(q,s))
⇔ δ*(q0, x) ∩ F ≠ Ø ⇔ x∈L(M)
G = {p∈P: p ∩ F ≠ Ø}
Tema 2: Lenguajes regulares
y δ*(q0, ε) = C(q0)
41
Relación entre AFND y AFD
Tema 2: Lenguajes regulares
42
Todas las relaciones estudiadas
COROLARIO: L(AFND ) ⊆ L(AFD)
Todo lenguaje reconocido por un AFND es reconocido por un AFD
DEMOSTRACIÓN:
•
Es un caso particular de la proposición 8, para AFND sin ε
•
La construcción es la misma, sin tener que hacer las clausuras:
L(AFDt)
=(1)
L(GRD)
⊆ (2) L(AFND) =(5)
L(AFD)
Dado el AFND M = ( Q, Σ, δ, q0, F ), construimos el AFD:
⊆ (4)
⊆(6) L(ER) ⊆ (7) L(ε-AFND )
=(3)
L(GLD)
⊇ (8)
N = ( P, Σ, γ, p0, G ) con P ⊆ ℘(Q)
p0 = {q0}
γ(p, s) = ∪q∈pδ(q,s)
Por lo tanto, todas las inclusiones son igualdades.
G = {p∈P: p ∩ F ≠ Ø}
Tema 2: Lenguajes regulares
43
Tema 2: Lenguajes regulares
44
Descargar