Vendredi 26 janvier 2024
Ce programme affiche la liste des états visités avec profondeur et transitions. Si on lui donne un argument, il s’en sert comme nom de fichier dans lequel il écrit un automate au format HTML utilisant vis.js. Exemple d’utilisation :
gcc -o peterson peterson.c ./perterson peterson.html
Cela répond au TD 1 question 3 du cours Introduction à la vérification par Anca Muscholl : voir la feuille.
--- Profondeur 0 --- P1=2 P2=2 b1=0 b2=0 x=1 (P1) -> P1=3 P2=2 b1=1 b2=0 x=1 (P2) -> P1=2 P2=3 b1=0 b2=1 x=1 P1=2 P2=2 b1=0 b2=0 x=2 (P1) -> P1=3 P2=2 b1=1 b2=0 x=2 (P2) -> P1=2 P2=3 b1=0 b2=1 x=2 --- Profondeur 1 --- P1=2 P2=3 b1=0 b2=1 x=1 (P1) -> P1=3 P2=3 b1=1 b2=1 x=1 (P2) -> P1=2 P2=4 b1=0 b2=1 x=1 P1=2 P2=3 b1=0 b2=1 x=2 (P1) -> P1=3 P2=3 b1=1 b2=1 x=2 (P2) -> P1=2 P2=4 b1=0 b2=1 x=1 P1=3 P2=2 b1=1 b2=0 x=1 (P1) -> P1=4 P2=2 b1=1 b2=0 x=2 (P2) -> P1=3 P2=3 b1=1 b2=1 x=1 P1=3 P2=2 b1=1 b2=0 x=2 (P1) -> P1=4 P2=2 b1=1 b2=0 x=2 (P2) -> P1=3 P2=3 b1=1 b2=1 x=2 --- Profondeur 2 --- P1=2 P2=4 b1=0 b2=1 x=1 (P1) -> P1=3 P2=4 b1=1 b2=1 x=1 (P2) -> P1=2 P2=5 b1=0 b2=1 x=1 P1=3 P2=3 b1=1 b2=1 x=1 (P1) -> P1=4 P2=3 b1=1 b2=1 x=2 (P2) -> P1=3 P2=4 b1=1 b2=1 x=1 P1=3 P2=3 b1=1 b2=1 x=2 (P1) -> P1=4 P2=3 b1=1 b2=1 x=2 (P2) -> P1=3 P2=4 b1=1 b2=1 x=1 P1=4 P2=2 b1=1 b2=0 x=2 (P1) -> P1=5 P2=2 b1=1 b2=0 x=2 (P2) -> P1=4 P2=3 b1=1 b2=1 x=2 --- Profondeur 3 --- P1=2 P2=5 b1=0 b2=1 x=1 (P1) -> P1=3 P2=5 b1=1 b2=1 x=1 (P2) -> P1=2 P2=2 b1=0 b2=0 x=1 P1=3 P2=4 b1=1 b2=1 x=1 (P1) -> P1=4 P2=4 b1=1 b2=1 x=2 P1=4 P2=3 b1=1 b2=1 x=2 (P2) -> P1=4 P2=4 b1=1 b2=1 x=1 P1=5 P2=2 b1=1 b2=0 x=2 (P1) -> P1=2 P2=2 b1=0 b2=0 x=2 (P2) -> P1=5 P2=3 b1=1 b2=1 x=2 --- Profondeur 4 --- P1=3 P2=5 b1=1 b2=1 x=1 (P1) -> P1=4 P2=5 b1=1 b2=1 x=2 (P2) -> P1=3 P2=2 b1=1 b2=0 x=1 P1=4 P2=4 b1=1 b2=1 x=1 (P1) -> P1=5 P2=4 b1=1 b2=1 x=1 P1=4 P2=4 b1=1 b2=1 x=2 (P2) -> P1=4 P2=5 b1=1 b2=1 x=2 P1=5 P2=3 b1=1 b2=1 x=2 (P1) -> P1=2 P2=3 b1=0 b2=1 x=2 (P2) -> P1=5 P2=4 b1=1 b2=1 x=1 --- Profondeur 5 --- P1=4 P2=5 b1=1 b2=1 x=2 (P2) -> P1=4 P2=2 b1=1 b2=0 x=2 P1=5 P2=4 b1=1 b2=1 x=1 (P1) -> P1=2 P2=4 b1=0 b2=1 x=1 20 visités
Commenter la ligne 75 conduit à n’avoir qu’un seul état initial au lieu de deux.
--- Profondeur 0 --- P1=2 P2=2 b1=0 b2=0 x=1 (P1) -> P1=3 P2=2 b1=1 b2=0 x=1 (P2) -> P1=2 P2=3 b1=0 b2=1 x=1 --- Profondeur 1 --- P1=2 P2=3 b1=0 b2=1 x=1 (P1) -> P1=3 P2=3 b1=1 b2=1 x=1 (P2) -> P1=2 P2=4 b1=0 b2=1 x=1 P1=3 P2=2 b1=1 b2=0 x=1 (P1) -> P1=4 P2=2 b1=1 b2=0 x=2 (P2) -> P1=3 P2=3 b1=1 b2=1 x=1 --- Profondeur 2 --- P1=2 P2=4 b1=0 b2=1 x=1 (P1) -> P1=3 P2=4 b1=1 b2=1 x=1 (P2) -> P1=2 P2=5 b1=0 b2=1 x=1 P1=3 P2=3 b1=1 b2=1 x=1 (P1) -> P1=4 P2=3 b1=1 b2=1 x=2 (P2) -> P1=3 P2=4 b1=1 b2=1 x=1 P1=4 P2=2 b1=1 b2=0 x=2 (P1) -> P1=5 P2=2 b1=1 b2=0 x=2 (P2) -> P1=4 P2=3 b1=1 b2=1 x=2 --- Profondeur 3 --- P1=2 P2=5 b1=0 b2=1 x=1 (P1) -> P1=3 P2=5 b1=1 b2=1 x=1 (P2) -> P1=2 P2=2 b1=0 b2=0 x=1 P1=3 P2=4 b1=1 b2=1 x=1 (P1) -> P1=4 P2=4 b1=1 b2=1 x=2 P1=4 P2=3 b1=1 b2=1 x=2 (P2) -> P1=4 P2=4 b1=1 b2=1 x=1 P1=5 P2=2 b1=1 b2=0 x=2 (P1) -> P1=2 P2=2 b1=0 b2=0 x=2 (P2) -> P1=5 P2=3 b1=1 b2=1 x=2 --- Profondeur 4 --- P1=2 P2=2 b1=0 b2=0 x=2 (P1) -> P1=3 P2=2 b1=1 b2=0 x=2 (P2) -> P1=2 P2=3 b1=0 b2=1 x=2 P1=3 P2=5 b1=1 b2=1 x=1 (P1) -> P1=4 P2=5 b1=1 b2=1 x=2 (P2) -> P1=3 P2=2 b1=1 b2=0 x=1 P1=4 P2=4 b1=1 b2=1 x=1 (P1) -> P1=5 P2=4 b1=1 b2=1 x=1 P1=4 P2=4 b1=1 b2=1 x=2 (P2) -> P1=4 P2=5 b1=1 b2=1 x=2 P1=5 P2=3 b1=1 b2=1 x=2 (P1) -> P1=2 P2=3 b1=0 b2=1 x=2 (P2) -> P1=5 P2=4 b1=1 b2=1 x=1 --- Profondeur 5 --- P1=2 P2=3 b1=0 b2=1 x=2 (P1) -> P1=3 P2=3 b1=1 b2=1 x=2 (P2) -> P1=2 P2=4 b1=0 b2=1 x=1 P1=3 P2=2 b1=1 b2=0 x=2 (P1) -> P1=4 P2=2 b1=1 b2=0 x=2 (P2) -> P1=3 P2=3 b1=1 b2=1 x=2 P1=4 P2=5 b1=1 b2=1 x=2 (P2) -> P1=4 P2=2 b1=1 b2=0 x=2 P1=5 P2=4 b1=1 b2=1 x=1 (P1) -> P1=2 P2=4 b1=0 b2=1 x=1 --- Profondeur 6 --- P1=3 P2=3 b1=1 b2=1 x=2 (P1) -> P1=4 P2=3 b1=1 b2=1 x=2 (P2) -> P1=3 P2=4 b1=1 b2=1 x=1 20 visités
L’automate utilisant vis.js est disponible ici.