Teorıa de Lenguajes - Departamento de Computación

Anuncio
Teorı́a de Lenguajes
Clase Teórica 3
Expresiones Regulares
Primer cuartimestre 2016
Material compilado por el Profesor Julio Jacobo, a lo largo de distintas ediciones de la materia Teorı́a de Lenguajes en el
Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires.
Bibliografı́a: Capı́tulo 3, Introduction to Automata Theory, Languages and Computation, J. Hopcroft, R. Motwani, J.
Ullman, Second Edition, Addison Wesley, 2001.
En esta teórica:
Definición de expresión regular
Teorema: Para cada expresion regular r hay un AFND-λ M con un solo estado final y sin transiciones de salida tal
que L(r) = L(M ).
Teorema: Para cada AFD M hay una expresion regular r tal que L(r) = L(M ).
Teorema: Para cada gramatica regular G existe un AFND M tal que L(G) = L(M ).
Teorema: Para cada AFD M existe una gramática regular G tal que L(G) = L(M ).
Definición
Dado un alfabeto Σ, una expresión regular denota un lenguaje sobre Σ:
∅ es una expresión regular que denota el conjunto vacı́o ∅.
λ es una expresión regular que denota el conjunto {λ}.
para cada a ∈ Σ, a es es una expresión regular que denota el conjunto {a}.
si r y s denotan los lenguajes R y S entonces
r|s
rs
r∗
r+
R ∪ S,
RS,
R∗ , y
R+ .
denota
denota
denota
denota
Notación
Lo anterior puede escribirse como : L (r) = R, L (s) = S, L (r | s) = R∪S, L (rs) = RS, L (r∗ ) = R∗ y L (r+ ) = R+ .
Ejemplo 1.
00
(0 | 1)
∗
∗
(0 | 1) 00 (0 | 1)
∗
∗
(1 | 10)
∗
(0 | λ) (1 | 10)
Teorema 2. Dada una expresión regular r, existe un AFND-λ M con un solo estado final y sin transiciones a partir del
mismo tal que L (M ) = L (r).
1
Demostración. Caso base: r = ∅,
Caso base: r = λ,
Caso base: r = a.
Caso inductivo: supongamos la expresión regular es r1 |r2 , r1 r2 , r1∗ , ó r2+ y asumimos que vale la propiedad para r1 y
para r2 .
Es decir, tanto para r1 como para r2 existen AFND-λ M1 y M2 con un solo estado final y sin transiciones a partir del
mismo, tal que L (M1 ) = L (r1 ) y L (M2 ) = L (r2 ).
Caso r = r1 | r2 . Por h.i. existen M1 = hQ1 , Σ1 , δ1 , q1 , {f1 }i y M2 = hQ2 , Σ2 , δ2 , q2 , {f2 }i tales que L (M1 ) =
L (r1 ) y L (M2 ) = L (r2 ).Sea M = hQ1 ∪ Q1 ∪ {q0 , f0 } , Σ1 ∪ Σ1 , δ, q0 , {f0 }i
δ (q0 , λ) = {q1 , q2 }
δ (q, a) = δ1 (q, a) para q ∈ Q1 − {f1 } y a ∈ Σ1 ∪ {λ}
δ (q, a) = δ2 (q, a) para q ∈ Q2 − {f2 } y a ∈ Σ2 ∪ {λ}
δ (f1 , λ) = δ (f2 , λ) = {f0 }.
Caso r = r1 r2 .
Por h.i. existen M1 = hQ1 , Σ1 , δ1 , q1 , {f1 }i y M2 = hQ2 , Σ2 , δ2 , q2 , {f2 }i, tales que L (M1 ) = L (r1 ) y L (M2 ) =
L (r2 ) respectivamente. Entonces podemos construir el autómata M = hQ1 ∪ Q2 , Σ1 ∪ Σ2 , δ, q1 , {f2 }i
δ (q, a) = δ1 (q, a) para q ∈ Q1 − {f1 } y a ∈ Σ1 ∪ {λ}
2
δ (f1 , λ) = {q2 }
δ (q, a) = δ2 (q, a) para q ∈ Q2 − {f2 } y a ∈ Σ2 ∪ {λ}
Caso r = r1∗ .
Por h.i. existe M1 = hQ1 , Σ1 , δ1 , q1 , {f1 }i , tal que L (M1 ) = L (r1 ). Entonces podemos construir el autómata
M = hQ1 ∪ {f0 , q0 } , Σ1 , δ, q0 , {f0 }i
δ (q, a) = δ1 (q, a) para q ∈ Q1 − {f1 } y a ∈ Σ1 ∪ {λ}
δ (q0 , λ) = δ (f1 , λ) = {q1 , f0 }.
Caso r = r1+ .
Dado que r1+ = r1 r1∗ , queda demostrado por los casos anteriores.
Indicar Verdadero o Falso, justificar
1. r|s = s|r
2. (r∗ )∗ = r∗
3. ∅∗ = λ
4. (r|s)∗ = r∗ |s∗
5. (rs|r)∗ r = r(sr|r)∗
Teorema 3. Dado un AFD M = h{q1 , . . . , qn } , Σ, δ, q1 , F i existe una expresión regular r tal que L(M ) = L(r).
k
Demostración. Denotemos con Ri,j
el conjunto de cadenas de Σ∗ que llevan al autómata M desde el estado qi al
k
estado qj pasando por estados cuyo ı́ndice es, a lo sumo, k. Definamos Ri,j
en forma recursiva:
k−1
k−1
k
Ri,j
= Ri,k
Rkk
0
Ri,j
=
∗
k−1
k−1
Rk,j
∪ Ri,j
para k ≥ 1
{a : δ (qi , a) = qj } , a ∈ Σ
{a : δ (qi , a) = qj } ∪ {λ} , a ∈ Σ
si i 6= j
si i = j
0
0
0
Caso base: k = 0. Debemos dar rij
, tal que L rij
= Rij
.
0
Ri,j es el conjunto de cadenas de un solo caracter o λ.
0
Por lo tanto, ri,j
es:
a1 | . . . | ap ,con a1 , . . . , ap sı́mbolos de Σ, si δ (qi, as ) = qj para s = 1, . . . , p y qi 6= qj .
a1 | . . . | ap | λ ,con a1 , . . . , ap sı́mbolos de Σ, si δ (qi, as ) = qj para s = 1, . . . , p y además qi = qj .
∅, si no existe ningún ai que una qi y qj y qi 6= qj .
λ, si no existe ningún ai que una qi y qj y además qi = qj .
3
Caso inductivo. Por hipótesis inductiva, tenemos:
k−1
k−1
k−1
k−1
k−1
k−1
k−1
k−1
L(rik
) = Rik
, L(rkk
) = Rkk
, L(rkj
) = Rkj
yL(rij
) = Rij
.
∗
k−1
k−1
k−1
k−1
k
Definimos rij = rik rkk
rkj | rij y verificamos que
k−1
k−1 ∗ k−1
k−1
k
L rij
= L rik
rkk
rkj | rij
k−1
k−1 ∗ k−1
k−1
= L rik
rkk
rkj
∪ L rij
k−1 k−1
k−1 ∗
k−1
= L rik
L rkk
L rkj
∪ L rij
k−1
k−1 ∗ k−1
k−1
= Rik
Rkk
Rkj ∪ Rij
k
= Rij
.
Entonces, como Q = {q1 , . . . qn } y q1 es el estado inicial de M ,
n
n
L(M ) = R1j
∪ . . . ∪ R1j
, con F = {qj1 , . . . , qjm }
1
m
n
n
= L(r1j
) ∪ . . . ∪ L(r1j
)
1
m
n
n
= L(r1j
| . . . | r1j
)
1
m
n
n
.
| . . . | r1j
Concluimos L(M ) = r1j
m
1
Teorema 4. Dada una gramática regular G = hVn , VT , P, Si existe un AFND M = hQ, Σ, δ, q0 , F i tal que L(G) =
L(M ).
Demostración. Definamos M de la siguiente manera:
Q = VN ∪ {qf }, para mayor claridad, llamaremos qA al estado correspondiente al no terminal A
Σ = VT
q0 = qS
qB ∈ δ (qA , a) ⇔ A → aB ∈ P
qf ∈ δ (qA , a) ⇔ A → a ∈ P
qA ∈ F ⇔ A → λ ∈ P
qf ∈ F .
∗
Asumamos Lema: Para todo w ∈ VT∗ , si A ⇒ wB entonces qB ∈ δ (qA , w).
∗
wa ∈ L (G) ⇔S ⇒ wa
∗
⇔ ∃A ∈ VN , S ⇒ wA ∧ A → a ∈ P ∨
∗
∃B ∈ VN , S ⇒ waB ∧ B → λ ∈ P (únicas dos formas)
⇔ (∃qA ∈ Q, qA ∈ δ (qS , w) ∧ qf ∈ δ (qA , a)) ∨
(∃qB ∈ Q, qB ∈ δ (qS , wa) ∧ qB ∈ F ) (por el Lema)
⇔ qf ∈ δ (qS , wa) ∨ (∃qB ∈ Q, qB ∈ δ (qS , wa) ∧ qB ∈ F )
⇔ wa ∈ L (M ) .
∗
λ ∈ L (G) ⇔S ⇒ λ
⇔S → λ ∈ P
⇔qS ∈ F
⇔λ ∈ L (M ) .
∗
Lema: Para todo w ∈ VT∗ , Si A ⇒ wB entonces qB ∈ δ (qA , w).
Demostración. Por inducción en la longitud de w.
4
∗
Caso base |w| = 0, es decir w = λ. Como A ⇒ A y qA ∈ δ (qA , λ),
∗
A ⇒ A ⇔ qA ∈ δ (qA , λ) .
Caso |w| = n + 1, n ≥ 0, es decir, w = αa con α = n. Asumamos h.i. para longitud n, es decir, vale para α.
∗
∗
A ⇒ αaB
⇔ ∃C ∈ VN , A ⇒ αC ∧ C → aB ∈ P
⇔ ∃qC ∈ Q, qC ∈ δ (qA , α) ∧ qB ∈ δ (qC , a) por h.i.
⇔ qB ∈ δ (δ (qA , α) , a)
⇔ qB ∈ δ (qA , αa)
Teorema 5. Dado un AFD M = hQ, Σ, δ, q0 , F i existe una gramática regular G = hVn , VT , P, Si tal que L(G) =
L(M ).
Demostración. Debemos definir gramática G.
VN = Q, (llamaremos Ap al no terminal correspondiente a p ∈ Q).
VT = Σ
S = Aq0
Ap → aAq ∈ P ⇔ δ (p, a) = q
Ap → a ∈ P ⇔ δ (p, a) = q ∈ F
S → λ ∈ P ⇔ q0 ∈ F
∗
Asumamos Lema: δ (p, w) = q si y solo si Ap ⇒ wAq .
wa ∈ L (M ) ⇔δ (q0 , wa) ∈ F
⇔∃p ∈ Q, δ (q0 , w) = p ∧ δ (p, a) ∈ F
∗
⇔∃Ap , Aq0 ⇒ wAp ∧ Ap → a ∈ P
∗
⇔Aq0 ⇒ wa
⇔wa ∈ L (G)
λ ∈ L (M ) ⇔ q0 ∈ F
⇔S → λ ∈ P
∗
⇔S ⇒ λ
⇔λ ∈ L (G) .
∗
Lema: δ (p, w) = q si y solo si Ap ⇒ wAq .
Demostración. Por inducción en la longitud de w.
∗
∗
Para w = λ, es cierto que δ (p, λ) = p y que Ap ⇒ Ap , por lo tanto δ (p, λ) = p ⇔ Ap ⇒ Ap ,
Asumamos h.i. vale para α de longitud n, con n ≥ 0, y veamos que vale para para w = αa.
δ (p, αa) = q ⇔ ∃r ∈ Q, δ (p, α) = r ∧ δ (r, a) = q
∗
⇔ ∃Ar , Ap ⇒ αAr ∧ Ar → aAq ∈ P por h.i.
∗
⇔ Ap ⇒ αaAq .
5
Descargar