¿Para qué se utiliza la teoría de autómatas?

Comencemos con el brillante informático y matemático, Alan Turing. Entre los legos, es conocido sobre todo por ser decisivo para descifrar el código del dispositivo de cifrado de Alemania, llamado Enigma Machine. Esta fue una hazaña asombrosa, y muchos historiadores piensan que acortó la Segunda Guerra Mundial en dos o tres años.

Entre los científicos informáticos, Turing es más conocido por preguntar y luego responder a esta pregunta crítica en la década de 1930:

¿Qué puede ser calculado por una máquina?

Para responder a esto, Turing pensó en cómo las personas calculaban las cosas. Por ejemplo, piense en cómo multiplica dos números naturales.

(Por supuesto, la mayoría de ustedes no tienen idea de cómo multiplicar números porque simplemente sacan una aplicación de calculadora en su teléfono inteligente. Así que por ahora, solo pretendan que recordaron cómo multiplicar).

Sacarías un trozo de papel y comenzarías a hacer cosas. Cuando Turing pensó en resolver tales problemas, se dio cuenta de lo siguiente:

  1. Cuando resolvemos un problema en una hoja de papel, lo hacemos paso a paso.
  2. Cuando resolvemos un problema, tiene que tomar solo un número finito de pasos. (De lo contrario, nunca terminaríamos).
  3. Cuando resolvemos un problema, solo podemos usar un número finito de trozos de papel. (De lo contrario, nos quedaríamos sin árboles para hacer papel).

Luego, Turing formalizó esta idea con lo que ahora llamamos una ‘máquina de Turing’. Este es un modelo matemático sobre cómo podemos resolver cualquier problema que tenga solución. Mostró cómo crear una máquina de Turing, en una hoja de papel, que podría multiplicarse, ordenar una lista o determinar si un número es primo.

Tenga en cuenta que hizo esto antes de que hubiera computadoras de uso general.

Y luego Turing continuó y preguntó: “¿Hay algún problema matemático que no se pueda resolver?” Hoy, podríamos decir: “¿Hay algún problema matemático que no se pueda calcular?”

Turing respondió eso también. Él demostró que hay bastantes problemas matemáticos que son indiscutibles. ¿Como que?

Veamos algunas proposiciones matemáticas: declaraciones matemáticas que son verdaderas o falsas.

Primero, recuerde que un número natural (que es mayor que 1) es primo si solo es divisible por 1 y por sí mismo.

“Hay un número infinito de números primos”. (Esta es una proposición verdadera).

“Dos más dos son siete”. (Según mi calculadora, esto es falso).

Aquí hay uno más que necesitará un poco de historia para entender. Dos números primos se denominan ‘pares primos’ si son dos números primos impares consecutivos. Por ejemplo, 17 y 19 son un par primo. Así son 41 y 43. Ahora considere esta proposición:

“Hay un número infinito de pares primos”.

Y esta propuesta es: no lo sabemos. Los matemáticos piensan que es cierto, pero aún no hay pruebas.


Aquí está el punto interesante. ¿Por qué no construir una computadora, o simplemente escribir un programa de computadora, al que podamos dar cualquier proposición matemática y que nos diga si la proposición es verdadera o falsa?

Buena idea. Excepto que Turing mostró que es imposible escribir dicho programa. En la terminología moderna, diríamos que determinar si una proposición dada es verdadera o falsa es indiscutible.

Este triste resultado es malo para la humanidad, pero mantiene a los matemáticos en el trabajo.

Hay muchos problemas tan importantes que son indiscutibles, un resultado muy interesante de las reflexiones de Turing.


Y ahora, para responder directamente a su pregunta sobre la teoría de los autómatas, la pregunta más importante que responde es lo que preguntó Turing. “¿Qué se puede calcular?”

Y una pregunta más de Automata Theory es esta. “Si algo se puede calcular, ¿qué tan rápido se puede calcular?”

La teoría de los autómatas tiene muchos términos geniales como “autómatas finitos no deterministas” y “autómatas” y “lenguajes recursivamente enumerables”.

Pero tendrás que tomar el curso (de mí, por supuesto) para descubrir lo que significan.

La teoría de los autómatas es el estudio de máquinas abstractas y autómatas, así como los problemas computacionales que se pueden resolver con ellos. Es una teoría en informática teórica y matemática discreta (una asignatura de estudio tanto en matemática como en informática).

Un autómata se ejecuta cuando se le da una secuencia de entradas en pasos o pasos de tiempo discretos (individuales). Un autómata procesa una entrada seleccionada de un conjunto de símbolos o letras , que se denomina alfabeto . Los símbolos recibidos por el autómata como entrada en cualquier paso son una secuencia finita de símbolos llamados palabras . Un autómata tiene un conjunto finito de estados . En cada momento durante una ejecución del autómata, el autómata se encuentra en uno de sus estados. Cuando el autómata recibe una nueva entrada, se mueve a otro estado (o transiciones) en función de una función que toma el estado actual y el símbolo como parámetros. Esta función se llama función de transición . El autómata lee los símbolos de la palabra de entrada uno tras otro y pasa de un estado a otro de acuerdo con la función de transición hasta que la palabra se lee por completo. Una vez que se ha leído la palabra de entrada, se dice que el autómata se ha detenido. El estado en el que se detiene el autómata se denomina estado final. Dependiendo del estado final, se dice que el autómata acepta o rechaza una palabra de entrada. Hay un subconjunto de estados del autómata, que se define como el conjunto de estados de aceptación . Si el estado final es un estado de aceptación, entonces el autómata acepta la palabra. De lo contrario, la palabra es rechazada . El conjunto de todas las palabras aceptadas por un autómata se denomina “lenguaje de ese autómata”. Cualquier subconjunto del idioma de un autómata es un idioma reconocido por ese autómata .

En resumen, un autómata es un objeto matemático que toma una palabra como entrada y decide si la acepta o la rechaza. Dado que todos los problemas computacionales se pueden reducir a la pregunta de aceptar / rechazar en las entradas (todas las instancias de problemas pueden representarse en una longitud finita de símbolos), la teoría de autómatas juega un papel crucial en la teoría computacional. Los autómatas están relacionados con las matemáticas y es la etapa superior de la estructura discreta de las matemáticas.