Sei sulla pagina 1di 54

autómatas finitos y lenguajes regulares

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 HOPCROFT, JOHN E., MOTWANI, RAJEEV


FORMALES
Y
AUTÓMATAS
Y ULLMAN, JEFFREY D. “Introducción a la
Teoría de Autómatas, Lenguajes y
autómatas Computación”. Segunda Edición.
finitos y
lenguajes
regulares
AddisonWesley. 2002.
COHEN, DANIEL I.A. “Introduction to
Computer Theory”, Second Edition, John
Wiley & Sons, Inc. 1997.
AUGUSTO, JUAN CARLOS . “Fundamentos
de Ciencias de la Computación” – Notas de
Curso. Universidad Nacional del Sur,
Argentina. 2002.
autómatas finitos reconocedores

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 Un autómata finito reconocedor (AFR) es


FORMALES
Y
AUTÓMATAS
una quíntupla
M = (S, Σ, δ, s0, F),
autómatas
finitos y donde:
lenguajes
regulares
S es un conjunto finito de estados, S≠∅
Σ es el alfabeto de entrada
δ: S x Σ → S 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 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 ∈ Σ*

Una forma equivalente de definir δ*:


δ*(q, λ)=q
δ*(q, wa)= δ(δ*(q, w),a)
el lenguaje de un AFR

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

Es decir, el lenguaje de M es el conjunto


de cadenas w tales que comenzando
del estado inicial de M nos llevan a
algún estado final.
Si L = L(M) para algún M, entonces L es
regular.
autómata finito traductor de Moore

LENGUAJES Un autómata finito traductor de Moore es


FORMALES
Y
AUTÓMATAS
una séxtupla
M = (S, Σ, Γ ,δ, s0, f0),
autómatas
finitos y donde:
lenguajes
regulares
S es un conjunto finito de estados, S≠∅.
Σ es el alfabeto de entrada.
Γ es el alfabeto de salida.
δ: S x Σ → S es la función de transición
s0 es el estado inicial, s0 ∈ S.
f0: S → Γ es la función de salida.
autómata finito traductor de Moore

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

2. Dar un autómata finito traductor de


Moore que simule la función booleana
AND.
3. Dar un autómata finito traductor de
Moore que simule la función booleana
OR.
autómata finito traductor de Mealy

LENGUAJES Un autómata finito traductor de Mealy es


FORMALES
Y
AUTÓMATAS
una séxtupla
M = (S, Σ, Γ ,δ, s0, f0),
autómatas
finitos y donde:
lenguajes
regulares
S es un conjunto finito de estados, S≠∅.
Σ es el alfabeto de entrada.
Γ es el alfabeto de salida.
δ: S x Σ → S es la función de transición
s0 es el estado inicial, s0 ∈ S.
f0: S x Σ → Γ es la función de salida.
autómata finito traductor de Mealy

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

2. Dar un autómata finito traductor de


Mealy que realice suma binaria.
autómata finito no determinista

LENGUAJES Un autómata finito reconocedor no


FORMALES
Y
AUTÓMATAS
determinista (AFRND) es una quíntupla
M = (S, Σ, δ, s0, F),
autómatas
finitos y donde:
lenguajes
regulares
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

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

L(M) es el lenguajes de cadenas sobre Σ = {a, b}


que contienen al menos una a
autómata finito no determinista con transiciones λ

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

1 Número impar de ceros o


Número par de unos par de unos
generalización de la función de transición δ

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

U δ(p ,a) ={r ,r ,…,r


i =1
i 1 2 m}
el lenguaje de un AFR

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

Es decir, el lenguaje de M es el conjunto


de cadenas w tales que comenzando
del estado inicial de M nos llevan a
algún conjunto de estados que
contenga al menos un estado final.
equivalencia entre AFR deterministas y no
deterministas (tema a verse en clase práctica)

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)

LENGUAJES Ejemplo M = (Sd, Σ, δd, {s0}, Fd)


FORMALES
Y
AUTÓMATAS M = (S, Σ, δ, s0, F),
Sd = {∅,s0, s1,{s0, s1}},
Σ = {a,b},
autómatas
finitos y
S = {s0, s1}, Fd ={{s1}, {s0, s1}}
lenguajes
regulares
Σ = {a,b},
F ={s1}
δd a b
δ a b ∅ ∅ ∅
s0 {s0,s1} s0 {s0} {s0, s1} {s0}
s1 s1 s1 {s1} {s1} {s1}
AFRND {s0, s1} {s0, s1} {s0,s1}

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

En lo que sigue usaremos AF para referirnos a


autómatas finitos reconocedores
(independientemente de si los mismos son
deterministas o no deterministas)
expresiones regulares

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.

3. Todo símbolo a ∈ Σ es una ER.

4. Si α y β son ER, entonces (α ), α•β,


α+β y α* también son ER.
lenguajes y expresiones regulares

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(∅) = ∅.

3. Para cada símbolo a ∈ Σ, L(a) = {a}.

4. Si α y β son ER, entonces


L(α•β) = L(α)•L(β),
L(α+β) = L(α)∪L(β),
L(α*) = L(α)* .
lenguajes y expresiones regulares

LENGUAJES Algunos ejemplos de ER sobre el alfabeto


FORMALES
Y
AUTÓMATAS
Σ={a,b}:
λ, ∅, a+ λ, a*(a+b)*b, b•a*
autómatas
finitos y Observaciones:
lenguajes
1. El símbolo “•” (concatenación) podrá ser
regulares

obviado cuando ello no provoque


ambigüedad. Por ejemplo la ER b•a* se
escribirá como ba*.
2. Notar que el mismo lenguaje regular puede
ser notado mediante diferentes
expresiones regulares. Por ejemplo
L((0+1)*) =L(((0+1*)*+(01)*)*)
equivalencia entre ER y AF

LENGUAJES Teorema de Kleene


FORMALES
Y
AUTÓMATAS
(detalles en Hopcroft et al.,
sección 3.2):
autómatas
finitos y
Un lenguaje L puede ser
lenguajes
regulares expresado por una ER
si y sólo si es reconocido
por un AF.

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

LENGUAJES 4.1. α+β.


FORMALES
Y
AUTÓMATAS

autómatas
finitos y
lenguajes
regulares R

S
Parte 1: ER → AF

LENGUAJES 4.1. α+β.


FORMALES
Y
AUTÓMATAS

autómatas
finitos y
lenguajes
regulares
λ R λ

λ S λ
Parte 1: ER → AF

LENGUAJES 4.2. α•β.


FORMALES
Y
AUTÓMATAS

autómatas
finitos y
lenguajes
regulares

R S
Parte 1: ER → AF

LENGUAJES 4.2. α•β.


FORMALES
Y
AUTÓMATAS

autómatas
finitos y
lenguajes
regulares
λ
R S
Parte 1: ER → AF

LENGUAJES 4.3. α*.


FORMALES
Y
AUTÓMATAS

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 ω= βγ*
γ

β asociar cada estado


S con una ER

ωS= β + ωSγ ωS= βγ*


Parte 2: AF → ER

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

Plantear una ecuación por cada


autómatas
finitos y
lenguajes
estado, como unión de n términos
regulares
ωsi= ωsj1 • a1 + ωsj2 • a2 ....
Para δ(sj,a)=si, uno de los términos
de la ecuación ωsi será ωsj•a.
En la ecuación para el estado inicial
se agrega el término λ.
Parte 2: AF → ER

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

ωS2= ωS2a+ ωS1b ωS2= (ωS1b)a*


γ=a y β=ωS1b
ωS1=(ωS0b)a*
ωS1=((ωS2b + λ)a*b)a*
ωS1=((ωS1b)a*b + λ)a*b)a*=ωS1ba*ba*ba*+a*ba*
ωS1=a*ba*(ba*ba*ba*)*
Parte 2: AF → ER

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)

LENGUAJES Gramática Regular (tipo 3)


FORMALES
Y
AUTÓMATAS Para cada producción α → β
(excepto S → λ):
„ α ∈ VN y
autómatas
finitos y
lenguajes

„ β es de la forma t o tW, donde t ∈ VT y


regulares

W ∈ VN

Ejemplo
S → aA
A → aB
B → a | aS
equivalencia entre gramáticas regulares y AF

LENGUAJES Si G una gramática regular podemos


FORMALES
Y
AUTÓMATAS
obtener un autómata M tal que L(M) =
L(G), y viceversa, dado el autómata M
autómatas
finitos y
podemos construir la gramática G.
lenguajes
regulares Mostramos un método simple y
ejemplos:
Parte 1: Dada una gramática G
mostraremos como construir un
autómata M tal que L(G) = L(M).
Parte 2: Dado un autómata M
mostraremos como construir una
gramática G tal que L(M) = L(G)
gramática regular → AF

Parte 1: Dada G=(VN, VT,S,P) construimos


M = (K, VT, δ, S, F) donde K=VN ∪ {A} con A
LENGUAJES
FORMALES

nuevo (no perteneciente a VN)


Y
AUTÓMATAS

Si P tiene la producción S →λ entonces


autómatas
finitos y
F ={A,S} si no F = {A}.
lenguajes
regulares Al definir δ debemos considerar los siguientes
casos
„ si B → a ∈ P entonces:
δ(B,a) ⊇ {A},
a ∈ VT; B ∈ VN

„ 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

Potrebbero piacerti anche