Autómata computacional

3 min
Editar

Un autómata computacional o autómata (en inglés, automaton, plural automata) es un modelo matemático abstracto de una máquina que procesa información: recibe una secuencia de símbolos de entrada, pasa de un estado (state) a otro según unas reglas fijas llamadas transiciones (transitions), y al final acepta o rechaza la entrada, o produce una salida. Aunque es un objeto teórico, puede materializarse físicamente en circuitos o en programas, y está detrás de muchas cosas cotidianas.

El caso más sencillo es el autómata finito (finite automaton), que tiene un número limitado de estados y ninguna otra memoria. Una máquina expendedora es un buen ejemplo: sus estados son cuánto dinero se ha introducido, sus entradas son las monedas y los botones, y según el estado y la entrada, o espera más dinero, o entrega el producto y el cambio. Un semáforo, un torno de acceso o el programa que controla una lavadora funcionan igual. En informática, los autómatas finitos sirven para reconocer patrones en textos: son la base de las expresiones regulares (regular expressions), que Stephen Kleene formalizó en 1956, y del analizador léxico con el que un compilador corta un programa en palabras. Michael Rabin y Dana Scott estudiaron en 1959 los autómatas finitos no deterministas (nondeterministic), que pueden estar en varios estados a la vez, un trabajo por el que recibieron el premio Turing en 1976.

Añadiendo memoria se obtienen autómatas más potentes. El autómata de pila (pushdown automaton) dispone de una pila en la que puede apilar y desapilar símbolos, lo que le permite reconocer estructuras anidadas, como los paréntesis de una fórmula o las etiquetas de un documento HTML, algo imposible para un autómata finito. En la cima está la máquina de Turing, con una cinta ilimitada en la que puede leer y escribir, que es capaz de calcular todo lo que se puede calcular. Cada tipo de autómata se corresponde con un tipo de lenguaje formal en la clasificación que propuso Noam Chomsky en 1956, y el estudio de esa correspondencia, la teoría de autómatas (automata theory), es uno de los pilares de la informática teórica.

La idea tiene raíces en el estudio del cerebro. Warren McCulloch y Walter Pitts describieron en 1943 las neuronas como pequeñas unidades lógicas que se encienden o no según sus entradas, y mostraron que una red de esas neuronas se comporta como un autómata finito, un trabajo que inspiró tanto la teoría de autómatas como el perceptrón y las redes neuronales. En el lenguaje corriente, un autómata es también un mecanismo que imita los movimientos de un ser vivo, como los que se construían en los siglos XVII y XVIII; y un agente autónomo actual puede verse como un autómata mucho más complejo, cuyas transiciones no están escritas de antemano sino que las decide un modelo aprendido.

Sarasola, Eneko (2023). "Autómata computacional". Ikusmira. Recuperado de https://ikusmira.org/p/automata-computacional/

Una errata, un dato desfasado, un párrafo que falta: edítalo y la redacción revisa tu propuesta.

Sugerir una mejora →
§ Dónde encajaMapa del estante ↓
Sigue con
Informática Autómata computacional
§ Tres puertas

¿Por dónde sigues?