Anda di halaman 1dari 18

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 δ(q1 , a)= q2 δ(q2 , a)= q2


δ(q0 , b)= q1 δ(q1 , b)= q1 δ(q2 , b)= q2

a b a b a,b
q0 q0 q1
q1 q2 q1 q0 b q1 a q2
q2 q2 q2

DSIC - UPV 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 } δ(q1 , a)= ∅ δ(q2 , a)= ∅


δ(q0 , b)= {q1 , q2 } δ(q1 , b)= {q1 , q2 } δ(q2 , b)= ∅
δ(q0 , c)= {q2 } δ(q1 , c)= {q2 } δ(q2 , c)= {q2 }

a b c a b c
q0 {q0 , q1 , q2 } {q1 , q2 } {q2 }
a,b b,c
q1 ∅ {q1 , q2 } {q2 } q0 q1 q2
q2 ∅ ∅ {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= ∅}
◦ δ ′ (q ′ , a) =
S
δ(q, a) : q ′ ∈ Q, a ∈ Σ
q∈q ′

DSIC - UPV http://www.dsic.upv.es – p. 8


Autómata finito no determinista

• ejercicios:

a a,b b a
q0 q1 q2 q0 q1 q2
b

a,b,c a,b a

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)= ∅ δ(q1 , 0)= ∅ δ(q2 , 0)= {q1 } δ(q3 , 0)= ∅


δ(q0 , 1)= ∅ δ(q1 , 0)= {q3 } δ(q2 , 1)= {q2 } δ(q3 , 1)= {q3 }
δ(q0 , λ)= {q1 } δ(q1 , λ)= {q2 } δ(q2 , λ)= ∅ δ(q3 , λ)= {q0 }

0 1 λ λ
q0 ∅ ∅ {q1 } q0 λ q1 q2 1
q1 ∅ {q3 } {q2 }
λ 1 0
q2 {q1 } {q2 } ∅
q1 ∅ {q3 } {q0 } q3

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′ =
F ∪ {q0 }, si λ − clausura(q0 ) ∩ F 6= ⊘
F, en otro caso
◦ δ ′ (q, a) = δ̂(q, a) tomando a ∈ Σ, x ∈ Σ∗ , q ∈ Q y donde:
δ̂(q, λ) = λ − clausura(q) !
S
δ̂(q, xa) = λ − clausura δ(p, a)
p∈δ̂(q,x)

• 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 1 b q1 q2 a
λ
c
q0 λ q3 b
0 1 q3
λ λ
λ q2 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

Anda mungkin juga menyukai