Las máquinas que están en varioslugares
No se puede estar en la procesión y tocando la campana —Dicho popular
Ivan Meza
Autómata finitoEs una tupla (Q, Σ, q0, A, δ)
Q conjunto finito de estadosΣ un alfabetoq0 estado inicial, q0 ∈ Q
A conjunto de estados finales, A ⊆ Qδ función de transición δ: Q × Σ → Q
Estrategías diferentes entre AF y ER
ER: definir el patrón, cachar lo extra que no rompa el patrón DescriptivoAF: pensar que se necesita recordar para cachar el patrón Procedural
Mayor flexibilidad a los AF
ProblemaUn cobro de una máquina chicles de 5 pesos que sólo aceptamonedas de 1, 2 y 5 pesos
Σ = {1, 2, 5}
Secuencias posibles{1, 1, 1, 1, 1}{1, 1, 1, 2}{1, 2, 2}{5}
q₀ q₁₁ q₂₁ q₃₁ q₄₁ q₅
q₀ q₁₂ q₁₁₁₂ q₂₁q₁₂ q₅
q₀ q₁₁ q₁₁₁₂ q₂₁q₁₂ q₅
q₀ q₁₁ q₂₁ q₂₁₁₂ q₅
q₀ q₁₁ q₂₁ q₃₁ q₅
q₀ q₁₂ q₂₂ q₅
q₀ q₁₂ q₁₁₁₂ q₅
q₀ q₁₁ q₁₁₁₂ q₅
q₀ q₅
1 1 111
2 1 1 1
1 2 1 1
1 1 2 1
1 1 1 2
2 2 1
2 1 2
1 2 2
5
Reorganizando
q₀ q₁₁ q₂₁ q₃₁ q₄₁ q₅
q₀ q₁₂ q₁₁₁₂ q₂₁q₁₂ q₅
q₀ q₁₁ q₁₁₁₂ q₂₁q₁₂ q₅
q₀ q₁₁ q₂₁ q₂₁₁₂ q₅
q₀ q₁₁ q₂₁ q₃₁ q₅
q₀ q₁₂ q₂₂ q₅
q₀ q₁₂ q₁₁₁₂ q₅
q₀ q₁₁ q₁₁₁₂ q₅
q₀ q₅
1 1 111
2 1 1 1
1 2 1 1
1 1 2 1
1 1 1 2
2 2 1
2 1 2
1 2 2
5
Juntando
q₁₁ q₂₁ q₃₁ q₄₁
q₅
q₁₂ q₁₁₁₂ q₂₁₁₂
q₁₁ q₁₁₁₂ q₂₁₁₂
q₁₁ q₂₁ q₂₁₁₂
q₀ q₁₁ q₂₁ q₃₁
q₁₂ q₂₂
q₁₂ q₁₁₁₂
q₁₁ q₁₁₁₂
1 1
1
1
1 1
2 1
1 2
1 1 1
2
1
2
11
1
1
2
2
2
2
1
1
2
1
21
5
¿Qué regla se rompe?
Automáta finito nodeterminísticoEs una tupla (Q, Σ, q0, A, δ)
Q conjunto finito de estadosΣ un alfabetoq0 ∈ Q estado inicial
A ⊆ Q estados finales
δ: Q × Σ → 2Q
El conjunto de conjuntos
Con el conjunto C, 2C es el conjunto de todos los conjuntosposibles con elementos de C
Con {a, b}
2{a,b} = {∅, {a}, {b}, {a, b}}
Número de conjuntos 2|C|
La función de transición de unAFND
δ : Q × A → 2Q
δ regresa un conjunto de estados
AF vs AFNDAmbos, son una tupla (Q, Σ, q0, A, δ)
AF AFND
Q Q
Σ Σ
q0 ∈ Q q0 ∈ Q
A ⊆ Q A ⊆ Q
δ: Q × A → Q δ: Q × A → 2Q
De nuevo
q₁₁ q₂₁ q₃₁ q₄₁
q₅
q₁₂ q₁₁₁₂ q₂₁₁₂
q₁₁ q₁₁₁₂ q₂₁₁₂
q₁₁ q₂₁ q₂₁₁₂
q₀ q₁₁ q₂₁ q₃₁
q₁₂ q₂₂
q₁₂ q₁₁₁₂
q₁₁ q₁₁₁₂
1 1
1
1
1 1
2 1
1 2
1 1 1
2
1
2
11
1
1
2
2
2
2
1
1
2
1
21
5
Autómata ejemploQ = {q0, q11/1, q11/2, q11/3, q11/4, q11/5, q12/6, q12/7, q12/8,
q21/1, q11−12/2, q11−12/3, q21/4, q21/5, q22/6, q11−21/7, q11−21/8,
q31/1, q21−12/3, q21−12/4, q31/5, q21−12/8, q41/1, q5}
Σ = {1, 2, 5}q0 = q0A = {q5}
Función de transición
Q 1 2
q0 {q11/1, q11/2, q11/3, q11/4, q11/5} {q12/6, q12/7, q12/8}
q11/1 {q21/1} ∅
q21/1 {q31/1} ∅
q31/1 {q41/1} ∅
q41/1 {q5} ∅
q11/2 ∅ {q11−12/2}
q11−12/2 ∅ {q5}
Función de transición (cont.)
Q 1 2 5
q11/3 ∅ {q11−12/3} ∅
q11−12/3 {q21−12/3} ∅ ∅
q21−12/3 {q5} ∅ ∅
q11/4 {q21/4} ∅ ∅
q21/4 ∅ {q21−12/4} ∅
q21−12/4 {q5} ∅ ∅
q11/5 {q21/5} ∅ ∅
q21/5 {q31/5} ∅ ∅
q31/5 ∅ {q5} ∅
Función de transición (cont. 2)
Q 1 2 5
q12/6 ∅ {q22/6} ∅
q22/6 {q5} ∅ ∅
q12/7 {q11−12/7} ∅ ∅
q11−12/7 ∅ {q5} ∅
q12/8 {q11−12/8} ∅ ∅
q11−12/8 {q21−12/8} ∅ ∅
q21−12/8 {q5} ∅ ∅
Cadenas aceptadas por un AFND
δ∗ = δ∗(q, ϵ) = {q} q ∈ Q
δ∗(q, wa) = ⋃r∈δ∗(q,w)
δ(r, a) q, r ⊆ Q, w ⊆ Σ∗, a ⊆ Σ{
Acepta el siguiente pago: 122
δ∗(q0, 122) = ⋃r1∈δ∗(q0,12)
δ(r1, 2)
= ⋃r1∈⋃
r2∈δ∗(q0,1)
δ(r2,2)δ(r1, 2)
= ⋃r1∈⋃
r2∈⋃r3∈δ∗(q0,ϵ)
δ(r3,1)δ(r2,2)
δ(r1, 2)
= ⋃r1∈⋃
r2∈⋃r3∈{q0}
δ(r3,1)δ(r2,2)
δ(r1, 2)
= ⋃r1∈⋃
r2∈⋃r3∈{q0}
δ(r3,1)δ(r2,2)
δ(r1, 2)
= ⋃r1∈⋃
r2∈δ(q0,1)δ(r2,2)
δ(r1, 2)
= ⋃r1∈⋃
r2∈{q11/1,q11/2,q11/3,q11/4,q11/5}δ(r2,2)
δ(r1, 2)
= ⋃r1∈{δ(q11/1,2)∪δ(q11/2,2)∪δ(q11/3,2)∪δ(q11/4,2)∪δ(q11/5,2)}
δ(r1,
= ⋃r1∈{∅∪{q11−12/2}∪{q11−12/3}∪∅∪∅}
δ(r1, 2)
= ⋃r1∈{q11−12/2,q11−12/3}}
δ(r1, 2)
= δ(q11−12/2, 2)⋃δ(q11−12/3, 2)
= {q5}⋃∅= {q5}
Para el AFND M = (Q, Σ, q0, A, δ)
La cadena w ∈ Σ∗ se acepta si:
δ∗(q0, w)⋂A ≠ ∅
L(M) es el lenguaje conformado por cadenas aceptadas por M
δ∗(q0, 122) = {q5}
{q5} ∩ A = {q5} ∩ {q5} = {q5} ≠ ∅
La cadena se acepta
Reduciendo el AFND a un AFComenzar por codi�car los estados de forma binaria
| q0, q11/1, q11/2, q11/3, q11/4, q11/5, q12/6, q12/7, q12/8,
q21/1, q11−12/2, q11−12/3, q21/4, q21/5, q22/6, q11−21/7, q11q31/1, q21−12/3, q21−12/4, q31/5, q21−12/8,
q41/1, q5 | = 24
0-00000000-00000000-00000-0-0
2Q 1 2 5
1: 0000000000000000 00000: 0: 0
0: 11111000:00000000 00000: 0: 0*
0: 0000011100000000 00000: 0: 0*
0: 0000000000000000 00000: 0: 1*
2Q 1 2 5
1: 0000000000000000 00000: 0: 0
0: 11111000:00000000 00000: 0: 0
0: 00000111 0000000000000: 0: 0
0: 0000000000000000 00000: 0: 1
0: 11111000 00000000 00000: 0: 0
0: 00000000 1001100000000: 0: 0*
0: 00000000 0110000000000: 0: 0*
∅
0: 00000111 00000000 00000: 0: 0
0: 00000000 0000001100000: 0: 0*
0: 00000000 0000010000000: 0: 0*
∅
0: 00000000 00000000 00000: 0: 1
∅ ∅ ∅
2Q 1 2 5
0: 00000000 10011000 00000: 0: 0
0: 00000000 00000000 10010: 0: 0*
0: 00000000 00000000 00100: 0: 0*
∅
0: 00000000 01100000 00000: 0: 0
0: 00000000 00000000 01000: 0: 0*
0: 00000000 00000000 00000: 0: 1
∅
0: 00000000 00000011 00000: 0: 0
0: 00000111 00000000 00001: 0: 0*
0: 00000000 00000000 00000: 0: 1
∅
0: 00000000 00000100 00000: 0: 0
0: 00000000 00000000 00000: 0: 1
∅ ∅
2Q 1 2 5
0: 00000000 00000000 10010: 0: 0
0: 00000000 00000000 00000: 1: 0*
0: 00000000 00000000 00000: 0: 1
∅
0: 00000000 00000000 00100: 0: 0
0: 00000000 00000000 00000: 0: 1
∅ ∅
0: 00000000 00000000 01000: 0: 0
0: 00000000 00000000 00000: 0: 1
∅ ∅
0: 00000111 00000000 00001: 0: 0
0: 00000000 00000000 00000: 0: 1
∅ ∅
2Q 1 2 5
0: 00000000 00000000 00000: 1: 0 0: 00000000 00000000 00000: 0: 1 ∅ ∅
Renombrando los estados
Q′ 1 2 5
q0 q1 q2 q3
q1 q4 q5 qe
q2 q6 q7 qe
q3 qe qe qe
q4 q8 q9 qe
q5 q10 q3 qe
q6 q11 q3 qe
q7 q3 qe qe
q8 q12 q3 qe
q9 q3 qe qe
q10 q3 qe qe
q11 q3 qe qe
q12 q3 qe qe
q₀ q₁
q₂
q₃
q₄
q₅
q₆
q₇
q₈
q₉
q₁₀
q₁₁
q₁₂1
2
5
1
2
12
1
2
2
1
1
1
1
1
11 1
2
2
¡Todo AFND puede ser reducidoa un AF!
¿Y acepta el mismo lenguaje?
ProblemaTodos los cobros de una máquina chicles de 5 pesos que sóloacepta monedas de 1, 2 y 5 pesos
Σ = {1, 2, 5}
q₀ q₁
q₂
q₃
q₄
q₅
q₆
q₇
q₈
q₉
q₁₀
q₁₁
q₁₂1
2
5
1
2
12
1
2
1
1
1
1
1
11 1
2
2
q₀ q₁
q₂
q₃
q₄
q₅
q₆
q₇
q₈
q₉
q₁₀
q₁₁
q₁₂1
2
5
1
2
12
1
2
1
1
1
1
1
11 1
2
2
ε
AFND-ϵ
Es una tupla (Q, Σ, q0, A, δ)
Q conjunto finito de estadosΣ un alfabetoq0 ∈ Q estado inicial
A ⊆ Q estados finales
δ función de transición Q × (Σ ∪ {ϵ}) → 2Q
AF vs AFND vs AFND-ϵ
Ambos, son una tupla (Q, Σ, q0, A, δ)
AF AFND AFND-ϵ
Q Q Q
Σ Σ Σ
q0 ∈ Q q0 ∈ Q q0 ∈ Q
A ⊆ Q A ⊆ Q A ⊆ Q
δ: Q × Σ → Q δ: Q × Σ → 2Q δ: Q × (Σ ∪ {ϵ}) → 2Q
Cadenas aceptadas por un AFND-ϵ
δ∗ = δ∗(q, ϵ) = expϵ({q}) q ∈ Q
δ∗(q, wa) = expϵ(⋃r∈δ∗(q,w)
δ(r, a)) q, r ⊆ Q, w ⊆ Σ∗, a{
Calculo de expϵ(S)
Para cada q ∈ S incluir in S todo δ(q, ϵ)Repetir hasta que S no cambie
Acepta los pagos: 5212
δ∗(q0, 5212) = expϵ(⋃r1∈δ∗(q0,521)
δ(r1, 2))
= expϵ(⋃r1∈expϵ(⋃
r2∈δ∗(q0,52))
δ(r2,1))δ(r1, 2))
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(⋃r3∈δ∗(q0,5)
δ(r3,2))δ(r2,1))
δ(r1, 2))
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(⋃r3∈expϵ(⋃ δ(r4,5))
δ(r3,2))δ(r2,1))
r3∈expϵ(⋃r4∈δ∗(q0,ϵ)
δ(r4,5))
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(⋃r3∈expϵ(⋃
r4∈expϵ({q0})δ(r4,5))
δ(r3,2))δ(r2,1
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(⋃r3∈expϵ(⋃
r4∈{q0}δ(r4,5))
δ(r3,2))δ(r2,1))
δ(r1
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(⋃r3∈expϵ(δ(q0,5))
δ(r3,2))δ(r2,1))
δ(r1, 2))
r3∈expϵ(δ(q0,5))
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(⋃r3∈expϵ({q3})
δ(r3,2))δ(r2,1))
δ(r1, 2))
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(⋃r3∈{q0,q3}
δ(r3,2))δ(r2,1))
δ(r1, 2))
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(δ(q0,2)∪δ(q3,2))δ(r2,1))
δ(r1, 2))
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ({q2}))δ(r2,1))
δ(r1, 2))
= expϵ(⋃r1∈expϵ(⋃
r2∈{q2}δ(r2,1))
δ(r1, 2))
= expϵ(⋃r1∈expϵ(δ(q2,1))
δ(r1, 2))
= expϵ(⋃r1∈expϵ({q6})
δ(r1, 2))
= expϵ(⋃r1∈{q6}
δ(r1, 2))
= expϵ(δ(q6, 2))
= expϵ({q3})
= {q0, q3}
Pero {q0, q3} ∩ {q3} ≠ ∅, se aceptan los pagos
De AFND-ϵ a AFND
Para cada q ∈ Q y a ∈ Σ calcular δ∗(q, a)Crear nueva tabla de transición
Q′ ϵ 1 2 5 δ∗(q, 1) δ∗(q, 2) δ∗(q, 5)q0 {qe} {q1} {q2} {q3} | {q1} {q2} {q3, q0}
q1 {qe} {q4} {q5} {qe} | {q4} {q5} {qe}
{q2} {qe} {q6} {q7} {qe} | {q6} {q7} {qe}
{q3} {q0} {qe} {qe} {qe} | {qe} {qe} {qe}
{q4} {qe} {q8} {q9} {qe} | {q8} {q9} {qe}
{q5} {qe} {q10} {q3} {qe} | {q10} {q0, q3} {qe}
{q6} {qe} {q11} {q0, q3} {qe} | {q11} {q0, q3} {qe}
{q7} {qe} {q3} {qe} {qe} | {q0, q3} {qe} {qe}
{q8} {qe} {q12} {qe} {qe} | {q12} {qe} {qe}
{q9} {qe} {q3} {qe} {qe} | {q0, q3} {qe} {qe}
{q10} {qe} {q3} {qe} {qe} | {q0, q3} {qe} {qe}
{q11} {qe} {q3} {qe} {qe} | {q0, q3} {qe} {qe}
{q12} {qe} {q3} {qe} {qe} | {q0, q3} {qe} {qe}
q₀
q₁
q₂
q₃
q₄
q₅
q₆q₇
q₈
q₉q₁₀
q₁₁
q₁₂
1
2
5
1
2
12
1
21
1
1
1
1
11
12
2
5
11
1
1
2
2
2
Dos observacionesDe AFND-ϵ a AFNDDe AFND a AF
De AF (M) a ADND-ϵ (M') es trivial
δ′(q, ϵ) = ∅
δ′(q, a) = {δ(q, a)}
Q′ a b ϵ a b
q0 q0 q1 | ∅ {q0} {q1}
q1 q1 q0 | ∅ {q1} {q0}
Tres observacionesDe AFND-ϵ a AFNDDe AFND a AFDe AF a AFND-ϵ
El poder de ϵ
Con los siguientes lenguajes:
q₀ q₁
q₀ q₁
1
0
1
0
L1 : 10∗ y L2 : 1∗0
La unión
q₀' q₁'
q₀'' q₁''
q₀
1
0
1
0
ε
ε
10∗ + 1∗0
La concatenación
q₀' q₁' q₀'' q₁''1
0 1
0ε
10∗1∗0
La cerradura
q₀' q₁'q₀ q₁1
0
εε
ε
ε
(10∗)∗
Un momentoTenemos unión, concatenación y cerradura ¡podemos hacercualquier expresión regular!
(a∗ba∗ba∗)∗ + a∗
q₁ q₂ q₃
a a
b
(a∗ba∗ba∗)∗ + a∗
q₁ q₂ q₃ q₄ q₅ q₆q₀'
q₀
q₇
a a a
ε b ε b εε
a
ε
ε ε
Autómata mínimo
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Marcar mismos estados y no alcanzables
S q0 q1 q2 q3 q4 q5 q6 q7
q0 ✕ ✖
q1 ✕ ✖
q2 ✕ ✖
q3 ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖
q4 ✖ ✕
q5 ✖ ✕
q6 ✖ ✕
q7 ✖ ✕
7
Marcar diferenciables: iniciales vs �nales
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔
q1 ✕ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✕
q5 ✔ ✕
q6 ✔ ✕
q7 ✔ ✕
Marcar pares qi y qj si δ(qi, a) y δ(qj, a) están marcados:
q0 y q1 a través de 1
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔ ✔
q1 ✔ ✕ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✕
q5 ✔ ✕
q6 ✔ ✕
q7 ✔ ✕
q7 ✔ ✕
Buscar un par que nos lleve a difenciables ya identi�cados
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
q7 y q4
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔ ✔
q1 ✔ ✕ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✕ ✔
q5 ✔ ✕
q6 ✔ ✕
q7 ✔ ✔ ✕
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
q4 y q5
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔ ✔
q1 ✔ ✕ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✕ ✔ ✔
q5 ✔ ✔ ✕
q6 ✔ ✕
q7 ✔ ✔ ✕
Otro par, a través de 0
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
q5 y q6
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔ ✔
q1 ✔ ✕ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✕ ✔ ✔
q5 ✔ ✔ ✕ ✔
q6 ✔ ✔ ✕
q7 ✔ ✔ ✕
Otro par, a través de 0
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Otro par, a través de 1
q₀ q₁ q₂ q₃
q₄ q₅ q₆ q₇
0 1 0
10
1
0
0
1
1
0
0
1 1
1
0
Finalmente
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔ ✔ ✔ ✔ ✔
q1 ✔ ✕ ✔ ✔ ✔ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✔ ✕ ✔ ✔ ✔
q5 ✔ ✔ ✔ ✔ ✕ ✔ ✔
q6 ✔ ✔ ✔ ✔ ✔ ✕ ✔
q7 ✔ ✔ ✔ ✔ ✔ ✕
q₀ q₁ q₂q₄
q₅ q₆
q₇0 1
10
1
0
0
1
0
0
1
1
1
0
q₀q₄ q₁q₇ q₂
q₅ q₆
0 1
10
1
0
0
0
1
ConceptosAFNDAFND-ϵConversiones
AFND → AFAFND-ϵ → AFNDAF → AFND-ϵ
ER → AFND-ϵAF → AF-mínimo
[email protected] ivanvladimir.github.io ivanvladimir
La máquina que está en varios lugares by islicensed under a
. Creado a partir de la obra en
.
Ivan V. Meza RuizCreative Commons Reconocimiento 4.0Internacional License
http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/nfae.html
Top Related