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:
l'etat initial est l'état 0 et l'état final est l'état 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 | c | épsilone ----------------------------------- 0 | ensemble vide | {1;3} 1 | {2} | ensemble vide 2 | ensemble vide | {1;3} 3 | ensemble vide | ensemble vide
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]=K signifie que K est l'état atteint en partant de l'état E et en suivant la transition 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é:
or, dans l'AFN, il y a une transition épsilone de 0 à 3. On aurai donc plutôt dû obtenir un table d'AFD semblable à ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 | c -------- A | B B | B
quelqu'un voit-il où je me suis gouré?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 | c ------ A | A
Partager