Dans l'image ci-dessous, j'essaie de comprendre exactement ce que cette NFA accepte.
Ce qui me déroute, c'est le saut à .q 0
Si un est entré, le système passe-t-il à la fois à et (l'état d'acceptation)?q 0 q 1
Si un est entré, le système passe-t-il à la fois à et ?q 1 q 2
Le système passe-t-il uniquement à (état accepté), si aucune entrée n'est donnée (chaîne vide)?
automata
finite-automata
nondeterminism
user3472798
la source
la source
Réponses:
Chaque fois que vous êtes dans un état qui a une transition , cela signifie que vous êtes automatiquement dans les DEUX états, pour vous simplifier la situation:ϵ
Si la chaîne est vos automates se terminent à la fois par etq 0 q 1ϵ q0 q1
Si votre chaîne est '0', ce sera à nouveau dans etq 1q0 q1
Si votre chaîne est '1', ce ne sera que dans , car si vous regardez à partir du point de , vous avez une transition '1' vers , mais vous devez également regarder si vous êtes dans ( si vous étiez dans vous étiez toujours dans aussi) alors il n'y a pas de transition '1', donc ce chemin alternatif "meurt".q 0 q 2 q 1 q 0 q 1q2 q0 q2 q1 q0 q1
En regardant ces cas, il est facile de voir que vos automates acceptent , , et allant de à , la seule façon d'atteindre est , donc, cela reprend vos automates à , ,0 ∗ q 0 q 1 q 2 0 ∗ 11 ∗ 1 ϵ 0 ∗ 0 ∗ 11 ∗ 1ϵ 0∗ q0 q1 q2 0∗11∗1 ϵ 0∗ 0∗11∗1
J'espère que cela vous a aidé, si vous avez d'autres doutes, demandez simplement!
la source
Dans l'état sans lire aucune entrée, le NFA reste à la fois dans et (dans un univers alternatif, si vous voulez), il passe également à l'état . Ceci est similaire à ce qui se passerait dans un NFA qui avait deux transitions vers des états différents sur une entrée d'un personnage. En particulier, votre NFA accepte la chaîne vide, car sur aucune entrée, il peut effectuer une transition vers l'état d'acceptation .q 0 q 1 q 1q0 q0 q1 q1
Poursuivant votre exemple, de l'état voyant l'entrée , il consommerait ce symbole, resterait dans l'état (la boucle) et passerait également à l'état , acceptant ainsi l'entrée . Dans l'état lisant l'entrée , le NFA passe à l'état . Il peut également ne pas consommer le , passer à l'état dans un autre univers et s'y coincer (et ne pas accepter, car il n'a pas lu toutes les entrées), car il n'y a pas de transition de sur un .q0 0 q0 q1 0 q0 1 q2 1 q1 q1 1
Voyez si vous pouvez vous convaincre que le langage accepté par cette machine est dénoté par l'expression régulière , c'est-à-dire n'importe quelle chaîne composée de zéro ou plus s suivi de rien du tout ou de deux ou plus s.0∗+0∗11∗1 0 1
Soit dit en passant, il existe un algorithme qui prend un NFA avec -moves et produit un NFA équivalent sans -moves, ce que je pense que vous apprendrez sous peu.ϵ ϵ
la source
J'ai essayé de créer DFA pour ce NFA
Parce que chaque NFA a un DFA égal, nous pouvons construire DFA pour ce NFA donné.M′
alphabet - le même
L'état actuel estR∈P(Q)
Certains calculent sur ce FSM
au moins{ϵ,0∗}⊂L(M′)
Merci à David Richerby
la source