En la teoría de los autómatas, todos leemos autómatas como autómatas finitos, desde el principio. Lo que quiero saber es, ¿por qué los autómatas son finitos? Para ser claros, ¿qué hay en un autómata que es finito: el alfabeto, el idioma, las cadenas hechas con expresiones regulares o qué? ¿Y hay (en teoría) algún autómata no finito?
automata
finite-automata
parvin
fuente
fuente
Respuestas:
Todos los modelos de autómatas que normalmente encontrarás están finamente representados; de lo contrario, habría innumerables, lo que significa que no son capturados por los modelos completos de Turing. O, en CS-think, serían inútiles¹.
Los "autómatas finitos" se denominan finitos porque solo tienen un conjunto finito de configuraciones (la cadena de entrada a un lado). Los autómatas pushdown, por ejemplo, tienen una pila que puede tener contenido arbitrario: hay infinitas configuraciones posibles.
Nota bene: ¡Las configuraciones de PDA todavía están finitamente representadas! De hecho, cualquier modelo computacional que se encuentre dentro de la computabilidad de Turing tiene que tener configuraciones finitamente representables, de lo contrario, los TM no podrían simularlos.
fuente
El nombre completo es " autómata de estado finito". La parte crucial es que el estado del autómata puede caracterizarse completamente por un elemento de algún conjunto finito de estados discretos. Esto significa que si el estado (relevante) del autómata involucra una variable de valor real, hay un número infinito de estados potenciales (dejando de lado la finitud de las representaciones de coma flotante), y el autómata no es finito.
Esto podría no suceder nunca en la informática teórica, pero no es demasiado exótico en el dominio del modelado de secuencias de números reales. Los modelos ocultos de Markov se pueden usar para modelar una secuencia numérica como la salida de un sistema probabilístico que consiste en un filtro de salida para cada estado de un modelo de Markov (discreto, finito) con estados no observables. Los filtros calculan la siguiente salida de valor real a partir de un vector de las salidas anteriores (modelo "autorregresivo"), pero el modelo subyacente de Markov es finito ya que sus probabilidades de transición solo dependen del estado actual de Markov.
Sin embargo, este artículo ( texto completo ) desarrolla una variación en la que las probabilidades de transición también dependen del vector de números reales de salidas anteriores. El estado de este sistema es la combinación de un estado discreto de Markov y una tupla de números reales ("modelo de Markov de estado mixto"), por lo tanto, puede estar en un número infinito de estados diferentes.
En resumen, los autómatas no finitos están teóricamente bien definidos y, en ocasiones, incluso se encuentran.
fuente
En un autómata finito, hay bastante finitud: el número de estados, el tamaño del alfabeto subyacente y las longitudes de las cadenas aceptadas por la máquina.
Ciertamente, puede relajar la condición de finitud en estos permitiendo, por ejemplo, que la máquina tenga infinitos estados, pero si lo hace, la máquina resultante deja de ser interesante, en el sentido de que tales máquinas pueden diseñarse para aceptar cualquier idioma.
fuente
De hecho, en la teoría de los autómatas (que se aparta mucho de los orígenes de Kleene, Rabin y Scott), hay muchas formas de autómatas que no son finitas. Esto surge por varias razones.
Los autómatas pushdown , por ejemplo, son autómatas que tienen un conjunto infinito de configuraciones (estas tienen un número finito de estados, pero la realidad es que deben considerarse como 'autómatas infinitos').
En la misma línea, hay otros ejemplos de autómatas infinitos para los cuales el espacio de estado es infinito, pero con mucha estructura. Por ejemplo, uno considera la clase de autómatas que tienen como espacio de estado un espacio vectorial (dimensión finita), y como funciones de transición mapas lineales (más algunas cosas iniciales y finales). Estos se conocen como autómatas ponderados sobre un campo base (debido a Schützenberger en 61). Estos pueden ser minimizados y probados para la igualdad. Otros ejemplos incluyen autómatas de registro (estos autómatas tienen un conjunto finito de registros y funcionan sobre un alfabeto infinito: pueden comparar letras con registros y almacenar letras en registros), y la forma más moderna de autómatas nominales(que tienen la misma expresividad, pero tienen mejores fundamentos y propiedades). El vacío de tales autómatas es decidible.
Para concluir, hay autómatas infinitos, pero los modelos que se estudian por primera vez en una conferencia son siempre los de estado finito.
fuente
Creo que la pregunta es asumir la conclusión de que no hay autómatas de estado infinito cuando los hay, simplemente no vale la pena mencionarlos.
En Automata Theory, existe una jerarquía de poderes de diferentes modelos virtuales. El que aprendí tenía 4 (que recuerdo, ha pasado algún tiempo), el que encontré en Wikipedia tiene 5. El más débil en cualquier autómata de estado finito, y el más fuerte son las máquinas de Turing. Existe un concepto de un nivel más poderoso que las máquinas de Turing que se llama hipercomputación. Muchas descripciones diferentes de máquinas virtuales caen en uno de estos niveles. Las máquinas de Turing son especialmente conocidas por numerosos modelos que tienen el mismo nivel de potencia computacional.
Un autómata de estado infinito, al menos uno formalmente definido, caerá en uno de estos niveles. Puede haber algo un poco interesante en mostrar cómo una determinada definición rigurosa de un autómata de estado infinito se ajusta a uno de estos niveles, pero aparte de eso, no sería de mucha utilidad dado que hay máquinas virtuales mucho más estudiadas que representan cada nivel . Es similar a cómo no hay mucho interés en una máquina de Turing de mil millones de cintas, ya que no sería más potente que una sola máquina de Turing de cintas, sino más complicado de manejar.
Ahora, si encontraste un autómata de estado infinito que no era equivalente a un nivel existente de la jerarquía, eso podría ser interesante. Pero sin eso, los autómatas de estado infinito ya están capturados dentro de la jerarquía existente, y dadas las complicaciones adicionales de tratar con el infinito, simplemente los evitamos de la misma manera que evitamos cualquier modelo de máquina de Turing demasiado complicado.
fuente
La versión infinita (ingenua) de la máquina determinista de estados finitos es demasiado poderosa . Tal cosa sería capaz de "memorizar" cualquier idioma, por lo que no hay mucho que aprender al considerarlos.
Por ejemplo, sobre un alfabeto binario, considere un autómata en forma de un árbol binario completo de altura infinita. Cada posible cadena que podría considerar como entrada corresponde únicamente a un nodo del árbol, por lo que puede construir un decisor para cualquier idioma simplemente haciendo que los nodos correspondientes acepten estados.
fuente