NFA avec nombre exponentiel d'états lors de la détéminisation

10

Comment puis-je construire un exemple d'un DFA qui a états où le NFA équivalent a états. Évidemment, le jeu d'états du DFA doit contenir tous les sous-jeux du jeu d'états du NFA, mais je ne sais pas par où commencer. Des suggestions pour me mettre sur la bonne voie? n2nn

saadtaame
la source
Cette question n'est pas claire. En général, il existe une infinité de DFA équivalents pour une langue régulière donnée et une infinité de NFA équivalents pour une langue régulière donnée. Si vous voulez des DFA minimaux avec états, ce n'est même pas toujours possible, car différents NFA peuvent reconnaître le même langage et avoir différents nombres d'états, mais correspondent au même DFA minimal. Si, en plus, vous ne voulez considérer que les NFA "minimes", cela devient un peu plus intéressant ...2n
Patrick87
2
Patrick, je pense que l'OP signifie un exemple où le DFA minimal est exponentiellement plus grand que le NFA minimal.
Yuval Filmus
@ Patrick87 Je ne cherche pas d'algorithme. Tout ce que je veux, c'est un exemple d'une paire de machines: DFA avec états et NFA avec états acceptant la même langue. 2nn
saadtaame
@saadtaame: C'est trivial: prenez n'importe quel DFA et ajoutez suffisamment d'états pour atteindre . Des exemples intéressants sont ceux où le DFA équivalent minimal a autant d'états. 2n
Raphael
1
Notez que l'article Wikipedia sur la minimisation DFA fait référence à des exemples appropriés (bien que vous deviez vous-même déterminer le petit NFA).
Raphael

Réponses:

18

L'exemple standard est la langue de tous les mots d'un alphabet de taille qui ne contiennent pas toutes les différentes lettres. Il existe un NFA acceptant avec états (ou états si vous autorisez plusieurs états de départ): devinez d'abord une lettre qui manque, puis passez (avec un -move) à un état acceptant avec auto-boucles pour toutes les lettres autres que .A n L n + 1 n a ϵ ALAnLn+1naϵA

Tout DFA pour nécessite au moins états. Cela peut être vu en utilisant le théorème de Myhill-Nerode. Soit deux sous-ensembles différents de mots et qui contiennent respectivement toutes et uniquement les lettres de . Sans perte de généralité, supposons , et soit . Ensuite tandis que .2 n S 1 , S 2 A w ( S 1 ) , w ( S 2 ) S 1 , S 2 a S 1S 2 w = w ( A - a ) w ( S 1 ) w L w ( S 2 ) w LL2nS1,S2Aw(S1),w(S2)S1,S2aS1S2w=w(Aa)w(S1)wLw(S2)wL

Yuval Filmus
la source
10

ceci est un exercice dans le livre "Finite Automata" de Mark V. Lawson Heriot-Watt University, Edinburgh, page 68:

Soit . Montrer que le langage peut être reconnu par un automate non déterministe avec états. Montrez que tout automate déterministe qui reconnaît ce langage doit avoir au moins états. Cet exemple montre qu'une augmentation exponentielle du nombre d'états passant d'un automate non déterministe à un automate déterministe correspondant est parfois inévitable.( 0 + 1 ) 1 ( 0 + 1 ) n - 1 n + 1 2 nn1(0+1)1(0+1)n1n+12n

MK Dadsetani
la source
10

Je suppose que vous voulez dire que le DFA optimal a états. Peut-être que cela ne vous donne pas 2 n états, mais c'est Ω ( 2 n ) .2n2nΩ(2n)

Extrait de "Communication Complexity" de Kushilevitz et Nisan dans l'exercice 12.6:

"Pour un constant [entier non négatif] , considérons le langage (fini) L c = { w w w { 0 , 1 } c } ."cLc={www{0,1}c}

et le livre continue de vous demander de prouver que vous pouvez trouver un co-NFA reconnaissant qui utilise les états O ( c ) et aussi que vous ne pouvez pas faire mieux que les états Ω ( 2 c ) pour un DFA.LcO(c)Ω(2c)

Timothy Sun
la source
De plus, la preuve de la deuxième partie "nécessite" une complexité de communication, ce qui peut ne pas convenir à vos besoins.
Timothy Sun
Merci d'avoir répondu! Qu'entendez-vous par co-NFA?
saadtaame
Fondamentalement, remplacez «accepter» par «rejeter» dans la définition d'un NFA. Autrement dit, si aucun des chemins possibles ne mène à un état de rejet, vous acceptez, sinon vous rejetez.
Timothy Sun
En fait, la borne inférieure suit assez facilement de Myhill-Nerode. (En fait, vous pouvez obtenir quelque chose comme ( c + 1 ) 2 c .) Mais mon co-NFA utilise des états Θ ( c 2 ) . 2c(c+1)2cΘ(c2)
Yuval Filmus
Les langues finies sont quelque peu ennuyeuses à cet égard. Voir aussi ici .
Raphael
9

A={a,b}Qn={0,1,,n1}An=(Qn,A,En,{0},{0})n 2 n

En={(i,a,i+1)0in1}{(n1,a,0)}{(i,b,i)1in1}{(i,b,0)1in1}}
n2n
J.-E. Épingle
la source
3
Très intelligent! La langue acceptée par cet automate est , où compose de tous les mots contenant la lettre au plus fois. W n - 1 a n - 1(an+aWn1b)Wn1an1
Yuval Filmus
2
@ yuval-filmus Cet exemple n'est pas le mien. Je voulais donner une référence, mais pour le moment je ne me souviens pas où je l'ai vu.
J.-E.