Nous savons que les DFA sont équivalents aux NFA en termes de pouvoir d'expressivité; il existe également un algorithme connu pour convertir les NFA en DFA (malheureusement je connais maintenant l'inventeur de cet algorithme), qui dans le pire des cas nous donne états, si notre NFA avait états. S
Ma question est: qu'est-ce qui détermine le pire des cas?
Voici une transcription d'un algorithme en cas d'ambiguïté:
Soit un NFA. Nous construisons un DFA oùA ′ = ( Q ′ , Σ , δ ′ , q ′ 0 , F ′ )
- ,
- ,
- , et
- ,
où est la fonction de transition élargie de . A
Réponses:
L'algorithme auquel vous vous référez s'appelle Powerset Construction et a été publié pour la première fois par Michael Rabin et Dana Scott en 1959.
Pour répondre à votre question comme indiqué dans le titre, il n'y a pas de DFA maximal pour une langue régulière, car vous pouvez toujours prendre un DFA et ajouter autant d'états que vous le souhaitez avec des transitions entre eux, mais sans transition entre l'un des états d' origine et l'un des nouveaux. Ainsi, les nouveaux états ne seront pas accessibles depuis l'état initial , donc le langage accepté par l'automate ne changera pas (puisque restera le même pour tous les ) .δ ( q 0 , w ) w ∈ Σ *q0 δ^(q0,w) w∈Σ∗
Cela dit, il est clair qu'il ne peut y avoir de conditions sur un NFA pour que son DFA équivalent soit maximal, car il n'y a pas de DFA équivalent unique . En revanche, le DFA minimal est unique jusqu'à l'isomorphisme.
Un exemple canonique d'un langage accepté par un NFA avec états avec un DFA équivalent de états est Un NFA pour est , avec , et pour . Le DFA résultant de l'application de la construction du jeu de puissance à ce NFA aura2 n L = { w ∈ { 0 , 1 } ∗ : | w | ≥ n et le n symbole -ème du dernier est 1 } . L A = ⟨ Q , { 0 , 1 } , δ , q 0 , { q n + 1 } ⟩ δ ( q 0 , 0 )n+1 2n
la source
la source
Je crois que c'est une question à la frontière de la connaissance, c'est-à-dire essentiellement une question de recherche. À partir d'une recherche rapide sur Google, il semble être principalement ouvert. De plus, depuis de nombreuses années, je pense qu'il est important et lié aux limites inférieures de la théorie de la complexité. Vous ne mentionnez pas directement une analyse statistique mais c'est ce qu'implique votre question. Voici deux exemples d'études statistiques sur les DFA / NFA qui sont similaires pour montrer l'approche générale des questions de ce type. Il semble que la recherche empirique fondamentale sur des questions comme celle-ci soit encore largement inexplorée. Certes, le 2e ne se rapporte pas directement à votre question mais c'est le plus proche que j'ai pu trouver des recherches en cours.
Cette métrique serait liée aux métriques de la théorie des graphes telles que la densité des bords, etc. Il y a probablement une métrique très importante de théorie des graphes ou un mélange de métriques qui estime la «explosion», mais ce n'est pas immédiatement évident pour moi. Je pourrais suggérer quelque chose comme des métriques de coloration de graphique ou des métriques de clique peut-être. Ensuite, testez la métrique contre les deux ensembles "gonflement" vs "non gonflé".
Jusqu'à présent, les autres réponses à votre question ne donnent qu'un exemple de "gonflement" (utile pour une étude de cas) mais n'abordent pas le problème clé d'une métrique générale.
Un autre domaine dans lequel examiner un programme de recherche empirique développé avec succès est la recherche sur les points de transition SAT. Cela a développé des liens très profonds avec les concepts de la physique et de la thermodynamique. Il me semble probable que des concepts similaires s'appliquent ici. Par exemple, on est susceptible de trouver des métriques de type point de transition analogues; probablement la densité des bords, etc. Remarquez des parallèles avec la théorie de la compressibilité de Kolmogorov.
Je suppose également que les NFA qui "explosent" par rapport à ceux qui ne le sont pas sont en quelque sorte assez analogues aux instances "dures" vs "faciles" de problèmes NP-complets.
Une autre façon d'étudier ce problème serait de formuler un problème de minimisation des NFA. C'est-à-dire, étant donné un DFA, trouver le NFA minimal, dont la dernière fois que j'ai entendu (il y a de nombreuses années) était toujours un problème ouvert.
[1] Sur les performances des algorithmes de minimisation des automates Marco Almeida, Nelma Moreira, Rogério Reis
[2] Automates ne reconnaissant aucun mot: une approche statistique Cristian S. Calude, Cezar Câmpeanu, Monica Dumitrescu
la source