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):
Une machine Moore peut être définie comme un 6-tuple composé des éléments suivants:( Q , q0, Σ , Π , δ, γ)
- un ensemble fini d'états Q
- un état de départ (également appelé état initial) qui est un élément de Qq0Q
- un ensemble fini appelé l'alphabet d'entrée Σ
- un ensemble fini appelé l'alphabet de sortie Λ
- une fonction de transition mappant un état et l'alphabet d'entrée à l'état suivant δ:Q×Σ→Q
- une fonction de sortie mappant chaque état à l'alphabet de sortie γ: Q → Π
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 .
Etant donné un langage , et une paire de chaînes x et y , définir une extension de distinction pour être une chaîne z de telle sorte que exactement l' un des deux chaînes x z et y z appartient à L . Définissez une relation
R L sur les chaînes par la règle que x R L y ssi il n'y a pas d'extension distinctive pour x et y . Il est facile de montrer que
R L est une relation d'équivalence sur les chaînes, et donc il divise l'ensemble de toutes les chaînes en classes d'équivalence.LXyzx zyzLRLx RLyXyRL
Le théorème de Myhill-Nerode déclare que est régulier si et seulement si
R L a un nombre fini de classes d'équivalence, et de plus que le nombre d'états dans le plus petit automate fini déterministe (DFA) reconnaissant L est égal au nombre de classes d'équivalence dans R L .LRLLRL
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 .qWqRL
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 .LWqRL
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.RTTRLRT
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 .TxyzT(xz)=T(x)uT(yz)=T(y)vu≠vzxy
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:PQSe
∀e∈Π:Se={q∈Q∣γ(q)=e}
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′
SSi
SiS′∈P (les sous-ensembles S i remplacent S dans P )∀q∈Si,δ(q,a)∈S′
SiSP
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∈Σ
n=|Q|s=|Σ|
nO(sn2)
Je n'ai aucune référence pour cette minimisation des machines Moore. Il est peut-être inclus dans son article:
Moore, Edward F (1956). "Expériences de Gedanken sur des Machines Séquentielles". Automata Studies , Annals of Mathematical Studies (Princeton, NJ: Princeton University Press) (34): 129-153.
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.
O(snlogn)