calculer le NFA minimal pour un DFA


17

Il y a de nombreuses années, j'ai entendu dire que le calcul du NFA minimal (automate fini non déterministe) à partir d'un DFA (déterministe) était une question ouverte, par opposition à la direction inverse qui est connue depuis des décennies et est bien étudiée avec un efficace algorithme. Quelqu'un a-t-il trouvé un algorithme?O(nlgn)

Une recherche rapide m'a donné ce document qui prouve que c'est définitivement un problème difficile. Apparemment, aucun algorithme n'est donné.

[1] Les problèmes NFA minimes sont difficiles / Tao Jiang et B. Ravikumar

Ce problème m'a été rappelé par la question suivante sur le site CS.SE pour laquelle un algorithme de minimisation DFA-> NFA serait étroitement lié. Cette question suivante me semble être au niveau de la recherche. J'ai suggéré de le migrer vers TCS et j'ai écrit une réponse suggérant une attaque statistique / empirique.

[2] Quelles sont les conditions pour qu'un NFA pour que son DFA équivalent soit de taille maximale?


4
Le document que vous citez montre l'exhaustivité de PSPACE. En particulier, le problème est dans PSPACE, qui suggère immédiatement un algorithme. Quel type d'algorithmes recherchez-vous? Pratiques et / ou heuristiques? Limites les plus connues sur l'exposant de la durée de fonctionnement? Autre chose?
Joshua Grochow

8
Ce n'est pas si inhabituel, en fait. Avant que le problème ne soit connu comme étant PSPACE-complet, toutes les tentatives de développement d'algorithmes efficaces ont échoué, si peu a été publié. Une fois que le problème était connu pour être complet avec PSPACE, personne n'a essayé de développer des algorithmes efficaces, car ils savaient qu'ils échoueraient, donc encore moins a été publié.
Jeffε

4
(1) Que signifie «direction inversement connue depuis des décennies et bien étudiée avec un algorithme O (n lg n) efficace»? Le DFA minimal pour un NFA avec n états peut avoir une taille exponentielle dans n, il nécessiterait donc un codage de sortie non trivial. (2) Il n'existe pas de «NFA» minimal pour une langue régulière donnée. Comparez cela avec l'existence du DFA minimal.
Tsuyoshi Ito

1
JEFFE vous avez un bon point mais je suis sûr qu'il y a beaucoup de problèmes complets de Pspace qui ont encore des algorithmes sophistiqués qui profitent de la structure du problème en plus d'énumérer simplement toutes les solutions possibles, vrai? admettre, je ne peux penser à aucun hors de ma tête. Peut-être que tu peux? devinez que ce serait une autre question intéressante à poser ici.
vzn

2
une+

Réponses:


25

C'est vraiment un problème tenace - et bien étudié -. En ce qui concerne les résultats positifs, un algorithme exact de Kameda et Weiner, une approche heuristique de Polák et une approche récente utilisant des solveurs SAT de Geldenhuys et al. venir à l'esprit. Mais il semble y avoir des résultats beaucoup plus négatifs excluant d'autres approches possibles (par exemple, algorithmes d'approximation, cas spéciaux, modèles moins puissants de NFA, ...) Voir ci-dessous pour quelques références.

T. Kameda et P. Weiner. Sur la minimisation des états des automates finis non déterministes. Transactions de l'IEEE sur les ordinateurs, C-19 (7): 617–627, 1970.

A. Malcher. La minimisation des automates finis est difficile à calculer. Informatique théorique 327: 375-390, 2004.

L. Polák. Minimalisations de NFA à l'aide de l'automate universel. Journal international des fondations de l'informatique, 16 (5): 999-1010, 2005.

G. Gramlich et G. Schnitger. Minimiser les NFA et les expressions régulières. Symposium sur les aspects théoriques de l'informatique (STACS 2005), LNCS 3404, pp. 399–411.

H. Gruber et M. Holzer. Inapproximabilité de l'état non déterministe et de la complexité de transition en supposant P <> NP. Developments in Language Theory (DLT 2007), LNCS 4588, p. 205–216.

H. Gruber et M. Holzer. Complexité informatique de la minimisation NFA pour les langages finis et unaires. Langage et automates Théorie et applications (LATA 2007), pp. 261-272.

H. Björklund et W. Martens. La frontière de tractabilité pour la minimisation des NFA. Colloque international sur les automates, les langues et la programmation (ICALP 2008), LNCS 5126, pp. 27–38.

J. Geldenhuys, B. van der Merwe, L. van Zijl: Réduire les automates finis non déterministes avec les solveurs SAT. Méthodes à états finis et traitement du langage naturel (FSMNLP 2009), LNCS 6062, 81–92.

EDIT (8 juin 2015)

Mise à jour: L'article suivant présente un algorithme heuristique pour réduire la taille des automates Büchi non déterministes, ainsi que des expériences sur des automates aléatoires. Comme ils le déclarent dans la conclusion, leur méthode s'applique également aux NFA: "Bien que nous ayons présenté nos méthodes dans le contexte des automates Büchi, la plupart d'entre elles se reportent trivialement au cas plus simple des automates sur des mots finis."

Richard Mayr, Lorenzo Clemente. Minimisation avancée des automates. POPL 2013. Rapport technique détaillé EDI-INF-RR-1414.

Leur outil de ligne de commande Reduce v1.2 peut être invoqué avec l'option "-finite" pour réduire un NFA donné. L'implémentation est open source et publiée sous la licence publique générale GNU.


3
Savez-vous s'il existe des implémentations open source de l'un de ces coups de pied?
jmite

Salut Hermann, merci beaucoup pour toutes les infos! Je sais qu'étant donné un NFA, il est difficile de trouver le plus petit NFA équivalent. Mais qu'en est-il de ce qui suit: étant donné un DFA, trouvez le plus petit NFA équivalent. C'est dur? Quelle difficulté?
Michael Wehar

Désolé, je vois maintenant! Le premier article répertorié traite de ceci: springerlink.com/content/y61724u571v487x5 De plus, un autre article que vous avez répertorié traite de ceci pour les langues régulières finies: hermann-gruber.com/data/lata07-final.pdf Merci d'avoir clarifié cela pour moi! :)
Michael Wehar
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.