stringtranslate.com

Teoría de los autómatas

Combinational logicFinite-state machinePushdown automatonTuring machineAutomata theory
clases de autómatas
El autómata descrito por este diagrama de estado comienza en el estado S 1 y cambia de estado siguiendo las flechas marcadas con 0 o 1 según los símbolos de entrada a medida que llegan. El doble círculo marca S 1 como estado de aceptación. Dado que todos los caminos desde S 1 hacia sí mismo contienen un número par de flechas marcadas con 0, este autómata acepta cadenas que contienen números pares de 0.

La teoría de los autómatas es el estudio de las máquinas abstractas y los autómatas , así como de los problemas computacionales que pueden resolverse utilizándolos. Es una teoría de la informática teórica con estrechas conexiones con la lógica matemática . La palabra autómata proviene de la palabra griega αὐτόματος, que significa "que actúa por sí mismo, tiene voluntad propia y se mueve por sí mismo". Un autómata (autómata en plural) es un dispositivo informático autopropulsado abstracto que sigue una secuencia predeterminada de operaciones de forma automática. Un autómata con un número finito de estados se denomina autómata finito (FA) o máquina de estados finitos (FSM). La figura de la derecha ilustra una máquina de estados finitos , que es un tipo de autómata muy conocido. Este autómata consta de estados (representados en la figura por círculos) y transiciones (representadas por flechas). Cuando el autómata ve un símbolo de entrada, realiza una transición (o salto) a otro estado, de acuerdo con su función de transición , que toma el estado anterior y el símbolo de entrada actual como argumentos.

La teoría de los autómatas está estrechamente relacionada con la teoría del lenguaje formal . En este contexto, los autómatas se utilizan como representaciones finitas de lenguajes formales que pueden ser infinitos. Los autómatas a menudo se clasifican según la clase de lenguajes formales que pueden reconocer, como en la jerarquía de Chomsky , que describe una relación de anidamiento entre las principales clases de autómatas. Los autómatas desempeñan un papel importante en la teoría de la computación , la construcción de compiladores , la inteligencia artificial , el análisis sintáctico y la verificación formal .

Historia

La teoría de los autómatas abstractos se desarrolló a mediados del siglo XX en relación con los autómatas finitos . [1] La teoría de los autómatas se consideró inicialmente una rama de la teoría de sistemas matemáticos , que estudiaba el comportamiento de sistemas de parámetros discretos. Los primeros trabajos en teoría de autómatas se diferenciaron de los trabajos anteriores sobre sistemas al utilizar álgebra abstracta para describir sistemas de información en lugar de cálculo diferencial para describir sistemas materiales. [2] La teoría del transductor de estado finito fue desarrollada con diferentes nombres por diferentes comunidades de investigación. [3] El concepto anterior de máquina de Turing también se incluyó en la disciplina junto con nuevas formas de autómatas de estado infinito, como los autómatas pushdown .

En 1956 se publicó Automata Studies , que recopilaba trabajos de científicos como Claude Shannon , W. Ross Ashby , John von Neumann , Marvin Minsky , Edward F. Moore y Stephen Cole Kleene . [4] Con la publicación de este volumen, "la teoría de los autómatas surgió como una disciplina relativamente autónoma". [5] El libro incluía la descripción de Kleene del conjunto de eventos regulares, o lenguajes regulares , y una medida relativamente estable de complejidad en los programas de la máquina de Turing de Shannon. [6] En el mismo año, Noam Chomsky describió la jerarquía de Chomsky , una correspondencia entre autómatas y gramáticas formales , [7] y Ross Ashby publicó Una introducción a la cibernética , un libro de texto accesible que explica los autómatas y la información utilizando la teoría básica de conjuntos .

El estudio de los autómatas lineales acotados condujo al teorema de Myhill-Nerode , [8] que proporciona una condición necesaria y suficiente para que un lenguaje formal sea regular y un recuento exacto del número de estados en una máquina mínima para el lenguaje. El lema de bombeo para lenguajes regulares , también útil en pruebas de regularidad, fue probado en este período por Michael O. Rabin y Dana Scott , junto con la equivalencia computacional de autómatas finitos deterministas y no deterministas. [9]

En la década de 1960 surgió un conjunto de resultados algebraicos conocidos como "teoría de la estructura" o "teoría de la descomposición algebraica", que trataba de la realización de máquinas secuenciales a partir de máquinas más pequeñas mediante interconexión. [10] Si bien cualquier autómata finito se puede simular utilizando un conjunto de puertas universales , esto requiere que el circuito de simulación contenga bucles de complejidad arbitraria. La teoría de estructuras se ocupa de la realizabilidad de las máquinas "sin bucles". [5] La teoría de la complejidad computacional también tomó forma en la década de 1960. [11] [12] A finales de la década, la teoría de los autómatas pasó a ser vista como "la matemática pura de la informática". [5]

Autómatas

Lo que sigue es una definición general de un autómata, que restringe una definición más amplia de un sistema a uno que actúa en pasos de tiempo discretos, con su comportamiento estatal y sus salidas definidas en cada paso mediante funciones invariables de solo su estado y entrada. [5]

descripción informal

Un autómata se ejecuta cuando se le proporciona alguna secuencia de entradas en pasos de tiempo discretos (individuales) (o simplemente pasos ). Un autómata procesa una entrada seleccionada de un conjunto de símbolos o letras , lo que se denomina alfabeto de entrada . Los símbolos que recibe el autómata como entrada en cualquier paso son una secuencia de símbolos llamados palabras . Un autómata tiene un conjunto 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, pasa a otro estado (o pasa a otra transición ) según una función de transición que toma el estado anterior y el símbolo de entrada actual como parámetros. Al mismo tiempo, otra función llamada función de salida produce símbolos del alfabeto de salida , también según el estado anterior y el símbolo de entrada actual. El autómata lee los símbolos de la palabra de entrada y realiza transiciones entre estados hasta que la palabra se lee por completo, si tiene una longitud finita, momento en el que el autómata se detiene . Un estado en el que el autómata se detiene se denomina estado final .

Para investigar las posibles secuencias de estado/entrada/salida en un autómata utilizando la teoría del lenguaje formal , a una máquina se le puede asignar un estado inicial y un conjunto de estados de aceptación . Luego, dependiendo de si una ejecución que comienza desde el estado inicial termina en un estado de aceptación, se puede decir que el autómata acepta o rechaza una secuencia de entrada. Al conjunto de todas las palabras aceptadas por un autómata se le llama lenguaje reconocido por el autómata . Un ejemplo familiar de máquina que reconoce un idioma es una cerradura electrónica , que acepta o rechaza los intentos de ingresar el código correcto.

Definicion formal

Autómata
Un autómata se puede representar formalmente mediante un quíntuple , donde:
  • es un conjunto finito de símbolos , llamado alfabeto de entrada del autómata,
  • es otro conjunto finito de símbolos, llamado alfabeto de salida del autómata,
  • es un conjunto de estados ,
  • es la función de siguiente estado o función de transición que asigna pares de estado-entrada a estados sucesores,
  • es la función de siguiente salida que asigna pares de estado-entrada a salidas.
Si es finito, entonces es un autómata finito . [5]
Palabra de entrada
Un autómata lee una cadena finita de símbolos , donde , lo que se denomina palabra de entrada . El conjunto de todas las palabras se denota por .
Correr
Una secuencia de estados , donde es tal que for , es una ejecución del autómata en una entrada que comienza en state . En otras palabras, al principio el autómata está en el estado inicial y recibe una entrada . Para y cada siguiente en la cadena de entrada, el autómata elige el siguiente estado de acuerdo con la función de transición , hasta que se haya leído el último símbolo , dejando la máquina en el estado final de la ejecución . De manera similar, en cada paso, el autómata emite un símbolo de salida según la función de salida .
La función de transición se extiende inductivamente para describir el comportamiento de la máquina cuando se le introducen palabras de entrada completas. Para la cadena vacía , para todos los estados y para cadenas donde está el último símbolo y es el resto (posiblemente vacío) de la cadena ,. [10] La función de salida se puede extender de manera similar a , lo que proporciona la salida completa de la máquina cuando se ejecuta con la palabra del estado .
Aceptador
Para estudiar un autómata con la teoría de los lenguajes formales , se puede considerar un autómata como un aceptor , reemplazando el alfabeto y la función de salida y con
  • , un estado inicial designado , y
  • , un conjunto de estados de (es decir ), llamados estados de aceptación .
Esto permite definir lo siguiente:
Aceptando palabra
Una palabra es una palabra de aceptación para el autómata si , es decir, si después de consumir toda la cadena la máquina está en estado de aceptación.
Idioma reconocido
El lenguaje reconocido por un autómata es el conjunto de todas las palabras que acepta el autómata . [13]
Idiomas reconocibles
Los lenguajes reconocibles son el conjunto de lenguajes que son reconocidos por algún autómata. Para los autómatas finitos los lenguajes reconocibles son lenguajes regulares . Para diferentes tipos de autómatas, los lenguajes reconocibles son diferentes.

Definiciones variantes de autómatas

Los autómatas se definen para estudiar máquinas útiles bajo el formalismo matemático. Por tanto, la definición de autómata está abierta a variaciones según la "máquina del mundo real" que queramos modelar utilizando el autómata. La gente ha estudiado muchas variaciones de autómatas. Las siguientes son algunas variaciones populares en la definición de diferentes componentes de autómatas.

Aporte
Estados
Función de transición
Condición de aceptación

Diferentes combinaciones de las variaciones anteriores producen muchas clases de autómatas.

La teoría de los autómatas es una materia que estudia las propiedades de varios tipos de autómatas. Por ejemplo, las siguientes preguntas se estudian sobre un tipo determinado de autómatas.

La teoría de los autómatas también estudia la existencia o inexistencia de algoritmos efectivos para resolver problemas similares a la siguiente lista:

Tipos de autómatas

La siguiente es una lista incompleta de tipos de autómatas.

Autómatas discretos, continuos e híbridos.

Normalmente la teoría de los autómatas describe los estados de las máquinas abstractas pero existen autómatas discretos, autómatas analógicos o autómatas continuos, o autómatas híbridos discretos-continuos , que utilizan datos digitales, datos analógicos o tiempo continuo, o datos digitales y analógicos, respectivamente.

Jerarquía en términos de poderes.

La siguiente es una jerarquía incompleta en cuanto a potencias de los diferentes tipos de máquinas virtuales. La jerarquía refleja las categorías anidadas de idiomas que las máquinas pueden aceptar. [14]

Aplicaciones

Cada modelo en la teoría de los autómatas juega un papel importante en varias áreas aplicadas. Los autómatas finitos se utilizan en procesamiento de textos , compiladores y diseño de hardware . La gramática libre de contexto (CFG) se utiliza en lenguajes de programación e inteligencia artificial. Originalmente, los CFG se utilizaron en el estudio de los lenguajes humanos . Los autómatas celulares se utilizan en el campo de la vida artificial , siendo el ejemplo más famoso el Juego de la vida de John Conway . Algunos otros ejemplos que podrían explicarse utilizando la teoría de los autómatas en biología incluyen los patrones de pigmentación y crecimiento de moluscos y piñas. Yendo más allá, algunos científicos defienden una teoría que sugiere que todo el universo es calculado por algún tipo de autómata discreto. La idea se originó en el trabajo de Konrad Zuse y fue popularizada en Estados Unidos por Edward Fredkin . Los autómatas también aparecen en la teoría de campos finitos : el conjunto de polinomios irreducibles que pueden escribirse como composición de polinomios de grado dos es de hecho un lenguaje regular. [15] Otro problema para el que se pueden utilizar los autómatas es la inducción de lenguajes regulares .

Simuladores de autómatas

Los simuladores de autómatas son herramientas pedagógicas que se utilizan para enseñar, aprender e investigar la teoría de los autómatas. Un simulador de autómatas toma como entrada la descripción de un autómata y luego simula su funcionamiento para una cadena de entrada arbitraria. La descripción del autómata se puede introducir de varias formas. Un autómata se puede definir en un lenguaje simbólico o se puede ingresar su especificación en un formulario prediseñado o su diagrama de transición se puede dibujar haciendo clic y arrastrando el mouse. Los simuladores de autómatas más conocidos incluyen Turing's World, JFLAP, VAS, TAGS y SimStudio. [dieciséis]

Conexión con la teoría de categorías

Se pueden definir varias categorías distintas de autómatas [17] siguiendo la clasificación de los autómatas en diferentes tipos descrita en la sección anterior. La categoría matemática de autómatas deterministas, máquinas secuenciales o autómatas secuenciales , y máquinas de Turing con homomorfismos de autómatas que definen las flechas entre autómatas es una categoría cartesiana cerrada , [18] tiene tanto límites categóricos como colimites . Un homomorfismo de autómatas asigna un quíntuple de un autómata Ai al quíntuple de otro autómata A j . Los homomorfismos de autómatas también pueden considerarse como transformaciones de autómatas o como homomorfismos de semigrupo , cuando el espacio de estados, S , del autómata se define como un semigrupo S g . Los monoides también se consideran una configuración adecuada para autómatas en categorías monoidales . [19] [20] [21]

Categorías de autómatas variables

También se podría definir un autómata variable , en el sentido de Norbert Wiener en su libro sobre El uso humano de los seres humanos a través de los endomorfismos . Entonces se puede demostrar que tales homomorfismos de autómatas variables forman un grupo matemático. En el caso de autómatas no deterministas u otros tipos complejos, el último conjunto de endomorfismos puede convertirse, sin embargo, en un grupoide de autómata variable . Por tanto, en el caso más general, las categorías de autómatas variables de cualquier tipo son categorías de grupoides o categorías grupoides. Además, la categoría de autómatas reversibles es entonces una categoría 2 , y también una subcategoría de la categoría 2 de grupoides, o la categoría grupoide.

Ver también

Referencias

  1. ^ Mahoney, Michael S. "Las estructuras de la computación y la estructura matemática de la naturaleza". El diario de Rutherford . Consultado el 7 de junio de 2020 .
  2. ^ Stand, Taylor (1967). Máquinas Secuenciales y Teoría de Autómatas . Nueva York: John Wiley & Sons. pag. 1-13. ISBN 0-471-08848-X.
  3. ^ Ashby, William Ross (15 de enero de 1967). "El lugar del cerebro en el mundo natural" (PDF) . Corrientes en biología moderna . 1 (2): 95-104. doi :10.1016/0303-2647(67)90021-4. PMID  6060865. Archivado desde el original (PDF) el 4 de junio de 2023 . Consultado el 29 de marzo de 2021 .: "Las teorías, ahora bien desarrolladas, de la "máquina de estados finitos" (Gill, 1962), del "transductor silencioso" (Shannon y Weaver, 1949), del "sistema determinado por estados" (Ashby, 1952) , y del "circuito secuencial", son esencialmente homólogos."
  4. ^ Ashby, WR; et al. (1956). CE Shannon; J. McCarthy (eds.). Estudios de autómatas . Princeton, Nueva Jersey: Princeton University Press.
  5. ^ ABCDE Arbib, Michael (1969). Teorías de los autómatas abstractos . Englewood Cliffs, Nueva Jersey: Prentice-Hall.
  6. ^ Li, Ming; Paul, Vitanyi (1997). Introducción a la complejidad de Kolmogorov y sus aplicaciones . Nueva York: Springer-Verlag. pag. 84.
  7. ^ Chomsky, Noam (1956). «Tres modelos para la descripción del lenguaje» (PDF) . Transacciones IRE sobre teoría de la información . 2 (3): 113–124. doi :10.1109/TIT.1956.1056813. S2CID  19519474. Archivado (PDF) desde el original el 7 de marzo de 2016.
  8. ^ Nerodo, A. (1958). "Transformaciones de autómatas lineales". Actas de la Sociedad Matemática Estadounidense . 9 (4): 541. doi : 10.1090/S0002-9939-1958-0135681-9 .
  9. ^ Rabin, Michael ; Scott, Dana (abril de 1959). "Autómatas finitos y sus problemas de decisión" (PDF) . Revista IBM de investigación y desarrollo . 3 (2): 114-125. doi :10.1147/rd.32.0114. Archivado desde el original el 14 de diciembre de 2010.{{cite journal}}: Mantenimiento CS1: URL no apta ( enlace )
  10. ^ a b C Hartmanis, J .; Stearns, RE (1966). Teoría de la estructura algebraica de máquinas secuenciales . Englewood Cliffs, Nueva Jersey: Prentice-Hall.
  11. ^ Hartmanis, J.; Stearns, RE (1964). "Complejidad computacional de secuencias recursivas" (PDF) .
  12. ^ Por ahora, Lance; Homero, Steve (2002). "Una breve historia de la complejidad computacional" (PDF) .
  13. ^ Moore, Cristopher (31 de julio de 2019). "Autómatas, lenguajes y gramáticas". arXiv : 1907.12713 [cs.CC].
  14. ^ Yan, canción Y. (1998). Introducción a los lenguajes formales y la computación automática. Singapur: World Scientific Publishing Co. Pte. Ltd. págs. 155-156. ISBN 978-981-02-3422-5.
  15. ^ Ferraguti, A.; Micheli, G.; Schnyder, R. (2018), Las composiciones irreducibles de polinomios de grado dos sobre campos finitos tienen estructura regular , The Quarterly Journal of Mathematics, vol. 69, Oxford University Press, págs. 1089–1099, arXiv : 1701.06040 , doi : 10.1093/qmath/hay015, S2CID  3962424
  16. ^ Chakraborty, P.; Saxena, ordenador personal; Katti, CP (2011). "Cincuenta años de simulación de autómatas: una revisión". Incursiones de ACM . 2 (4): 59–70. doi :10.1145/2038876.2038893. S2CID  6446749.
  17. ^ Jirí Adámek y Věra Trnková . 1990. Autómatas y Álgebras en Categorías . Editorial académica Kluwer: Dordrecht y Praga
  18. ^ Mac Lane, Saunders (1971). Categorías para el matemático que trabaja . Nueva York: Springer. ISBN 978-0-387-90036-0.
  19. ^ http://www.math.cornell.edu/~worthing/asl2010.pdf James Worthington.2010. Determinación, olvido y autómatas en categorías monoidales. Reunión anual norteamericana de ASL, 17 de marzo de 2010
  20. ^ Aguiar, M. y Mahajan, S.2010. "Funtores monoidales, especies y álgebras de Hopf" .
  21. ^ Meseguer, J., Montanari, U.: 1990 Las redes de Petri son monoides. Información y Computación 88 :105–155

Otras lecturas

enlaces externos