Tema 2: Autómatas finitos

Anuncio
Tema 2: Autómatas finitos
Departamento de Sistemas Informáticos y Computación
DSIC - UPV
http://www.dsic.upv.es
– p. 1
Tema 2: Autómatas finitos
• Autómata finito determinista (AFD).
Formas de representación de un AFD:
◦ Diagrama de transiciones.
◦ Tabla de transiciones.
• Autómata finito no determinista (AFN).
• Equivalencia AFN - AFD
• Autómata finito no determinista con transiciones vacías
(AFλ).
• Gramáticas. Definiciones
• Gramáticas. Jerarquía de Chomsky
• Equivalencia AFλ - AFN
• Equivalencia Autómata Finito - Gramática Regular
DSIC - UPV
http://www.dsic.upv.es
– p. 2
Autómata finito determinista
• Un autómata finito determinista es una 5-tupla
A = (Q, Σ, δ, q0 , F ) donde:
◦ Q es un conjunto finito de estados
◦ Σ es un conjunto finito de símbolos o alfabeto.
◦ δ : Q × Σ → Q es una función parcial llamada función de
transición
◦ q0 ∈ Q estado inicial
◦ F ⊆ Q conjunto de estados finales
a1
a2
a3
an
Memoria Finita
DSIC - UPV
http://www.dsic.upv.es
– p. 3
Autómata finito determinista
A = ({q0 , q1 , q2 }, {a, b}, δ, q0 , {q0 , q1 })
δ(q0 , a)= q0
δ(q0 , b)= q1
q0
q1
q2
δ(q1 , a)= q2
δ(q1 , b)= q1
δ(q2 , a)= q2
δ(q2 , b)= q2
a
b
a
q0
q2
q2
q1
q1
q2
q0
a,b
b
b
q1
DSIC - UPV
a
q2
http://www.dsic.upv.es
– p. 4
Autómata finito determinista
• Extensión de la función de transición a cadenas
δ̂ : Q × Σ∗ → Q
∀q ∈ Q, x ∈ Σ∗ , a ∈ Σ
◦ δ̂(q, λ) = q
◦ δ̂(q, xa) = δ(δ̂(q, x), a)
• Lenguaje aceptado por un AFD
L(A) = {x ∈ Σ∗ | δ(q0 , x) ∈ F }
DSIC - UPV
http://www.dsic.upv.es
– p. 5
Autómata finito no determinista
• Un autómata finito no determinista es una 5-tupla
A = (Q, Σ, δ, q0 , F ) donde:
◦ Q, Σ, q0 ∈ Q y F ⊆ Q el mismo conjunto de estados,
alfabeto, estado inicial y conjunto de estados finales que
en la definición de AFD
◦ δ : Q × Σ → 2Q es una función parcial llamada función
de transición
• Extensión de δ a cadenas δ̂ : Q × Σ∗ → 2Q
∀q ∈ Q, x ∈ Σ∗ , a ∈ Σ
◦ δ̂(q, λ) = {q}
◦ δ̂(q, xa) =
S
δ(p, a)
p∈δ̂(q,x)
• Lenguaje aceptado por un AFN:
L(A) = {x ∈ Σ∗ | δ̂(q0 , x) ∩ F 6= ∅}
DSIC - UPV
http://www.dsic.upv.es
– p. 6
Autómata finito no determinista
A = ({q0 , q1 , q2 }, {a, b, c}, δ, q0 , {q0 , q1 , q2 })
δ(q0 , a)= {q0 , q1 , q2 }
δ(q0 , b)= {q1 , q2 }
δ(q0 , c)= {q2 }
q0
q1
q2
δ(q1 , a)= ∅
δ(q1 , b)= {q1 , q2 }
δ(q1 , c)= {q2 }
a
b
c
a
{q0 , q1 , q2 }
∅
∅
{q1 , q2 }
{q1 , q2 }
∅
{q2 }
{q2 }
{q2 }
q0
δ(q2 , a)= ∅
δ(q2 , b)= ∅
δ(q2 , c)= {q2 }
b
a,b
q1
c
b,c
q2
a,b,c
DSIC - UPV
http://www.dsic.upv.es
– p. 7
Autómata finito no determinista
• Equivalencia entre AFN y AFD
Sea A = (Q, Σ, δ, q0 , F ) un AFN.
Construimos un AFD A′ = (Q′ , Σ, δ ′ , q0′ , F ′ ) tal que
L(A) = L(A′ ) de la siguiente forma:
◦ Q′ = 2Q
◦ q0′ = {q0 }
◦ F ′ = {q ′ ∈ Q′ | q ′ ∩ F 6= ∅}
S
◦ δ ′ (q ′ , a) =
δ(q, a) : q ′ ∈ Q, a ∈ Σ
q∈q ′
DSIC - UPV
http://www.dsic.upv.es
– p. 8
Autómata finito no determinista
• ejercicios:
q0
a
q1
a,b,c
a,b
q2
q0
b
q1
a
b
q2
a
a,b
DSIC - UPV
http://www.dsic.upv.es
– p. 9
Autómata finito no determinista con transiciones vacı́as
• Un autómata finito no determinista con transiciones vacías
es una 5-tupla A = (Q, Σ, δ, q0 , F ) donde:
◦ Q, Σ, q0 ∈ Q y F ⊆ Q el mismo conjunto de estados,
alfabeto, estado inicial y conjunto de estados finales que
en la definición de AFD y AFN
◦ δ : Q × (Σ ∪ {λ}) → 2Q es una función parcial llamada
función de transición
• λ-clausura de un estado q ∈ Q (λ − clausura(q)): conjunto
de estados que pueden alcanzarse desde q sin consumir
símbolo.
S
Dado P ⊆ Q, λ − clausura(P ) =
λ − clausura(p)
p∈P
DSIC - UPV
http://www.dsic.upv.es
– p. 10
Autómata finito no determinista con transiciones vacı́as
• Extensión de δ a cadenas δ̂ : Q × Σ∗ → 2Q
∀q ∈ Q, x ∈ Σ∗ , a ∈ Σ
◦ δ̂(q, λ) = λ − clausura(q)
◦ δ̂(q, xa) = λ − clausura
S
!
δ(p, a)
p∈δ̂(q,x)
Pudiendo extender δ̂ para operar sobre conjuntos de
estados:
[
∀P ⊆ Q δ̂(P, x) =
δ̂(p, x)
p∈P
• Lenguaje aceptado por un AFλ:
L(A) = {x ∈ Σ∗ | δ̂(q0 , x) ∩ F 6= ∅}
DSIC - UPV
http://www.dsic.upv.es
– p. 11
Autómata finito no determinista con transiciones vacı́as
A = ({q0 , q1 , q2 , q3 }, {0, 1}, δ, q0 , {q0 })
δ(q0 , 0)= ∅
δ(q0 , 1)= ∅
δ(q0 , λ)= {q1 }
q0
q1
q2
q1
δ(q1 , 0)= ∅
δ(q1 , 0)= {q3 }
δ(q1 , λ)= {q2 }
0
1
λ
∅
∅
{q1 }
∅
∅
{q3 }
{q2 }
{q3 }
{q1 }
{q2 }
∅
{q0 }
δ(q2 , 0)= {q1 }
δ(q2 , 1)= {q2 }
δ(q2 , λ)= ∅
δ(q3 , 0)= ∅
δ(q3 , 1)= {q3 }
δ(q3 , λ)= {q0 }
λ
q0
λ
λ
q1
q2
1
1 0
q3
1
DSIC - UPV
http://www.dsic.upv.es
– p. 12
Autómata finito no determinista con transiciones vacı́as
• Equivalencia entre AFλ y AFN
Sea A = (Q, Σ, δ, q0 , F ) un AFλ.
Construimos un AFD A′ = (Q, Σ, δ ′ , q0 , F ′ ) tal que
L(A) = L(A′ ) de la siguiente forma:
(
F ∪ {q0 }, si λ − clausura(q0 ) ∩ F 6= ⊘
◦ F′ =
F,
en otro caso
◦ δ ′ (q, a) = δ̂(q, a) tomando a ∈ Σ, x ∈ Σ∗ , q ∈ Q y donde:
δ̂(q, λ) = λ − clausura(q)
δ̂(q, xa) = λ − clausura
S
p∈δ̂(q,x)
!
δ(p, a)
• A partir de este punto, puede obtenerse un AFD utilizando
la transformación ya vista.
DSIC - UPV
http://www.dsic.upv.es
– p. 13
Autómata finito no determinista con transiciones vacı́as
• ejercicios:
1
q0
a
q1
b
0
q0
q1
c
λ
q2
q2
λ
q3
a
b
q3
1
0
λ
b
1
λ
λ
a
q4
c
DSIC - UPV
http://www.dsic.upv.es
– p. 14
Gramáticas
Definiciones
• Una gramática G es una cuádrupla G = (N, Σ, P, S) donde:
◦ N es un conjunto finito no vacío de símbolos llamados
auxiliares
◦ Σ es un alfabeto finito no vacío de símbolos llamados
terminales.
Se cumple que Σ ∩ N = ∅. Llamaremos V = Σ ∪ N .
◦ S ∈ N es un símbolo auxiliar especial llamado axioma
◦ P es un conjunto de reglas de producción
P ⊆ V ∗N V ∗ × V ∗.
Una producción (α, β) suele denotarse α → β
p.e.:
L = {an bn | n ≥ 1}
G = {{N }, {a, b}, {S → ab, S → aSb}, S}
DSIC - UPV
http://www.dsic.upv.es
– p. 15
Gramáticas
Tipos de gramáticas. Jerarquía de Chomsky.
• Regulares (tipo 3): A, B ∈ N ; a, b ∈ Σ ∪ {λ}
◦ Lineales por la derecha: A → aB|b
◦ Lineales por la izquierda: A → Ba|b
• Incontextuales (tipo 2): A → α donde A ∈ N , α ∈ V ∗ .
• Contextuales (tipo 1): γAδ → γαδ con A ∈ N , γ, δ ∈ V ∗ ,
α ∈ V +.
◦ Formas sentenciales de longitud creciente
◦ S → λ para permitir λ ∈ L(G). !! ATENCIÓN !!
• No restringidas (tipo 0)
L3 ⊂ L2 ⊂ L1 ⊂ L0
DSIC - UPV
http://www.dsic.upv.es
– p. 16
Equivalencia Autómata Finito - Gramática Regular
• Si L es un lenguaje regular, entonces L es aceptado por un
autómata finito A.
• Dada G = (N, Σ, P, S) lineal por la derecha (L = L(G)),
construimos un AFλ A = (Q, Σ, δ, q0 , F ) tal que L(A) = L:
◦ Q = N ∪ {X} tal que X 6∈ N
◦ q0 = S
◦ F = {X}
◦ función de transición
(A, B, X ∈ N , a ∈ Σ ∪ {λ})
• ∀(A → aB) ∈ P se define B ∈ δ(A, a)
• ∀(A → a) ∈ P se define X ∈ δ(A, a)
• ∀a ∈ Σ ∪ {λ} se define δ(X, a) = ∅
DSIC - UPV
http://www.dsic.upv.es
– p. 17
Equivalencia Autómata Finito - Gramática Regular
• Si L es aceptado por un autómata finito A, entonces L es
un lenguaje regular.
• Sea A = (Q, Σ, δ, q0 , F ) un AFλ (L = L(A)). Construimos
G = (N, Σ, P, S) lineal por la derecha tal que L = L(G)
◦ N =Q
◦ S = q0
◦ reglas de producción
(q, q ′ ∈ Q, a ∈ Σ ∪ {λ})
• ∀q ′ ∈ δ(q, a) se define q → aq ′ ∈ P
• ∀q ∈ F se define q → λ′ ∈ P
DSIC - UPV
http://www.dsic.upv.es
– p. 18
Descargar