1 / 75

Chapitre 6

Chapitre 6. Réseaux de Petri et logique temporelle. w3.uqo.ca/luigi/. Réseaux de Petri. Formalisme pour la spécification de systèmes répartis Inventé au début des années 1960 par un chercheur allemand, Carl Adam Petri Un des informaticiens les plus cités

mikko
Télécharger la présentation

Chapitre 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapitre 6 Réseaux de Petri et logique temporelle w3.uqo.ca/luigi/ Chap 6

  2. Réseaux de Petri • Formalisme pour la spécification de systèmes répartis • Inventé au début des années 1960 par un chercheur allemand, Carl Adam Petri • Un des informaticiens les plus cités • En même temps un des moins productifs en termes de nombre de publications! • A été énormément étudié et développé, et l’est encore aujourd’hui, surtout en Europe, et surtout en France • En principe très simple, mais • Un très grand nombre de variations a été étudié • Beaucoup de ressources Web, cours en ligne, etc. INF6001 Chap 6

  3. Places, transitions et tire - modèle de base Places Transitions Arcs Jeton ou Marque Tire! Quand toutes les places d’entrée à une transition sont marquées avec des jetons, la transition peut tirer et alors les jetons sont retirés des places d’entrée et ajoutés à toutes les places de sortie. INF6001 Chap 6

  4. Observez la différence... Après la transition, des jetons seront mis dans les deux places suivantes et il y aura traitement parallèle dans les deux directions Après la transition, un seul jeton sera mis dans une seule des deux places suivantes (l’une ou l’autre) et une seule branche sera exécutée Nous avons deux jetons, donc deux transitions sont possibles: ceci serait ou bien l’une et l’autre ou bien deux fois une des deux INF6001 Chap 6

  5. Exemple t3 p1 p3 t0 t1 p2 t2 Marquage initial: 1 0 0 Y a-t-il une transition qui peut tirer? INF6001 Chap 6

  6. Deux transitions qui peuvent tirer, t1 et t3 t3 p1 t1 Marq. initial p3 t0 t1 t0 (1 0 0) (0 1 0) p2 t2 t3 (0 0 1) t2 INF6001 Chap 6

  7. Analyse d’accessibilité pour les réseaux de Petri • Un réseau de Petri avec 3 états (= marquages) accessibles t3 p1 t1 Marq. initial p3 t0 t1 t0 t0 (1 0 0) (0 1 0) p2 t2 t2 t3 (0 0 1) t2 INF6001 Chap 6

  8. Vecteurs de marquages • Les états peuvent être représentés par des vecteurs de marquages • (1 0 0) = jeton sur p1, pas de jeton sur p2 ou p3, etc. • Le réseau peut être vu comme une machine à états (graphe de marquage) t1 (1 0 0) (0 1 0) t0 t2 t3 (0 0 1) INF6001 Chap 6

  9. Il est aussi possible d’obtenir un RP à partir d’une machine à états vend 15¢ bonbon Machine à états 10 15 5 5 5 5 0 5 10 10 20 10 vend 20¢ bonbon Figures provenant de http://www.cs.unc.edu/~montek/teaching/fall-07/lectures/index.html INF6001 Chap 6

  10. Réseau de Petri équivalentchaque transition a seul. 1 entrée et 1 sortie vend 15¢ bonbon 10 5 5 5 5 10 10 vend 20¢ bonbon INF6001 Chap 6

  11. Représentation de parallélisme t2 t1 t4 t3 Les Réseaux de Petri sont plus synthétiques que les machines à états pour la représentation du parallélisme Pour représenter ce réseau, une machine à états doit donner l’entrelacement de t2 et t3 INF6001 Chap 6

  12. Machine à états correspondante p3 p1 t2 (1 1 0 0 0) t1 t4 t2 t3 p2 p4 t3 (0 1 1 0 0) (1 0 0 1 0) p5 t3 t2 (0 0 1 1 0) t1 Mais s’il y avait plus de transitions à entrelacer… t4 (0 0 0 0 1) INF6001 Chap 6

  13. Le même chose en LOTOS 1ère possibilité(à contrôler comme exercice) A := B |[t4,t1]| C where B := t2; t4; t1; B C := t3; t4; t1; C INF6001 Chap 6

  14. Même chose en LOTOS 2ème possibilité(Exercice) A:= (t2; exit ||| t3; exit) >> B B:= t4; t1; A Aspect de LOTOS qui n’a pas été expliqué: L’opérateur >> cause une synchronisation entre les exit qui résulte dans une action interne i, suivie par le comportement B t2 t3 t1 t3 t2 i t4 INF6001 Chap 6

  15. Explosion d’états dans graphes de marquage p1 t1 p3 t3 p5 p2 p4 t2 p6 t4 t4 t2 p5 0 1 0 0 1 0 t3 t4 t3 0 1 1 0 0 0 t2 t1 0 0 1 1 0 0 t4 1 1 0 0 0 0 t3 t2 etc. Exercice: compléter ceci INF6001 Chap 6

  16. Modélisation de flux de données(utilisée pour la conception d’architecture de matériel) x = (a+b)/(a-b) a a copy + / x a+b a ≠0 b b copy - a-b Erreur b =0 INF6001 Chap 6

  17. Modélisation de protocoles: envoi et attente prêt à env. prêt à rec. tampon plein env. msg. recevoir attente acquitt. proc.2 proc.1 msg. reçu rec. acq. env. acquitt. tampon plein acq. reçu acq. envoyé INF6001 Chap 6

  18. Exercice: calculer le graphe de marquage p1 p6 p4 t4 t1 p2 t6 t3 p7 t5 t2 p5 p3 p8 INF6001 Chap 6

  19. Service Transport OSI en RP: phase connexion http://pagesperso-systeme.lip6.fr/Cedric.Besse/IMG/pdf/Cours_Ing.pd INF6001 Chap 6

  20. Modélisation des files • Les files d’attente sont modélisées par le fait qu’une place peut contenir plus d’un jeton • Cependant dans les RP de base les jetons dans une place n’ont pas d’ordre • Cas limite: p1 a un jeton et est capable de tirer t1 un nombre arbitraire de fois; cependant p3 n’a pas de jeton donc un nombre arbitraire de jetons pourra s’accumuler dans p2 sans jamais tirer t2 p1 p2 t1 p3 t2 INF6001 Chap 6

  21. Modélisation de files, cas plus normal… Supposons que t3 tire beaucoup plus rapidement que t1. Si p2 se trouve à être vide, un nombre arbitraire de jetons peut s’accumuler dans p3, cependant dès que p2 aura un jeton, t2 tirera (symétrique pour t1 et t3) p1 p2 t1 t2 p3 p4 t3 INF6001 Chap 6

  22. Poids aux transitions • Les arcs peuvent avoir un poids, ce qui permet d’exprimer concisément des situations plus compliquées • Jusqu’à présent, tous les arcs avaient poids 1 2 2 Il faut 2 jetons sur la place de haut pour causer le tir INF6001 Chap 6

  23. Réseaux de Petri colorés • Les ‘couleurs’ identifient des types de données différentes • Une place peut contenir des jetons de différents couleurs, p.ex. 1 jeton rouges et 2 verts • Une règle de tirage pourrait être comme suit: • Pour tirer, il faut consommer au moins un jeton rouge et un vert, et le résultat sera trois jetons bleus dans la place suivante INF6001 Chap 6

  24. Différentes possibilités avec Petri Nets séquence synchronisation choix parallélisme Q P Q C B A B Confusion: P peut faire tirer A ou B (ce dernier avec Q) mais s’il fait tirer A, B devient impossible Fusion Les trois transitions ne sont pas obligées d’être simultanées, la place a besoin d’un seul jeton pour procéder Priorité/inhibition: le cercle indique que s’il y a un jeton dans Q, la transition B ne peut pas tirer INF6001 Chap 6

  25. Réseau de Petri pour bit alterné [Tanenbaum] INF6001 Chap 6

  26. Autre bit alterné (problématique dans certains aspects) Récepteur état initial Émetteur état initial • BA unidirectionnel • Communication directe (synchrone) entre les deux stations • Et sans erreur! • DT0 est envoyé et reçu • ACK0 est envoyé et reçu • DT1 est envoyé et reçu • ACK1 est envoyé et reçu • Retour au début… • t0 remet le jeton dans SS0, car il en aura besoin pour t2 • Cependant ce mécanisme peut causer accumulation d’un nombre arbitrairement grand de jetons dans DT0 et DT1 SS0 RS0 p0 DT0 t0 p2 p1 t1 p3 t2 ACK0 p4 p5 RS1 SS1 t3 DT1 p6 t4 p7 ACK1 t5 [Sarikaya] INF6001 Chap 6

  27. Variétés de Réseaux de Petri • Ces idées de base a été développées grandement et nous avons: • RP colorés • RP temporisés: temps associé aux transitions • RP stochastiques • RP Markoviens • RP numériques • RP emboîtés • RP orientés objet • Etc, etc… INF6001 Chap 6

  28. V&V avec Réseaux de Petri • Un grand nombre de techniques de vérification sont associées aux RP • Principalement basées sur la manipulation des vecteurs de marquage et de matrices reliées • Questions de vérification • Accessibilité: nous avons vu comment faire l’analyse d’accessibilité avec les RP • n-borné: dans aucune place on ne peut jamais avoir plus de n jetons • Vivacité (liveness): une transition est vivace si elle peut être tirée à partir de l’état initial (directement ou indirectement) • Absence de blocage: impossibilité d’arriver à un état final • diwww.epfl.ch/w3lco/pub/racloz/ ps9798/LesProprietes.fm.ps • Ces questions sont adressée avec des algorithmes basés sur la manipulation des vecteurs de marquage INF6001 Chap 6

  29. Propriétés des RP avec exemples • Borné: qu’aucune place ne puisse avoir un nombre arbitrairement grand de jetons • Vivace: toute transition peut être tirée (directement ou indirectement) à partir de n’importe quel marquage • Donc il n’y a pas d’impasse • Réversible si pour toute transition t il existe une transition t’ qui en renverse les effets C. Girault and R. Valk, Petri Nets for Systems Engineering, Springer Verlag, 2003 INF6001 Chap 6

  30. Comment vérifier les différentes propriétés B, L, R? Technique de base: calculer le graphe de marquage Exercice: faire ceci pour quelques uns des RP précédents INF6001 Chap 6

  31. Critique des RP • Les RP permettent de représenter des systèmes entiers • Notation naturelle pour le parallélisme • Le problème majeur est que pour représenter un système réel il faut remplir des énormes graphes, sans aucune structure! • Aussi difficulté d’en comprendre le fonctionnement • Plusieurs méthodes existent pour remédier à cette situation, mais la notation devient plus complexe et les chercheurs ne sont pas d’accord sur les meilleurs méthodes • Cependant les RP sont utiles comme représentation interne associée à une autre technique qui est utilisée par l’usager • P. ex. l’outil Caesar/Aldébaran transforme LOTOS en RP • Il y a des outils qui transforment SDL en RP • Les méthodes de vérification pour les RP deviennent donc disponibles aux utilisateurs de SDL, LOTOS, etc. • On appelle ceci Petrification! INF6001 Chap 6

  32. Présentations la semaine prochaine INF6001 Chap 6

  33. Présentations préliminaires des projets • Yaovi Ahadjitse: Vérification de propriétés du protocole AODV utilisant l’outil Promela-Spin • Nora Belghazi: Utiliser le navigateur Use Case Maps pour illustrer un scenario de conditions routières des véhicules a l’entrée d’une autoroute • Christian Deschamplain: Amélioration d’un protocole de routage ad hoc sans fils pour l’équité des flux et la QdS avec vérifications et tests • Boné Maboudou: Techniques de réduction de l´explosion d´états dans les machines a états finis. INF6001 Chap 6

  34. Pour la semaine prochaine • Chacun doit faire une présentation préliminaire mais informative de son propre projet: • Approx 15 transparents, 20 mins chaque • Chacun aussi doit me donner un rapport préliminaire de la longueur d’approx 5 pages, voir spécifications dans: • http://w3.uqo.ca/luigi/INF6001/index.html#_Page_des_projets • Je peux attendre jusqu’à vendredi 2 mars pour ce rapport INF6001 Chap 6

  35. Model checking? Analyse de modèle? INF6001 Chap 6

  36. Model checking?? INF6001 Chap 6

  37. Histoire: logique modale, logique temporelle, modèle • Les concepts de logique modale, logique temporelle et modèle furent développés par les philosophes Prior, Meredith et Kripke autour des années 1960 • Mais ils étaient déjà connus en philosophie avant ça • La logique modale est un système logique où on utilise des opérateurs additionnels pour spécifier des modalités • P.ex. les opérateurs ‘nécessité’ et ‘possibilité’ en ajout aux opérateurs logiques conventionnels • ‘s’il est nécessaire qu’il pleuve, donc il est possible que je me mouille’ • Le même principe est utilisé pour définir autres types d’opérateurs modales: • Logique déontique, dont les opérateurs modales sont obligatoire, défendu, permis, etc. • Logique temporelle, dont les opérateurs sont ‘désormais’, ‘finalement’ • La logique temporelle fut introduite en informatique par Amir Pnueli en 1977 INF6001 Chap 6

  38. Logique: Rappel de Notation • Variables: x, y, z… Constantes: a, b, c… • Opérateurs principaux: • Logique propositionnelle: •  (et) (parfois aussi écrit &, &&..) •  (ou) (parfois aussi écrit ||) •  (négation) (parfois aussi écrit ~ ou !) •  (implication), A  B est défini comme A  B •  (équivalence, iff), A  B est défini comme A  B  B  A • Logique des prédicats: • P(x1, …, xn) (le tuple x1, …, xn a la propriété P) • x1,…,xn (il existe x1, …, xn ) • x1,…,xn (pour tous les x1, …, xn ) • P.ex. • x,y z =(x+y,z) ou x,y z (x+y=z) • (x (P(x) Q(x))  P(a) )  Q(a) • (x (P(x) Q(x))  y(P(y))) z Q(z) INF6001 Chap 6

  39. Dualité entre opérateurs logiques • Lois de dualité (De Morgan): • A  B = (A  B) • A  B =  (A  B) • x P(x) = x P(x) • x P(x) =  x P(x) • Ces deux dernières se justifient par les deux premières et le fait que • x P(x) = ( P(a)  P(b)  P(c)….) • x P(x) = (P(a)  P(b)  P(c)….) • Si a, b, c… sont tous les éléments du domaine en considération • Faisant l’hypotèse que le domaine n’est pas vide! INF6001 Chap 6

  40. Logiques modales • Dans les logiques modales, on ajoute des opérateurs pour exprimer certaines propriétés qui ne peuvent pas être exprimées directement en logique pure • P.ex. nécessité et possibilité (logique modale usuelle) • Obligation et permission (logique déontique) • Les logiques modales sont caractérisées par le fait qu’il y a dualité entre ces opérateurs: • nécessaire (x) non possible non x • obligatoire (x) = non permis non x INF6001 Chap 6

  41. Logique temporelle • Les modalités principales sont: •  dorénavant, désormais (aussi écrit G) •  finalement, enfin (aussi écrit F) • Dualité: • p =    p (s’il fera beau dorénavant, il est faux que finalement il pleuvra!) •  p =   p (si finalement je serai riche, il est faux que je serai toujours pauvre!) • Et donc aussi (par élimination des doubles négations) •  p =   p •   p =   p INF6001 Chap 6

  42. Assertions sur traces ou runs = exécutions Holzmann, SPIN model checker, Chap. 6 = chaînes • Le modèle de SPIN est un automate fini qui est capable d’exécuter des séquences d’événements • Une exécution (ou run, ou chaîne) est une séquence de transitions d’état correspondant à une exécution de l’automate • Les transitions sont de la forme:(si, l, sj) • État initial, étiquette (opération exécutée), état final • Les traces sont de la forme • {(s0, l0, s1), (s1, l1, s2), (s2, l2, s3), … } • Ces séquences ont des propriétés qui peuvent être contrôlées (checked) • Vrai ou faux INF6001 Chap 6

  43. Concept de modèle • Un modèle représente un ‘monde’, un ‘univers’ qui peut ou non avoir certaines propriétés • P.ex. les automates discutés dans le cours sont des modèles de protocoles INF6001 Chap 6

  44. Un modèle X: entier X=X/2 X=13 X=(X/2)+1 X>0 s3 s0 s2 s1 X≤0 • Nous pouvons affirmer des propriétés pour: • Des états: p.ex. à l’état s1, X=13 toujours (invariant) • pas besoin de logique temporelle ici • Des chaînes, p.ex.  x≤0 ou  x≤0, mais pas  x≤0 (!) • Exercice: contrôlez ceci État d’acceptation . INF6001 Chap 6

  45. Une chaîne possible pour ce modèlè • (s0, X=13, s1)(s1, x=(x/2)+1, s2)(s2, x>0, S3) …. INF6001 Chap 6

  46. Acceptation de chaînes infinies • Dans cette logique, une chaîne est acceptée ssi elle passe un nombre infini de fois par un état d’acceptation • Ssi elle reste dans une boucle incluant un état d’acceptation • On n’accepte que des chaînes infinies • On ne considère que les propriétés des chaînes infinies INF6001 Chap 6

  47. Concept de satisfaction, symbole╞ • Un modèle, ou partie de modèle, peut satisfaire une propriété ou non • Il satisfait la propriété ssi la propriété est vraie dans le modèle • P.ex. si on regarde le modèle de la vie d’un sujet A, on pourrait constater que • A a été étudiant gradué: propriété satisfaite • A est devenu professeur: propriété satisfaite • A est devenu riche: propriété non-satisfaite • A a vécu dans au moins 4 villes différentes: propriété satisfaite • A a vécu dans 10 villes différentes: propriété non-satisfaite INF6001 Chap 6

  48. Exemples de satisfaction en logique • Une formule logique est satisfiable s’il y a une affectation de valeurs de vérité aux variables qui la rend vraie • p  q est satisfait si au moins un de p ou q est satisfait (= est vrai) P.ex. supposons qu’aujourd’hui il fait beau (Il fait beau)  (j’ai bien mangé) est satisfait indépendamment de comment j’ai mangé. Mais (Il fait beau)  (j’ai bien mangé) est satisfait seulement si les deux sont satisfaits INF6001 Chap 6

  49. Une propriété peut aussi être satisfaite à un état • À l’état courant, chacun de vous satisfait la propriété: vous êtes étudiant gradué • Dans un état futur, vous pourriez ou non satisfaire la propriété: avoir obtenu la maîtrise INF6001 Chap 6

  50. Les opérateurs temporels sont des abréviations • Utilisons la notation s╞p pour dire: • La chaîne ssatisfait la propriété p • s╞vrai est toujours vrai, pour tout s • s╞faux est toujours faux, pour tout s • s╞p est une abréviation pour: • pour tous les éléments de s, p est vrai • dorénavant, désormais • s╞p est une abréviation pour: • Pour au moins un élément de s, p est vrai • finalement, enfin INF6001 Chap 6

More Related