Lic. Informatica
Un autómata finito (AF) o máquina de estado finito es un modelo computacional que realiza cómputos en forma automática sobre una entrada para producir una salida.
Este modelo está conformado por un alfabeto, un conjunto de estados y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una función de transición, que recibe a partir de un estado inicialuna cadena de caracteres pertenecientes al alfabeto (la entrada), y que va leyendo dicha cadena a medida que el autómata se desplaza de un estado a otro, para finalmente detenerse en un estado final o de aceptación, que representa la salida.
La finalidad de los autómatas finitos es la de reconocer lenguajes regulares, que corresponden a los lenguajes formales más simples según la Jerarquía deChomsky.
Historia
El modelo neuronal de McCulloch-Pitts también utiliza diagramas con estados y transiciones, además de los conceptos de entrada y salida.
El origen de los autómatas finitos probablemente se remonta a su uso implícito en máquinas electromecánicas, desde principios del siglo XX.[1] Ya en 1907, el matemático ruso Andréi Márkov formalizó un proceso llamado cadena de Markov, donde laocurrencia de cada evento depende con una cierta probabilidad del evento anterior.[2] Esta capacidad de "recordar" es utilizada posteriormente por los autómatas finitos, que poseen una memoria primitiva similar, en que la activación de un estado también depende del estado anterior, así como del símbolo o palabra presente en la función de transición.
Posteriormente, en 1943, surge una primeraaproximación formal de los autómatas finitos con el modelo neuronal de McCulloch-Pitts. Durante la década de 1950 prolifera su estudio, frecuentemente llamándoseles máquinas de secuencia; se establecen muchas de sus propiedades básicas, incluyendo su interpretación como lenguajes regulares y su equivalencia con las expresiones regulares.[1] Al final de esta década, en 1959, surge el concepto deautómata finito no determinista en manos de los informáticos teóricos Michael O. Rabin y Dana Scott.[3]
En la década de 1960 se establece su conexión con las series de potencias y los sistemas de sobreescritura.[4] Finalmente, con el desarrollo del sistema operativo Unix en la década de 1970, los autómatas finitos encuentran su nicho en el uso masivo de expresiones regulares para fines prácticos,específicamente en el diseño de analizadores léxicos (comando lex) y la búsqueda y reemplazo de texto (comandos ed y grep).[5] A partir de ese tiempo, los autómatas finitos también se comienzan a utilizar en sistemas dinámicos.[1]
Definición formal
Formalmente, un autómata finito es una 5-tupla (Q, Σ, q0, δ, F) donde:[6]
es un conjunto finito de estados;
es un alfabeto finito;
es el estadoinicial;
es una función de transición;
es un conjunto de estados finales o de aceptación.
Representación como diagramas de estados
Este autómata finito está definido sobre el alfabeto Σ={0,1}, posee dos estados s1 y s2, y sus transiciones son δ(s1,0)=s2, δ(s1,1)=s1, δ(s2,0)=s1 y δ(s2,1)=s2. Su estado inicial es s1, que es también su único estado final.
Los autómatas finitos se pueden representarmediante grafos particulares, también llamados diagramas de estados finitos, de la siguiente manera:
Los estados Q se representan como vértices, etiquetados con su nombre en el interior.
Una transición δ desde un estado a otro, dependiente de un símbolo del alfabeto, se representa mediante una arista dirigida que une a estos vértices, y que está etiquetada con dicho símbolo.
El estado inicialq0 se caracteriza por tener una arista que llega a él, proveniente de ningún otro vértice.
El o los estados finales F se representan mediante vértices que están encerrados a su vez por otra circunferencia.
Representación como tabla de transiciones
Artículo principal: Tabla de transición de estados.
Otra manera de describir el funcionamiento de un autómata finito es mediante el uso de tablas...
Regístrate para leer el documento completo.