L'algorithme de Brzozowski peut être étendu aux automates de Moore mais sa complexité temporelle est exponentielle en général. Existe-t-il un autre algorithme pour minimiser les automates Moore? Quels sont les temps d'exécution de ces algorithmes, le cas échéant?
10
Réponses:
L'algorithme de minimisation DFA d'origine a été conçu pour Moore Machines , guidé par leur comportement apparemment plus observable. Mais l'algorithme présenté ici est une reconstruction à partir de la minimisation DFA, puisque j'ai découvert les preuves historiques après coup.
Après Wikipedia (avec quelques changements de notation):
D'après cette définition, une machine Moore est un transducteur déterministe à états finis.
Je n'ai aucune référence pour la minimisation des automates Moore. Cependant, il ne semble pas trop difficile d'imaginer un algorithme, dérivé de l'algorithme utilisé pour les automates à états finis déterministes.
L'idée de la minimisation DFA est basée sur la caractérisation Myhill-Nerode des langages réguliers .
En effet , chaque état du plus petit DFA est telle que W q tel que défini ci - dessus est l' une des classes d'équivalence pour la relation R L .q Wq RL
Pour un DFA non minimal pour la langue régulière , il est facile de montrer que chaque jeu W q contient des chaînes qui appartiennent tous à une même classe équivalente par rapport à R L .L Wq RL
Par conséquent, la minimisation du DFA consiste en fait à fusionner des états (considérés comme des ensembles de chaînes équivalentes), chaque fois qu'il est démontré que deux états distincts contiennent des chaînes équivalentes.
Il existe à cet effet deux algorithmes assez rapides, l'algorithme de Moore (1956) qui est au temps et l'algorithme de Hopcroft (1971) au temps O ( n log n ) .O(n2) O(nlogn)
L'extension de Moore automates est mieux compris dans la redéfinition de la relation d'équivalence en tant que pour un transducteur T . La relation R L s'inquiétait de savoir si une contribution future conduirait de manière équivalente à un état acceptant. La relation d'équivalence R T des automates de Moore cherche à savoir si les entrées futures produiront la même sortie.RT T RL RT
Par conséquent, étant donné un transducteur , et deux chaînes x et y , nous définissons une extension distinctive comme étant une chaîne z telle que T ( x z ) = T ( x ) u et T ( y z ) = T ( y ) v avec u ≠ v , c'est-à-dire tel que le comportement de sortie du transducteur diffère pour z selon qu'il suit x ou y .T x y z T(xz)=T(x)u T(yz)=T(y)v u≠v z x y
Encore une fois, est une relation d'équivalence, divisant toutes les chaînes de Σ ∗ en classes d'équivalence. Dans le cas d'une machine Moore, ces classes correspondront à nouveau à l'état du transducteur minimal.RT Σ∗
L'algorithme suivant imite l'algorithme de Moore pour la minimisation DFA.
Nous définissons une partition initiale de Q en classes d'états S e comme suit:P Q Se
Ensuite, nous avons divisé les classes en comme suit:P
répéter successivement pour chaque classe d'états , jusqu'à ce qu'aucun changement ne se répète ∀ a ∈ Σ ,S
∀a∈Σ,
Si alorsne riendiviser d'autre S en sous-ensembles S i de telle sorte quepour chaque sous-ensemble S i , il existe une classe différente S ′ ∈ P telle que ∀ q ∈ S i ,∃S′∈P,∀q∈S,δ(q,a)∈S′
S Si
Si S′∈P (les sous-ensembles S i remplacent S dans P )∀q∈Si,δ(q,a)∈S′
Si S P
Lorsqu'il ne reste aucune classe à diviser, les classes d'états restantes formeront les états de la machine Moore minimale.
Par construction, tous les états d'une classe ont la même sortie qui est la sortie de la classe.
De même, pour toute entrée , tous les états d'une classe passent à un état de la même autre classe, qui définit la fonction de transition pour la machine minimale de Moore.a∈Σ
Je n'ai aucune référence pour cette minimisation des machines Moore. Il est peut-être inclus dans son article:
Ce document est la principale référence introduisant Moore Machines . C'est également la référence de l'algorithme de minimisation DFA de Moore . Il serait donc surprenant que l'adaptation de l'algorithme à la minimisation des machines Moore n'ait pas au moins été suggérée dans cet article. J'ai vérifié le papier et la version de l'algorithme de minimisation présentée est en fait pour les machines Moore, pas pour DFA. Le papier est bien écrit, mais le style de l'époque le rend un peu plus difficile à lire. Il est intéressant de voir que de nombreuses idées de la théorie de Myhill-Nerode des machines à états finis sont déjà esquissées dans cet article.
la source
Une version de l'algorithme de Brzozowski utilisant des dérivées d'expressions régulières est donnée dans [2], chapitre 12, section 4, où il est crédité à [4]. Voir [1] et [3] pour le cas plus général des transducteurs sous- séquentiels (la terminologie est un peu dépassée et le terme transducteur séquentiel est probablement plus approprié de nos jours).
[1] C. Choffrut, Minimiser les transducteurs sous-séquentiels: une étude, Theoret. Comp. Sci. 292 (2003), 131-143.
[2] S. Eilenberg, Automates, langages et machines, vol. A, Academic Press, 1974.
[3] J.-E. Pin, Un tutoriel sur les fonctions séquentielles . (Diapositives)
[4] GN Raney, Fonctions séquentielles, JACM 5 (1958), 177-180.
la source
L'algorithme de Brzozowski est un mauvais point de départ (si vous êtes concerné par le pire cas d'exécution asymptotique). Même Wikipédia vous en dit autant:
L'algorithme a un temps d'exécution exponentiel dans le pire des cas, même sur DFA car il calcule un automate pour l'inverse, qui peut être exponentiellement volumineux. Votre problème ne vient donc pas de l'extension aux transducteurs.
Essayez d'adapter un autre algorithme de minimisation DFA.
la source