En théorie des automates, nous lisons tous les automates comme des automates finis, depuis le tout début. Ce que je veux savoir, c'est pourquoi les automates sont-ils finis? Pour être clair, qu'est-ce qui est fini dans un automate - l'alphabet, le langage, les chaînes faites avec des expressions régulières ou quoi? Et existe-t-il (en théorie) des automates non finis?
automata
finite-automata
Parvin
la source
la source
Réponses:
Tous les modèles d’automates que vous rencontrerez généralement sont représentés avec précision. sinon, ils seraient innombrables, ce qui signifie qu'ils ne sont pas capturés par les modèles complets de Turing. Ou, dans CS-think, ils seraient inutiles¹.
Les "automates finis" sont appelés finis parce qu'ils ont seulement un ensemble fini de configurations (la chaîne en entrée de côté). Les automates à pile, par exemple, ont une pile qui peut avoir un contenu arbitraire - il y a une infinité de configurations possibles.
Nota bene: Les configurations de PDA sont encore représentées! En fait, tout modèle de calcul qui entre dans la calculabilité de Turing doit avoir des configurations finement représentables, sinon les MT ne pourraient pas les simuler.
la source
Le nom complet est "automates à états finis". La partie cruciale est que l’état de l’automate puisse être entièrement caractérisé par un élément d’un ensemble fini d’états discrets. Cela signifie que si l'état (pertinent) de l'automate implique une variable à valeur réelle, il existe un nombre infini d'états potentiels (en mettant de côté la finitude des représentations en virgule flottante) et l'automate n'est pas fini.
Cela pourrait ne jamais arriver en informatique théorique, mais ce n’est pas trop exotique dans le domaine de la modélisation de séquences de nombres réels. Les modèles de Markov cachés peuvent être utilisés pour modéliser une séquence de nombres en tant que sortie d'un système probabiliste consistant en un filtre de sortie pour chaque état d'un modèle de Markov (discret, fini) avec des états non observables. Les filtres calculent la sortie à valeur réelle suivante à partir d'un vecteur des sorties précédentes (modèle "autorégressif"), mais le modèle de Markov sous-jacent est fini, car ses probabilités de transition ne dépendent que de l'état de Markov actuel.
Cependant, cet article ( texte intégral ) développe une variante dans laquelle les probabilités de transition dépendent également du vecteur de nombres réels des sorties précédentes. L'état de ce système est la combinaison d'un état de Markov discret et d'un tuple de nombres réels ("modèle de Markov à états mélangés"). Il peut donc s'agir d'un nombre infini d'états différents.
En bref, les automates non finis sont théoriquement bien définis et parfois même rencontrés.
la source
Dans un automate fini, il y a un peu de finitude: le nombre d'états, la taille de l'alphabet sous-jacent et la longueur des chaînes acceptées par la machine.
Vous pouvez certainement assouplir la condition de finitude en autorisant, par exemple, la machine à avoir un nombre infini d'états, mais si vous le faites, la machine résultante devient inintéressante, en ce sens que de telles machines peuvent être conçues pour accepter n'importe quelle langue.
la source
En fait, dans la théorie des automates (qui dérive beaucoup des origines de Kleene, Rabin et Scott), il existe de nombreuses formes d’automates qui ne sont pas finies. Cela se pose pour plusieurs raisons.
Automates à pile , par exemple, sont des automates qui ont un ensemble infini de configurations (celles-ci ont un nombre fini d'états, mais la réalité est qu'elles doivent être considérées comme des «automates infinis»).
Dans le même ordre d'idées, il existe d'autres exemples d'automates infinis pour lesquels l'espace d'états est infini, mais avec beaucoup de structure. Par exemple, on considère la classe des automates qui ont pour espace d'état un espace vectoriel (dimension finie) et comme fonctions de transition des cartes linéaires (plus certaines choses initiales et finales). Celles-ci sont connues sous le nom d' automates pondérés sur un corps de base (dû à Schützenberger en 61). Ceux-ci peuvent être minimisés et testés pour l'égalité. D'autres exemples incluent les automates de registre (ces automates ont un ensemble fini de registres et fonctionnent sur un alphabet infini: ils peuvent comparer des lettres avec des registres et stocker des lettres dans des registres) et la forme plus moderne d' automates nominaux.(qui ont la même expressivité, mais ont de meilleures bases et propriétés). La vacuité de tels automates est décidable.
Mais même pour étudier les automates à états finis, il est logique de parler d'automates infinis. En effet, considérons la catégorie des automates déterministes à états finis qui acceptent un langage donné fixe L, équipé de la notion standard de morphisme d'automate, alors cette catégorie ne peut pas avoir d'objet initial et final. Cependant, si vous vivez dans la catégorie de tous les automates déterministes (disons dénombrables), il existe alors un objet initial (l’automate qui a pour étatsUNE* , comme premier état, le mot vide, quand il lit la lettre une en état vous il va dire vous un , et un état accepte s’il appartient à L). Il y a aussi un objet final (qui a comme langue des états!). L'existence de ces deux objets est un moyen d'expliquer à haut niveau pourquoi les automates déterministes peuvent être minimisés et est étroitement liée à la congruence de Myhill-Nerode.
Pour conclure, il y a des automates infinis, mais les modèles qui sont d'abord étudiés dans une conférence sont toujours ceux à l'état fini.
la source
Je pense que la question suppose la conclusion qu'il n'y a pas d'automates à états infinis quand ils existent, ils ne valent tout simplement pas la peine d'être abordés.
Dans la théorie des automates, il existe une hiérarchie des pouvoirs de différents modèles virtuels. Celui que j'ai appris en avait 4 (dont je me souviens, cela fait un certain temps), celui que j'ai trouvé sur Wikipedia en a 5. Le plus faible dans les automates à états finis et le plus fort sont les machines de Turing. Il existe un certain concept d'un niveau plus puissant que les machines de Turing, que l'on appelle vaguement hypercalcul. De nombreuses descriptions différentes de machines virtuelles entrent dans l'un de ces niveaux. Les machines de Turing sont particulièrement connues pour de nombreux modèles ayant tous le même niveau de puissance de calcul.
Un automate à états infini, au moins un défini formellement, tombera dans l'un de ces niveaux. Il est peut-être intéressant de montrer comment une certaine définition rigoureuse d’un automate à états infinis s’inscrit dans l’un de ces niveaux, mais cela ne serait pas très utile car il existe des machines virtuelles beaucoup mieux étudiées qui représentent chaque niveau. . Cela ressemble à la façon dont il y a peu d'intérêt pour une machine de Turing dotée d'un milliard de bandes, puisqu'elle ne serait pas plus puissante qu'une machine de Turing à bande unique, mais plus compliquée à gérer.
Maintenant, si vous trouviez un automate à états infini qui n’était pas équivalent à un niveau existant de la hiérarchie, cela pourrait être intéressant. Mais sans cela, les automates à états infinis sont déjà capturés dans la hiérarchie existante et, compte tenu des complications supplémentaires associées au traitement de l'infini, nous les évitons simplement de la même manière que nous évitons tout modèle de machine de Turing trop compliqué.
la source
La version infinie (naïve) de la machine à états finis déterministe est trop puissante . Une telle chose serait capable de "mémoriser" n'importe quelle langue, de sorte qu'il n'y a pas grand-chose à apprendre à les considérer.
Par exemple, sur un alphabet binaire, considérons un automate sous la forme d'un arbre binaire complet de hauteur infinie. Chaque chaîne possible que vous pouvez considérer comme une entrée correspond uniquement à un nœud de l’arborescence. Vous pouvez donc créer un décideur pour n’importe quelle langue en faisant simplement en sorte que les nœuds correspondants acceptent des états.
la source