Post on 14-Apr-2017
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
A estados finalesδ función de transición Q × Σ → Q
La máquina sin memoria
ProblemaUn cobro de una máquina chicles de 5 pesos que sólo acepta
monedas de 1, 2 y 5 pesos
Σ = {1, 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
Automáta finito no determinísticoEs 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
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|
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)
r3∈{q0}
= ⋃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,
= ⋃r ∈{∅∪{q }∪{q }∪∅∪∅}
δ(r1, 2)
r1∈{∅∪{q11−12/2}∪{q11−12/3}∪∅∪∅}1
= ⋃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
Reduciendo el AFND a un AFComenzar por codificar 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: 000000000000000000000: 0: 0
0: 11111000:0000000000000: 0: 0*
0: 000001110000000000000: 0: 0*
0: 000000000000000000000: 0: 1*
2Q 1 2 5
1: 000000000000000000000: 0: 0
0: 11111000:0000000000000: 0: 0
0: 000001110000000000000: 0: 0
0: 000000000000000000000: 0: 1
0: 111110000000000000000: 0: 0
0: 000000001001100000000: 0: 0*
0: 000000000110000000000: 0: 0*
∅
0: 000001110000000000000: 0: 0
0: 000000000000001100000: 0: 0*
0: 000000000000010000000: 0: 0*
∅
0: 000000000000000000000: 0: 1
∅ ∅ ∅
2Q 1 2 5
0: 000000001001100000000: 0: 0
0: 000000000000000010010: 0: 0*
0: 000000000000000000100: 0: 0*
∅
0: 000000000110000000000: 0: 0
0: 000000000000000001000: 0: 0*
0: 000000000000000000000: 0: 1
∅
0: 000000000000001100000: 0: 0
0: 000001110000000000001: 0: 0*
0: 000000000000000000000: 0: 1
∅
0: 000000000000010000000: 0: 0
0: 000000000000000000000: 0: 1
∅ ∅
2Q 1 2 5
0: 000000000000000010010: 0: 0
0: 000000000000000000000: 1: 0*
0: 000000000000000000000: 0: 1
∅
0: 000000000000000000100: 0: 0
0: 000000000000000000000: 0: 1
∅ ∅
0: 000000000000000001000: 0: 0
0: 000000000000000000000: 0: 1
∅ ∅
0: 000001110000000000001: 0: 0
0: 000000000000000000000: 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 qe qe
q9 q3 qe qe
q10 q3 qe qe
q11 q3 qe qe
q q q q
M′ (AF) se define a partir de M = (Q, Σ, q0, A, δ) (AFND)
como:
Q′ = 2Q
Σ′ = Σq′
0 = {q0}
A′ = {q′ ∈ Q′ | q ∩ A ≠ ∅}
δ′(q′, a) = ⋃r∈q
δ(r, a)
Todas las cadenas w ∈ Σ∗, aceptadas por M deben ser
Todas las cadenas w ∈ Σ , aceptadas por M deben ser
aceptadas por M′
Caso base: δ′∗(q0, ϵ) = δ(q0, ϵ)
δ′(q′0, ϵ) = q′
0 [ap. de op. en AF]
= {q0} [def de q′0, de AF a AFND]
= δ∗(q0, ϵ} [def. de δ∗, en
AFND]
Caso inductivo: δ′∗(q′0, w)) = δ(q0, w)
δ′(q′0, wa) = δ′(δ′∗(q′
0, w), a) [ex. de aplicación,
AF]
= δ′(δ∗(q0, w), a)) [hipotesis, de AF a AF/AFND]
= ⋃r∈δ∗(q0,w)
δ(r, a) [ap. de δ′, de AF a AFND]
= δ(w, a) [def. de δ∗, en AFND ]
ProblemaTodos los cobros de una máquina chicles de 5 pesos que sólo
acepta monedas de 1, 2 y 5 pesos
Σ = {1, 2, 5}
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 ⊆ Σ∗,{
δ∗(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
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(⋃r3∈expϵ(⋃
r4∈{q0}δ(r4,5))
δ(r3,2))δ(r2,1))
δ(r
= expϵ(⋃r1∈expϵ(⋃
r2∈expϵ(⋃r3∈expϵ(δ(q0,5))
δ(r3,2))δ(r2,1))
δ(r1, 2))
= expϵ(⋃ δ(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))
r2∈{q2}
= expϵ(⋃r1∈expϵ(δ(q2,1))
δ(r1, 2))
= expϵ(⋃r1∈expϵ({q6})
δ(r1, 2))
= expϵ(⋃r1∈{q6}
δ(r1, 2))
= expϵ(δ(q6, 2))
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}
Marcar mismos estados y no alcanzables
S q0 q1 q2 q3 q4 q5 q6 q7
q0 ✕ ✖
q1 ✕ ✖
q2 ✕ ✖
q3 ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖
q4 ✖ ✕
q5 ✖ ✕
q6 ✖ ✕
q7 ✖ ✕
q7 ✖ ✕
Marcar diferenciarles: iniciales vs finales
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
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔ ✔
q1 ✔ ✕ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✕
q5 ✔ ✕
q6 ✔ ✕
q7 ✔ ✕
q7 ✔ ✕
q7 y q4
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔ ✔
q1 ✔ ✕ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✕ ✔
q5 ✔ ✕
q6 ✔ ✕
q7 ✔ ✔ ✕
q4 y q6
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔ ✔
q1 ✔ ✕ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✕ ✔ ✔
q5 ✔ ✕
q6 ✔ ✔ ✕
q7 ✔ ✔ ✕
q4 y q6
S q0 q1 q2 q4 q5 q6 q7
q0 ✕ ✔ ✔ ✔ ✔ ✔
q1 ✔ ✕ ✔ ✔ ✔ ✔
q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔
q4 ✔ ✔ ✕ ✔ ✔ ✔
q5 ✔ ✔ ✔ ✔ ✕ ✔ ✔
q6 ✔ ✔ ✔ ✔ ✔ ✕ ✔
q7 ✔ ✔ ✔ ✔ ✔ ✕
ivanvladimir@gmail.com 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