Las máquinas que están en varios lugares

77
Las máquinas que están en varios lugares No se puede estar en la procesión y tocando la campana — Dicho popular Ivan Meza

Transcript of Las máquinas que están en varios lugares

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}

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 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|

La función de transición de un AFND

δ : 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)

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

δ∗(q0, 122) = {q5}

{q5} ∩ A = {q5} ∩ {q5} = {q5} ≠ ∅

La cadena se acepta

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

∅ ∅

2Q 1 2 5

0: 000000000000000000000: 1: 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

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

1

1

1

1

1

1 1 1

2

2

¡Todo AFND puede ser reducido a unAF!

¿Y acepta el mismo lenguaje?

Un momento...

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 ]

¡Todo AFND puede ser reducido a unAF!

¡Y acepta el mismo lenguaje!

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}

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

1 1 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

1 1 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 ⊆ Σ∗,{

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

= 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∈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))

r2∈{q2}

= 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-ϵ aAFNDDe 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-ϵ aAFNDDe AFND a AFDe AF a AFND-ϵ

El poder de ϵ

q₀ q₁

q₀ q₁

1

0

1

0

La unión

q₀' q₁'

q₀'' q₁''

q₀

1

0

1

0

ε

ε

La concatenación

q₀' q₁' q₀'' q₁''1

0 1

La cerradura

q₀' q₁'q₀ q₁1

0

εε

ε

Un momentoTenemos unión, concatenación y cerradura ¡podemos hacer

cualquier 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 ✖ ✕

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 ✔ ✔ ✔ ✔ ✔ ✕

q₀q 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