Teoría de autómatas
La teoría de autómatas es una rama de las ciencias de la computación que estudia matemáticamente máquinas abstractas y problemas que éstas son capaces de resolver. La teoría de autómatas está estrechamente relacionada con la teoría del lenguaje formal ya que los autómatas son clasificados a menudo por la clase de lenguajes formales que son capaces de reconocer.
Un autómata es un modelo matemático para una máquina de estado finita (FSM sus siglas en inglés). Una FSM es una máquina que, dada una entrada de símbolos, "salta" a través de una serie de estados de acuerdo a una función de transisión (que puede ser expresada como una tabla). En la variedad común "Mealy" de FSMs, esta función de transición dice al autómata a que estado cambiar dados unos determinados estado y símbolo.
La entrada es leída símbolo por símbolo, hasta que es "consumida" completamente (piense en esta como una cinta con una palabra escrita en ella, que es leída por por una cabeza lectora del autómata; la cabeza se mueve a lo largo de la cinta, leyendo un símbolo a la vez) una vez la entrada se ha agotado, el autómata se detiene.
Dependiendo del estado en el que el autómata para se dice que este a aceptado o rechazado la entrada. Si este termina en el estado "acepta", el autómata acepta la palabra. Si lo hace en el estado "rechaza", el autómata rechazó la palabra, el conjuto de todas las palabras aceptadas por el autómata constituyen el lenguaje aceptado por el mismo.
Autómatas finitos
Existen tres tipos de autómatas finitos
Cada estado de un autómata de este tipo tiene una transición por cada símbolo del alfabeto.
AFD
Los estados de un autómata de este tipo pueden, o no, tener una o más transiciones por cada símbolo del alfabeto. El autómata acepta una palabra si existe al menos un camino desde el estado q0 a un estado final F etiquetado con la palabra de entrada. Si una transición no está definida, de manera que el autómata no puede saber como continuar leyendo la entrada, la palabra es rechazada.
Además de ser capaz de alcanzar más estados leyendo un símbolo, permite alcanzarlos sin leer ningún símbolo. Si un estado tiene transiciones etiquetadas con ε, entonces el AFND puede encontrarse en cualquier de los estados alcanzables por las transiciones ε, directamente o a través de otros estados con transiciones ε. El conjunto de estados que pueden ser alcanzados mediante este método desde un estado q, se denomina la clausura ε de q.
Sin embargo, puede observarse que todos estos tipos de autómatas pueden aceptar los mismos lenguajes. Siempre se puede construir un AFD que acepte el mismo lenguaje que el dado por un AFND.
AFND con transiciones vacías
Extensiones a los autómatas finitos [editar]
Los lenguajes aceptados por los autómatas descritos más arriba se denominan lenguajes regulares. Autómatas más potentes pueden aceptar lenguajes más complejos. Algunos de estos autómatas son:
Son máquinas idénticas a los AFD (o AFI), exceptuando el hecho de que disponen de una memoria adicional, haciendo uso de una pila. La función de transición δ ahora dependerá también de los símbolos que se encuentren al principio de la pila. Esta función determinará como cambia la pila en cada transición. Este tipo de autómatas aceptan los lenguajes independientes del contexto.
Se trata de una máquina de Turing limitada.
Son las máquinas computacionales más potentes. Poseen una memoria infinita en forma de cinta, así como un cabezal que puede leer y cambiar esta cinta, y moverse en cualquier dirección a lo largo de la cinta.