Finite Automata — Guia

Estados, transiciones y el poder de la memoria minima
Abrir simulacion
Estado actual + simbolo → siguiente estado
Que es un DFA?

Un Automata Finito Determinista (DFA) es el modelo mas simple de computacion con memoria. Lee simbolos uno a uno, cambia de estado segun reglas fijas, y al final "decide" si la cadena pertenece a un lenguaje.

Estados finitos Transiciones deterministas Sin memoria externa Lenguajes regulares

La intuicion profunda

Un DFA es una maquina que olvida. Solo recuerda su estado actual — no sabe como llego ahi ni cuantos simbolos leyo. Esa "amnesia" es su limitacion y su poder: con memoria finita, procesa cadenas infinitas.

Que observar

  • El estado actual es toda la "memoria" de la maquina.
  • Las transiciones son reglas: dado (estado, simbolo), hay exactamente un destino.
  • Los estados de aceptacion codifican el "patron buscado".

Funcion de transicion δ: el corazon del automata

La funcion δ define completamente el comportamiento:

δ(estado_actual, simbolo) = siguiente_estado

Ejemplo: δ(q0, '0') = q1
"Si estoy en q0 y leo '0', voy a q1"

Determinismo: Para cada par (estado, simbolo) hay exactamente un destino. No hay eleccion, no hay ambiguedad. El futuro esta determinado por el presente y la entrada.

Completitud: Un DFA bien formado tiene transiciones para todos los simbolos desde todos los estados. Si falta alguna, se asume transicion a un "estado trampa" (no aceptacion).

Estados de aceptacion: codificar patrones

El conjunto F (estados de aceptacion) codifica que reconoce el automata:

  • F = {q2} → "el patron termina en q2"
  • F = {q0, q2} → "cadena vacia O patron especifico"
  • F = Q → acepta todo (trivial)
  • F = ∅ → no acepta nada

Un automata solo mira su estado al final de la cadena. Puede pasar por estados de aceptacion durante el proceso sin aceptar si no termina en uno.

Lenguajes regulares: el dominio de los DFA

Los DFAs reconocen exactamente los lenguajes regulares:

  • Cadenas que terminan en "01"
  • Cadenas con numero par de 0s
  • Identificadores validos (empieza con letra)
  • Numeros en notacion cientifica
  • Todo lo expresable con regex

Teorema de Kleene: Expresiones regulares, DFAs y NFAs son equivalentes en poder expresivo. Tres notaciones, un mismo poder.

Lo que los DFA NO pueden hacer

Los DFAs tienen memoria finita. No pueden:

  • Contar sin limite: "mismo numero de a's y b's"
  • Recordar estructura: "parentesis balanceados"
  • Detectar palindromos: "abba", "racecar"
  • Comparar mitades: "la primera mitad = segunda mitad"
El lema del bombeo formaliza estas limitaciones
Laboratorio

Experimentos guiados

Cada experimento revela un aspecto del modelo de automatas finitos.

1

Reconocer sufijos: "termina en 01"

Hipotesis: Un automata de 3 estados puede reconocer cualquier cadena que termine en "01", sin importar su longitud.

  1. Crea un automata con estados: q0, q1, q2
  2. Transiciones: q0-0→q1, q0-1→q0, q1-0→q1, q1-1→q2, q2-0→q1, q2-1→q0
  3. Estado inicial: q0. Aceptacion: {q2}
  4. Prueba: "01", "001", "1101", "0011"
  5. Que cadenas acepta? Que patron tienen en comun?

El automata "recuerda los ultimos 2 simbolos" con solo 3 estados: q0 = "ultimo no fue 0", q1 = "ultimo fue 0", q2 = "ultimos fueron 01".

Memoria O(1) para verificar sufijos
2

Paridad: contar modulo 2

Hipotesis: Con k estados se puede contar modulo k. Para "numero par de 1s", bastan 2 estados.

  1. Crea automata: q_even (par), q_odd (impar)
  2. Transiciones: '0' mantiene estado, '1' alterna
  3. Inicial: q_even. Aceptacion: {q_even}
  4. Prueba: "", "0", "1", "11", "101", "1111"
  5. Ahora intenta "numero de 1s divisible por 3" — cuantos estados?

El automata implementa aritmetica modular. Cada estado representa el residuo actual. Las transiciones son sumas mod k.

Generalizacion: Para "divisible por n", necesitas exactamente n estados. El DFA simula un contador circular.

3

La limitacion: intenta contar sin limite

Hipotesis: Es imposible construir un DFA que acepte exactamente las cadenas con igual numero de 0s y 1s.

  1. Intenta disenar un automata para "mismo numero de 0s y 1s"
  2. Empieza simple: acepta "", "01", "10", "0011", "0101"
  3. Cuantos estados necesitas para manejar "0...0 1...1" con k ceros?
  4. Que pasa cuando k > numero de estados?
  5. Concluye: por que es imposible con estados finitos?

Si el automata tiene n estados y la cadena tiene mas de n simbolos, algun estado se repite (principio del palomar). Eso crea un ciclo que permite "bombear" la cadena, rompiendo el patron.

Limitacion fundamental: memoria finita
Probar en la simulacion
Conexiones con EigenLab

Automatas en la naturaleza

El modelo estado-transicion aparece en toda la ciencia.

La neurona como automata

Una neurona tiene dos estados principales: reposo y disparo. Las senales de entrada son los "simbolos". Si la suma supera el umbral, transiciona a disparo. Es un automata con transiciones probabilisticas y continuas, pero el modelo discreto captura la esencia.

Simulacion relacionada: Neurona — el potencial de accion como transicion de estado.

Mitosis: fases como estados

La division celular sigue un ciclo de estados: G1 → S → G2 → M. Cada fase tiene "checkpoints" que verifican condiciones antes de transicionar. Si falla un checkpoint, la celula puede entrar en "estado de espera" o apoptosis. Es un automata biologico.

Simulacion relacionada: Mitosis — las fases del ciclo celular como maquina de estados.

Diagramas de fase: transiciones de materia

Solido, liquido, gas son "estados" de la materia. Temperatura y presion son "entradas" que causan transiciones. El punto triple es un estado con multiples transiciones posibles. El diagrama de fases es un automata del comportamiento de la materia.

Simulacion relacionada: Diagrama de Fases — transiciones de estado en la materia.

Game of Life: automatas en paralelo

El Game of Life es una rejilla donde cada celda es un automata de 2 estados (viva/muerta). Todas las celdas transicionan simultaneamente basandose en sus vecinas. Un automata celular es la version "distribuida" del DFA.

Simulacion relacionada: Game of Life — automatas celulares y computacion emergente.

Jerarquia de Chomsky

DFA en contexto: que hay mas alla

Tradeoff fundamental: Mas poder expresivo = mas recursos computacionales. Los DFA son limitados pero eficientes: O(n) tiempo, O(1) espacio para cualquier cadena.

Aplicaciones practicas

Donde viven los DFA

Preguntas para reflexionar

  1. Si los DFA no pueden reconocer palindromos, como hace tu cerebro para reconocer "radar" instantaneamente como palindromo?
  2. Un automata para "termina en 01" tiene 3 estados. Cuantos estados tendria uno para "termina en 0101"? Hay un patron?
  3. Los protocolos de red (TCP, HTTP) se modelan como automatas. Que "estados" tiene una conexion TCP? Que "simbolos" causan transiciones?
  4. El lema del bombeo dice que si una cadena es "suficientemente larga", tiene una parte que se puede repetir. Por que esto implica limitaciones en lo que pueden reconocer los DFA?