bonjour,
le but de cette discussion est de savoir où je me suis gouré
en suivant la méthode du dragon book pour faire un AFN pour l’expression régulière 'c*' (zéro, un ou plusieurs 'c’), on obtient l’AFN suivant:
| c | épsilone
-----------------------------------
0 | ensemble vide | {1;3}
1 | {2} | ensemble vide
2 | ensemble vide | {1;3}
3 | ensemble vide | ensemble vide
l’etat initial est l’état 0 et l’état final est l’état 3
une epsilone-fermeture d’un ensemble E d’états de l’AFN, est l’ensemble des état que l’on peut atteindre en partant d’un état de E et en ne suivant que des transitions épsilone, avec E est inclus dans l’épsilone-fermeture de E. nous allons appeler "trans(ensemble E,étiquette e)" l’ensemble des états dans lesquelles on aboutit en partant, dans l’AFN, d’un état de E par une transition e. D est la table de transition de l’AFD recherché. D_trans[E,e] signifie l’état atteint en partant de E et en suivant e, dans l’AFD.
on commence avec l'épsilone-fermeture de {0}, qui est {0;1;3}, soit A={0;1;3}
trans(A,c)={2}
B = epsilone-fermeture({2}) = {1;2;3}
le dragon book dit que, avec ces deux assertions, on en déduit que D_trans[A,c]=B
trans(B,c) = {2}
épsilone-fermeture({2})={1;2;3}=B D_trans[B,c] = B
cela nous donne la table de l'AFD recherché:
``````text
| c
--------
A | B
B | B
or, dans l’AFN, il y a une transition épsilone de l’état 0 à l’état 3. On aurai donc plutôt dû obtenir un table d’AFD semblable à ceci:
| c
------
A | A
quelqu’un voit-il où je me suis gouré?