Las máquinas que están en varios lugares

Post on 14-Apr-2017

39 views 1 download

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

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

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