Teorıa de Lenguajes - Departamento de Computación

Anuncio
Teorı́a de Lenguajes
Clase Teórica 2
Autómatas Finitos
Primer cuartimestre 2016
Material compilado por 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, revisado recientemente por
Verónica Becher.
Bibliografı́a: Capı́tulo 2, Introduction to Automata Theory, Languages and Computation, J. Hopcroft, R. Motwani, J.
Ullman, Second Edition, Addison Wesley, 2001.
Definición 1 (Autómata Finito Determinı́stico (AFD)). Es una 5-upla hQ, Σ, δ, q0 , F i donde
Q es un conjunto finito de estados
Σ es un conjunto finito de sı́mbolos que constituye el alfabeto de entrada
δ : Q × Σ → Q es la función de transición
q0 ∈ Q es el estado inicial
F ⊆ Q es el conjunto de estados finales
La función de transición puede extenderse para que acepte como segundo argumento cadenas de Σ, o sea δb : Q×Σ∗ →
Q, definiéndola de la siguiente manera:
b
Definición 2 (Función de transición generalizada δ).
δb (q, xa) = δ δb (q, x) , a , con x ∈ Σ∗ y a ∈ Σ.
δb (q, λ) = q
Notar que δb (q, a) = δ δb (q, λ) , a = δ (q, a). Por esto puede utilizarse el sı́mbolo δ para ambos tipos de transición.
Definición 3 (Cadena aceptada por un AFD). Una cadena x es aceptada por un AFD M = hQ, Σ, δ, q0 , F i si y solo si
δb (q0 , x) ∈ F .
Definición 4 (Lenguaje aceptado por un AFD). Dado un AFD M = hQ, Σ, δ, q0 , F i, el lenguaje aceptado por M , L (M ),
es el conjunto de cadenas aceptadas por M y se define como
n
o
L (M ) = x ∈ Σ∗ : δb (q0 , x) ∈ F .
Definición 5 (Autómata Finito No Determinı́stico (AFND)). Es una 5-upla hQ, Σ, δ, q0 , F i donde Q, Σ, q0 y F tienen el
mismo significado que para el AFD, pero δ : Q × Σ → P (Q).
La función de transición puede extenderse para que acepte como segundo argumento cadenas de Σ, o sea δb : Q×Σ∗ →
P (Q), definiéndola de la siguiente manera:
b
δb (q, λ) = {q}
Definición 6 (Función de transición generalizada δ).
n
o
δb (q, xa) = p ∈ Q : ∃r ∈ δb (q, x) tal que p ∈ δ (r, a) ,
con x ∈ Σ∗ y a ∈ Σ.
1
Notar que
n
o
δb (q, λa) = p ∈ Q : ∃r ∈ δb (q, λ) tal que p ∈ δ (r, a)
= {p ∈ Q : ∃r ∈ {q} tal que p ∈ δ (r, a)}
= {p ∈ Q : p ∈ δ (q, a)}
= δ (q, a) .
Por esto puede utilizarse el sı́mbolo δ para ambos tipos de transición.
Definición 7 (Cadena aceptada por un AFND). Una cadena x es aceptada por un AFND M = hQ, Σ, δ, q0 , F i si y solo
si δb (q0 , x) ∩ F 6= φ.
Definición 8 (Lenguaje aceptado por un AFND). Dado un AFND M = hQ, Σ, δ, q0 , F i, el lenguaje aceptado por M ,
L (M ), es el conjunto de cadenas aceptadas por M y se define como
n
o
L (M ) = x ∈ Σ∗ : δb (q0 , x) ∩ F 6= φ .
Podemos extender la función de transición aún más, haciendo que mapee conjuntos de estados y cadenas en conjuntos
de estados.
Definición 9. Función de transición δ : P (Q) × Σ∗ → P (Q) dada por
[
δ (P, x) =
δ (q, x) .
q∈P
Es trivial ver que, para todo AFD existe un AFND equivalente. Lo que no es tan obvio es que lo inverso también es
cierto:
Para cada AFND existe un AFD equivalente.
Teorema 1 (Equivalencia entre AFND y AFD (Rabin & Scott, 1959)). Dado un AFND M = hQ, Σ, δ, q0 , F i, existe un AFD
M 0 = hQ0 , Σ, δ 0 , q00 , F 0 i tal que L (M ) = L (M 0 ).
Demostración. Construimos un M 0 = hQ0 , Σ, δ 0 , q00 , F 0 i.
Q0 es el conjunto de elementos [q1 , . . . , qi ], con q1 , . . . , qi ∈ Q (corresponden a los elementos de P (Q)).
F 0 = {[q1 , . . . , qi ] ∈ Q0 : {q1 , . . . , qi } ∩ F 6= φ}
q00 = [q0 ]
δ 0 ([q1 , . . . , qj ] , a) = [p1 , . . . , pi ] ⇐⇒ δ ({q1 , . . . , qj } , a) = {p1 , . . . , pi } .
Demostremos que para toda cadena x, δ 0 (q00 , x) = [q1 , . . . , qi ] ⇐⇒ δ (q0 , x) = {q1 , . . . , qi } .
Demostración por inducción en la longitud de la cadena.
b
Caso Base: |x| = 0, o sea x = λ. Por definición de δ,
δ 0 q00 , λ = [q0 ] y δ (q0 , λ) = {q0 } ,
por lo que δ 0 (q00 , λ) = [q0 ] ⇐⇒ δ (q0 , λ) = {q0 }.
Caso inductivo: suponemos que vale para x tal que |x| = n: δ 0 (q00 , x) = [p1 , . . . , pk ] ⇐⇒ δ (q0 , x) = {p1 , . . . , pk }. Veamos
que vale para xa, para a ∈ Σ,
δ 0 q00 , xa = δ 0 δ 0 q00 , x , a = [r1 , . . . , ri ] ⇐⇒
por definición de δ 0 en AFD M 0
∃ [p1 , . . . , pk ] , δ 0 q00 , x = [p1 , . . . , pk ] ∧ δ 0 ([p1 , . . . , pk ] , a) = [r1 , . . . , ri ] ⇐⇒
por HI y y por definición de δ en AFND M
∃ {p1 , . . . , pk } , δ (q0 , x) = {p1 , . . . , pk } ∧ δ ({p1 , . . . , pk } , a) = {r1 , . . . , ri } ⇐⇒
por def δ en AFND M ,
δ(q0 , xa) = δ(δ(q0 , x), a) = {r1 , . . . , ri }
Concluimos,δ 0 (q00 , xa) = [r1 , . . . , ri ] ⇐⇒ δ (q0 , xa) = {r1 , . . . , ri } .
2
Dado un AFND M = hQ, Σ, δ, q0 , F i construimos AFD M 0 = hQ0 , Σ, δ 0 , q00 , F 0 i tal que L (M ) = L (M 0 ). Ahora
nos queda probar que L (M ) = L (M 0 ) .
x ∈ L (M )
⇐⇒ δ (q0 , x) = {q1 , . . . , qi } ∧ {q1 , . . . , qi } ∩ F 6= φ
⇐⇒ δ 0 (q00 , x) = [q1 , . . . , qi ] ∧ [q1 , . . . , qi ] ∈ F 0
⇐⇒ x ∈ L (M 0 ) .
Definición 10 (Autómata Finito No Determinı́stico con transiciones λ). AFND-λ es una 5-upla hQ, Σ, δ, q0 , F i donde Q, Σ,
q0 y F tienen el mismo significado que para el AFND, pero δ : Q × (Σ ∪ {λ}) → P (Q).
Definición 11 (Clausura λ de un estado). La clausura λ de un estado q, Clλ (q), es el conjunto de estados alcanzable desde
q, siguiendo sólo transiciones λ.
Usamos la noción de clausura transitivo-reflexiva para definir Clλ .
Sea R ⊆ Q × Q tal que (q, p) ∈ R si y solo si p ∈ δ(q, λ). Luego,
Clλ (q) = {p : (q, p) ∈ R∗ }
Notar que el estado q pertenece a su clausura λ.
Definición 12 (Clausura λ de un conjunto de estados P ).
Clλ (P ) =
[
Clλ (q) .
q∈P
La función de transición puede extenderse para que acepte como segundo argumento cadenas en Σ, o sea δb : Q×Σ∗ →
P (Q).
b.
δb (q, λ) = Clλ (q)
Definición 13 (Función de transición extendida δ)
n
o
δb (q, xa) = Clλ p : ∃r ∈ δb (q, x) tal que p ∈ δ (r, a)
con x ∈ Σ∗ y a ∈ Σ, o sea,

δb (q, xa) = Clλ 

[
δ (r, a)
b
r∈δ(q,x)
Extendiendo la definición de δ y δb a conjuntos de estados, tenemos que
S
δ (P, a) =
δ (q, a)
q∈P
S b
δb (P, x) =
δ (q, x)
q∈P
b
Utilizando esto último,
δ (q, xa) puede
escribirse como
b
b
δ (q, xa) = Clλ δ δ (q, x) , a .
Notar que δb (q, a) puede ser distinto de δ (q, a):
δb (q, a) = Clλ δ δb (q, λ) , a = Clλ (δ (Clλ (q) , a)) 6= δ (q, a) ,
Definición 14 (Cadena aceptada por un AFND-λ). Se dice que una cadena x es aceptada por un AFND-λ M = hQ, Σ, δ, q0 , F i
si y solo si δb (q0 , x) ∩ F 6= φ.
Definición 15 (Lenguaje aceptado por un AFND-λ). Dado un AFND-λ M = hQ, Σ, δ, q0 , F i, el lenguaje aceptado por M ,
L (M ), es el conjunto de cadenas aceptadas por M y se define como
n
o
L (M ) = x : δb (q0 , x) ∩ F 6= φ .
3
Teorema 2 (Equivalencia entre AFND y AFND-λ). Dado un AFND-λ M = hQ, Σ, δ, q0 , F i, hay un AFND M 0 = hQ, Σ, δ 0 , q0 , F 0 i
que reconoce el mismo lenguaje.
Demostración. Definimos
δ 0 (q, a) = δb (q, a) .

F

F0 =

F ∪ {q0 }
, si Clλ (q0 ) ∩ F = ∅
, si no.
Observar que F 0 ⊇ F .
Dado AFND-λ M = hQ, Σ, δ, q0 , F i
construimos AFND M 0 = hQ, Σ, δ 0 , q0 , F 0 i. Demostremos que δ 0 (q0 , x) = δb (q0 , x) para |x| ≥ 1., por inducción en
la longitud de la cadena. Caso base |x| = 1. Sea x = a. Por definición de δ 0 , δ 0 (q, a) = δb (q, a),
Caso inductivo |x| > 1. Sea x = wa y asumamos que vale para w.
δ 0 (q0 , wa) = δ 0 (δ 0 (q0 , w), a) = δ 0 (δb (q0 , w), a),
| {z }
| {z }
las expresiones tomadas por las llaves son iguales por h.i.
Por otro lado, si P ⊆ Q
δ 0 (P, a) =
[
δ 0 (q, a) =
q∈P
[
δb (P, a) = δb (P, a)
q∈P
Por lo tanto, haciendo P = δb (q0 , w), tenemos que
b δb (q0 , w) , a) = δ(q
b 0 , wa).
δ 0 (q0 , wa) = δ 0 (δb (q0 , w) , a) = δ(
Dado AFND-λ M = hQ, Σ, δ, q0 , F i
construimos AFND M 0 = hQ, Σ, δ 0 , q0 , F 0 i.
Veamos que L (M 0 ) = L (M ).
Para x = λ,
Clλ (q0 ) ∩ F 6= ∅ =⇒ q0 ∈ F 0 ⇐⇒
λ ∈ L (M 0 ) ⇐⇒ q0 ∈ F 0 =⇒ q0 ∈ F ∨ Clλ (q0 ) ∩ F 6= ∅ Dado que
q0 ∈ F
∨ Clλ (q0 ) ∩ F 6= ∅
| {z }
|
{z
}
⇓
⇓
Clλ (q0 ) ∩ F 6= ∅
λ ∈ L (M )
⇓
λ ∈ L (M )
concluimos
λ ∈ L (M 0 ) ⇔ λ ∈ L (M ) .
λ ∈ L (M ) ⇐⇒
λ ∈ L (M 0 )
Dado AFND-λ M = hQ, Σ, δ, q0 , F i
construimos AFND M 0 = hQ, Σ, δ 0 , q0 , F 0 i.
Veamos ahora que L (M 0 ) = L (M ), para x 6= λ.
x ∈ L (M ) ⇐⇒δb (q0 , x) ∩ F 6= ∅, por aceptación en AFND-λ
=⇒δ 0 (q0 , x) ∩ F 0 6= ∅ , por el paso intermedio y porque F ⊆ F 0
=⇒x ∈ L (M 0 ) .
x ∈ L (M 0 ) ⇐⇒δ 0 (q0 , x) ∩ F 0 6= ∅, por aceptación en AFND
=⇒δb (q0 , x) ∩ F 6= ∅ ∨ δb (q0 , x) ∩ {q0 } =
6 ∅ ∧ Clλ (q0 ) ∩ F 6= ∅ por lema anterior y por def. de F 0
=⇒x ∈ L (M ) ∨ x ∈ L (M )
=⇒x ∈ L (M ) .
4
Descargar