Está en la página 1de 27

Lenguajes Formales y Autómatas

Profesor: Jorge Osio


CONTENIDO
Reconocedores [1_2.1]. Traductores [2_8]. Diagramas de
Estado [1_2.1]. Expresiones regulares [1_3].
Propiedades de lenguajes regulares [1_4]. Relación
entre gramáticas regulares, lenguajes regulares y
autómatas finitos.
1. HOPCROFT, JOHN E., MOTWANI, RAJEEV Y ULLMAN,
JEFFREY D. “Introducción a la Teoría de Autómatas,
Lenguajes y Computación”. Segunda Edición.
AddisonWesley. 2002.
2. COHEN, DANIEL I.A. “Introduction to Computer Theory”,
Second Edition, John Wiley & Sons, Inc. 1997.
Autómata Finito Reconocedor

 Reconoce el lenguaje sobre Σ={0,1} con un número


múltiplo de 3 de 1’s
Autómata Finito Traductor

 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ómata finito Traductor

 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
Un autómata finito es un modelo que captura las características
de una computadora.
Veremos dos tipos de autómatas finitos
 Autómatas Finitos Reconocedores (AFR)
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
AF reconocedor
 Un autómata finito reconocedor (AFR) es una
quíntupla
M = (S, Σ, δ, s0, F),
donde:
 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)
AF reconocedor
 Ejemplo
M = (S, Σ, δ, s0, F),
S = {s0, s1, s2}, Σ = {0,1}, F ={s0}
AF reconocedor
Ejemplo
 Dar un autómata finito reconocedor para el lenguaje
de las cadenas definidas sobre el alfabeto Σ={a,b} tales
que empiezan con a.
Generalización de la función de
transición δ
 Definimos δ*: S x Σ* → S como sigue:
δ*(q, λ)=q
δ*(q, aw)= δ*(δ(q, a),w)
donde a Є Σ y w Є Σ*
 Una forma equivalente de definir δ*:
δ *(q, λ)=q
δ*(q, wa)= δ(δ*(q, w),a)

Donde λ es la cadena vacía


El lenguaje reconocido AFR
 El lenguaje reconocido por el AFR
M = (S, Σ, δ, s0, F), se denota L(M) y
se define como:
L(M)={w| δ*(s0,w) Є F}
 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
 Un autómata finito traductor de Moore es una
séxtupla
M = (S, Σ, Γ ,δ, S0, f0),
donde:
 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

 Ejemplo
M = (S, Σ, Γ ,δ, s0, f0),
S = {s0, s1, s2}, Σ = {0,1}, Γ={0,1}
Autómata finito traductor de mealy
 Un autómata finito traductor de Mealy es una
séxtupla
M = (S, Σ, Γ ,δ, s0, f0),
donde:
 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
Ejemplo
 M = (S, Σ, Γ ,δ, s0, f0),
 S = {s0, s1, s2}, Σ = {0,1}, Γ={0,1}
Autómata finito traductor de mealy
Ejercicios
 Convertir el ejercicio anterior de autómata de
moore en autómata de mealy
 Dar un autómata finito traductor de mealy que
realice suma binaria
0/0
1/1 0/1

S0 S1

1/0
Autómata finito no determinista
 Un autómata finito no
determinista (abreviado AFND) es un autómata
finito que, a diferencia de los autómatas finitos
deterministas (AFD), posee al menos un estado q ∈ Q,
tal que para un símbolo a ∈ Σ del alfabeto, existe más
de una transición δ(q,a) posible.
 En un AFND puede darse cualquiera de estos dos casos:
Que existan transiciones del tipo δ(q,a)=q1 y δ(q,a)=q2,
siendo q1≠ q2;
Autómata finito reconocedor no
determinista
 Un autómata finito reconocedor no determinista
(AFRND) es una quíntupla M = (S, Σ, δ, s0, F),
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 reconocedor no
determinista
 Ejemplo
 M = (S, Σ, δ, s0, F),
 S = {s0, s1},
 Σ = {a, b},
 F ={s1}

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


contienen al menos una “a”
autómata finito no determinista
con transiciones λ
 Un autómata finito reconocedor no determinista
con transiciones λ (AFRND-λ) es una quíntupla
 M = (S, Σ, δ, s0, F),
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 λ
Generalización de la función de transición δ
Para AFRND Definimos δ*: S x Σ* → 2S como sigue:
 δ*(q, λ)={q}
 δ*(q, wa)= {r: Эp / (pЄ δ*(q,w) ^ r Є δ(p,a) )}
={r1,r2,…,rm} r1
a
donde
 δ*(q,w) = {p1,p2,…,pk} y p1 a
k r2

 δ(p , a) ={r1,r2,…,r }
i =1
i m
w

w p2
a

r3
q
w
pk a
rm
Lenguaje de un AFR
 El lenguaje reconocido por el AFRND
 M = (S, Σ, δ, s0, F), se denota L(M) y se define como:
L(M)={w | δ*(s0,w) ∩ F ≠ ∅}

 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
 A partir de un AFRND
N = (S, Σ, δ, s0, F) obtenemos un AFR determinista
D = (Sd, Σ, δd, {s0}, Fd)
 Sd = 2S
 Fd es el conjunto de subconjuntos Q ∈ Sd tal que
Q∩F≠∅
 Para cada conjunto Q ⊆ S y para cada símbolo a ∈ Σ

δd (Q,a)= 
PQ δ(P,a)

 δd es una función de transición determinista


Como pasar de AFND a AFD
 Obtención del AFD
 Sd = 22= 4 estados AFD
 Sd={{Ø}, {S0}, {S1} , {S0, S1}}
 Fd es el conjunto de Q ∈ Sd tal
que Q ∩ F ≠ ∅
 {S1} ∩ S1 ≠ ∅
 {S0, S1} ∩ S1 ≠ ∅

δd ({S0, S1},a)=δN(S0,a)U δN(S1,a)


={S0,S1 } U S1 = {S0,S1 }
δd ({S0, S1},b)= δN(S0,b)U δN(S1,b)
= S0 U S1 = {S0,S1 }
Obtención del AFD equivalente
AFRND → AFRD

También podría gustarte