MSC I : Réseaux de Petri
Support de cours
TP 2
La journée/vie d'un cueilleur de bananes
II.1 Modification de l'exemple du cours
Reprenez le modèle initial vu en cours planteur.net .
Le réseau est non borné. Vous pouvez en avoir confirmation en demandant la construction du graphe de couverture (cf tp0).
Pour le borner, nous allons procéder à quelques modifications.
- On supprime l'opération de jeter les peaux de bananes
- On suppose maintenant que l'on dispose d'un bananier contenant un nombre fini de bananes (20 par ex).
- On ne peut cueillir une banane que si le bananier en possède.
- Après avoir quitté le jardin, le planteur va dormir.
- Après avoir dormi le planteur retourne au champ.
- Pour ne pas risquer la famine, on remet une banane sur le bananier après l'avoir mangée
- Editez le réseau planteur ainsi modifié.
- Simulez le.
- Construisez son graphe de couverture.
- Assurez-vous que le réseau est borné.
- Construisez son graphe de marquages.
- Assurez-vous qu'il n'y a pas de blocage.
- Etudiez la page consacrée à l' analyse structurelle .
- Quelles informations vous apportent l'analyse structurelle ?
II.2 Ajout d'une notion d'énergie
On reprend le modèle que vous venez d'écrire et on rajoute une notion d'énergie. Cueillir des bananes est fatiguant, ce qui utilisera une unité d'énergie.
Comme il n'habite pas tout près, rentrer chez lui pour se mettre à table lui prendra 5 unités.
Manger des bananes lui redonnera un peu de force avec 2 unités par banane.
Se lever de table lui prendra encore une unité, heureusement dormir le reposera et lui donnera 9 unités d'énergie. Repartir jusqu'à son travail le lendemain lui demandera 9 unités d'énergie.
- Ajouter les contraintes précédentes à votre réseau de Petri.
- Observer l'influence de la valeur initiale de l'énergie du cueilleur sur le comportement du système. Obtenez un réseau borné.
- Proposez une valeur initiale d'énergie permettant d'obtenir
un réseau à la fois borné, infiniment actif et bloquant.
Indication : le problème représenté ici est "monotone" :
Il existe une seule valeur initiale d'énergie E0 pour laquelle
le réseau marqué correspondant est à la fois borné et infiniment actif.
Pour les valeurs d'énergie au-dessus, le réseau est non borné. Pour les valeurs d'énergie en dessous, le réseau est non infiniment actif.
- L'analyse structurelle (onglet tools - structural analysis)
apporte-elle des éléments de réponse
Si oui, lesquels ?
- Deux moyens sont offerts pour s'assurer que le réseau est infiniment actif :
(a) L'analyse des composantes fortement connexes
(onglet tools - state space analysis / marking graph - output verbose)
permet de s'assurer du caractère infiniment actif ; l'analyse des composantes fortement connexes (SCC) est donnĂ©e en fin du fichier d'analyse.
(b) Générez le graphe des marquages au format ktz (onglet tools - state space analysis - ouput ktz)
exécutez dans un terminal la commande suivante source ~vernadat/.bashrc ; selt fichier.ktz -s -f '<> dead' -S inft.scn.
Le réseau est infiniment actif lorsque la réponse
est fausse. Un scenario contre-exemple (i.e., une séquence cyclique donc infinie) est produit dans le fichier inft.scn.
Ce scenario peut être directement chargé via le stepper pour être simulé