Comment un NFA utilise-t-il les transitions epsilon?

12

Dans l'image ci-dessous, j'essaie de comprendre exactement ce que cette NFA accepte.

entrez la description de l'image ici

Ce qui me déroute, c'est le saut à .q 0ϵq0

  • Si un est entré, le système passe-t-il à la fois à et (l'état d'acceptation)?q 0 q 10q0 q1

  • Si un est entré, le système passe-t-il à la fois à et ?q 1 q 21q1q2

  • Le système passe-t-il uniquement à (état accepté), si aucune entrée n'est donnée (chaîne vide)?q1

user3472798
la source
2
Revenons aux définitions: un NFA accepte un mot si n'importe quel calcul sur lui accepte. Les NFA ne sont pas, en soi, des "algorithmes" au sens où le sont les DFA.
Raphael

Réponses:

10

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ϵq0q1

Si votre chaîne est '0', ce sera à nouveau dans etq 1q0q1

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 1q2q0q2q1q0q1

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ϵ0q0q1q20111ϵ00111

J'espère que cela vous a aidé, si vous avez d'autres doutes, demandez simplement!

H_DANILO
la source
7
"cela signifie que vous êtes automatiquement dans les DEUX états" - je ne pense pas que ce soit une intuition utile, c'est-à-dire qu'il représente le non-déterminisme de manière erronée.
Raphael
Pourquoi cela représente-t-il mal? Eh bien, par la définition de delta sur le non-déterminisme, vous obtenez un ensemble d'état au lieu de seulement 1 correctement? Cela peut signifier seulement que vous êtes dans les deux états.
H_DANILO
Il promeut l'idée que les machines non déterministes "essaient toutes les solutions en parallèle". Ce n'est pas ce qui se passe, algorithmiquement parlant. Le non-déterminisme est un formalisme descriptif, pas une technique algorithmique.
Raphael
J'ai essayé de le dire de manière compréhensible car il a du mal à comprendre les principes du non-déterminisme de manière théorique
H_DANILO
@Raphael Quelle serait une intuition plus utile, à votre avis?
Andrey Portnoy
6

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 1q0q0q1q1

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 .q00q0q10q01q21q1q11

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+011101


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.ϵϵ

Rick Decker
la source
-1

J'ai essayé de créer DFA pour ce NFA

- ensemble alphabet

QEnsemble d'états

σ(Q×(ϵ))P(Q) fonction d'état

q0=q0

FQ,F={q0}

Parce que chaque NFA a un DFA égal, nous pouvons construire DFA pour ce NFA donné.M

alphabet - le même

Q=P(Q) - états

L'état actuel estRP(Q)

E(R) - fermeture de epsilon retourne un ensemble d'états accessibles sur zéro ou plus - connexions pour chaqueϵrR

σ(R,a)=rRE(σ(r,a)) -transitions

q0=E({q0})

F=P(Q)÷F

Certains calculent sur ce FSM

1. ϵ en entrée: l'état initial inclut pour que FSM accepteq0=E({q0})={q0,q1}q1ϵ

2. 0 en entrée: pour que FSM accepteσ({q0,q1},0)=E(σ(q0,0))E(σ(q1,0))={q0,q1}{}={q0,q1}0

au moins{ϵ,0}L(M)

Merci à David Richerby

OrangeFish
la source
Merci de me remercier mais je ne vois pas vraiment comment cela répond à la question. Vous n'avez pas établi la langue acceptée par la machine et vous n'avez répondu à aucune des trois questions à puces.
David Richerby
1) lorsque l'entrée est (chaîne vide), l'état FSM est 2) lorsque l'entrée est ou même état FSM est ces deux sujets des questions initiales, n'est-ce pas? { q 0 , q 1 } 0 0 { q 0 , q 1 }ϵ{q0,q1}00{q0,q1}
OrangeFish