L'importance de la complexité des états dans les automates et les langues régulières?


14

Je lis " Concaténation des langues régulières et complexité descriptive " par Galina Jiraskova, 2009 sur la complexité de l'état résultant de la concaténation de deux langues régulières (par Galina Jiraskova), mais je ne comprends pas quelles seraient les implications pratiques de la complexité de l'état. . La première pensée triviale qui m'a frappé était qu'une complexité plus élevée nécessiterait plus de temps et d'espace pour la machine. Est-ce correct? Y a-t-il également d'autres endroits où la complexité de l'État est pertinente et significative?

Edit: La complexité d'état d'une langue régulière est le plus petit nombre d'états dans n'importe quel automate fini déterministe (dfa) acceptant la langue. La complexité d'état non déterministe d'une langue régulière est définie comme le plus petit nombre d'états dans un automate fini non déterministe (nfa) pour la langue.


Chose sûre. Modifié la question!
Airmine

Il semble possible que l'article que vous lisez réponde dans une certaine mesure à la question ...? Pouvez-vous le citer plus en détail, par exemple le titre et de préférence un lien vers le pdf s'il est disponible? La complexité des états FSM apparaît dans de nombreuses applications et a également des implications théoriques ...
vzn

Oui, j'ai parcouru le document et j'ai regardé les références. Impossible de trouver beaucoup de choses liées aux applications de la complexité de l'état.
Airmine

3
à peu près n'importe quelle application FSM (dont il y en a beaucoup) doit tenir compte de la complexité de l'état pour les "gros" problèmes non triviaux. exemple. Les FSM sont utilisés dans la reconnaissance vocale où les états sont des phonèmes, ce qui peut conduire à de grands FSM. Les FSM sont également largement utilisés dans les applications EE, par exemple les circuits, etc. là un FSM avec une grande complexité est un "grand" circuit. cependant, le document en question examine principalement la complexité théorique du problème où les limites supérieures / inférieures sur "l'explosion" ou la "minimisation efficace" (compression) sont des propriétés clés à étudier ....
vzn

Pas exactement "pratique", mais la complexité des états joue un rôle dans l' inférence basée sur la diversité des automates finis par Rivest et Schapire: [conférence ; journal ].
Neal Young

Réponses:


18

La complexité des états est vraiment une description concise d'un objet (dans ce cas, un langage normal), pas une complexité de calcul. Le sujet général est appelé «complexité descriptive» dans la littérature et s'inspire, en partie, de l'article classique de Meyer et Fischer de 1971 intitulé «Economy of Expression by Automata, Grammars, and Formal Systems» (voir http: // people .csail.mit.edu / meyer / économie-de-description.pdf ). Il s'agit toujours d'un domaine actif, avec une conférence annuelle (DCFS - Descriptional Complexity of Formal Systems).

En ce qui concerne les applications, tout endroit où votre programme repose essentiellement sur une machine à états finis (par exemple, des analyseurs), il sera bon d'avoir cette machine à états finis aussi petite que possible.


2
Ah d'accord. Donc, en gros, réduire la complexité de l'état aide à obtenir une représentation minimale d'une langue donnée, plutôt que de faciliter le traitement?
Airmine

De plus, comme la plupart des algorithmes sur les automates dépendent directement de la complexité des états, la minimisation des états se fait souvent avec un motif ultérieur de minimisation de la complexité de calcul.
Denis

9

Permettez-moi d'ajouter un exemple concret à l'excellente réponse de Jeffrey Shallit.

Supposons que vous souhaitiez créer un dictionnaire Scrabble (TM). Vous pouvez penser à plusieurs façons de représenter votre dictionnaire, comme une liste de mots, des essais (arbres de lettres) ou des automates déterministes. Selon [1], minimiser un trie à un dawg [= DFA] produit une économie d'espace incroyable; le nombre de nœuds est réduit de 117 150 à 19 853. Le lexique représenté comme une liste de mots bruts prend environ 780 kilo-octets, tandis que notre dawg peut être représenté en 175 kilo-octets.

Comme vous pouvez le voir, la complexité de l'état importe vraiment dans ce cas, surtout si vous voulez écrire un programme efficace comme l'ont fait les auteurs.

[1] Appel et Jacobson Le programme de scrabble le plus rapide au monde , Communications de l'ACM 31 , 572-578 (1988).


4

La preuve qu'il est possible de déterminer si une grammaire arbitraire sans contexte déterministe (ou de manière équivalente un automate déterministe pushdown) a un automate à états finis équivalent décrivant le même langage est essentiellement une preuve de la complexité des états des automates finis décrivant des langages sans contexte déterministes: la limite de la taille de ces automates finis en termes d'automates déterministes donne des limites sur la durée de la procédure de décision.

Pour plus de détails, voir « Régularité et problèmes associés pour les automates déterministes à refoulement » par Leslie G. Valiant.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.