Este documento presenta conceptos básicos de la teoría de autómatas, incluyendo símbolos, palabras, alfabetos y lenguajes. Define un autómata como una máquina de estado finito que cambia de estado según una función de transición dada la entrada. Explica los diferentes tipos de autómatas finitos como deterministas y no deterministas con o sin transiciones epsilon, los cuales reconocen lenguajes regulares. Finalmente, menciona extensiones a autómatas con pila y máquinas de Turing que reconocen lengu
2. Conceptos básicos en la Teoría de Autómatas
Símbolo
Un dato arbitrario que tiene algún significado o efecto en la máquina. A estos símbolos también se les llama
"letras" o "atomos".
Palabra
Una cadena finita formada por la concatenación de un número de símbolos.
Alfabeto
Conjunto finito de símbolos. Un alfabeto se indica normalmente con , que es el conjunto de letras en un
alfabeto.
Lenguaje
Un conjunto de palabras, formado por símbolos en un alfabeto dado. Puede ser infinito.
Clausura de Kleene
Un lenguaje se puede considerar como un subconjunto de todas las posibles palabras. El conjunto de todas las
palabras puede, a su vez, ser considerado como el conjunto de todas las posibles concatenaciones de cadenas.
Formalmente, este conjunto de todas las cadenas se llama en inglés free monoid. Se indica cómo , y el
superíndice * se llama la estrella de Kleene.
3. Definición de la Teoría de Autómatas
La teoría de autómatas es una rama de
las ciencias de la computación que
estudia las máquinas abstractas y los
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.
.
4. El Autómata
Un autómata es un modelo matemático para
una máquina de estado finito (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 transició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 qué estado
cambiar dados unos determinados estado y
símbolo.
5. Autómatas Finitos
Formalmente, un autómata finito (AF) puede ser descrito como una 5-tupla .
AF = 〈 Q , Σ , q0 , F , f 〉
Q : Conjunto finito y no vacío de estados.
Σ : Alfabeto de símbolos de entrada.
q0 : Estado inicial (perteneciente a Q).
F : Conjunto de estados finales (incluido en Q).
f : Función de control o transición, que se define como:
f:QxΣ⇒ Q En este caso F esta en el dominio, es decir que los estados finales no
son de parada y el final de cadena está implícito en el funcionamiento del AF.
6. Ejemplo de Autómata Finito
Cada estado de un autómata de este tipo puede o no tener una
transición por cada símbolo del alfabeto.
7. Autómata Finito No Determinista (AFND)
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.
En este caso, δ(q0,b)=q0 y δ(q0,b)=q1.
Por lo tanto, se trata de un autómata finito no determinista, que reconoce
la expresión regular (a|b)*b+.
8. Autómata no Determinista con Transiciones ε (AFND-ε)
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.
9. Extensiones a los Autómatas Finitos
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:
Autómata con pila
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á
cómo cambia la pila en cada transición. Este tipo de autómatas aceptan los lenguajes independientes del contexto.
Autómata linealmente acotado
Se trata de una máquina de Turing limitada.
Máquina de Turing
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.