Todo lo que querı́as saber sobre autómatas y nunca te atreviste a preguntar Jean-Éric Pin1 1 LIAFA, CNRS y universidad Paris Diderot Marzo 2014, Buenos Aires LIAFA, CNRS et Université Paris Diderot Plan (1) (2) (3) (4) Historia Ejemplos y uso práctico Autómatas secuenciales Teorema de Kleene LIAFA, CNRS et Université Paris Diderot Parte I Historia LIAFA, CNRS et Université Paris Diderot Los precursores A, A, ⊲ 0 A, A, ⊲ a, ♯, ⊲ 4 ♯, ♯, ⊲ 5 a, a, ⊲ a, A, ⊲ a, ♯, ⊲ a, a, ⊳ A, A, ⊳ 1 ♯, ♯, ⊳ 2 3 Turing (1936) Máquina de Turing a, a, ⊲ A, A, ⊲ A, A, ⊲ McCulloch et Pitts (1943) Red neuronal Shannon (1948) LIAFA, CNRS et Université Paris Diderot Los fundadores Kleene (1951, 1956) Equivalencia entre autómatas y expresiones regulares. Schützenberger (1956): Teorı́a algebraica de autómatas Chomsky (1956): Jerarquı́a de Chomsky LIAFA, CNRS et Université Paris Diderot Parte II Ejemplos y uso práctico LIAFA, CNRS et Université Paris Diderot Potencias de 2 (Sistema binario). Las potencias de 2 se caracterizan por representarse de la forma 100 · · · 0 en el sistema binario. El El El El número número número número 2 se escribe como 10, 4 se escribe como 100, 8 se escribe como 1000, 16 se escribe como 10000 . . . 0 0 1 1 LIAFA, CNRS et Université Paris Diderot Los múltiplos de 3 1 0 0 0 1 1 2 1 0 330 = 256 + 64 + 8 + 2 El número 330 se escribe como 101001010. LIAFA, CNRS et Université Paris Diderot Palabras Alfabeto = Conjunto finito de sı́mbolos: {a, b, c}, {0, 1} Palabra = Una cadena finita formada por la concatenación de sı́mbolos: bab, ababb, 001, 1011 Palabra vacı́a (notación 1 o ε): es la única palabra que tiene 0 sı́mbolos. Concatenación (o Producto) de abra y cadabra: abracadabra. A∗ = El conjunto de todas las palabras sobre un alfabeto A. LIAFA, CNRS et Université Paris Diderot Código de entrada a un edificio (en binario) 01001 1 1 0 0 0 1 1 0 1 2 0 3 0 4 1 5 1 0 LIAFA, CNRS et Université Paris Diderot Algunos usos de los autómatas • Lingüı́stica • Modelado • Analizador léxico, algoritmo de búsqueda de cadenas • Ingenierı́a automática: especificación de sistemas de eventos discretos • Especificación, verificación formal y sı́ntesis • Matemática: lógica, grupos automáticos LIAFA, CNRS et Université Paris Diderot Diccionario A B L N S P N D X O U Autómata para {BAL, BAN, BALS, BANS, PAL, PALS, PAN, PANS, DO, DON, DONS, DOUX}. LIAFA, CNRS et Université Paris Diderot Comparación Para un diccionario de Scrabble Inglés, una representación en árbol requiere 117 150 nodos y 780 kbytes de memoria. La representación por autómatas requiere sólo 19 853 estados y 175 kbytes de memoria, es decir una ganancia de casi un 80 %. LIAFA, CNRS et Université Paris Diderot Partı́culas preverbales en francés (Maurice Gross) je → je, tu, nous, vous, on, ce lui → lui, leur, me → me, te, nous, vous il → il, ils, elle, elles le → le, la, les, - ne → ne, - y → y, - en → en, se → se, je ne le lui y il ne me ne en le se LIAFA, CNRS et Université Paris Diderot El Lobo, la Cabra y la Lechuga Un pastor tiene que pasar un lobo, una cabra y una lechuga a la otra orilla de un rı́o. Dispone de una barca en la que sólo caben él y una de las otras tres cosas. Si el lobo se queda solo con la cabra, se la come. Si la cabra se queda sola con la lechuga, se la come. ¿Cómo debe hacerlo? LIAFA, CNRS et Université Paris Diderot El Lobo, la Cabra y la Lechuga Pastor: P Lobo: L Cabra: C Verdura: V Rió: CLP V LV V LP V CLP CP V L CP C L CP V C LP V CLP V CP LV CLP V Dos soluciones de longitud mı́nima. LIAFA, CNRS et Université Paris Diderot Parte III Autómatas secuenciales LIAFA, CNRS et Université Paris Diderot Codificación y descodificación Codificación a → 0 b → 1010 c → 100 d → 1011 r → 11 Descodificación 1|d 1|r 1|ε 1|ε 0|b 0|ε 0|a 0|c LIAFA, CNRS et Université Paris Diderot Descodificación a → 0 b → 1010 c → 100 d → 1011 r → 11 0|a 1|ε 1 2 1|r 0|b 1|d 4 0|c 1|ε 0|ε 3 010101101000101101010110 → abracadabra LIAFA, CNRS et Université Paris Diderot Un autómata secuencial para la función n → 6n 0 0|0 0 ε 1|1 1|0 1 0|1 1 1|1 2 0|0 01 185 = 1 + 8 + 16 + 32 + 128 y 6 × 185 = 1110 = 2 + 4 + 16 + 64 + 1024. En binario inverso, 185 se escribe como 10011101 y 1110 se escribe como 01101010001. Por tanto 10011101 → 01101010001 LIAFA, CNRS et Université Paris Diderot Conjetura de Collatz ( 3n + 1 si n es impar Sea f (n) = n/2 si n es par Dado un número cualquiera, consideramos las imágenes sucesivas al iterar la función. Por ejemplo, si n = 13: 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1. La conjetura dice que siempre alcanzaremos el 1 para cualquier número con el que comencemos. LIAFA, CNRS et Université Paris Diderot Sucesiones de iteración. . . 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1. LIAFA, CNRS et Université Paris Diderot Un autómata secuencial para la función de Collatz ( 3n + 1 si n es impar Sea f (n) = n/2 si n es par 0|0 1|1 2 ε 1|1 0|ε 1 ε 1|0 0|0 0|0 3 01 0|1 4 1|0 1 5 1|1 ε En binario inverso: f (61) = 184 1 0 1 1 1 1 61 = 1 + 4 + 8 + 16 + 32 0 0 0 1 1 1 01 184 = 8 + 16 + 32 + 128 LIAFA, CNRS et Université Paris Diderot Parte IV Teorema de Kleene LIAFA, CNRS et Université Paris Diderot Lenguajes Lenguaje = conjunto de palabras = subconjunto de A∗ Unión: L1 + L2 = {u ∈ A∗ | u ∈ L1 o u ∈ L2} Complemento: Lc = {u ∈ A∗ | u ∈ / L} Producto: L1L2 = {u1u2 | u1 ∈ L1 y u2 ∈ L2 } Potencia: Ln = {u1u2 · · · un | u1 , . . . , un ∈ L} Estrella: L∗ = {u1u2 · · · un | n > 0 y u1 , . . . , un ∈ L} = L∗ = 1 + L + L2 + · · · LIAFA, CNRS et Université Paris Diderot Lenguajes regulares Se construyen a partir de las palabras con ayuda de las operaciones unión, producto, estrella: ((ab)∗ca∗ + cbac∗ b)∗ Theorem (Kleene 1956) Un lenguaje es regular si, y sólo si, es aceptado por un autómata finito. Consecuencia: los lenguajes regulares son cerrados para complemento y para la intersección finita. LIAFA, CNRS et Université Paris Diderot De los autómatas a los lenguajes regulares b a 1 Ecuaciones 2 a, b X1 = bX1 + aX2 X2 = (a + b)X1 + 1 Sustituyendo X2 en la primera ecuación: X1 = (b + aa + ab)X1 + a obtenemos una ecuación del tipo X = KX + L. LIAFA, CNRS et Université Paris Diderot La ecuación X = KX + L Una solución. . . de un fı́sico! X = KX + L ⇐⇒ X − KX = L ⇐⇒ (1 − K)X = L ⇐⇒ X = (1 − K)−1L Luego (1 − K)−1 = 1 + K + K 2 + . . . = K ∗. Por tanto X = K ∗L es solución de X = KX + L. Aquı́ X1 = (b + aa + ab)X1 + a tiene como b ∗ a solución X1 = (b + aa + ab) a 1 2 a, b LIAFA, CNRS et Université Paris Diderot Un juego El jugador tiene los ojos vendados. El objetivo es tener las cuatro fichas del lado blanco. 0 1 a o 3 4 Las diferentes configuraciones. LIAFA, CNRS et Université Paris Diderot Las reglas del juego El jugador puede girar tantas fichas como desee, pero sin cambiarlas de sitio. En cada vuelta, el maestro de juego anuncia si la configuración resultante es ganadora o no, entonces gira la bandeja 0, 90, 180 o 270 grados. ¿Podemos ganar con seguridad? ¿En cuántos disparos? LIAFA, CNRS et Université Paris Diderot