Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LENGUAJES
FORMALES
CONTENIDO
Y
AUTÓMATAS
Reconocedores [HMU2.1].
autómatas
Traductores [C8]. Diagramas de
finitos y
lenguajes Estado [HMU2.1]. Equivalencia entre
regulares
AF deterministas y no deterministas
[HMU2.2-2.3]. Expresiones regulares
[HMU3]. Propiedades de lenguajes
regulares [HMU4]. Relación entre
gramáticas regulares, lenguajes
regulares y autómatas finitos [A1-2].
bibliografía
LENGUAJES
FORMALES
Y
0 0
AUTÓMATAS
1
autómatas S0 S1
finitos y
lenguajes
regulares
1 1
S2
Autómata Finito
0 Reconocedor
Reconoce el lenguaje sobre Σ={0,1} con un número
múltiplo de 3 de 1’s
autómatas finitos traductores
LENGUAJES
FORMALES
Y
0 0
AUTÓMATAS
1
autómatas S0/1 S1/0
finitos y
lenguajes
regulares
1 1
S2/0
Autómata Finito
0 De Moore
Emite 1 mientras el número de 1’s leídos hasta el
momento sea múltiplo de 3, de lo contrario emite 0
autómatas finitos traductores
LENGUAJES
FORMALES
Y
0/0 0/0
AUTÓMATAS
1/0
autómatas S0 S1
finitos y
lenguajes
regulares
1/1 1/0
S2
Autómata Finito
0/0 De Mealy
Emite 1 cuando el número de 1’s leídos se vuelve
múltiplo de 3 (≠ 0), de lo contrario emite 0
autómatas finitos
LENGUAJES
Un autómata finito es un modelo que captura
FORMALES
Y las características de una computadora.
AUTÓMATAS
Veremos dos tipos de autómatas finitos
autómatas Autómatas Finitos Reconocedores (AFR)
finitos y
lenguajes
regulares
Son capaces de reconocer lenguajes regulares
(exactamente el mismo lenguaje generado por
gramáticas de tipo 3)
Autómatas Finitos Traductores
Toman una entrada y la traducen en una salida
Autómatas de Moore: las salidas van asociadas a
los estados
Autómatas de Mealy: las salidas van asociadas a
las transiciones
autómata finito reconocedor
LENGUAJES
FORMALES
Ejemplo
Y
AUTÓMATAS
M = (S, Σ, δ, s0, F),
autómatas
S = {s0, s1, s2}, Σ = {0,1}, F ={s0}
finitos y
lenguajes 0 0
regulares
1
δ 0 1 S0 S1
s0 s0 s1
s1 s1 s2 1 1
s2 s2 s0 S2
0
autómata finito reconocedor
LENGUAJES
FORMALES
Ejemplo
Y
AUTÓMATAS
Dar un autómata finito reconocedor para
autómatas
el lenguaje de las cadenas definidas
finitos y
lenguajes sobre el alfabeto Σ={a,b} tales que
regulares
empiezan con a.
M = (S, Σ, δ, s0, F),
δ a b
S = {s0, s1, s2},
s0 s1 s2
Σ = {a,b},
s1 s1 s1
F ={s1}
s2 s2 s2
autómata finito reconocedor
LENGUAJES
Ejercicios
FORMALES
Y
AUTÓMATAS
1. Dar un AFR para el lenguaje definido
sobre el alfabeto Σ={0,1,2,3,4,5,6,7,8,9}
tal que reconozca los números pares.
autómatas
finitos y
lenguajes 2. Dar un AFR para el lenguaje definido
regulares
sobre el alfabeto Σ ={a,b} cuyas cadenas
tienen la letra b como segundo símbolo.
3. Dar un AFR para el lenguaje definido
sobre el alfabeto Σ ={a,b} cuya longitud
es par pero no divisible por 6.
4. Dar un AFR para el lenguaje definido
sobre el alfabeto Σ={0,1} tal que las
cadenas tienen un número par de 0’s y
número par de 1’s.
generalización de la función de transición δ
LENGUAJES
FORMALES
Definimos δ*: S x Σ* → S como sigue:
Y
AUTÓMATAS
δ*(q, λ)=q
autómatas
δ*(q, aw)= δ*(δ(q, a),w)
finitos y
lenguajes
regulares donde a ∈ Σ y w ∈ Σ*
LENGUAJES
FORMALES
El lenguaje reconocido por el AFR
Y
AUTÓMATAS M = (S, Σ, δ, s0, F), se denota L(M) y
se define como:
autómatas
finitos y
lenguajes L(M)={w| δ*(s0,w) ∈ F}
regulares
LENGUAJES
FORMALES
Ejemplo
Y
AUTÓMATAS
M = (S, Σ, Γ ,δ, s0, f0),
autómatas
S = {s0, s1, s2}, Σ = {0,1}, Γ={0,1}
finitos y
lenguajes
regulares 0 0
δ 0 1 f0 1
S0/1 S1/0
s0 s0 s1 1
s1 s1 s2 0 1 1
s2 s2 s0 0 S2/0
0
autómata finito traductor de Moore
LENGUAJES
FORMALES
Ejercicio
Y
AUTÓMATAS
1.Dar un autómata finito traductor de
autómatas
Moore que emita un 1 cada vez que se
finitos y
lenguajes hayan leído la secuencia bbba.
regulares
LENGUAJES
FORMALES
Ejemplo
Y
AUTÓMATAS
M = (S, Σ, Γ ,δ, s0, f0),
autómatas
S = {s0, s1, s2}, Σ = {0,1}, Γ={0,1}
finitos y
lenguajes
regulares
0/0 0/0
δ/ f0 0 1 1/0
S0 S1
s0 s0/0 s1/0
s1 s1/0 s2/0 1/1 1/0
s2 s2/0 s0/1 S2
0/0
autómata finito traductor de Mealy
LENGUAJES
FORMALES
Ejercicio
Y
AUTÓMATAS
1. Convertir los autómatas de Moore de
autómatas
los ejercicios previos a autómatas de
finitos y
lenguajes Mealy.
regulares
LENGUAJES
FORMALES
Ejemplo
Y
AUTÓMATAS M = (S, Σ, δ, s0, F), a,b a,b
a
autómatas
finitos y
S = {s0, s1}, S0 S1
lenguajes
regulares
Σ = {a, b},
F ={s1}
δ a b
s0 {s0,s1} {s0 } Autómata Finito
Reconocedor
s1 {s1} {s1} No Determinista
LENGUAJES
Un autómata finito reconocedor no
FORMALES
Y determinista con transiciones λ (AFRND-
AUTÓMATAS
λ) es una quíntupla
autómatas
M = (S, Σ, δ, s0, F),
finitos y
lenguajes
regulares
donde:
S es un conjunto finito de estados, S ≠ ∅
Σ es el alfabeto de entrada.
δ: S x (Σ ∪ {λ}) → 2S es la función de
transición.
s0 es el estado inicial, s0 ∈ S.
F es el conjunto de estados finales o
aceptadores (F ⊆ S).
autómata finito no determinista con transiciones λ
1 1
LENGUAJES
FORMALES 1 1
Y
AUTÓMATAS 0
P0 I0 0
P0 I0
autómatas λ
finitos y
lenguajes
regulares
0 0
Número impar de ceros S0
0 0
0 0 λ 1
P1 I1
1
P1 I1
1
LENGUAJES
FORMALES
Para AFRND Definimos δ*: S x Σ* → 2S
Y
AUTÓMATAS como sigue:
autómatas
δ*(q, λ)={q}
finitos y
lenguajes
regulares
δ*(q, wa)= {r1,r2,…,rm}
donde
δ*(q,w) = {p1,p2,…,pk} y
k
LENGUAJES
FORMALES
El lenguaje reconocido por el AFRND
Y
AUTÓMATAS M = (S, Σ, δ, s0, F), se denota L(M) y
se define como:
autómatas
finitos y
lenguajes L(M)={w | δ*(s0,w) ∩ F ≠ ∅}
regulares
LENGUAJES
FORMALES
A partir de un AFRND
Y
AUTÓMATAS N = (S, Σ, δ, s0, F) obtenemos un AFR
determinista D = (Sd, Σ, δd, {s0}, Fd)
autómatas
finitos y
lenguajes Sd = 2S
regulares
Fd es el conjunto de subconjuntos Q ∈
Sd tal que Q ∩ F ≠ ∅
Para cada conjunto Q ⊆ S y para cada
símbolo a ∈ Σ
δd es una función
δd (Q,a)= U
p∈Q
δ(p,a) de transición
determinista
AFRND -> AFRD
(tema a verse en clase práctica)
LENGUAJES
FORMALES
Y
AUTÓMATAS a,b a,b b a,b
a a
autómatas S0 S1 {S0} {S0,S1}
finitos y
lenguajes
regulares
a,b a,b
AFRND
∅ {S1}
AFRD
cadenas sobre Σ = {a,b} que contienen al
menos una a.
AFRND -> AFRD
(tema a verse en clase práctica)
AFRD
AFRND -> AFRD
(tema a verse en clase práctica)
LENGUAJES
FORMALES
Ejercicio
Y
AUTÓMATAS
Obtener el AFRD equivalente a los
autómatas
dados a continuación
finitos y a,b
lenguajes
regulares
1)
a
S0 S1
2) 0,1
0 0 0
S0 S1 S2 S3
LENGUAJES
FORMALES
Las expresiones regulares (ER) sobre
Y
AUTÓMATAS un alfabeto Σ son cadenas sobre el
alfabeto A = Σ ∪{(,),•, +,*, λ,∅}
autómatas
finitos y
lenguajes
definidas recursivamente como sigue:
regulares
1. λ es una ER.
2. ∅ es una ER.
LENGUAJES
FORMALES
Construimos la función L tal que si α es
Y
AUTÓMATAS una ER entonces L(α) es el lenguaje
representado por α:
autómatas
finitos y
lenguajes 1. L(λ) = {λ }.
regulares
2. L(∅) = ∅.
Stephen Kleene
Prueba 1909-1994
Parte 1: Dada una ER, construimos un AF.
Parte 2: Dado un AF, construimos una ER.
Parte 1: ER → AF
LENGUAJES
FORMALES
1. λ.
Y
AUTÓMATAS
λ
autómatas
finitos y
lenguajes
regulares 2. ∅.
3. a ∈ Σ.
a
Parte 1: ER → AF
autómatas
finitos y
lenguajes
regulares R
S
Parte 1: ER → AF
autómatas
finitos y
lenguajes
regulares
λ R λ
λ S λ
Parte 1: ER → AF
autómatas
finitos y
lenguajes
regulares
R S
Parte 1: ER → AF
autómatas
finitos y
lenguajes
regulares
λ
R S
Parte 1: ER → AF
autómatas
finitos y
lenguajes
regulares
R
Parte 1: ER → AF
LENGUAJES 4.3. α*
FORMALES
Y
AUTÓMATAS
autómatas
λ
finitos y
lenguajes
regulares
λ λ
R
λ
Parte 2: AF → ER
LENGUAJES
FORMALES
Ejemplo AF → ER (informal)
Y
AUTÓMATAS
Escribir la expresión regular para los
siguientes AF
autómatas
finitos y
0,1
lenguajes 1)
regulares 0,1 0,1
S0 S1 S2 0+1
2) 0 0,1
1 1
S0 S1 S3
0*10
0 S2 0,1
Parte 2: AF → ER
LENGUAJES
FORMALES
Lema
Y
AUTÓMATAS
Si ω, β y γ son ER sobre un alfabeto Σ,
autómatas
γ≠ λ, entonces la ecuación ω= β + ωγ
finitos y
lenguajes tiene una única solución y está dada
regulares
por ω= βγ*
γ
LENGUAJES
FORMALES
Y
Algoritmo
AUTÓMATAS
Entrada: un AF M= (S, Σ, δ, s0 , F)
autómatas
finitos y
lenguajes
Salida: una ER que denota el LR
regulares
reconocido por M.
Parte 2: AF → ER
LENGUAJES
FORMALES
Y
Paso 1:
AUTÓMATAS
LENGUAJES
FORMALES
Paso 2:
Y
AUTÓMATAS
despejar ecuaciones según lema
autómatas
finitos y
ω=β+ωγ entonces ω = βγ *
lenguajes
regulares
Paso 3:
La ER es la unión de las soluciones
para todos los estados
aceptadores del AF.
Parte 2: AF → ER
LENGUAJES
FORMALES
Ejemplo
Y
AUTÓMATAS M= (S, Σ, δ, s0 , F)
autómatas
S = {s0, s1, s2}, Σ = {a,b}, F ={s1}
finitos y
lenguajes
regulares
δ a b a a
s0 s0 s1 b
S0 S1
s1 s1 s2
s2 s2 s0 b b
Paso 1: Planteamos ecuaciones S2
ωS0= ωS0a+ ωS2b + λ
ωS1= ωS1a+ ωS0b a
ωS2= ωS2a+ ωS1b
Parte 2: AF → ER
LENGUAJES
FORMALES
Paso 2: ω=β+ωγ entonces ω = βγ *
Y
AUTÓMATAS
ωS0= ωS0a+ ωS2b + λ ωS0= (ωS2b + λ)a*
autómatas
γ=a y β=ωS2b + λ
finitos y
lenguajes
regulares ωS1= ωS1a+ ωS0b ωS1= (ωS0b)a*
γ=a y β=ωS0b
LENGUAJES
FORMALES
Paso 3: La ER es la unión de las soluciones
Y
AUTÓMATAS
para todos los estados aceptadores del AF.
a a
autómatas
finitos y ωS1=a*ba*(ba*ba*ba*)* b
lenguajes
regulares
S0 S1
b b
S2
a
L(M) =a*ba*(ba*ba*ba*)*
propiedades de los lenguajes regulares
LENGUAJES
FORMALES
Lema: La clase de los lenguajes
Y
AUTÓMATAS aceptados por AF, es decir la clase de
los lenguajes regulares, es cerrada
autómatas
finitos y
lenguajes
bajo:
regulares
unión,
concatenación,
estrella de Kleene,
complemento e
intersección.
gramáticas regulares o de tipo 3 (repaso)
W ∈ VN
Ejemplo
S → aA
A → aB
B → a | aS
equivalencia entre gramáticas regulares y AF
si B → aC ∈ P entonces:
δ(B,a) ⊇ {C},
a ∈ VT; B,C ∈ VN
gramática regular → AF
LENGUAJES Ejemplo a
FORMALES
Y S A
AUTÓMATAS
G=(VN, VT,S,P)
VN ={S,B} b b
autómatas
finitos y
lenguajes
regulares VT={a,b} B
S → a | bB
b
B → bB | b
M = (K, VT, δ, S, F)
K ={S,A,B}
F = {A} δ(S,a)={A}
δ(S,b)={B}
δ(B,b)={A,B}
.
AF → gramática regular
LENGUAJES
FORMALES
Parte 2: Dado M = (S, Σ, δ, s0, F) un AF
Y
AUTÓMATAS determinista construimos
G=(S, Σ, s0,P) donde P está formado
autómatas
finitos y
lenguajes
por
s0 → λ, si s0 ∈ F
regulares
B → aC, si δ(B,a) = C
B → a, si δ(B,a) = C y C ∈ F
AF → gramática regular
LENGUAJES
Ejemplo G=(S, Σ, s0,P)
FORMALES
Y
AUTÓMATAS M = (S, Σ, δ, s0, F) P:
Σ ={a,b} s0 → as0 | bA| b
autómatas
finitos y
F={A}
lenguajes
regulares a a A → aA |bB|a
s0
b
A
B → bs0| aB
b b
B