Un autómata (un autómata, varios autómatas) es un concepto de las matemáticas. A veces el concepto se llama máquina de estado. Es como una máquina abstracta.

A una máquina de este tipo se le puede dar entrada, que es rechazada o aceptada. Es como una máquina expendedora. Cuando se compra algo, hay que introducir monedas (o dinero) en la máquina. Si son las monedas correctas, se aceptan, y el artículo solicitado se deja caer para que pueda ser retirado. Si las monedas son incorrectas, se rechazan.

Internamente, el autómata tiene diferentes estados en los que puede estar. La introducción de datos puede cambiar (o no) su estado. Así, el autómata recorre toda la entrada, consumiendo un elemento (que los matemáticos llaman símbolo) cada vez. Cuando no queda ningún símbolo, el autómata se encuentra en un determinado estado. Puede tratarse de un estado final. En este caso, la entrada es aceptada. En caso contrario, la entrada es rechazada.

Si la máquina tiene un número contable y finito de estados, se llama máquina de estados finitos. Un diagrama que muestra todos los estados y transiciones de dicha máquina se denomina diagrama de estados finitos.

Definición formal y componentes

De forma más precisa, un autómata finito (determinista) se puede describir como una tupla (Q, Σ, δ, q0, F), donde:

  • Q: conjunto finito de estados.
  • Σ: alfabeto, conjunto finito de símbolos de entrada.
  • δ: función de transición que indica, para cada estado y símbolo, el siguiente estado.
  • q0: estado inicial, elemento de Q donde comienza la máquina.
  • F: conjunto de estados finales o de aceptación, F ⊆ Q.

El funcionamiento consiste en leer la cadena de entrada símbolo a símbolo, aplicar la función de transición y, al final de la cadena, comprobar si el estado alcanzado pertenece a F: si sí, la cadena se acepta; si no, se rechaza.

Tipos básicos de autómatas

  • Determinista (DFA): para cada estado y símbolo hay como máximo una transición posible.
  • No determinista (NFA): puede haber varias transiciones posibles para un mismo estado y símbolo (incluye transiciones ε que no consumen símbolos). Los NFA y los DFA describen exactamente las mismas lenguajes regulares; todo NFA tiene un DFA equivalente.
  • Autómatas con pila (PDA): tienen una memoria en forma de pila; reconocen lenguajes libres de contexto (más potentes que los regulares).
  • Máquina de Turing: modelo más potente que puede simular cualquier cálculo efectivo; no es finita en general.

Ejemplos sencillos

  • Máquina expendedora: modelo intuitivo donde las monedas válidas permiten avanzar a un estado de "suma suficiente" y, al alcanzar el estado final, se entrega el producto.
  • Detector de paridad: un autómata que, al leer una secuencia de bits, acepta si el número de ceros es par. Tiene dos estados: q_par (aceptación) y q_impar; al leer '0' alterna entre ellos, al leer '1' permanece.
  • Expresiones regulares: muchas expresiones regulares se pueden traducir a un NFA/DFA que acepta exactamente las cadenas que corresponden a la expresión.

Propiedades importantes

  • Los autómatas finitos reconocen exactamente los lenguajes regulares.
  • Los lenguajes regulares son cerrados bajo operaciones como unión, concatenación, estrella de Kleene, intersección y complemento.
  • Todo NFA puede convertirse en un DFA equivalente (construcción de subconjuntos), y todo DFA se puede minimizar para obtener el autómata con el menor número de estados equivalente (algoritmos de minimización).
  • Existen criterios (por ejemplo, el teorema de Myhill–Nerode) para demostrar que un lenguaje no es regular y, por tanto, no puede ser reconocido por un autómata finito.

Representación gráfica

Un diagrama de estados dibuja los estados como nodos y las transiciones como flechas etiquetadas con el símbolo que provoca la transición. El estado inicial suele marcarse con una flecha entrante sin origen, y los estados de aceptación con un doble círculo.

Aplicaciones prácticas

  • Analizadores léxicos en compiladores (tokenización).
  • Reconocimiento de patrones y motores de expresiones regulares (en muchos casos transformados en autómatas).
  • Verificación de protocolos y control de sistemas embebidos mediante diagramas de estados.
  • Diseño de controladores y lógica secuencial en ingeniería electrónica.

Conclusión

Los autómatas son modelos matemáticos simples pero muy poderosos para describir y analizar sistemas que procesan secuencias de símbolos. Dependiendo de los recursos de memoria y la libertad de transiciones, se obtienen distintos modelos (DFA, NFA, PDA, Turing) con capacidades crecientes. Comprender autómatas y lenguajes formales es fundamental en teoría de la computación y en muchas aplicaciones prácticas de la informática.