Está en la página 1de 73

Autómatas Finitos y

Lenguajes Regulares
Introducción
Autómatas “aceptadores”: Instrumentos que reconocen
lenguajes, máquinas que aceptan ciertos estímulos.
Ejemplo: Máquinas expendedoras

50 30 10

40 20

Autómatas y Matemáticas Discretas p. 2 / 73


Introducción
Autómatas “aceptadores”: Instrumentos que reconocen
lenguajes, máquinas que aceptan ciertos estímulos.
Ejemplo: Diseño de videojuegos

Autómatas y Matemáticas Discretas p. 3 / 73


Introducción
Autómatas “aceptadores”: Instrumentos que reconocen
lenguajes, máquinas que aceptan ciertos estímulos.
Ejemplo: Modelado de servicios
Ø Servicio que trata y combina imágenes. Recibe los siguientes eventos:
§ NuevaImagen(Imagen): Añade una nueva imagen (como máximo puede
haber dos imágenes abiertas a la vez).
§ AjustaColores(): Ajusta los colores de la última imagen recibida.
§ Combina(): Combina las dos imágenes y las sustituye por una.
§ Borra(): Borra la última imagen.
NuevaImagen NuevaImagen
0 1 Combina 2
AjustaColores
Borra Borra
AjustaColores
Autómatas y Matemáticas Discretas p. 4 / 73
Introducción
Autómatas “aceptadores”: Instrumentos que
reconocen lenguajes, máquinas que aceptan ciertos
estímulos.
Más ejemplos:
§ Tarjetas de identificación
§ Modelado de servicios
§ Descripción de procesos
§ …
En Informática son de vital importancia para el diseño
de un analizador léxico.

Autómatas y Matemáticas Discretas p. 5 / 73


Contenidos
1. Conceptos básicos: Cadenas, alfabetos y lenguajes
2. AFD: Autómatas Finitos Deterministas
3. AFN: Autómatas Finitos No Deterministas
4. Equivalencia entre AFD y AFN
5. AFN con Λ-movimientos
6. Equivalencia entre AFN y AFN-Λ
7. E.R.: Expresiones Regulares
8. Equivalencia entre AF y ER
9. Propiedades Formales de los Lenguajes regulares
Autómatas y Matemáticas Discretas p. 6 / 73
Conceptos básicos
La computación se basa en lenguajes:
§ Lenguajes de Programación, lenguajes de consulta,
protocolos de comunicación, …
Los lenguajes tienen reglas sintácticas y semánticas.
§ En programación: Nos indican cómo construir programas
§ En consultas: Nos indican cómo consultar datos
§ En comunicación: Nos indican cómo transmitir información

Autómatas y Matemáticas Discretas p. 7 / 73


Conceptos básicos
Alfabeto X: Conjunto finito y no vacío de símbolos.
§ Ejemplo: Alfabeto español X1= {a, ... , z}
§ Ejemplo: Programación X2 = {if, for, while, {, }, ...}
§ Ejemplo: Monedas X3 = {10cts, 20cts, 50cts, ...}
Palabra 𝝎: Sucesión finita (y ordenada) de símbolos
de un determinado alfabeto X
La longitud de ω, |ω|, es el número de símbolos de
la palabra.
Denotamos Λ a la palabra vacía (| ω |= 0 ).

Autómatas y Matemáticas Discretas p. 8 / 73


Conceptos básicos
Operaciones con palabras:
§ Concatenación 𝜔%𝜔&
§ Potencia Λ, 𝜔, 𝜔𝜔, 𝜔𝜔𝜔, …
§ Prefijos, sufijos, imagen especular (ω)%, ω*)
Universo de un alfabeto X, X*: Conjunto de todas las
palabras que se pueden formar con los símbolos de X
§ Es un conjunto infinito
§ Λ ∈ X∗, ∀ X
§ Ejemplo: Combinaciones de monedas
§ Ejemplo: Números que se pueden formar con los dígitos 0-9

Autómatas y Matemáticas Discretas p. 9 / 73


Conceptos básicos
Lenguaje Formal L (sobre un alfabeto X): Conjunto
definido de palabras. 𝑳 ∈ 𝑿∗
§ Ejemplo: Diccionario de la RAE (lenguaje español)
§ Ejemplo: Lenguajes de programación (Java, C#, Python,…)
Operaciones con lenguajes:
§ Unión: 𝐿% ∪ 𝐿& = {𝜔, 𝜔 ∈ 𝐿% 𝒐 𝜔 ∈ 𝐿&}
§ Intersección: 𝐿% ∩ 𝐿& = {𝜔, 𝜔 ∈ 𝐿% 𝒚 𝜔 ∈ 𝐿&}
§ Concatenación: 𝐿%𝐿& = {𝜔%𝜔&, 𝜔% ∈ 𝐿% 𝑦 𝜔& ∈ 𝐿&}
§ Potencia: Λ, 𝐿, 𝐿𝐿, 𝐿𝐿𝐿, 𝐿𝐿𝐿𝐿, …
§ Cierre positivo: 𝐿: = 𝐿 ∪ 𝐿𝐿 ∪ 𝐿𝐿𝐿 ∪ ⋯ ∪ ⋯
§ Clausura de Kleene: 𝐿∗ = Λ ∪ 𝐿 ∪ 𝐿𝐿 ∪ 𝐿𝐿𝐿 ∪ ⋯ ∪ ⋯

Autómatas y Matemáticas Discretas p. 10 / 73


Lenguajes Regulares
Son lenguajes más sencillos que los lenguajes de
programación utilizados habitualmente
En la asignatura los estudiaremos mediante:
Ø Autómatas: Máquina abstracta capaz de recibir, procesar y
transmitir información
Ø Expresiones Regulares: Describen de manera declarativa
cómo son las cadenas que pertenecen a determinado lenguaje
Ø Gramáticas: Describen la estructura de un lenguaje,
proporcionando las reglas que nos permiten construir
secuencias válidas dentro de un lenguaje

Autómatas y Matemáticas Discretas p. 11 / 73


AFD
Autómata Finito Determinista (AFD):
Es una quíntupla M = (X, Q, δ, q0, F) dónde:
§ X: Alfabeto:
§ Q = {q0, q1, …, qn}: Conjunto finito de estados
§ 𝛅: 𝑄×𝑋 → 𝑄: Función de transiciones
§ q0 Î Q: Estado inicial
§ F Í Q: Conjunto de estados finales o de aceptación

Autómatas y Matemáticas Discretas p. 12 / 73


Representación de AFD
Ø Definir explícitamente M = (X, Q, δ, q0, F)
§ X = {a, b}, Q = {i, q1, q2, q3}, q0 = i, F = {q3}
δ(i, a) = q1 𝛿(i, b) = q2 𝛿(q1, a) = q3 𝛿(q1, b) = q2
𝛿(q2, a) = q1 𝛿(q2, b) = q3 𝛿(q3, a) = q3 𝛿(q3, b) = q3

Ø Diagrama de transiciones
a q1 a
a,b
i a b q3

b q2 b

Autómatas y Matemáticas Discretas p. 13 / 73


Representación de AFD
Ø Tabla de transiciones
X

a b
→ i q1 q2
q1 q3 q2 → : q0
Q
q2 q1 q3 *:F
* q3 q3 q3

Autómatas y Matemáticas Discretas p. 14 / 73


Lenguaje aceptado por AFD
Función de transición extendida 𝜹∗ : Se define por
inducción en la longitud de las palabras:
𝛿 ∗ 𝑞, Λ = 𝑞
§ Si 𝜔
E es de la forma 𝜔𝑎:
𝛿 ∗ 𝑞, 𝜔𝑎 = 𝛿(𝛿 ∗ 𝑞, 𝜔 , 𝑎)

Lenguaje aceptado por un AFD D=(X, Q, δ, q0, F):


𝐿 𝐷 ≔ {𝜔 ∈ 𝑋 ∗ , 𝛿 ∗ 𝑞" , 𝜔 ∈ 𝐹}
Lenguaje Regular: Lenguaje aceptado por algún AFD

Autómatas y Matemáticas Discretas p. 15 / 73


Ejemplos de AFD
b b a a,b
q0 q2 a,b
q0 q2 q3
a a b a,b
b a
q1 a,b q1 q4 q5
a,b
Lenguaje aceptado: Palabras que Lenguaje aceptado: únicamente
comienzan por “b” acepta las palabras “b” y “bba”
b b
b b a
a q0 q2 q3 q4 a
q0 q1 a b
a
a b
q1 a,b
Lenguaje aceptado: Palabras
con un número par de “a” Lenguaje aceptado: Palabras que
comienzan por “bb” y terminan por “a”
Autómatas y Matemáticas Discretas p. 16 / 73
Minimización de AFDs
Sea D=(X, Q, δ, q0, F) un AFD tal que Q={q0, q1, …, qn}
Buscar el menor AFD D’ tal que L(D)=L(D’)
1. Eliminar estados no accesibles desde q0
2. Unificar estados equivalentes

Denotamos Dqi=(X, Q, δ, qi, F)


§ Es decir, el mismo AFD pero con estado inicial qi
Denotamos como Lqi al lenguaje reconocido por Dqi
§ 𝐿LM = 𝐿(𝐷LM )

Autómatas y Matemáticas Discretas p. 17 / 73


Minimización de AFDs
Ø Autómatas accesibles:
Sea D=(X, Q, δ, q0, F) un AFD:
p ∈ Q es accesible desde q ∈ Q, (pAq) si:
∃𝜔 ∈ 𝑋 ∗ tal que 𝛿 ∗ 𝑞, 𝜔 = 𝑝
D es un autómata accesible si todo estado es
accesible desde el estado inicial.
§ Desde el estado inicial se puede llegar al resto de estados
mediante alguna palabra.
§ Es decir:
∀𝑝 ∈ 𝑄, 𝑝𝐴𝑞T

Autómatas y Matemáticas Discretas p. 18 / 73


Minimización de AFDs
Ø Equivalencia de estados:
Dado un AFD D=(X, Q, δ, q0, F), entonces:
p, q Î Q son equivalentes si, y solo si, Lp=Lq
𝑝𝐸𝑞 ⇔ ∀𝜔, (𝛿 ∗ 𝑝, 𝜔 ∈ 𝐹 ↔ 𝛿 ∗ 𝑞, 𝜔 ∈ 𝐹)
p, q Î Q se distinguen por una palabra si, y solo si:
𝜔 ∈ 𝐿# 𝑦 𝜔 ∉ 𝐿$ , o viceversa

p, q Î Q se distinguen si lo hacen por, al menos, una


palabra

Autómatas y Matemáticas Discretas p. 19 / 73


Minimización de AFDs

LEMA
Sea un AFD D=(X, Q, δ, q0, F):
Dos estados p y q Î Q se distinguen por una
palabra 𝜔 = 𝑎𝜔′ si, y sólo si, 𝛿(𝑝, 𝑎) y 𝛿(𝑞, 𝑎) se
distinguen por la palabra 𝜔′

Autómatas y Matemáticas Discretas p. 20 / 73


Minimización de AFDs
Ø Algoritmo:
𝜋 ← {𝑄}, 𝜋WXY ← {𝐹, 𝑄\𝐹}
mientras 𝜋 ≠ 𝜋WXY :
𝜋 ← 𝜋!"#
para cada 𝐺$ ∈ 𝜋:
Dividir 𝐺$ en sub-grupos 𝐺$% , 𝐺$& , … , 𝐺$' tales que:
∀𝒊 ∈ 𝟏, 𝒌 , ∀ 𝒑, 𝒒 ∈ 𝑮𝒋𝒊 ,
∀𝒂 ∈ 𝑿, ∃𝑮𝒍 ∈ 𝝅, 𝒕. 𝒒. 𝜹 𝒑, 𝒂 ∈ 𝑮𝒍 , 𝜹 𝒒, 𝒂 ∈ 𝑮𝒍
si 𝑘 > 1: 𝜋!"# ← 𝜋!"# − 𝐺$ ∪ 𝐺$% , … , 𝐺$'
fin para
fin mientras

Autómatas y Matemáticas Discretas p. 21 / 73


Minimización de AFDs

D> = (X, Q′, 𝛿′, q " ′, F′) , con Q′ = {q>" , … , q>?@A }


𝑞"> ≈ 𝐺B tal que 𝑞" ∈ 𝐺B ,
𝑞C> ≈ 𝐹 > ⟺ 𝑞C> ≈ 𝐺D , 𝐺D ⊆ 𝐹

El estado inicial es el correspondiente al grupo en el


que esté el estado inicial de D
Los estados finales son los correspondientes a grupos
formados por estados finales

Autómatas y Matemáticas Discretas p. 22 / 73


Ejemplo
0 1 𝜋 = 𝜋!"# = {𝐺% , 𝐺& }
→ e1 e2 e3 𝐺! = 𝑒! , 𝑒" , 𝑒# , 𝑒$ , 𝐺" = {𝑒% }
e2 e2 e4 G2 es indivisible
e3 e2 e3 Para los estados de G1 :
e4 e2 e5 Con el símbolo ‘0’ Con el símbolo ‘1’
* e5 e2 e3 𝛿 𝑒! , 0 = 𝑒" ∈ 𝐺! 𝛿 𝑒! , 1 = 𝑒# ∈ 𝐺!
0 1 𝛿 𝑒" , 0 = 𝑒" ∈ 𝐺! 𝛿 𝑒" , 1 = 𝑒$ ∈ 𝐺!

0 e2 0
e4 𝛿 𝑒# , 0 = 𝑒" ∈ 𝐺! 𝛿 𝑒# , 1 = 𝑒# ∈ 𝐺!
𝛿 𝑒$ , 0 = 𝑒" ∈ 𝐺! 𝛿 𝑒$ , 1 = 𝑒% ∈ 𝐺"
e1 0 0 1

1 𝐺!! = {𝑒! , 𝑒" , 𝑒# } 𝐺!" = {𝑒$ } 𝐺" = {𝑒% }


e3 e5
1
1 𝜋&'( = {𝐺!! , 𝐺!" , 𝐺" }

Autómatas y Matemáticas Discretas p. 23 / 73


Ejemplo
Repetimos el proceso hasta que no haya más grupos:
§ Solo se puede aplicar a G11, ya que G12 y G2 son
indivisibles.
Con el símbolo ‘0’ Con el símbolo ‘1’
𝛿 𝑒! , 0 = 𝑒" ∈ 𝐺!! 𝛿 𝑒! , 1 = 𝑒# ∈ 𝐺!!
𝛿 𝑒" , 0 = 𝑒" ∈ 𝐺!! 𝛿 𝑒" , 1 = 𝑒$ ∈ 𝐺!"
𝛿 𝑒# , 0 = 𝑒" ∈ 𝐺!! 𝛿 𝑒# , 1 = 𝑒# ∈ 𝐺!!
𝐺!!! = {𝑒! , 𝑒# } 𝐺!!" = {𝑒" } 𝐺!" = {𝑒$ } 𝐺" = {𝑒% } 𝜋&'( = {𝐺!!! , 𝐺!!" , 𝐺!" , 𝐺" }
§ Repetimos para G111, ya que el resto de grupos son
indivisibles
Con el símbolo ‘0’ Con el símbolo ‘1’
No hay nuevos grupos. 𝛿 𝑒! , 0 = 𝑒" ∈ 𝐺!!" 𝛿 𝑒! , 1 = 𝑒# ∈ 𝐺!!!
El algoritmo termina 𝛿 𝑒# , 0 = 𝑒" ∈ 𝐺!!" 𝛿 𝑒# , 1 = 𝑒# ∈ 𝐺!!!
Autómatas y Matemáticas Discretas p. 24 / 73
Ejemplo
Elegir un representante de cada grupo
𝐺%%% = {𝒆𝟏 , 𝑒, } 𝐺%%& = {𝒆𝟐 } 𝐺%& = {𝒆𝟒 } 𝐺& = {𝒆𝟓 }

El AFD mínimo equivalente será el siguiente AFD:


§ M=(X, Q’, δ’, e1, F’), donde:
• X = {0, 1} 𝛿′ 0 1 0 1
• Q’= {e1, e2, e4, e5} e2 e4
→ e1 e2 e1 0
• F’ = {e5}
• δ‘ como indica la tabla e2 e2 e4 0 0 1
e4 e2 e5
e1 e5
* e5 e2 e1 1
1
En resumen:
§ e1 y e3 eran estados equivalentes y por ello se ha
eliminado uno de ellos.
Autómatas y Matemáticas Discretas p. 25 / 73
Ejercicio
Dado el siguiente AFD, determina el AFD mínimo
equivalente.
b
a a
q0 q1 q2
a
b
a b b
q6
q5
b
a q3
b a
a b
q4

Autómatas y Matemáticas Discretas p. 26 / 73


AFN
Autómata Finito No Determinista (AFN):
Es una quíntupla N = (X, Q, δ, q0, F) dónde:
§ X: Alfabeto:
§ Q = {q0, q1, …, qn}: Conjunto finito de estados
§ 𝛅: 𝑸×𝑿 → 𝓟(𝑸): Función de transiciones
§ q0 Î Q: Estado inicial
§ F Í Q: Conjunto de estados finales o de aceptación

Autómatas y Matemáticas Discretas p. 27 / 73


AFN: δ ∗ y L(N)
Función de transición extendida 𝜹∗ :
§ 𝛿 ∗ 𝑞, Λ = {𝑞}
§ Si 𝜔
E es de la forma 𝜔𝑎:

𝛿 ∗ 𝑞, 𝜔𝑎 = H 𝛿(𝑝, 𝑎)
#∈L ∗ ($,N)

Lenguaje aceptado por un AFN N=(X, Q, δ, q0, F):


𝐿 𝑁 ≔ {𝜔 ∈ 𝑋 ∗ , 𝛿 ∗ 𝑞" , 𝜔 ∩ 𝐹 ≠ ∅}

Autómatas y Matemáticas Discretas p. 28 / 73


Ejemplos de AFN
b
a a q0 q2
q0 q1 q2
b
a,b a,b b a
q1 q3 q4

Lenguaje aceptado: Palabras que Lenguaje aceptado: únicamente


contienen la subcadena “aa” acepta las palabras “b” y “bba”

a a,b a,b b b a
q0 q1 q2 q3 q0 q2 q3 q4

a,b a,b
Lenguaje aceptado: Palabras Lenguaje aceptado: Palabras que
cuyo antepenúltimo símbolo es
una “a” comienzan por “bb” y terminan por “a”

Autómatas y Matemáticas Discretas p. 29 / 73


Equivalencia entre AFD y AFN
Teorema:
Dado un AFN N = (X, Qn, δP , q0n, Fn), existe un AFD
equivalente a N: D = (X, Qd, δQ , q0d, Fd)
Es decir, que reconoce el mismo lenguaje:
𝐿 𝐷 = 𝐿(𝑁)
Idea de demostración:
• 𝑄) = 𝒫 𝑄&
• 𝑞*) = {𝑞*& } 𝛿0 𝐴, 𝑥 = T 𝛿! (𝑞, 𝑥)
1∈3
• 𝐹) = {𝐴 ∈ 𝑄) / 𝐴 ∩ 𝐹& ≠ ∅}

Autómatas y Matemáticas Discretas p. 30 / 73


Equivalencia entre AFD y AFN
0 1
0 q1 1 → {q0} {q0, q1} {q0}
q0 q2 {q1} Æ {q2}
0,1 * {q2} Æ Æ
Æ Æ Æ
0 1 {q0, q1} {q0, q1} {q0, q2}
→ q0 {q0, q1} {q0} * {q0, q2} {q0, q1} {q0}
q1 Æ {q2} * {q1, q2} Æ {q2}
* q2 Æ Æ * {q0, q1, q2} {q0, q1} {q0, q2}

𝑸𝒅 = 𝒫 𝑸𝒏 = {∅, 𝒒𝟎 , 𝒒𝟏 , 𝒒𝟐 , 𝒒𝟎 , 𝒒𝟏 , 𝒒𝟎 , 𝒒𝟐 , 𝒒𝟏 , 𝒒𝟐 , {𝒒𝟎 , 𝒒𝟏 , 𝒒𝟐 }}

Autómatas y Matemáticas Discretas p. 31 / 73


Equivalencia entre AFD y AFN
Ø Eliminar los conjuntos de estados no accesibles desde
el estado inicial
0 1 0 q1 1
→ {q0} {q0, q1} {q0} p0
q0 q2
{q1} Æ {q2}
0,1
* {q2} Æ Æ
Æ Æ Æ
0
{q0, q1} {q0, q1} {q0, q2} p1
* {q0, q2} {q0, q1} {q0} p2 0 p1 1
* {q1, q2} Æ {q2} p0 0 p2
* {q0, q1, q2} {q0, q1} {q0, q2} 1
1

Autómatas y Matemáticas Discretas p. 32 / 73


AFN con L-movimientos
N = (X, Q, δ, q0, F)
§ X, Q, q0 y F se definen como en AFN
§ δ se define como:
𝜹: 𝑸× 𝑿 ∪ 𝜦 → 𝓟(𝑸)
L-Clausura de un estado q:
§ 𝚲-Cl(q) = {q’∈ Q / Existe algún camino de L’s desde q
hasta q’} ∪ {q}
§ Sea A ⊆ Q un conjunto de estados:

𝛬−𝐶𝑙 𝐴 = o 𝛬−𝐶𝑙 𝑞
L∈p

Autómatas y Matemáticas Discretas p. 33 / 73


AFN con L-movimientos
Propiedades:
Ø Si A, B ⊆ Q:
Λ−𝐶𝑙 𝐴 ∪ 𝐵 = Λ−𝐶𝑙 𝐴 ∪ Λ−𝐶𝑙(𝐵)
Ø Dados dos estados p, q ∈ Q:
𝑝 ∈ Λ−Cl 𝑞 ⟹ Λ−𝐶𝑙 𝑝 ⊆ Λ−𝐶𝑙(𝑞)
Ø Para todo p ∈ Q:
Λ−𝐶𝑙 Λ−𝐶𝑙 𝑝 = Λ−𝐶𝑙(𝑝)

Autómatas y Matemáticas Discretas p. 34 / 73


AFN-Λ : δ ∗ y L(N)
Función de transición extendida 𝜹∗ :
§ 𝛿 ∗ 𝑞, Λ = Λ−𝐶𝑙(𝑞)
§ Si 𝜔
E es de la forma 𝜔𝑎:

𝛿 ∗ 𝑞, 𝜔𝑎 = Λ−𝐶𝑙 H 𝛿(𝑝, 𝑎)
#∈L ∗ ($,N)

Autómatas y Matemáticas Discretas p. 35 / 73


Equivalencia entre AFN-L y AFN
Teorema:
Dado un AFN-L M = (X, Q, δ, q0, F), existe un AFN
equivalente a M: N = (X, Q, δP , q0, Fn)
Es decir, que reconoce el mismo lenguaje:
𝐿 𝑁 = 𝐿(𝑀)
Idea de demostración:
• 𝛿& (𝑞, 𝑥) = 𝛿 ∗ (𝑞, 𝑥)

𝐹 𝑠𝑖 Λ ∉ 𝐿(𝑀)
• 𝐹& = r
𝐹 ∪ {𝑞* } 𝑠𝑖 Λ ∈ 𝐿(𝑀)

Autómatas y Matemáticas Discretas p. 36 / 73


Equivalencia entre AFN-L y AFN
1

Λ q1 Λ Λ-Cl(q0) = {q0, q1, q2}


Λ-Cl(q1) = {q1, q2}
q0 q2
Λ-Cl(q2) = {q2}
0 2

0 1 2 𝚲 𝜦-Cl
→ q0 {q0} Æ Æ {q1} {q0, q1, q2}
q1 Æ {q1} Æ {q2} {q1, q2}
* q2 Æ Æ {q2} Æ {q2}

Autómatas y Matemáticas Discretas p. 37 / 73


Equivalencia entre AFN-L y AFN
𝜹𝑵 𝒒𝟎 , 𝟎 = 𝛿 ∗ 𝑞* , 0 = Λ−𝐶𝑙(𝛿(𝑟, 0))2∈4)56(8!) = Λ−𝐶𝑙(𝛿 𝑞* , 0 ∪ 𝛿 𝑞! , 0 ∪ 𝛿 𝑞" , 0 ) =
= Λ−𝐶𝑙({𝑞* }) = {𝒒𝟎 , 𝒒𝟏 , 𝒒𝟐 }
𝜹𝑵 𝒒𝟎 , 𝟏 = 𝛿 ∗ 𝑞* , 1 = Λ−𝐶𝑙(𝛿(𝑟, 1))2∈4)56(8!) = Λ−𝐶𝑙(𝛿 𝑞* , 1 ∪ 𝛿 𝑞! , 1 ∪ 𝛿 𝑞" , 1 ) =
= Λ−𝐶𝑙({𝑞! }) = {𝒒𝟏 , 𝒒𝟐 }
𝜹𝑵 𝒒𝟎 , 𝟐 = 𝛿 ∗ 𝑞* , 2 = Λ−𝐶𝑙(𝛿(𝑟, 2))2∈4)56(8!) = Λ−𝐶𝑙(𝛿 𝑞* , 2 ∪ 𝛿 𝑞! , 2 ∪ 𝛿 𝑞" , 2 ) =
= Λ−𝐶𝑙({𝑞" }) = {𝒒𝟐 }

𝜹𝑵 𝒒𝟏 , 𝟎 = 𝛿 ∗ 𝑞! , 0 = Λ−𝐶𝑙(𝛿(𝑟, 0))2∈4)56(8") = Λ−𝐶𝑙 𝛿 𝑞! , 0 ∪ 𝛿 𝑞" , 0 =∅


𝜹𝑵 𝒒𝟏 , 𝟏 = 𝛿 ∗ 𝑞! , 1 = Λ−𝐶𝑙(𝛿(𝑟, 1))2∈4)56(8") = Λ−𝐶𝑙 𝛿 𝑞! , 1 ∪ 𝛿 𝑞" , 1 =
= Λ−𝐶𝑙 𝑞! = {𝒒𝟏 , 𝒒𝟐 }
𝜹𝑵 𝒒𝟏 , 𝟐 = 𝛿 ∗ 𝑞! , 2 = Λ−𝐶𝑙(𝛿(𝑟, 2))2∈4)56(8") = Λ−𝐶𝑙 𝛿 𝑞! , 2 ∪ 𝛿 𝑞" , 2 =
= Λ−𝐶𝑙 𝑞" = {𝒒𝟐 }

Autómatas y Matemáticas Discretas p. 38 / 73


Equivalencia entre AFN-L y AFN
𝜹𝑵 𝒒𝟐 , 𝟎 = 𝛿 ∗ 𝑞" , 0 = Λ−𝐶𝑙(𝛿(𝑟, 0))2∈4)56(8#) = Λ−𝐶𝑙(𝛿 𝑞" , 0 ) = ∅

𝜹𝑵 𝒒𝟐 , 𝟏 = 𝛿 ∗ 𝑞" , 1 = Λ−𝐶𝑙(𝛿(𝑟, 1))2∈4)56(8#) = Λ−𝐶𝑙(𝛿 𝑞" , 1 ) = ∅

𝜹𝑵 𝒒𝟐 , 𝟐 = 𝛿 ∗ 𝑞" , 2 = Λ−𝐶𝑙(𝛿(𝑟, 2))2∈4)56(8#) = Λ−𝐶𝑙 𝛿 𝑞" , 2 = Λ−𝐶𝑙 𝑞" = {𝒒𝟐 }

0 1 2
→* q0 {q0, q1, q2} {q1, q2} {q2}
q1 Æ {q1, q2} {q2}
* q2 Æ Æ {q2}

Dado que 𝛬−𝐶𝑙(𝑞* ) contiene un estado final y q0 es el estado inicial,


pasa a ser final también

Autómatas y Matemáticas Discretas p. 39 / 73


Ejercicio
Dado el siguiente AFN-L:
§ a) Indica el valor de 𝛿 ∗ (𝑞2, 𝑎𝑏)
§ b) Indica el valor de 𝛿 ∗ (𝑞1, 𝑎𝑎)
§ c) Construye el AFN equivalente

Autómatas y Matemáticas Discretas p. 40 / 73


Expresiones Regulares (E.R.)
Sea X un alfabeto:
Ø Caso base:
§ Λ y ∅ son e.r. tal que: 𝐿 Λ = {Λ} y 𝐿 ∅ = ∅
§ 𝑎 ∈ 𝑋 es una e.r. tal que 𝐿 𝑎 = {𝑎}
Ø Caso inductivo: Sean r y s dos e.r. para L(r) y L(s):
§ 𝑟 + 𝑠 es una e.r., tal que 𝐿 𝑟 + 𝑠 = 𝐿 𝑟 ∪ 𝐿(𝑠)
§ 𝑟 𝑠 es una e.r., tal que 𝐿 𝑟 𝑠 = L r L(s)
∗ ∗ ∗
§ 𝑟 es una e.r., tal que 𝐿 𝑟 = 𝐿 𝑟
§ (𝑟) es una e.r., tal que 𝐿 𝑟 = 𝐿(𝑟)

Autómatas y Matemáticas Discretas p. 41 / 73


Ejemplos de expresiones regulares

Expresión regular: Lenguaje generado:


a+bc+bb {a, bc, bb}
ab* {a, ab, abb, abbb, abbbb, …}
(ab)* {Λ, ab, abab, ababab, abababab, …}
a*+b* {Λ, a, b, aa, bb, aaa, bbb, aaaa, bbbb, …}
(a+b)* Cualquier combinación de a’s y b’s de cualquier longitud
(aaa+bb)* {Λ, aaa, bb, aaaaaa, aaabb, bbaaa, bbbb, …}
a(a+b)* Palabras que comienzan por ‘a’
(a+b)*a Palabras que terminan por ‘a’
(a+b)*bb(a+b)* Palabras que contienen la subcadena ‘bb’

Autómatas y Matemáticas Discretas p. 42 / 73


Ejercicios de expresiones regulares

Determinar una Expresión Regular que represente cada uno de


los lenguajes formados por las cadenas de a’s y b’s que…
a) …empiezan por a y terminan por ab. a(a+b)*ab
b) …contengan exactamente una a. b* a b*
c) …contengan exactamente dos a’s. b* a b* a b*
d) …tengan longitud 2 al menos. (a+b) (a+b) (a+b)*
e) …cada a está seguida de al menos una b. (ab+b)*
f) …contengan como máximo una a. b* (a+λ) b*
g) …contengan como máximo dos a’s. b* (a+λ) b* (a+λ) b*
h) …contengan un número par de b’s. (a + ba*b)*
i) …contengan una sola a y un número par de b’s. (bb)* (a+bab) (bb)*

Autómatas y Matemáticas Discretas p. 43 / 73


Ejercicios de expresiones regulares
¿Se podría decir que la expresión regular (ab+b+ba)* describe el
lenguaje “Palabras de a’s y b’s que no contienen dos a’s consecutivas”?
Justifica tu respuesta.
Solución: no, porque esa ER podría generar “baab”.
¿Se podría decir que la expresión regular (b+ba)* describe el lenguaje
“Palabras de a’s y b’s que no contienen dos a’s consecutivas”? Justifica tu
respuesta.
Solución: no, porque esa ER no podría generar “abab”.
Una ER que representa el lenguaje formado por “Cadenas de a’s y b’s
que empiezan por a y terminan por b o que empiezan por b y terminan
por a”, puede ser:
a) a*b* + b*a*
b) a(a+b)*b + b(a+b)*a
c) (a+b)(a+b)*(b+a)
d) Hay más de una ER de entre las dadas en la demás opciones que
representan dicho lenguaje
Solución: b).

Autómatas y Matemáticas Discretas p. 44 / 73


Equivalencia entre E.R. y AF
Teorema:
Sea r una e.r., entonces existe un AFN-L con, a lo
sumo, un estado final del que no sale ninguna
transición, que acepta L(r).
Ø Caso base:

r=Λ q0

a
r=a∈𝑋 q0 q1

r=∅ q0 q1

Autómatas y Matemáticas Discretas p. 45 / 73


Equivalencia entre E.R. y AF
Ø Caso inductivo: 𝐫 = 𝐫𝟏 + 𝐫𝟐
Sean M1 y M2 dos AF que reconocen los lenguajes
L(r1) y L(r2) respectivamente.
§ Sus estados iniciales son i1 e i2 respectivamente.
§ Poseen un único estado final f1 y f2 respectivamente.

𝚲 i1 M1 f1 𝚲

q0 f
𝚲 i2 M2 f2 𝚲

Autómatas y Matemáticas Discretas p. 46 / 73


Equivalencia entre E.R. y AF
Ø Caso inductivo: 𝐫 = 𝐫𝟏 𝐫𝟐
Sean M1 y M2 dos AF que reconocen los lenguajes
L(r1) y L(r2) respectivamente.
§ Sus estados iniciales son i1 e i2 respectivamente.
§ Poseen un único estado final f1 y f2 respectivamente.

i1 M1 f1

i2 M2 f2

Autómatas y Matemáticas Discretas p. 47 / 73


Equivalencia entre E.R. y AF
Ø Caso inductivo: 𝐫 = 𝐫𝟏∗
Sean M1 un AF que reconoce el lenguaje L(r1).
§ Su estado inicial es i1.
§ Posee un único estado final f1.

𝚲 𝚲
q0 i1 M1 f1 f

Autómatas y Matemáticas Discretas p. 48 / 73


Equivalencia entre E.R. y AF
Cuidado! No basta con añadir un arco Λ desde el
estado final al inicial, y poner el inicial como final
a b r := aaa ∗ 𝑎𝑏
q0 q1 q3 L(r)={ Cadenas de a’s y b’s que contienen
a a un número de a’s que es múltiplo de 3,
seguidas de ab }
q2
Λ

a b r*:= aaa ∗ 𝑎𝑏
q0 q1 q3 El AF reconoce palabras que no
a pertenecen a L(r*), como por ejemplo
a
𝜔 = aaa
q2

Autómatas y Matemáticas Discretas p. 49 / 73


Equivalencia entre E.R. y AF
Ø Reglas de desarrollo

r%
r% + r&
qi qj qi qj
r&

r% r& r% r&
qi qj qi qk qj

r%
r%∗
qi qj qi qk qj
Λ Λ

Autómatas y Matemáticas Discretas p. 50 / 73


Equivalencia entre E.R. y AF
Simplificaciones en AFN-Λ
Ø Caso 1: Estados a los que sólo llegue una transición,
y ésta sea con Λ.

Λ
p q p

q y p “se fusionan” en un estado, excepto si q es el estado


inicial. El estado resultante será final si q o p lo son.

Autómatas y Matemáticas Discretas p. 51 / 73


Equivalencia entre E.R. y AF
Simplificaciones en AFN-Λ
Ø Caso 2: Estados de los que sólo salga una transición,
y ésta sea con Λ.

q Λ s s

q y s “se fusionan” en un estado, excepto si q es final y s no


lo es. El estado resultante será final si s lo es.

Autómatas y Matemáticas Discretas p. 52 / 73


Ejercicio
Determinar un AFN-Λ que reconozca el mismo lenguaje
que el dado por la expresión regular, y hacer
posteriormente las simplificaciones caso 1 y caso 2.
ab*+(ac+b)*b
ab*
ab*+(ac+b)*b

(ac+b)*b

b
Λ
a b*
a Λ

(ac+b)*b (ac+b)*b

Autómatas y Matemáticas Discretas p. 53 / 73


Ejercicio
b b
Λ Λ
a Λ a Λ

(ac+b)* b Λ
Λ b

ac+b
b b
Λ Λ
q1
a Λ a q2 Λ
b b
Λ q0 Λ q6
Λ b Λ b
q3 q5
a
ac c
q4
Autómatas y Matemáticas Discretas p. 54 / 73
Ejercicio
Simplificaciones Caso 1:
Estados a los que solo llega un arco, y éste es Λ: q5
Por tanto, q5 se fusiona con el anterior (q3)
Ojo, si q5 fuese el estado inicial no se fusionarían

b b
q1 Λ q1 Λ
a q2 Λ a q2 Λ
b b
q0 Λ q6 q0 q6
Λ b Λ b
q3 q5 q3
a
c a
c
q4
q4

Autómatas y Matemáticas Discretas p. 55 / 73


Ejercicio
Simplificaciones Caso 2:
Estados de los que solo sale un arco, y éste es Λ: q1
Por tanto, q1 se fusiona con el siguiente (q2).
Ojo, si q1 fuese final y q2 no final no se fusionarían.

b b
q1 Λ
q2 a q2 Λ
a Λ
b q0 q6
q0 q6 b
Λ b Λ b
q3 q3
a a
c c
q4 q4

Autómatas y Matemáticas Discretas p. 56 / 73


Propiedades de las E.R.
Sean r y s dos e.r. para L(r) y L(s) respectivamente:
Ør+s=s+r
Ør+∅=r+r=r
Ør+ s+t = r+s +t
ØrΛ=Λr=r
Ør∅=∅r=∅
Ør st = rs t
Ør s+t =rs+rt
Ø s+t r=sr+tr

Autómatas y Matemáticas Discretas p. 57 / 73


Propiedades de las E.R.
Sean r y s dos e.r. para L(r) y L(s) respectivamente:
Ø ∅∗ = Λ∗ = Λ
Ø r∗ = r∗r∗ = r∗ ∗ = Λ + r ∗
∗ & ƒ ƒ:% ∗
Ø r = Λ + r + r + ⋯+ r + r r , ∀k ≥ 0
Ø En particular, para k=0: r ∗ = Λ + r r ∗

Ø r+s = r∗ + s∗ ∗
= r∗s∗ ∗
= r ∗ s ∗ r ∗ = r ∗ sr ∗ ∗
Cuidado! 𝐫 + 𝐬 ∗ ≠ 𝐫 ∗ + 𝐬∗
Ø

Ø r∗r = r r∗
Ør sr ∗ = rs ∗r
Ø r∗ s ∗ = Λ + r + 𝑠 ∗s
Ø r s∗ ∗ =Λ+ r r+s ∗

Autómatas y Matemáticas Discretas p. 58 / 73


Propiedades de las E.R.
Sean r y s dos e.r. para L(r) y L(s) respectivamente:
Ø Regla de Arden:

Si Λ ∉ 𝑆, entonces se cumple que:


r = s r + t ⇔ r = s∗ t
r = r s + t ⇔ r = t s∗

Autómatas y Matemáticas Discretas p. 59 / 73


Paso de AFD a E.R.
Teorema:
Dado un AFD D = (X, Q, δ, q0, F), existe una E.R. r tal
que 𝐿 𝐷 = 𝐿(𝑟)
Demostración:
• Sea 𝑙L la e.r. de 𝐿L , se tiene el siguiente sistema de
ecuaciones (q ∈ 𝑄)
𝑚(𝑝, 𝑞) = Š 𝑥
•∈• / ‹‘’ L,•
𝑙L = Š 𝑚 𝑞, 𝑝 𝑙L + 𝑡L
‹∈Œ Λ 𝑠𝑖 𝑞 ∈ 𝐹
𝑡L = r
∅ 𝑠𝑖 𝑞 ∉ 𝐹
Autómatas y Matemáticas Discretas p. 60 / 73
Paso de AFD a E.R. (Ejemplo 1)
𝛿5 a b
→ q0 q1 q2 𝑙1! = 𝑎𝑙1" + 𝑏𝑙1#
q1 q1 q3 𝑙1" = 𝑎𝑙1" + 𝑏𝑙1$
q2 q3 q2 𝑙1# = 𝑎𝑙1$ + 𝑏𝑙1#
𝑙1$ = 𝑎 + 𝑏 𝑙1$ + Λ
* q3 q3 q3

Aplicando la regla de Arden en lq3: 𝑙1$ = 𝑎 + 𝑏 ∗Λ = 𝑎 + 𝑏 ∗

𝑙1" = 𝑎𝑙1" + 𝑏 𝑎 + 𝑏 ∗
Sustituyendo en lq1:
Aplicando la regla de Arden en lq1: 𝑙1" = 𝑎∗𝑏 𝑎 + 𝑏 ∗

Haciendo lo mismo en lq2: 𝑙1# = 𝑏 ∗𝑎 𝑎 + 𝑏 ∗

Finalmente, sustituyendo lq0: 𝒍𝒒𝟎 = 𝐚𝐚∗𝐛 𝐚 + 𝐛 ∗ + 𝐛𝐛∗𝐚 𝐚 + 𝐛 ∗

Autómatas y Matemáticas Discretas p. 61 / 73


Paso de AFD a E.R. (Ejemplo 2)
a a
b b
q0 q2 q3 𝑙1! = 𝑎𝑙1" + 𝑏𝑙1#
a b 𝑙1" = 𝑎𝑙1" + 𝑏𝑙1"
𝑙1# = 𝑎𝑙1# + 𝑏𝑙1$ + Λ
q1 a,b
𝑙1$ = 𝑎𝑙1$ + 𝑏𝑙1#

Aplicando la regla de Arden en lq1: 𝑙1" = 𝑎 + 𝑏 𝑙1" + ∅ = 𝑎 + 𝑏 ∗∅ = ∅


Sustituyendo en lq0: 𝑙1! = 𝑎∅ + 𝑏𝑙1# = ∅ + 𝑏𝑙1# = 𝑏𝑙1#
Aplicando la regla de Arden en lq3: 𝑙1$ = 𝑎∗𝑏𝑙1#
Sustituyendo en lq2: 𝑙1# = 𝑎𝑙1# + 𝑏𝑎∗𝑏𝑙1# + Λ
Aplicando la regla de Arden en lq2: 𝑙1# = 𝑎 + 𝑏𝑎∗𝑏 𝑙1# + Λ = (𝑎 + 𝑏𝑎∗𝑏)∗
Finalmente, sustituyendo lq0: 𝒍𝒒𝟎 = 𝒃(𝒂 + 𝒃𝒂∗𝒃)∗

Autómatas y Matemáticas Discretas p. 62 / 73


Lenguajes Regulares
Teorema:
Sea X un alfabeto y L ∈ X* un lenguaje formal. Son equivalentes:
§ L es regular o reconocido por un AFD
§ L es reconocido por un AFN sin Λ-movimientos
§ L es reconocido por un AFN-Λ
§ Existe una expresión regular r, tal que L(r) = L

Ø Hemos visto, de hecho, métodos para convertir de unos a otros:


ER
AFD AFN-λ

AFN
Autómatas y Matemáticas Discretas p. 63 / 73
Lema de Pumping
Sea X un alfabeto, si L ∈ X* es un Lenguaje Regular,
entonces existe un AF que lo reconoce.
Llamemos n al número de estados del AF más
pequeño que reconoce L.
¿Qué pasaría si tuviese una palabra 𝜔 ∈ 𝐿 tal que
𝜔 ≥𝑛?

Autómatas y Matemáticas Discretas


Lema de Pumping
Ø Ésta palabra visitará al menos n+1 estados.
Ø Dado que sólo hay n, debe pasar al menos dos veces por el
mismo estado, lo que indica un cierre de Kleene
𝑦

𝑥 𝑧
q0 qk f

Ø Donde 𝑦 ≥ 1 y 𝑥𝑦 ≤ 𝑛
Ø Además, 𝛿 ∗ (𝑞T, 𝑥𝑧) = 𝛿 ∗ (𝑞T, 𝑥𝑦𝑧) = 𝛿 ∗ (𝑞T, 𝑥𝑦 M 𝑧) ∀𝑖

Autómatas y Matemáticas Discretas


Lema de Pumping
Sea X un alfabeto, si L ∈ X* es un Lenguaje Regular,
entonces existe un número natural n tal que:
∀𝜔 ∈ 𝐿, 𝜔 ≥ 𝑛; ∃𝑥, 𝑦, 𝑧, ∈ 𝑋 ∗ tales que:
𝜔 = 𝑥𝑦𝑧
𝑥𝑦 ≤ 𝑛
𝑦 ≥1
∀𝑖 ≥ 0, 𝑥𝑦 ' 𝑧 ∈ L
Siendo n el número de estados del AF más pequeño
que reconoce L

Autómatas y Matemáticas Discretas p. 66 / 73


Lema de Pumping
Si un lenguaje L ∈ X* cumple esas propiedades,
¿podemos asegurar que es un Lenguaje Regular?
No, esto no es lo que nos dice el Lema
Pero, si un lenguaje L ∈ X* no cumple esas
propiedades, entonces podemos asegurar que no es
un Lenguaje Regular

Ø El Lema de Pumping se utiliza para demostrar que


algunos lenguajes son no regulares.

Autómatas y Matemáticas Discretas p. 67 / 73


Lema de Pumping
Ejercicio:
Dado el lenguaje 𝐿 = {𝑎‹ 𝑏 ‹ : 𝑝 ≥ 0} sobre el alfabeto 𝑋 =
{𝑎, 𝑏}, demuestra utilizando el Lema de Pumping que L no es
un Lenguaje Regular.
Solución:
Tomemos por ejemplo la palabra 𝜔 = 𝑎W 𝑏 W , siendo 𝑛 el
parámetro indicado en el Lema de Pumping. Claramente, esa
palabra pertenece al lenguaje 𝐿, y su longitud es mayor o
igual que 𝑛.
Cualquier partición de la palabra 𝜔 = 𝑥𝑦𝑧 tal que cumpla las
restricciones que impone el teorema (tienen que cumplir
𝑥𝑦 ≤ 𝑛) son necesariamente de la siguiente forma:
𝑥 = 𝑎7 , 𝑦 = 𝑎$, 𝑧 = 𝑎!878$ 𝑏 !
Siendo 𝑗 ≥ 1 (otra restricción del teorema es que 𝑦 ≥ 1)
Autómatas y Matemáticas Discretas p. 68 / 73
Lema de Pumping
Ejercicio:
Dado el lenguaje 𝐿 = {𝑎‹ 𝑏 ‹ : 𝑝 ≥ 0} sobre el alfabeto 𝑋 =
{𝑎, 𝑏}, demuestra utilizando el Lema de Pumping que L no es
un Lenguaje Regular.
Solución:
Ahora bien, para que elM lenguaje sea regular se debería
cumplir que ∀𝑖 ≥ 0, 𝑥𝑦 𝑧 ∈ 𝐿.
Sin embargo, es fácil ver que por ejemplo para 𝑖 = 0 no se
cumple:
𝑥𝑦 9 𝑧 = 𝑥𝑧 = 𝑎7 𝑎!878$ 𝑏 ! = 𝑎!8$ 𝑏 !
Y como j ≥ 1, tenemos una palabra que tiene menos a’s que
b’s y que, por lo tanto, no pertenece al lenguaje 𝐿.
Por tanto, el lenguaje 𝐿 no es regular.
Autómatas y Matemáticas Discretas p. 69 / 73
Propiedades de L.R.
Proposición:
El conjunto de los Lenguajes Regulares es cerrado por:
ØUnión
ØConcatenación
ØCierre de Kleene
ØPaso a complementario
ØIntersección

Autómatas y Matemáticas Discretas p. 70 / 73


Propiedades de Clausura
Sean L1y L2 dos lenguajes regulares y sean r1 y r2 dos
e.r. tales que L1=L(r1) y L2=L(r2).
Ø Unión: 𝑳 = 𝑳𝟏 ∪ 𝑳𝟐 :
§ L% ∪ L& = L r% ∪ L r& = L r% + r&
Ø Concatenación: 𝑳 = 𝑳𝟏 𝑳𝟐 :
§ L% L& = L r% L r& = L r% r&
Ø Cierre de Kleene: 𝑳 = 𝑳∗𝟏 :

§ L∗% = L r% = L(r%∗)

Autómatas y Matemáticas Discretas p. 71 / 73


Propiedades de Clausura
Ø Complementario: 𝑳𝟏
Sean M1 un AFD que reconoce el lenguaje L1, el AFD
que resulta de cambiar los estados finales por no
finales, y los no finales por finales, reconoce el
lenguaje LA .

Ø Intersección: 𝐋𝟏 ∩ 𝑳𝟐
Se calcula como: 𝐿A ∩ 𝐿g = 𝐿A ∪ 𝐿g

Autómatas y Matemáticas Discretas p. 72 / 73


Lenguajes Regulares
Proposición (Algoritmos de decisión sobre L.R.):
Sea L un lenguaje reconocido por un AF M de n
estados, entonces:
ØL ≠ ∅ ⟺ M reconoce alguna palabra 𝜔 de
longitud menor que n
ØL es infinito ⟺ M reconoce alguna palabra 𝜔 de
longitud mayor o igual que n y menor que 2n.

Autómatas y Matemáticas Discretas p. 73 / 73

También podría gustarte