Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Las máquinas que están en varios lugares

301 views

Published on

Máquinas de estados finitos no deterministas - 2016-I

Published in: Education
  • Be the first to comment

  • Be the first to like this

Las máquinas que están en varios lugares

  1. 1. Las máquinas que están en varios lugares Nosepuedeestarenlaprocesiónytocandolacampana— Dichopopular Ivan Meza
  2. 2. Autómata finito Es una tupla (Q, Σ, q0, A, δ) Q conjunto finito de estados Σ un alfabeto q0 estado inicial A estados finales δ función de transición Q × Σ → Q La máquina sin memoria
  3. 3. Problema Un cobro de una máquina chicles de 5 pesos que sólo acepta monedas de 1, 2 y 5 pesos Σ = {1, 2, 5}
  4. 4. Secuencias posibles {1, 1, 1, 1, 1} {1, 1, 1, 2} {1, 2, 2} {5}
  5. 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
  6. 6. 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
  7. 7. 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 1 1 1 1 2 2 2 2 1 1 2 1 2 1 5
  8. 8. ¿Qué regla se rompe?
  9. 9. Automáta finito no determinístico Es una tupla (Q, Σ, q0, A, δ) Q conjunto finito de estados Σ un alfabeto q0 ∈ Q estado inicial A ⊆ Q estados finales δ función de transición Q × Σ → 2Q
  10. 10. El conjunto de conjuntos Con el conjunto C, 2C es el conjunto de todos los conjuntos posibles con elementos de C Con {a, b} 2{a,b} = {∅, {a}, {b}, {a, b}} Número de conjuntos 2|C|
  11. 11. La función de transición de un AFND δ: Q × A → 2Q δ regresa un conjunto de estados
  12. 12. AF vs AFND Ambos, son una tupla (Q, Σ, q0, A, δ) AF AFND Q Q Σ Σ q0 ∈ Q q0 ∈ Q A ⊆ Q A ⊆ Q δ: Q × A → Q δ: Q × A → 2Q
  13. 13. 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 1 1 1 1 2 2 2 2 1 1 2 1 2 1 5
  14. 14. Autómata ejemplo Q = {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 = q0 A = {q5}
  15. 15. 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}
  16. 16. 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} ∅
  17. 17. 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} ∅ ∅
  18. 18. Cadenas aceptadas por un AFND δ∗ = δ∗(q, ϵ) = {q} q ∈ Q δ∗(q, wa) = ⋃ r∈δ∗(q,w) δ(r, a) q, r ⊆ Q, w ⊆ Σ∗, a ⊆ Σ {
  19. 19. 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,1) δ(r2,2) δ(r1, 2)
  20. 20. 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, = ⋃ δ(r1, 2)
  21. 21. r1∈{∅∪{q11−12/2}∪{q11−12/3}∪∅∪∅} = ⋃ r1∈{q11−12/2,q11−12/3}} δ(r1, 2) = δ(q11−12/2, 2)⋃ δ(q11−12/3, 2) = {q5}⋃ ∅ = {q5}
  22. 22. 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
  23. 23. δ∗(q0, 122) = {q5} {q5} ∩ A = {q5} ∩ {q5} = {q5} ≠ ∅ La cadena se acepta
  24. 24. Reduciendo el AFND a un AF Comenzar 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, q1 q31/1, q21−12/3, q21−12/4, q31/5, q21−12/8, q41/1, q5 | = 24 0-00000000-00000000-00000-0-0
  25. 25. 2 Q 1 2 5 1: 00000000 0000000000000: 0: 0 0: 11111000: 0000000000000: 0: 0* 0: 0000011100000000 00000: 0: 0* 0: 0000000000000000 00000: 0: 1*
  26. 26. 2 Q 1 2 5 1: 00000000 0000000000000: 0: 0 0: 11111000: 0000000000000: 0: 0 0: 0000011100000000 00000: 0: 0 0: 0000000000000000 00000: 0: 1 0: 11111000 0000000000000: 0: 0 0: 0000000010011000 00000: 0: 0* 0: 0000000001100000 00000: 0: 0* ∅ 0: 00000111 0000000000000: 0: 0 0: 0000000000000011 00000: 0: 0* 0: 0000000000000100 00000: 0: 0* ∅ 0: 00000000 0000000000000: 0: 1 ∅ ∅ ∅
  27. 27. 2 Q 1 2 5 0: 0000000010011000 00000: 0: 0 0: 0000000000000000 10010: 0: 0* 0: 0000000000000000 00100: 0: 0* ∅ 0: 0000000001100000 00000: 0: 0 0: 0000000000000000 01000: 0: 0* 0: 0000000000000000 00000: 0: 1 ∅ 0: 0000000000000011 00000: 0: 0 0: 0000011100000000 00001: 0: 0* 0: 0000000000000000 00000: 0: 1 ∅ 0: 0000000000000100 00000: 0: 0 0: 0000000000000000 00000: 0: 1 ∅ ∅
  28. 28. 2 Q 1 2 5 0: 0000000000000000 10010: 0: 0 0: 0000000000000000 00000: 1: 0* 0: 0000000000000000 00000: 0: 1 ∅ 0: 0000000000000000 00100: 0: 0 0: 0000000000000000 00000: 0: 1 ∅ ∅ 0: 0000000000000000 01000: 0: 0 0: 0000000000000000 00000: 0: 1 ∅ ∅ 0: 0000011100000000 00001: 0: 0 0: 0000000000000000 00000: 0: 1 ∅ ∅
  29. 29. 2Q 1 2 5 0: 000000000000000000000: 1: 0 0: 000000000000000000000: 0: 1 ∅ ∅
  30. 30. 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
  31. 31. q12 q3 qe qe q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ q₈ q₉ q₁₀ q₁₁ q₁₂ 1 2 5 1 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2
  32. 32. ¡Todo AFND puede ser reducido a un AF! ¿Y acepta el mismo lenguaje?
  33. 33. Un momento...
  34. 34. 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
  35. 35. 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]
  36. 36. 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 ]
  37. 37. ¡Todo AFND puede ser reducido a un AF! ¡Y acepta el mismo lenguaje!
  38. 38. Problema Todos los cobros de una máquina chicles de 5 pesos que sólo acepta monedas de 1, 2 y 5 pesos Σ = {1, 2, 5}
  39. 39. q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ q₈ q₉ q₁₀ q₁₁ q₁₂ 1 2 5 1 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2
  40. 40. q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ q₈ q₉ q₁₀ q₁₁ q₁₂ 1 2 5 1 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2 ε
  41. 41. AFND-ϵ Es una tupla (Q, Σ, q0, A, δ) Q conjunto finito de estados Σ un alfabeto q0 ∈ Q estado inicial A ⊆ Q estados finales δ función de transición Q × (Σ ∪ {ϵ}) → 2Q
  42. 42. 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
  43. 43. Cadenas aceptadas por un AFND-ϵ δ∗ = δ∗(q, ϵ) = expϵ({q}) q ∈ Q δ∗(q, wa) = expϵ(⋃ r∈δ∗(q,w) δ(r, a)) q, r ⊆ Q, w ⊆ Σ∗, {
  44. 44. Calculo de expϵ(S) Para cada q ∈ S incluir in S todo δ(q, ϵ) Repetir hasta que S no cambie
  45. 45. Acepta los pagos: 5212
  46. 46. δ∗(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,2)) δ(r2,1
  47. 47. 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))
  48. 48. = expϵ(⋃ r1∈expϵ(⋃ r2∈expϵ(⋃ r3∈expϵ({q3}) δ(r3,2)) δ(r2,1)) δ(r1, 2))
  49. 49. = 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ϵ(⋃ r ∈{q } δ(r2,1)) δ(r1, 2))
  50. 50. 2 2 = expϵ(⋃ r1∈expϵ(δ(q2,1)) δ(r1, 2)) = expϵ(⋃ r1∈expϵ({q6}) δ(r1, 2)) = expϵ(⋃ r1∈{q6} δ(r1, 2)) = expϵ(δ(q6, 2))
  51. 51. = expϵ({q3}) = {q0, q3} Pero {q0, q3} ∩ {q3} ≠ ∅, se aceptan los pagos
  52. 52. De AFND-ϵ a AFND Para cada q ∈ Q y a ∈ Σ calcular δ∗(q, a) Crear nueva tabla de transición
  53. 53. 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}
  54. 54. 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 12 2 5 1 1 1 1 2 2 2
  55. 55. Dos observaciones De AFND-ϵ a AFND De AFND a AF
  56. 56. De AF (M) a ADND-ϵ (M') es trivial δ′(q, ϵ) = ∅ δ′(q, a) = {δ(q, a)}
  57. 57. Q′ a b ϵ a b q0 q0 q1 | ∅ {q0} {q1} q1 q1 q0 | ∅ {q1} {q0}
  58. 58. Tres observaciones De AFND-ϵ a AFND De AFND a AF De AF a AFND-ϵ
  59. 59. El poder de ϵ q₀ q₁ q₀ q₁ 1 0 1 0
  60. 60. La unión q₀' q₁' q₀'' q₁'' q₀ 1 0 1 0 ε ε
  61. 61. La concatenación q₀' q₁' q₀'' q₁'' 1 0 1 0ε
  62. 62. La cerradura q₀' q₁'q₀ q₁ 1 0 εε ε
  63. 63. Un momento Tenemos unión, concatenación y cerradura ¡podemos hacer cualquier expresión regular!
  64. 64. (a∗ba∗ba∗)∗ + a∗ q₁ q₂ q₃ a a b
  65. 65. (a∗ba∗ba∗)∗ + a∗ q₁ q₂ q₃ q₄ q₅ q₆q₀' q₀ q₇ a a a ε b ε b εε a ε ε ε
  66. 66. Autómata mínimo
  67. 67. q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0
  68. 68. Marcar mismos estados y no alcanzables S q0 q1 q2 q3 q4 q5 q6 q7 q0 ✕ ✖ q1 ✕ ✖ q2 ✕ ✖ q3 ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ q4 ✖ ✕ q5 ✖ ✕ q6 ✖ ✕ q ✖ ✕
  69. 69. 7 Marcar diferenciarles: iniciales vs finales S q0 q1 q2 q4 q5 q6 q7 q0 ✕ ✔ q1 ✕ ✔ q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔ q4 ✔ ✕ q5 ✔ ✕ q6 ✔ ✕ q7 ✔ ✕
  70. 70. 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 ✔ ✕
  71. 71. q7 ✔ ✕ q7 y q4 S q0 q1 q2 q4 q5 q6 q7 q0 ✕ ✔ ✔ q1 ✔ ✕ ✔ q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔ q4 ✔ ✕ ✔ q5 ✔ ✕ q6 ✔ ✕ q7 ✔ ✔ ✕
  72. 72. q4 y q6 S q0 q1 q2 q4 q5 q6 q7 q0 ✕ ✔ ✔ q1 ✔ ✕ ✔ q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔ q4 ✔ ✕ ✔ ✔ q5 ✔ ✕ q6 ✔ ✔ ✕ q7 ✔ ✔ ✕
  73. 73. q4 y q6 S q0 q1 q2 q4 q5 q6 q7 q0 ✕ ✔ ✔ ✔ ✔ ✔ q1 ✔ ✕ ✔ ✔ ✔ ✔ q2 ✔ ✔ ✕ ✔ ✔ ✔ ✔ q4 ✔ ✔ ✕ ✔ ✔ ✔ q5 ✔ ✔ ✔ ✔ ✕ ✔ ✔ q6 ✔ ✔ ✔ ✔ ✔ ✕ ✔ q7 ✔ ✔ ✔ ✔ ✔ ✕
  74. 74. q₀q q₁q q₂q₄ q₅ q₆ q₇ 0 1 1 0 1 0 0 1 0 0 1 1 1 0
  75. 75. q₀q₄ q₁q₇ q₂ q₅ q₆ 0 1 1 0 1 0 0 0 1
  76. 76. Conceptos AFND AFND-ϵ Conversiones AFND → AF AFND-ϵ → AFND AF → AFND-ϵ ER → AFND-ϵ AF → AF-mínimo
  77. 77. ivanvladimir@gmail.com ivanvladimir.github.io ivanvladimir La máquina que está en varios lugares by is licensed under a . Creado a partir de la obra en . Ivan V. Meza Ruiz Creative Commons Reconocimiento 4.0 Internacional License http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/nfae.html

×