Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ingenierı́a
Lenguajes y Autómatas
Capı́tulo I: Lenguajes regulares y autómatas finitos
2018-II
1
Alfabetos, cadenas y lenguajes
Expresiones regulares
Autómatas finitos
Index
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Autómatas finitos deterministas (DFA)
Autómatas finitos no-deterministas (NFA)
Conversión y equivalencias NFA-DFA
2
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Repaso de conjuntos
3
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Repaso de conjuntos
B*A B⊂A
A B A B
4
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Conjunto potencia
Ejemplo
Sea A = {1, 3, 7, 9}, entonces P(A) viene dado por:
P(A) = {∅, {1}, {3}, {7}, {9}, {1, 3}, {1, 7}, {1, 9}, {3, 7}, {3, 9},
{7, 9}, {1, 3, 7}, {1, 3, 9}, {1, 7, 9}, {3, 7, 9}, {1, 3, 7, 9}}
5
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Operaciones de conjuntos
6
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Operaciones de conjuntos
A∩B A∪B
A B A B
A−B B −A
A B A B
7
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Particiones
Bi ∩ Bj = ∅ para todo i 6= j
8
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Relaciones
Una relación R entre dos conjuntos A y B es un subconjunto de
A × B. Si (a, b) ∈ R se dice también aRb.
Ejemplo
Sean A = {1, −3} y B = {2, 3, 6}, encontrar los pares ordenados
(x, y ) que satisfagan la relación
R = {(x, y ) | x + y = 3}
A × B = {(1, 2), (1, 3), (1, 6), (−3, 2), (−3, 3), (−3, 6)}
La relación está dada por extensión como R = {(1, 2), (−3, 6)}.
9
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Propiedades de relaciones
10
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Ejemplos
11
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Funciones
12
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Cardinalidad
13
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Conjuntos numerables
14
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Conjuntos numerables
Teorema
ℵ0 es el menor cardinal infinito. Más precisamente, todo A tal que
|A| ≤ ℵ0 cumple que |A| es finito o |A| = ℵ0 .
Demostración.
Si A es infinito, entonces |A| > n para cualquier n ≥ 0. Es decir, podemos
definir subconjuntos An ⊂ A, |An | = n, para cada n ≥ 0, de modo que
An−1 ⊆ An . Sea an el único elemento de An − An−1 . Entonces todos los
an son distintos y podemos hacer una sobreyección de {a1 , a2 , ...} en N.
15
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Conjuntos numerables
Lema.
Sean A y B numerables. Los siguientes conjuntos son numerables:
I A∪B
I A×B
I Ak donde A1 = A y Ak = A × Ak−1
S
I Ai , donde todos los Ai son numerables.
I A+ = A1 ∪ A2 ∪ A3 ∪ · · ·
16
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Alfabetos
17
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Cadenas
Σ∗ = Σ0 ∪ Σ1 ∪ Σ2 ∪ · · ·
donde Σ1 = Σ y Σk = Σ × Σk−1 .
I Σ∗ denota el conjunto de todas las secuencias finitas de
sı́mbolos de Σ.
I El conjunto Σ0 tiene un sólo elemento denotado ε, que
corresponde a la cadena vacı́a.
I El largo de una cadena x ∈ Σk es |x| = k (note que |ε| = 0).
I Otro conjunto que usaremos es Σ+ = Σ∗ − ε.
18
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Cadenas
Una cadena x sobre Σ se escribe yuxtaponiendo sus caracteres uno
tras otro: x = a1 a2 · · · a|x| , donde ai ∈ Σ.
Ejemplo
Sea el alfabeto Σ = {0, 1, 2}, entonces se tiene que:
I Σ0 = ε
I Σ1 = Σ = {0, 1, 2}
I Σ2 = Σ × Σ = {00, 01, 02, 10, 11, 12, 20, 21, 22}
I Σ3 = Σ × Σ2 = {000, 001, 002, 010, 011, 012, 020, 021, 022,
100, 101, 102, 110, 111, 112, 120, 121, 122,
200, 201, 202, 210, 211, 212, 220, 221, 222}
I El largo de la cadena x = 012021 es 6, |x| = 6.
19
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Concatenación de cadenas
La concatenación de dos cadenas x = a1 a2 · · · an e y = b1 b2 · · · bm
produce la cadena
Ejemplo
Sean las cadenas x = 010 e y = 212, luego
I xy = 010212
I x 2 = 010010
I y 3 = 212212212
I xyx 2 y = 010212010010212
20
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Subcadenas
Sean x, y , z cadenas:
I x es un prefijo de xy .
I x es un sufijo de yx.
I x es una subcadena o substring de yxz.
Ejemplo
Sean las cadenas x = 00, y = 121 y z = 11, entonces
I x es un prefijo de 0012111121.
I y es un sufijo de 110011001100121.
I z es una subcadena de 0000121001100.
21
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Lenguajes
22
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Ejercicios
Dado Σ = {a, b}:
1. Determine Σ∗ .
2. Determine un ejemplo de un lenguaje finito en Σ.
3. Dado L = {an b n | n ≥ 0}, compruebe si las cadenas aabb, aaaabbbb
y abb están en el lenguaje L.
4. Dado L = {an b n | n ≥ 0}, determine L2 y L3 .
5. Sea L = {ab, aa, baa}.
¿Cuáles de las siguientes cadenas están en L∗ ?
a) abaabaaabaa
b) aaaabaaaa
c) baaaaabaaaab
d) baaaaabaa
23
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Ejercicios
Dado Σ = {a, b, c}
1. Determine L∗ para los siguientes lenguajes:
a) L = {b 2 }
b) L = {a, b}
c) L = {a, b, c 3 }
Ejercicios
25
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
¡Gracias!
26
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
27
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Jerarquı́a de Chomsky
28
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Jerarquı́a de Chomsky
equivale
Gramática Autómata
describe
reconoce
genera
Lenguaje
29
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
Jerarquı́a de Chomsky
Tipo Lenguaje Autómata Reglas prod. gramatical
0 LRE Máquina de Turing α → β (sin restricciones)
1 LSC A. linealmente acotado αAβ → αγβ
2 LLC A. con pila A→γ
3 LR A. finito A → aB o A → a
Ejemplos
A → 0A
A→1
¿Cómo serı́a una gramática que reconoce el lenguaje de “puros
ceros seguidos de puros unos”?
A → 0A
A → 0B
B → 1B
B→1
31
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Teorı́a de conjuntos y relaciones (repaso)
Expresiones regulares Alfabetos y lenguajes
Autómatas finitos Jerarquı́a de Chomsky
¡Gracias!
32
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Motivación
33
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Expresiones regulares
34
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Ejemplos
35
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Orden de precedencia
¿Cómo debe entenderse la expresión a | b · c ∗ ?
I ¿Se aplica ∗ a toda la expresión?
I ¿Se aplica | a todo el resto?
I ¿Se aplica · a toda la expresión de la derecha?
Por convención, primero se aplica ∗, luego · y finalmente |.
Los paréntesis permiten alterar el orden de precedencia de los
operadores.
I Siendo redundantes, la RE anterior equivale a: a | (b · (c ∗ ))
I Modificando paréntesis, obtenemos distintas RE: (a | b) · c ∗
Lenguajes regulares
37
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Ejemplo
¿Cómo se puede escribir una RE para las cadenas de a’s y b’s que
contienen una cantidad impar de b’s?
I Una solución posible: a∗ (ba∗ ba∗ )∗ ba∗
I La clausura de Kleene mayor encierra secuencias de cantidades
pares de b’s.
I La última b asegura que la cantidad de b’s sean impar.
I Existen otras soluciones equivalentes: (a∗ ba∗ ba∗ )∗ ba∗ .
Ejemplo
Escribir una RE para las cadenas de a’s y b’s que nunca contengan
tres b’s seguidas.
I Una solución parcial puede ser: (a | ba | bba)∗ .
Sin embargo, no permite cadenas terminadas en b.
I Esto se puede corregir ası́: (a | ba | bba)∗ (ε | b | bb)
38
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Ejemplo
¿Cómo describirı́a el lenguaje denotado por la RE (ab | aba)∗ ?
I “Cadenas que se descomponen en ab o aba”.
La descripción de un lenguaje regular debe ser concisa.
Ejemplo
¿Es posible escribir una RE que denote los números decimales que
son múltiplos de 7?
I Se puede, pero directamente es muy difı́cil.
I Más adelante veremos cómo lograrlo.
Ejemplo
¿Es posible escribir una RE que denote las cadenas de a’s cuyo
largo es un número primo?
I No, no se puede. Más adelante veremos cómo demostrarlo.
39
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Ejercicios
40
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Motivación
41
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
42
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Ejemplo
x =0 y =0 z = 0n−2 1n
43
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Ejemplo
Demostrar que L = {ap | p es primo} no es regular.
I Tomamos una cadena w = ap para un p primo, p ≥ n + 2, y
tomemos la descomposición w = xyz.
I Suponiendo y 6= ε y |xy | ≤ n, podemos tomar |y | = m < n, luego
|xz| = p − m.
I Consideremos entonces ahora la cadena xy p−m z, donde hemos
escogido k = p − m, luego
|xy p−m z| = |xz|+(p −m)|y | = (p −m)+(p −m) m = (m+1)(p −m)
I Hemos obtenido que |xy p−m z| = (m + 1)(p − m).
I m + 1 > 1, ya que y 6= ε, entonces m ≥ 1.
I p − m > 1, ya que escogimos p ≥ n + 2 y m ≤ n, puesto que
Ejercicios
45
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Lenguajes regulares
Lema
La unión, concatenación y clausura de lenguajes regulares es
regular.
L1 ∪ L2 = L(E1 | E2 )
L1 · L2 = L(E1 · E2 )
L∗1 = L(E1∗ )
son regulares.
46
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
Lenguajes regulares
Lema
El complemento de un lenguaje regular es regular, y la intersección
y diferencia de dos lenguajes regulares es regular.
L1 ∩ L2 = (LC1 ∪ LC2 )C
La diferencia es
L1 − L2 = L1 ∩ LC2
47
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes
Expresiones regulares
Expresiones regulares
Lema del bombeo
Autómatas finitos
¡Gracias!
48
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
(a | ba | bba)∗ (ε | b | bb)
a
q0 b q1 b q2
Inicio a
a b
a, b
q3
51
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
a a
b
Inicio q0 q1
b
δ q0 q1
a q0 q1
b q1 q0
52
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Configuraciones
53
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Configuraciones
54
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
a a, b
q0 b q1 b q2 b q3
Inicio a
a
A = (Q, Σ, δ, s, F ) con Q = {q0 , q1 , q2 , q3 }, Σ = {a, b}, s = q0 ,
F = {q0 , q1 , q2 } y la función δ dada por:
δ q0 q1 q2 q3
a q0 q0 q0 q3
b q1 q2 q3 q3
Transiciones para la cadena x = abbababb:
(q0 , abbababb) ` (q0 , bbababb) ` (q1 , bababb) ` (q2 , ababb)
(q2 , ababb) ` (q0 , babb) ` (q1 , abb) ` (q0 , bb) ` (q1 , b) ` (q2 , ε)
Ejemplo
El lenguaje regular L dado por la RE (0 | 1)∗ 01 lo reconoce el DFA:
1 0
q0 0 q1 1 q2
Inicio
0
1
q0 0 q1 1 q2
Inicio
0
1
Ejemplo
q0 a q1 b q2 a q3
Inicio
b b b
a
q4
a, b
57
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
1 0 0, 1
q0 0 q1 1 q2
Inicio
58
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
1
Inicio q0 q1
1
0 0 0 0
1
q2 q3
1
59
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
1 0
q0 0 q1 0 q2
Inicio 1
60
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
DFA que acepta todas las cadenas con 3 0’s consecutivos sobre
Σ = {0, 1}.
1 0, 1
q0 0 q1 0 q2 0 q3
Inicio 1
61
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
DFA que acepta todas las cadenas que contenga la subcadena aca
sobre Σ = {a, b, c}.
b, c a a, b, c
q0 a q1 c q2 a q3
Inicio b
b, c
62
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejercicios
63
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
DFA que reconoce los números decimales que son múltiplos de 7.
3
5
2, 9
6 q2
9
q1 2,
4
4 0, 7
1, 8 3 q3
8
1,
Inicio q0
1,
8 5
4
0, 7 6 3 q4
2, 9
0, 7 6
5
q6
q5
64
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
¡Gracias!
65
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
(ab | aba)∗ a
q0 a q1 b q2
Inicio
ε
66
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
67
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
(ab | aba)∗
q0 a q1 b q2
Inicio
ε
I Q = {q0 , q1 , q2 }
I Σ = {a, b}
I s = q0
I F = {q0 }
I ∆ = {(q0 , a, q1 ), (q1 , b, q2 ), (q2 , a, q0 ), (q2 , ε, q0 )}
68
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Configuraciones
69
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
NFA que reconoce todas las cadenas que terminan en 01 para el
alfabeto Σ = {0, 1}
0, 1
q0 0 q1 1 q2
Inicio
I Q = {q0 , q1 , q2 }
I Σ = {0, 1}
I s = q0
I F = {q2 }
I ∆ = {(q0 , 0, q0 ), (q0 , 1, q0 ), (q0 , 0, q1 ), (q1 , 1, q2 )}
I ¿x = 00101?
70
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
0, 1
q0 0 q3 0 q4
Inicio
1
q1 1
q2
71
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
NFA que reconoce todas las cadenas que representan los números
reales con y sin signo. Por ejemplo: +45,32, 3,141516, −2,0,
−2378,123, 0,012.
0, 1, ..., 9 0, 1, ..., 9
ε, +, − 1, ..., 9 • 0, 1, ..., 9
Inicio q0 q1 q2 q3 q4
0, 1, ..., 9 • ε
q5 q6
72
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
Inicio q0
1, 2, 3, 4 ε ε 0, 1, 2, 3
ε ε ε
q1 q3 q5 q7 q9
0, 2, 3, 4 0, 1, 3, 4 0, 1, 2, 4
0 1 2 3 4
q2 q4 q6 q8 q10
73
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejercicios
74
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
¡Gracias!
75
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Clausura-ε
Un NFA es más flexible que un DFA, pero es el DFA el que se
implementa en la práctica.
Un DFA se puede construir a partir de un NFA.
I El diseño de un DFA está basado en los conjuntos de estados
del NFA.
I A partir de un estado q del NFA, ¿A qué estados q 0 podemos
llegar sin consumir caracteres de entrada?
76
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
77
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
0, 1
q0 0 q1 1 q2
Inicio
78
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo (cont.)
δ 0 1
∅ ∅ ∅
{q0 } {q0 , q1 } {q0 }
{q1 } ∅ {q2 }
{q2 } ∅ ∅
{q0 , q1 } {q0 , q1 } {q0 , q2 }
{q0 , q2 } {q0 , q1 } {q0 }
{q1 , q2 } ∅ {q2 }
{q0 , q1 , q2 } {q0 , q1 } {q0 , q2 }
79
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo (cont.)
La tabla de transición para todos los subconjuntos puede ser tediosa.
I Pero basta con fijarnos en los estados alcanzables.
I Ası́ ahorramos tiempo de evaluación en la construcción de
transiciones:
Ejemplo (cont.)
0
1
0 1
Inicio {q0 } {q0 , q1 } {q0 , q2 }
0
1
δ 0 1
{q0 } {q0 , q1 } {q0 }
{q0 , q1 } {q0 , q1 } {q0 , q2 }
{q0 , q2 } {q0 , q1 } {q0 }
81
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
0, 1
q0 0 q3 0 q4
Inicio
1
q1 1
q2
82
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo (cont.)
δ 0 1
{q0 } {q0 , q3 } {q0 , q1 }
{q0 , q3 } {q0 , q3 , q4 } {q0 , q1 }
1 {q0 , q1 } {q0 , q3 } {q0 , q1 , q2 }
{q0 , q3 , q4 } {q0 , q3 , q4 } {q0 , q1 }
{q0 , q1 , q2 } {q0 , q3 } {q0 , q1 , q2 }
Inicio {q0 } {q0 , q1 }
1
0 1
0 1
1
{q0 , q3 } 0
0
{q0 , q3 , q4 } {q0 , q1 , q2 }
0
83
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
84
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo (cont.)
0, 1 0
0
q0 0 q1 0 q2
Inicio
0 1
1
q3 q4
85
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo (cont.)
δ 0 1
{q0 } {q0 , q1 } {q0 }
1 {q0 , q1 } {q0 , q1 , q2 , q3 } {q0 , q4 }
{q0 , q4 } {q0 , q1 } {q0 }
{q0 , q1 , q2 , q3 } {q0 , q1 , q2 , q3 } {q0 , q4 }
0
Inicio {q0 } {q0 , q1 }
0
1 1 0
1
{q0 , q4 } {q0 , q1 , q2 , q3 } 0
86
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo
87
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejemplo (cont.)
δ 0 1
∅ ∅ ∅
1 {q0 } {q1 , q3 } {q1 }
{q1 } {q2 } {q0 , q2 }
{q2 } {q0 , q3 } ∅
0, 1 {q0 , q2 } {q0 , q1 , q3 } {q1 }
Inicio q0 q1 {q0 , q3 } {q1 , q3 } {q0 , q1 }
{q0 , q1 } {q1 , q2 , q3 } {q0 , q1 , q2 }
0 {q1 , q3 } {q2 } {q0 , q2 }
1 0 0, 1 {q0 , q1 , q2 } {q0 , q1 , q2 , q3 } {q0 , q1 , q2 }
{q0 , q1 , q3 } {q1 , q2 , q3 } {q0 , q1 , q2 }
0 {q0 , q2 , q3 } {q0 , q1 , q3 } {q0 , q2 }
q3 q2 {q1 , q2 , q3 } {q0 , q2 , q3 } {q0 , q1 }
{q0 , q1 , q2 , q3 } {q0 , q1 , q2 , q3 } {q0 , q1 , q2 }
88
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejercicio
89
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Ejercicio
90
Fabián Riquelme Csori Lenguajes y Autómatas
Alfabetos, cadenas y lenguajes Autómatas finitos deterministas (DFA)
Expresiones regulares Autómatas finitos no-deterministas (NFA)
Autómatas finitos Conversión y equivalencias NFA-DFA
Referencias
91
Fabián Riquelme Csori Lenguajes y Autómatas