La minimisation des automates finis déterministes (DFA) est un problème qui a été étudié à fond dans la littérature, et plusieurs algorithmes ont été proposés pour résoudre le problème suivant: Étant donné un DFA , calculer un DFA minimal correspondant acceptant le même langage que . La plupart de ces algorithmes fonctionnent en temps polynomial.A
Cependant, je me demande si la variante de décision de ce problème - "étant donné un DFA , minimale?" - peut être résolu plus efficacement que le calcul réel de l'automate minimal. Évidemment, cela peut également être fait efficacement en exécutant par exemple l'algorithme de raffinement de partition de Hopcroft, puis en décidant si toutes les partitions contiennent précisément un état.A
Comme Yuval Filmus le suggère dans sa réponse , la variante de décidabilité peut être résolue plus rapidement, éventuellement en utilisant les algorithmes standard. Malheureusement, je ne vois pas comment (j'espère ne pas manquer un point évident ici).
Yuval souligne dans les commentaires ici que les algorithmes les plus connus (comme celui ci-dessus) fonctionnent dans le temps pour les alphabets de taille constante. Par conséquent, je ne suis pas seulement intéressé par des gains asymptotiquement significatifs en temps d'exécution, car ceux-ci semblent plutôt improbables. Ce qui me dérange le plus, c'est que je ne peux imaginer aucun "raccourci" qui pourrait être tiré du fait que nous ne sommes intéressés que par un oui-non-réponse - pas même un raccourci qui permet de gagner un temps asymptotiquement négligeable. Je pense que chaque algorithme sensé qui décide de la minimalité d'un DFA devrait en fait minimiser le DFA et voir si quelque chose change au cours du processus.
la source
Réponses:
Ce n'est peut-être pas exactement le genre de réponse que vous cherchez, mais comme vous avez posé des questions sur les problèmes de décision, j'ai pensé que vous pourriez être intéressé par la complexité du problème. Il est complet.NL
Maintenant, qu'est-ce que cela signifie pour un DFA d'être minimal? Il existe deux propriétés:
Chaque état est accessible: telle sorte que l'on puisse atteindre q à partir de l'état initial s en suivant w ; en symboles: s → w q .∀q∈Q∃w∈Σ∗ q s w s→wq
Chaque paire d'états se distingue: avec q ≠ r ∃ w ∈ Σ ∗ tels que q → w s et r → w t et | { s , t } ∩ F | = 1 (un seul des s , t est un état accepté).∀q,r∈Q q≠r ∃w∈Σ∗ q→ws r→wt | {s,t}∩F| =1 s , t
Notez que le peut être calculé dans l'espace logarithmique (c'est-à-dire L ; suivez simplement votre position actuelle en suivant w une lettre à la fois). De plus, il n'y a qu'un nombre fini d'alternances entre ∀ et ∃ donc en conséquence du théorème Immerman-Szelepcsenyi , nous avons que le problème est en N L .x →wy L w ∀ ∃ N L
La façon la plus simple de voir qu'il est difficile pour est de remarquer que la propriété 1 résout l' inaccessibilité dirigée s - t , qui est le problème dur prototypique. Mais même si vous ne considérez que les DFA accessibles, le problème est toujours difficile (c'est-à-dire que la propriété 2 est N L -hard) et vous pouvez trouver une preuve relativement simple dans le lemme 2.2 de Cho & Huynh (1992) .N L s t N L
Bien sûr, j'ai utilisé le non-déterminisme, donc c'est un peu une toux dans la façon dont il diffère de l'algorithme de Hopcroft. Mais nous savons que , vous pouvez donc utiliser ces constructions pour vous procurer un algorithme plus économe en espace que Hopcroft (qui, par sa nature même, doit garder une trace de n nombreuses partitions).N L ⊆ L2 n
la source