Cours Vfsr 2010

download Cours Vfsr 2010

of 67

Transcript of Cours Vfsr 2010

  • 7/21/2019 Cours Vfsr 2010

    1/67

    Introduction la vrification structurelle des rseaux de Petri et

    des rseaux de haut-niveau

    Master SAR, Module VFSR

    Jean-Franois Pradat-Peyre

    LIP6

    Anne 2010-2011

  • 7/21/2019 Cours Vfsr 2010

    2/67

    2

    .

  • 7/21/2019 Cours Vfsr 2010

    3/67

    3

    Table des matires

    1. Les rseaux de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52. Les invariants de places . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73. Vrification structurelle des proprites de base . . . . . . . . . . . . . . . . . . . 104. Invariant et proprits comportementales . . . . . . . . . . . . . . . . . . . . . . . 145. Les rseaux de haut-niveau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176. Introduction informelle aux rseaux de haut niveau . . . . . . . . . . . . . . . . . 187. Dfinition des rseaux colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238. Dfinition des rseaux bien forms . . . . . . . . . . . . . . . . . . . . . . . . . . 289. Le graphe des marquages symboliques . . . . . . . . . . . . . . . . . . . . . . . . 4010. Rductions structurelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

  • 7/21/2019 Cours Vfsr 2010

    4/67

    4

    Le paralllisme (ou la concurrence) soulve de nombreux problmes qui lui sont propres. Enparticulier :

    Comment exprimer ou modliser la communication et la synchronisation lintrieur dunsystme ou entre diffrents systmes parallles ?

    Comment valider cette modlisation ?Un des premiers tenter de rsoudre ces questions fut C.A.Petri qui, dans les annes soixante

    [Pet62], cra un modle spcifique du paralllisme : les rseaux de Petri. Ce modle connut undveloppement immdiat par lintrt quil suscita tant dans le domaine de la recherche thorique

    que dans le monde industriel.En effet la smantique prcise associe ce modle en fait un excellent outil de simulation.

    On peut soit parcourir une ou plusieurs suites dtats du rseau soit, si le graphe dtat est fini,le dcrire entirement et ainsi vrifier directement les proprits souhaites par le concepteur dusystme.

    Loriginalit et lintrt des rseaux de Petri tiennent surtout aux nombreuses techniquesde validation autres que le simple examen de ce graphe, souvent coteux et quelquefois mme,irralisable. Parmi ces mthodes alternatives, il y a dune part le calcul algbrique qui permetde gnrer des invariants ( flots, semi-flots ..) et dautre part la rduction de rseaux qui ramneltude des proprits un rseau de taille plus petite.

    Rapidement, les premiers rseaux de Petri se sont rvls tre nanmoins un modle trop li-mit pour les concepteurs dapplications informatiques ou plus gnralement industrielles. Cettelimitation est due principalement trois facteurs : il est impossible de modliser des comporte-ments similaires au moyen dune seule reprsentation condense ; lanalyse du rseau nest pasparamtrable, cest dire quil faut redessiner le rseau et recommencer son analyse lorsque lonchange le nombre dobjets ( processus, ressources) du systme ; les conditions et les consquencesde lvolution dun rseau, de nature purement quantitative ( nombre de marques ncessairesdans les places, ajout ou retrait de marques ...), sont inadquates pour modliser des condi-tions et des volutions qualitatives ( nomination des objets, identit des tats de deux processus,numrotation circulaire, relations associatives entre objets ...)

    Ainsi des abrviations de rseaux de Petri ont-elles t introduites afin de remdier cesinconvnients. Les premires abrviations voir le jour furent les rseaux Prdicat/Transitions[Gen79], [Gen81], et les rseaux colors [Jen81]. Puis devant la difficult danalyse de ces rseaux,due entre autres leur absence de structuration, vinrent les rseaux rguliers[Hadd87] qui ontpermis de dfinir de faon prcise la paramtrisation dun rseau, et dobtenir ainsi les premiersrsultats thoriques non partiels sur les rseaux colors. La paramtrisation est indispensable silon veut, par exemple, valider la modlisation dun anneau jeton , o le nombre de sites estlaiss variable et reprsente un paramtre du rseau.

  • 7/21/2019 Cours Vfsr 2010

    5/67

    5

    Ce document dfinit les rseaux de Petri, les rseaux de haut-niveau (colors et bien forms)puis les mthodes danalyse associes,

    1. Les rseaux de Petri

    Les rseaux de Petri sont utiliss afin de modliser le comportement dynamique de systmesdiscrets [?,?]. Ils sont composs de deux types dobjets : les places et les transitions. Lensemble

    des places p ermet de reprsenter ltat du systme ; lensemble des transitions reprsente alorslensemble des vnements dont loccurrence provoque la modification de ltat du systme. Plusprcisment, les places jouent le rle de variables dtat du systme et sont valeur entire.A loccurrence dun vnement correspond le franchissement dune transition dpendant de lasatisfaction de prconditions.

    Les rseaux de Petri est offrent une reprsentation graphique simple des systmes modliss.Une place est reprsente par un cercle, une transition par un rectangle, et les relations decausalit au sein du systme sont reprsentes par la prsence - ou labsence - darc valus reliantles places aux transitions.

    Un des atot, et non le moindre, de ce formalisme est doffrir de nombreux outils danalyse

    structurelle, tels que la thorie des rductions ou le calcul dinvariants. Nous tudierons ces outilsdans les prochains chapitres.

    Cette prsentation intuitive des rseaux de Petri est formalise par les dfinitions suivantes.

    Dfinition 1.1 Un rseau de Petri est un 4-upletR= P , T , W , W+ o : Pest un ensemble fini et non vide de places, Test un ensemble fini de transitions, W ( resp.W+ ) est la fonction dincidence avant (resp. arrire ) de domaineP Tet de

    codomaineN.

    Dans cette dfinition, W

    (p, t)est la prcondition associe la transition tet la place p ; elledfinit le nombre minimal de marques dans p ncessaire au franchissement t et retires de p encas de franchissement. De mme, W+(p, t) est la postcondition associe la transition t et laplacep ; elle dfinit le nombre de marques apportes p par le franchissement de t.

    Ces deux matrices peuvent tre synthtise en une seule : la matrice dincidence.

    Dfinition 1.2 La matrice dincidence dun rseau de Petri est la matrice entireW M(P, T)dfinie par : (p, t) P T, W(p, t) =W+(p, t) W(p, t). Cette matrice traduit le cot global

  • 7/21/2019 Cours Vfsr 2010

    6/67

    6

    du franchissement dune transition pour chaque place - la diffrence entre ce qui est produit et cequi est consomm -.

    Remarque De par sa dfinition, cette matrice masque les "boucles" du rseau et il nest doncpas quivalent de donner la matrice dincidence ou de donner les deux matrices pre et post.

    Nous voyons maintenant la premire notion associe la dynamique dun rseaude Petri : lemarquage.

    Dfinition 1.3 Un lment deNP est appel marquage dun rseau de PetriR et dfinit ltatdu rseauR un instant donn, cest dire le nombre de marquesM(p) prsentes dans chaqueplacep Pdu rseau de PetriR.

    Un rseau de Petri marqu est donc un 5-upletR= P , T , W , W+, M0 o : P , T , W , W+ est un rseau de Petri, M0 est le marquage initial deR dfinissant ainsi ltat initial du rseau - cest dire, avant

    tout franchissement -.

    La dynamique dun rseau marqu est dfinie par la rgle de franchissement des transitions.

    Dfinition 1.4 Une transition t est dite franchissable pour un marquage M NP ssi : p P, M(p) W(p). Le marquageM alors obtenu est dfini par :

    p P, M(p) =M(p) W(p, t) + W+(p, t) =M(p) + W(p, t)

    On note : M[t > M, ce qui signifie que t est franchissable pour le marquage M et atteint lemarquageM.

    Remarque Cette rgle dvolution implique la fois latomicit dun franchissement et le fait

    que les notions de squentialit, de non-dterminisme ou de concurrence sont galit dansce formalisme, toutes tant vues commes des schmas particuliers de causalit. Ce point estgalement une grande force de ce modle.

    A partir de cette rgle de franchissement, il est possible dobtenir lensemble des suites finiesou infinies dvolution du systme partir du marquage initial. Cette suite densembles dfinitlensemble des marquages accessibles et peut tre reprsente sous forme de graphe, le graphedes marquages accessibles.

  • 7/21/2019 Cours Vfsr 2010

    7/67

    7

    Dfinition 0.1 Soit(R, M0)un rseau de Petri marqu. Lensemble des marquages accessible dece rseau, notAcc(R, M0)est dfini par :Acc(R, M0) = {MIN

    P | s T tqM0[s > M}. Legraphe des marquages accessibles est le graphe orient et valu dont les noeuds sont les lmentsdeAcc(R, M0) et est tel, quil existe un arc valu par t T deM versM

    ssiM[t > M.

    Ce graphe dcrit compltement la smantique du systme. Cependant, il nest pas ncessaire-ment fini et de plus, mme lorsquil est fini, ce graphe est souvent de taille trop importante pourque lon puisse en tirer quelque proprit que ce soit sur le systme tudi.

    Exemple : Lexemple suivant montre deux graphes de marquages accessible : lun fini (a) lautrenon fini (b)

    0

    1

    1

    0

    t1

    t2

    p1

    p2

    t1t2

    p3

    1

    0

    0

    0

    1

    1

    1

    0

    1

    1

    1

    2

    p1

    p2

    t1t2

    (a) (b)

    Figure 1. Un exemple dvolution

    2. Les invariants de places

    Il est possible dobtenir des informations pertinentes sur le rseau tudi - rseau born,pas de bloquage, exclusion mutuelle et mme dans certains cas la vivacit - par des techniquesstructurels, cest dire indpendant du graphes des marquage accessibles.

    En effet, soit XZZP un vecteur entier sur les places. Si W(t) dsigne la teme colonne de la

    matrice dincidence W, alors lquation de changement dtat peut scrire :tX.M = tX.M+ tX.W(t)

    Si maintenant tX.W(t) = 0alors il vient tX.M = tX.M, et en particulier, tX.M = tX.M0 cest dire que la somme des marques contenues dans lensemble des places dfini par Supp(X)resteconstante moyennant une pondration aprs le franchissement de la transition t :

    pP

    X(p).M(p) =pP

    X(p).M(p).

  • 7/21/2019 Cours Vfsr 2010

    8/67

    8

    Les solutions entires Xde lquation tX.W = 0 seront donc des invariants du rseau. Lintrtde tels invariants est de permettre une analyse structurelle du modle tudi cest dire sansdvelopper tout ou partie du graphe des marquages accessibles dont la taille devient rapidementgigantesque ds que lon modlise un systme un peu complexe.

    Dans la pratique, une famille gnratrice de telles solutions dans lQ ou lQ+ est suffisante pourprouver des proprits telles que lexclusion mutuelle, la bornitude du rseau, ou encore laprsence de places implicites , proprit ncessaire lexcution de certaines rductions.

    Lorsque ces solutions se trouvent dans lespace lQP, on parle de flots et lorsque celles-ci setrouvent dans lespace (lQ+)P, on parle alors de semi-flots ou encore de flots positifs. Lespremiers se calculeront par lalgorithme de Gauss, tandis que les seconds se calculeront parlalgorithme de Farkas que nous allons prsenter dans un chapitre suivant - cf Algo ??, page ??-.

    Lintrt des semi-flots sur les flots est quils permettent dobtenir directement les propritsrecherches tandis quun calcul des flots ncessitera ensuite deffectuer de nombreuses combinai-sons linaires de flots avant de trouver linvariant recherch.

    Les semi-flots permettent de plus lobtention de nombreux autres invariants du rseau , telsque les trappes ou les verrous.

    Dfinition 2.1 Soit W la matrice dincidence dun rseau de Petri. Alors toute solution nonnulle de lquation tX.W = 0 dfinit un invariant linaire du rseau. Si cette solution est composante positive, on parle de semi-flot, dans le cas contraire on parle de flot.

    Une famille gnratrice de semi-flots peut donc tre obtenue en appliquant lalgorithme deFarkas sur la transpose de la matrice dincidence.

    Exemple : Supposons que nous voulions modliser lexclusion mutuelle de deux processus sur uneressource commune. Nous reprsentons le rseau de Petri correspondant .

    Si lon veut alors prouver quil y a bien une exclusion mutuelle entre le processus a et le processus b,

    la premire solution est de construire le graphe des marquages accessibles. On obtient alors un graphe 8 tats- que nous ne donnons pas car dj un peu difficile dessiner - et lon vrifie quil ny a aucunmarquage accessible dfinissant la prsence simultane des deux processus dans ltat excute.

    La seconde mthode consiste calculer une famille gnratrice des semi-flots associs ce rseau, cest dire rsoudre lquation tX.W = 0, X 0, o West la matrice dincidence du rseau, par lalgorithmede Farkas.

    On obtient alors les trois semi-flots :

    1. Attend(a) + Exec(a) + Passif(a) = cst(M0) = 1

  • 7/21/2019 Cours Vfsr 2010

    9/67

    9

    Attend(a)

    Exec(a)

    t1

    t2

    Passif(a)

    t3

    Passif(b)

    Exec(b)

    Attend(b)

    r3

    r2

    r1

    Ressource

    Figure 2. Une solution dexclusion mutuelle

    2. Attend(b) + Exec(b) + Passif(b) = cst(M0) = 1

    3. Exec(a) +Exec(b) + Ressource= cst(M0) = 1

    Les deux premiers semi-flots traduisent que les processus a et b sont bien des processus, i.e il y a squen-tialit entre les transitions (t1, t2, t3) et (r1, r2, r3).

    Le dernier semi-flot nous permet de prouver lexclusion mutuelle. En effet, celui-ci traduit le fait quequelque soit lvolution du systme, la somme des marques contenues dans les places Exec(a), Exec(b) etRessource reste gale la valeur dfinie par le marquage initial cest dire 1.

    Ainsi donc, il ne peut la fois avoir une marque dans la place Exec(a) et dans la place Exec(b) ce quicorrespond bien ce que nous voulions prouver.

    Le rseau prsent comporte sept places et six transitions. Si lon voulait reprsenter lexclusionmutuelle de dix processus sur une mme ressource, il faudrait un rseau de 31 places et 30transitions. De plus, sil y a plusieurs ressources disponibles au nombre de n, un processuspourrait tre dans ltat Attend et Execute pour autant de sous ensemble de lensemble desressources disponibles, soit 2n. Ceci conduirait dupliquer les places Attend et Execute 2n fois

    pour chaque processus. Pour seulement dix processus et cinq ressources, un rseau modlisant lesystme complet comprendrait 1615 places et transitions.

    Il va sans dire que la taille du graphe des marquages accessibles serait trs difficilementmanipulable et que mme un calcul des semi-flots deviendrait quelque peu problmatique. Eneffet, en dehors de la complexit de la rsolution, les rsultats obtenus seraient difficilementinterprtables.

    Ce simple exemple met en vidence deux des principales limitations des rseaux de Petri : la

  • 7/21/2019 Cours Vfsr 2010

    10/67

    10

    taille des rseaux peut rapidement devenir trs importante et, surtout, la modlisation ncessitede fixer les paramtres du modle, ici le nombre de processus et de ressources. Si lon change lavaleur de ces paramtres, il faut refaire lanalyse.

    3. Vrification structurelle des proprites de base

    Dans le cadre de la validation il est fondamentale de dfinir les proprites que nous voulons

    observer ou prouver. Dans la thorie des rseaux de Petri, certaines proprites ont t plus sou-vent tudies que dautres ; en particulier la vivacit. Nous dfinissons maintenant ces propriteslmentaires.

    Dfinition 0.2 Une rseau de Petri marqu(R, M0) est dit vivant ssiMAcc(R, M0), t T, s T

    telle queM[s > M[t > quasi-vivant ssit T, s T telle queM0[s > M

    [t > pseudo-vivant ssiMAcc(R, M0), t T telle queM[t > bornssip P, kp IN tel queMAcc(R, M0), M(p) kp

    Nous donnons quelques exemples de rseaux vrifiant (ou pas) ces proprites.

    2

    ( a ) ( b ) ( c ) ( d ) ( e )

    Figure 3. Quelques exemples de rseaux de Petri

    Tous les rseaux de la figure ??, exept le rseaux (b), sont quasi-vivant. Les rseaux (c), (d)et (e) sont pseudo-vivant, les rseaux (c) et (e) sont vivant et tous, execpt le rseau (e), sontborns.

    Une autre propritee joue un rle important dans la thorie des rseaux de Petri : lexistancedun marquage ou tat daccueil.

  • 7/21/2019 Cours Vfsr 2010

    11/67

    11

    Dfinition 0.3 Un rseau de Petri marque (R, M0) admet un marquage daccueil ssi il existeun marquageMa vrifiant :

    MAcc(R, M0), s T telle queM[s > Ma

    Ce marquageMa est appel marquage daccueil.

    Un marquage daccueil est donc un marquage que lon peut atteindre de tout marquageaccessible.

    Il existe certaines relations entre ces proprites.

    Proposition 0.4 SoitN= (R, M0) un rseau de Petri marqu. SiNest vivant alorsNest quasi-vivant et pseudo-vivant SiNest quasi-vivant et admetM0 comme marquage daccueil alorsNest vivant

    De mme,certaine proprites sont monotones, cest dire quelles restent vraie lorsque lonaugmente le marquage initial.

    Dfinition 0.5 Une proprite est monotone ssi

    (R, M0), ( (R, M0) )=M0 M0, ( (R, M0) )

    Proposition 0.6 Les proprites quasi-vivant et non born sont monotones. Les propritespseudo-vivant, vivant, born et extistence dun marquage daccueil sont non monotones.

    Cette proposition se dmontre sans difficult en utilisant le lemme de monotonie :

    Lemme 0.7 (de monotonie) Soit (R, M0) un rseau de Petri marqu. M1 Acc(R, M0),s T, M1[s > M2 = M

    1 M1, M

    1[s > M

    2 etM

    2 M2

    Toutes ces proprites peuvent sexprimer dans un langage de logique temporelle et peuventdonc tre vrifies par des techniques de construction et de parcours du graphe des marquagesaccessibles (lorsque celui ci est fini, cest dire lorsque le rseau est born). Nous verrons dansles chapitres suivant comment des techniques structurelles ou algbriques permettent de vrfierces proprites sans la connaissance de ce graphe.

    Nous donnons ici une mthode simple, mais semi-automatique, de vrification de la vivacitdun rseau donn qui utilise la notion de norme.

  • 7/21/2019 Cours Vfsr 2010

    12/67

    12

    Dfinition 0.8 Soit(R, M0)un rseau de Petri marqu. Une fonction de lensemble des mar-quages de(R, M0) vers IN est unenorme pour un marquageMa ssi :

    1. (M) = 0 M =Ma

    2. M, (M)> 0= s T telle que M[s > M

    (M)< (M)

    Dfinition 0.9 Soit(R, M0)un rseau de Petri marqu. Une fonction de lensemble des mar-quages de(R, M0) vers IN est unenorme stricte pour un marquageMa ssi :

    1. (M) = 0 M =Ma

    2. M, (M)> 0= t T telle que M[t > M

    (M)< (M)

    Proposition 0.10 Soit (R, M0) un rseau de Petri marqu et Ma un marquage de ce rseau.Les trois propositions suivantes sont quivalentes :

    1. il exitse une norme stricte pourMa

    2. il exitse une norme pourMa

    3. Ma est un marquage daccueil

    Verifier la vivacit dun rseau peut donc se rammner a vrifier laide dune norme que lemarquage initial est un marquage daccueil et que le rseau est quasi-vivant. La difficult consiste trouver la norme.

    Construction dune norme

    1. Trouver les places intervenant dans la norme : en gnral un sous ensemble des places nonmarques du marquage initial.

    2. La norme tant souvant une combinaison linaire des places choisie, trouver la pondrationdes places. On choisit gnralement les pondrations gales au facteur dloignement dumarquage daccueil (plus le fait quune place soit marque loigne du marquage daccueil,plus on associe cette place une pondration forte).

    Vrification dune norme

    1. Calculer les invariants linaires du rseau et vrifier la premire condition de la norme laide de ces invariants

  • 7/21/2019 Cours Vfsr 2010

    13/67

    13

    2. Etudier chaque cas en commanant par ceux correspondants aux plus grands facteursdloignement afin de vrifier la seconde condition de la norme. La transition trouver estcelle qui rduit ce facteur. Pour tablir que cette transition est franchissable on se sert lafois de la dfinition du cas, des cas dj tudis et des invariants.

    Exemple :

    Le rseau suivant modlise une chane automatise de peinture de portes dautomobile. Les portes etla peinture sont supposs tre en quantit infinie et sont donc non modliss. Pour peindre une porte ilfaut :

    1. acqurir un robot pour dplacer la porte vers la zone de peinture (transition t1)

    2. acqurir une machine peindre (transition t2) : on libre alors le robot qui na plus dutilit.

    Une fois la porte peinte il faut :

    1. acqurir de nouveau un robot pour dplacer la porte peinte (transition t3) : on libre alors lamachine peindre

    2. dlivrer la porte peinte (transition t4) : on libre alors le robot.

    Le marquage initial de ce rseau est dfini par :M0(start) =x >0, M0(robots) =r >0, M0(machines) =m > 0 et M0(p) = 0 pour les autres places p.

    Les flots positifs de ce rseau sont :

    1. f1

    start+p12 +p13 +p14 = x2. f2 machines +p13 = m

    3. f3 robots+p12 +p14 = r

    On prend la fonction (M) = 3.M(p12) + 2.M(p13) +M(14) et lon montre que cette fonction estune norme stricte pour le marquage initial.

    1. (M) = 0 ssi M(p12) =M(p13) =M(p14) = 0 et en utilisant les invariants on obtient immdia-temment que(M) = 0 ssi M=M0.

    2. Il faut diffrencier les cas possibles lorsque(M)> 0.

    (a) M(p14)> 0

    La transitiont4 est franchissable et son franchissement fait dcroitre la norme de 1.

    (b) M(p14) = 0 et M(p12)> 0

    Si t2 est franchissable alors la norme dcroit de 1. Sinon, cest que M(machines) = 0 et f2implique alors queM(p13) =m. Dans ce cas, sit3est franchissable alors de nouveau la normedcroit ; sinonf3implique queM(p12)+M(p14) =r. CommeM(p14) = 0,M(p12) =r. Pourque ce cas ne soit pas possible M(p14) = 0,M(p13) =m,M(machines) = 0,M(robots) = 0,M(p12) =r M(start) = x m r il faut imposer que x m r 0

    Linvariantf3 impliqueM(robots) + M(p14) =m et donc que soitt3soitt4est franchissablece qui fait bien dcroitre la norme.

  • 7/21/2019 Cours Vfsr 2010

    14/67

    14

    p12

    p13

    p14

    start

    robots

    machines

    x

    r

    m

    t1

    t2

    t3

    t4

    Figure 4. Lexemple des robots

    On a donc montrer que sous la condition x < m+r la fonction est une norme pour le marquage

    initial et que donc celui ci est un marquage daccueil. Comme il est trivial (ici) de prouver que ce rseau

    est quasi-vivant, on obtient que le rseau est vivant pour tout marquage satisfaisant x < m + r. On verra

    que des invariants (les verrous du rseau) permettent de montrer automatiquement que ce rseau est

    vivant si et seulement si il vrifit la condition x < m + r.

    Exemple : Montrer que le rseau suivant est vivant en utilisant la fonction (M) = 3.M(p12) +

    2.M(p13) +M(14).

    4. Invariant et proprits comportementales

    In order to illustrate the possibility to translate conditions on the behavior of a model intosatisfiability of linear problems, let us consider the following Petri net (figure Fig 6) :

  • 7/21/2019 Cours Vfsr 2010

    15/67

    15

    p12

    p13

    p14

    start

    robots

    machines

    x

    r

    m

    t1

    t2

    t3

    t4

    control

    m+r-1

    Figure 5. Lexemple des robots controls

    In this net there are two simple invariants : Inv1 : q + p + u = 1 ; meaning that whatever the marking reached, the sum of to-

    kens contained in place p and in place q and in place u is always equal to 1 (m Acc(N, m0), m(p) +m(q) +m(u) = 1). This invariant characterizes a process structurefor which p, qand u are the states of the process.

    Inv2 : r1 + r2 = 1 meaning that there is always at most one token in place r1 and r2.These invariant can be used to obtain behavioral characterizations of the net, in particular to

    characterize the fireability of some transitions. For instance, we can easily prove that :

    1. when p is marked then necessarily one of the transitions f1or f2is fireable ;

    2. when p is marked, transition t is not fireable.

    This can easily be achieved by expressing linear programming problems as follows : for eachplace p define a variable xp that will denote the number of tokens contained in this place ;express preconditions of considered transition as inequations using these variables and augmentthe set of constraints with those defined by the invariants of the net. Check then the satisfiabilityof this system.

    For instance, the second claim (when pis marked, transitiontis not fireable) can be translated

  • 7/21/2019 Cours Vfsr 2010

    16/67

    16

    q

    f2f1

    h

    r1

    r2

    u

    vt

    p

    Figure 6. A model used to illustrate behavior characterization with algebraical conditions

    into the problem : does the system defined by

    xp 1 the placep is marked

    xv 1xu 1

    the transitiont is fireable

    xq+ xp+ xu= 1xr1+ xr2 = 1

    the constraints defined by the invariants are satified

    admit a solution ? If not, then necessarily the claim is correct.

    In the same way the first claim (when p is marked necessarily one of transitions f1 or f2 isfireable) can be translated into the problem : does the system defined by

    xp 1 the placep is marked

    xr1< 1xr2< 1

    neither the transitionf1 nor the transition f2 is fireable

    xq+ xp+ xu = 1xr1+ xr2= 1

    the constraints defined by the invariants are satified

    admit a solution ? If not, then necessarily the claim is correct.

  • 7/21/2019 Cours Vfsr 2010

    17/67

    17

    5. Les rseaux de haut-niveau

    Les rseaux de Petri Places-Transitions dfinissent un cadre thorique simple et puissant pourltude de la concurrence. De plus, grce aux nombreux outils disponibles, ils supportent laspcification et lanalyse de systmes concurrents dans de vastes domaines dapplication.

    Cependant, ce formalisme met en avant le contrle au dtriment de la structuration desdonnes : il est facile de modliser et danalyser le contrle dun systme mais il est difficile

    dintgrer dans cette phase de conception lorganisation des donnes transportes, changes oumodifies.

    Afin de prendre en compte ce besoin sans modifier la smantique des rseaux de Petri, dif-frentes abrviations ont t dfinies. Une abrviation de rseau est obtenue en attachant denouvelles informations aux noeuds et aux arcs et en dfinissant une smantique de fonctionne-ment qui tient compte de ces paramtres. Le point clef est de garder la possibilit de dpliercette abrviation en un rseau de Petri ordinaire dont le comportement est identique. Parmi cesabrviations, on peut citer les rseaux colors ([?]), les rseaux Prdicats/Transitions ([?]), lesrseaux algbriques ([?, ?]), ou encore les rseaux bien forms ([?]). Ces diffrents formalismesse caractrisent par une syntaxe plus ou moins naturelle, par les modalits de paramtrisationet par la possibilit danalyse directe (i.e. oprant sur le formalisme de haut-niveau) et dans

    certains cas danalyse paramtre. De nombreux outils de modlisation et danalyse bas sur lesrseaux de haut-niveau sont aujourdhui disponibles. On peut citer par exemple CPN-AMI [?],Design/CPN [?], GreatSPN [?] ou encore Prod [?].

    Nous tudions principalement dans ce chapitre deux de ces abrviations : les rseaux colorset les rseaux bien forms (ou WN pour Well-formed Nets) qui ont le mme pouvoir dexpression.Les rseaux colors sont caractriss par une smantique fonctionnelle simple : une informationde couleur (ou de type) est associe aux jetons et aux franchissements et les valuations desarcs sont des fonctions de couleur qui prcisent le nombre et la couleur des jetons consommsou produits lors du franchissement dune transition qui se fait pour une instance particulire decouleur. Aucune contrainte syntaxique nest impose sur ces fonctions de couleur, ce qui simplifie

    la phase de modlisation mais rend difficile la dfinition ou lextension de techniques danalysedirecte.

    Le modle des WN est une abrviation fonctionnelle et paramtre des rseaux de Petriqui restreint les fonctions de couleurs des compositions de fonctions lmentaires (identit,successeuretdiffusion) et qui impose que les valeurs de couleurs manipules soient des tuples devaleurs prises dans des ensembles de base appels classes. Lintrt de cette syntaxe plus limiteest lobtention de techniques danalyse plus gnrales que celles des RdP (telle que la constructiondu graphe des marquages symboliques) ainsi que lextension paramtre de techniques classiques

  • 7/21/2019 Cours Vfsr 2010

    18/67

    18

    (telles que les rductions structurelles ou le calcul dinvariants).

    Le plan de ce chapitre est le suivant : aprs une introduction informelle laide dexemplesaux rseaux de haut-niveau, nous dfinissons prcisment les rseaux colors (section 3). Nousdfinissons alors les rseaux bien forms (section 4) et nous terminons par une introduction dautres modles de haut-niveau, les rseaux de Petri interprts et les rseaux algbriques.

    6. Introduction informelle aux rseaux de haut niveau

    6.1. Un modle client-serveur

    Le rseau place/transition R1 suivant (figure 7) modlise deux clients connects un serveur. Un client dans ltat prt, dnot par une marque dans la place Cpret, envoie (par la

    transition cenv) un message au serveur (place Mess) et passe dans ltat attente (placeCatt). A la rception dune rponse (place Rep), il retourne dans ltat prt par la transitioncrec.

    Le serveur dans ltat prt (Spret) peut recevoir (srec) un message et passe dans ltatoccup (Socc). Il traite ce message, puis envoie (senv) une rponse (Rep) et retourne dans

    ltat repos.Le marquage initial m0 = 2.Cpret+ 1.Spretdnote 2 clients et 1 serveur dans ltat prt. Parsouci de lisibilit, selon le cas, le marquage initial dune place est reprsent lintrieur ou lextrieur de celle-ci.

    1

    Spret

    cenv

    Catt

    Re p

    srec

    Socc

    senv

    Me s

    crec

    2

    Cpret

    Figure 7. Le rseau R1

    Le modle est cependant trop abstrait car il ne distingue ni ltat de chacun des clients, ni qui appartient un message ou une rponse. Un flot tel que [Cpret + Mess + Socc + Rep] exprimequun message est prpar, en transit, trait ou que la rponse est transmise. On en dduit quele nombre total de marques dans les places correspondantes est un invariant, gal 2, mais onne peut exprimer quil y a au plus un tel message sparment pour chaque client. On pourrait

  • 7/21/2019 Cours Vfsr 2010

    19/67

    19

    introduire un sous-rseau par client et interconnecter tous ces sous-rseaux au serveur, mais lerseau global deviendrait impraticable ds que le nombre de clients augmente. De plus, il enfaudrait une nouvelle version chaque fois quon change le nombre de clients.

    6.2. Distinction des clients

    Les rseaux colors ont pour but de distinguer les marques modlisant diffrents objets ayant

    les mmes types dtats et sujets aux mmes types dactions. Le rseau color R2 (figure 81) distingue les deux clients en les identifiant chacun par une couleur. La classe des clientsest ici lensemble {1..2}. Les places Cpret et Catt ont cette classe pour domaine, cest--direquelles ne peuvent contenir que des marques de couleur < 1 > ou < 2 >. Le marquage initial .Cpret+< 2 > .Cpret indique que tous les clients sont dans ltat prt. Il est dnot par< client.all > .Cpret, ce qui pargne lnumration explicite de la liste de toutes les couleurs.Un autre avantage de cette notation est quelle stend facilement un modle paramtr (i.e.o lon ne prciserait pas explicitement le nombre de clients). Les places Mess,Socc,Rep ont lemme domaine tandis que la place Spret reste non colore - on dit aussi de couleur neutre- carle serveur est prt accepter un message de nimporte quel client.

    Class

    client is 1..2;

    Var

    x in client;

    client

    Cpret

    crec

    clientMess

    senv

    client

    Socc

    srec

    client

    Re pclientCatt

    cenv

    1

    Spret

    Figure 8. Gnralisation plusieurs clients (rseau R2)

    Pour distinguer pour quel client est franchie une transition telle que cenv, on explicite ledomaine des transitions en dfinissant un domaine de franchissement (ici Client pour la transitioncenv). On tiquette alors les arcs lis cette transition par une variable < x >prenant ses valeursdans la classe Client. Bien sr, la classe de la variable tiquetant un arc doit tre identique audomaine de la place situe lautre extrmit de larc. La valeur choisie pour la variable lorsdune occurrence de franchissement prcise alors quelle est la couleur de la marque extraire

    1La reprsentation graphique des rseaux colors dpend de loutil utilis; dans ce chapitre la plupart desrseaux sont dessins avec loutil Macao de latelier CPN-AMI [?].

  • 7/21/2019 Cours Vfsr 2010

    20/67

    20

    des places en entre et des marques dposes dans les places en sortie. Une transition nestfranchissable que sil y a dans ses places en entre assez de marques des couleurs dsignes.Ainsi les franchissements relatifs chaque client sont dnots cenv() ou cenv() : ilsprcisent la couleur de la marque extraire de Cpret qui est aussi celle des marques produiredansCatt et Mess. Tous les arcs, sauf ceux issus de places sans domaine (ici Spret), sont ainsitiquets.

    Si le client < 1 > envoie un message qui est trait, puis le client < 2 > envoie aussi unmessage, la squence cenv(), srec(), senv(), cenv() donne le marquage

    ( + < 2 >).Catt+< 2 > .M ess+< 1 > .Rep >+ < 1 > .Spret. La transition crec nestalors franchissable que pour le choix x=< 1 >, ce qui modlise bien un comportement effectifdu systme. Anticipant sur la notion de flot color (voir chapitre 8), nous prsentons un flot not[< X > .Cpret+ < X > .Catt] qui montre que le nombre total de marques de chaque couleurreste gal 1. Cet invariant exprime que chaque client est un processus squentiel qui est soitdans ltat prt soit dans ltat attente.

    6.3. Distinction des serveurs

    Pour gnraliser le rseau R2 plusieurs serveurs, il faut introduire un nouveau domaine decouleurs pour les serveurs. Ltiquetage dune transition comme srec doit distinguer par une

    serveur

    Socc

    clientMess

    senv

    client

    Mtraite

    srec

    client

    Re p

    serveur

    Spret

    clientMess

    senv

    traitement

    Socc

    srec

    client

    Re p

    serveur

    Spret

    Figure 9. Gnralisation plusieurs serveurs (R3 et R4)

    variable x la couleur du message trait et par une variable y la couleur du serveur traitant cemessage. Il ne suffirait pas de mmoriser indpendamment dans une place Soccquel serveur traiteun message et dans une place Mtraite quel client appartient ce message. Cela engendreraitune confusion : si par exemple le serveur < 1 > traitait un message pour le client < 1 >et respectivement le serveur < 2 > pour le client < 2 >, la transition senv(< 1, 2 >) seraitfranchissable, ce qui ne correspondrait aucun traitement en cours (modle de gauche de la

  • 7/21/2019 Cours Vfsr 2010

    21/67

    21

    figure 9). Pour cette transition, le domaine de couleur est alors Client Serveur, ce qui signifiequelle instancie un couple de valeur de Client, Serveur. Il est alors ncessaire de prciser pourchaque variable apparaissant sur un arc attenant cette transition quelle composante du coupleinstanci elle est associe. Sur lexemple donn, x est associ la premire composante et y la seconde. Ainsi, le franchissement de senv pour le couple signifie : on associe x lavaleur1 et y la valeur 2et on franchit la transition.

    La gnralisation de marques et de variables sous forme de n-uplets de couleurs modlisecorrectement de telles associations des clients et des serveurs (modle de droite de la figure 9). La

    placeSocca maintenant un domaine traitement correspondant un doublet < client, serveur >.Un franchissement tel que (srec(< 1, 1 >) produit un doublet < 1, 1 > dans Socc puis srec()y produit galement un doublet < 2, 2>. Le franchissement de senvncessite la prsencedun doublet< x, y >dansSocc. Pour le marquage courant, cela ne peut tre quun des doublets< 1, 1 > ou < 2, 2 > de sorte quon ne risque plus un franchissement fautif avec x =< 1 > ety =. Un tel franchissement serait possible si un doublet tait produit dans Soccaprs rception dun message du client < 1 > par le serveur < 2 >.

    6.4. Le modle color complet

    Pour quun client puisse dsigner le serveur qui devra traiter son message, les messages doiventcomporter cette identification ; ils deviennent ainsi des doublets de domaine< client, serveur >.Sil y a des marques< x, y >dans la place Mess, la transitionsrec(x, y)nest franchissable quesi le serveur y dsign par une de ces marques est dans ltat prt.

    Class `

    client is 1..2;

    serveur is 1..2;

    Domain

    traitement is

    ;

    Var

    x in client;

    y in serveur;

    client

    Cpret

    crec

    traitementMess

    senv

    traitement

    Socc

    srec

    client

    Re pclientCatt

    cenv

    serveur

    Spret

    Figure 10. Le rseau R5

  • 7/21/2019 Cours Vfsr 2010

    22/67

    22

    6.5. Rseau de Petri sous-jacent

    Le dpliage dun rseau color par rapport un domaine de couleur produit un rseau qui-valent par duplication des places, transitions et arcs concerns par ce domaine. Cette oprationest applicable itrativement jusqu obtenir un rseau non color. Le rseau R6 suivant illustrele dpliage du rseau R5.

    srec_2_2

    Socc_2_2

    senv_2_2

    senv_1_2

    Socc_1_2

    srec_1_2

    1Spret_2

    1Spret_1

    cenv_1_1

    Catt_1_1

    Rep_1_2

    srec_1_1

    Socc_1_1

    senv_1_1

    Mess_1_2

    crec_1_1

    1 Cpret_1

    1 Cpret_2

    crec_2_2

    Catt_2_1

    cenv_2_1Mess_2_1

    Rep_2_1 senv_2_1

    Socc_2_1

    srec_2_1

    Mess_1_1

    Rep_1_1

    cenv_1_2

    Catt_1_2

    crec_1_2

    Mess_2_2

    Rep_2_2

    cenv_2_2

    Catt_2_2

    crec_2_2

    Figure 11. Le rseau R6

    Chaque client, 1 ou 2, engendre des places que lon suffixe par sa couleur de marques. Ainsion obtient Cpret_1ou Cpret_2 et Catt_1ou Catt_2.

    Chaque serveur, 1 ou 2, engendre un sous-rseau que lon suffixe par sa couleur de marques. Ces suffixages se combinent dans le cas dun domaine obtenu par produit cartsien de do-

    maines lmentaires, de sorte que la place Messengendre 4 placesMess_1_1,Mess_1_2pour un message du client 1 envoy chacun des serveurs et de mmeM ess_2_1,Mess_2_2pour le client 2.

    Chaque transition engendre autant de transitions suffixes quil y a de valeurs de n-upletsde son domaine. Ainsi la transition cenv engendre cenv_1_1, cenv_1_2, cenv_2_1 etcenv_2_2.

    Le marquage initial distribue une marque, dansCpret_1et Cpret_2, et une marque dansSpret_1 et Spret_2. Ce rseau possde une base de 6 flots : 2 caractrisent les clients, 2

  • 7/21/2019 Cours Vfsr 2010

    23/67

    23

    caractrisent les serveurs et 2 autres concernent des circuits de traitements de messages.

    7. Dfinition des rseaux colors

    Deux familles de rseaux de haut niveau, les rseaux colors et les rseaux prdicats/transitionsont t initialement introduits afin de prendre en compte dans un rseau de Petri des compor-tements similaires mais devant tre distingus. Ces deux modles tant quivalents en terme de

    modlisation [?], nous nous attacherons plus spcifiquement aux rseaux colors dont la dfini-tion, plus formelle, a servi de support aux principales tudes thoriques.

    Ces formalismes permettent de modliser des familles de systmes structure identique maisde taille diffrente. En effet, chaque place et chaque transition est associ un domaine decouleur qui permet, pour le cas des places, de colorer les marques pouvant tre contenues dansces places, et pour le cas des transitions, de choisir une couleur de franchissement.

    Ainsi pour distinguer plusieurs instances dun mme tat, on ne duplique plus les places etles transitions comme on le fait avec les rseaux de Petri ordinaires, on les colore .

    Les pr-conditions (resp. les post-conditions) deviennent des fonctions de couleur qui une

    couleur de transition c1 et une couleur de place c2 associe le nombre de marques de couleur c2 consommer (resp. produire) lors du franchissement de la transition pour linstance c1.

    7.1. Notations

    Avant de dfinir plus prcisment les rseaux colors, donnons rapidement quelques dfinitionsde base.

    Dfinition 0.11 Un multi-ensemblesur un ensemble fini et non videY est une application de

    Y vers IN.

    Intuitivement, un multi-ensemble est un ensemble pouvant contenir plusieurs occurrencesdun mme lment. Chaque multi-ensemble asur Ypeut tre reprsent par la somme formellea =

    yY a(y).y, o lentier positif ou nul a(y) dsigne le nombre doccurrences de llment

    y dans le multi-ensemble a. Par exemple, la somme m = 2.+ 3. dsigne le multi-ensemblecontenant 2 fois la valeur et 3 fois la valeur sur un ensemble contenant les lments et .Nous notons Bag(Y) lensemble des multi-ensembles sur Y.

  • 7/21/2019 Cours Vfsr 2010

    24/67

    24

    La somme de deux lments de B ag(Y) et le produit dun lment de Bag(Y) par un entierse dfinissent naturellement.

    Dfinition 0.12 Soita un lment deBag(Y). Sib est un lment deB ag(Y) alors la somme dea + bdea etb est un lment deB ag(Y)

    dfini par : a + b=

    yY(a(y) + b(y)).y si est un entier positif, alors le produit de.a de para est un lment deB ag(Y) dfini

    par : .a= yY(.a(x)).x.Bag(Y)est muni dune relation dordre qui nest autre que lextension naturelle de la relation

    dordre sur IN, ce que formalise la dfinition suivante.

    Dfinition 0.13 Soienta =

    yY a(y).y etb =

    yYb(y).y deux multi-ensembles surY. Alorsa est suprieur ou gal b, ce qui est nota b si et seulement si : y Y, a(y) b(y).

    Les domaines de couleur dun rseau de haut niveau sont des produits cartsiens densemblesfinis. On manipule donc des tuples et nous prcisons ici ce quest un tuple de valeurs et une tuple

    de fonctions.

    Dfinition 0.14 (Valeur de tuple) SoientC1, . . . , C k etCdes ensembles finis. On appelle unlment deC1 . . . Ck un k-tuple (ou simplement tuple) et on le notec1, . . . , ck.

    Dfinition 0.15 (Tuple de fonctions) Soientf1, . . . , f kun ensemble dapplications deCdansBag(Ci) (i [1..k], fi : C Bag(Ci)). Le tuple de fonctions f1, . . . , f k est une fonction fqui a pour domaine C et codomaine Bag(C1) . . . Bag(Ck) avec c C, f1, . . . , f k(c) =f1(c), . . . , f k(c).

    Une fonction dun ensemble Cvers un ensemble Bag(C) stend en une application linairedeB ag(C) vers B ag(C) par les rgles de calcul suivantes :

    f(.c) =.f(c) f(c1+ c2) =f(c1) + f(c2)

    De mme, B ag(C1 . . . Ck)sidentifie Bag(C1) . . . Bag(Ck) par les rgles de calcul : c1, . . . , . ci, . . . ck= .c1, . . . , ci, . . . ck c1, . . . , ci+ c

    i, . . . ck= c1, . . . , ci, . . . ck + c1, . . . , c

    i, . . . ck

  • 7/21/2019 Cours Vfsr 2010

    25/67

    25

    7.2. Le formalisme

    Les rseaux colors offrent une possibilit dexpression plus compacte que les rseaux ordi-naires. En effet, dans un rseau color, une place peut contenir des jetons de diffrentes couleurs,et une transition peut tre franchie de diffrentes manires suivant la couleur slectionne. Ceciest ralis en attachant un domaine de couleur chaque place et chaque transition. Ainsi, pour unnombre de places et de transition identique, le nombre de comportements pouvant tre exprimspar un rseau color est bien plus lev quavec un rseau de Petri ordinaire.

    Un arc joignant une place et une transition est tiquet par une application linaire appelefonction de couleur. Cette fonction dtermine pour chaque couleur de transition (ou instancede franchissement) le nombre de jetons par couleur devant tre consomms ou produits dans laplace lors du franchissement de la transition pour la couleur choisie. Comme pour les rseauxde Petri ordinaires, le choix de la couleur de franchissement dune transition se fait de faonindterministe : si une transitiont est franchissable pour une couleur c1 et pour une couleur c2,rien ne prcise dans le formalisme le choix de linstance de franchissement de t. Ces diffrentsconcepts sont formaliss par les dfinitions suivantes.

    Dfinition 0.16 Un rseau color est un 5-tupleCN=P,T, C, P re,Post o : P est un ensemble non vide et fini de places ;

    Test un ensemble non vide et fini disjoint deP de transitions; C est la fonction de couleur de domaine P

    T et de codomaine avec un ensemble

    contenant les ensembles finis et non vides. Un lment deC(s) est appel couleur de s etC(s) dsigne le domaine de couleur des ;

    Post(resp. P re) est la fonction dincidence avant (resp. arrire) qui associe chaque placep P et chaque transitiont T, une application deC(t) versBag(C(p)).

    Dfinition 0.17 Un marquagem dun rseau est un vecteur index parPo pour chaque placep P, m(p) est un lment de Bag(C(p)) et dsigne le nombre de marques colores dans cetteplacep.

    Un rseau color marqu est donc un couple< CN, m0 > oCN est un rseau color etm0son marquage initial, i.e. le nombre de marques colores prsentes initialement dans chaque placedu rseau.

    Dfinition 0.18 La rgle de tir (ou de franchissement) dun rseau color est dfinie de la ma-nire suivante :

    Une transitiont est franchissable pour un marquagem et une couleurct C(t) si :

    p P, m(p) P re(p, t)(ct)

  • 7/21/2019 Cours Vfsr 2010

    26/67

    26

    Le franchissement dune transitiont pour un marquagem et une couleurct C(t)engendrele nouveau marquagem dfini par :

    p P, m(p) = m(p) + Post(p, t)(ct) P re(p, t)(ct)

    On note alorsm[t(ct)m, ou encoremt(ct)m, ce qui signifie quetest franchissable par rapport

    la couleurct pour le marquagem et atteint le marquagem. Lorsque le marquage atteint nest pas

    utile, on notem[t(ct) le fait quet est franchissable par rapport la couleurct pour le marquagem. On note galement,Acc(CN ,m0)lensemble de tous les marquages accessibles partir dem0.

    Un rseau color nest en fait que labrviation dun rseau de Petri ordinaire sous-jacent,appel rseau dpli ou dvelopp.

    Le principe du dpliage dun rseau color en un rseau de Petri se fait de la manire suivante :une place dans le rseau dpli par place et couleur de place dans le rseau color et la mmechose pour les transitions. On dduit ensuite la valuation des arcs et le marquage des places parapplications des fonctions de couleur. Comme on le voit, lhypothse de finitude des domainesde couleur est indispensable pour effectuer ce dpliage.

    Dfinition 0.19 (Rseau dpli) SoitCN =P,T, C, P re,Post un rseau color. Le rseau

    de Petri Places-Transitions dvelopp de CN est le rseau CNd = Pd, Td, P red,Postd dfinipar :

    Pd=

    pP,cpC(p)(p, cp) lensemble des places,

    Td=

    tT,ctC(t)(t, ct) lensemble des transitions,

    Postd (resp. P red) la fonction dincidence avant (resp. arrire) dfinie dePd Td vers INpar : Postd(p, cp)(t, ct) =P ost(p, t)(ct)(cp) et P red(p, cp)(t, ct) =P re(p, t)(ct)(cp)

    Le marquage dvelopp dun marquage color se dfinit de faon similaire.

    Dfinition 0.20 Soient CN un rseau color et m un marquage de ce rseau. Le marquagedvelopp dem dans le rseau dvelopp deCN est le marquagemd dfini par :

    (p, cp) Pd, md(p, cp) =m(p)(cp).

    On obtient alors la proposition fondamentale suivante qui dit que la smantique dun rseaucolor et de son rseau dpli sont identiques moyennant un isomorphisme.

  • 7/21/2019 Cours Vfsr 2010

    27/67

    27

    Proposition 0.21 m[t(ct)m dansC N si et seulement simd[t(ct)md dansCNd.

    Ainsi donc, lanalyse dun rseau color pourrait se ramener simplement lanalyse de sonrseau dpli : un systme est modlis par un rseau color, le rseau color est dpli, puislanalyse se fait sur le rseau dpli en utilisant les techniques classiques danalyse des rseauxde Petri ordinaires.

    Cette mthodologie se heurte deux problmes importants :

    1. la taille du rseau dpli est gnralement trs importante du fait du pouvoir de concisionfourni par la formalisme color (ce qui peut rendre inoprant bon nombre de techniquesdanalyse) ;

    2. les rsultats danalyse obtenus sur le rseau dpli sont rarement, ou trs difficilement,interprtables dans le rseau dorigine.

    Lintrt des rseaux colors est donc fortement li lexistence doutils de validation directe,cest dire oprant directement sur le modle color. Malheureusement, lextension de tech-niques classiques (calcul dinvariants, application de rductions, etc.) ainsi que la dfinition detechniques particulires (bases par exemple sur lutilisation de symtries naturelles du modle)sont rendues particulirement difficiles du fait de la non structuration des fonctions et domainesde couleur. Le problme pos est alors : peut-on dfinir un formalisme suffisamment structurpour permettre la dfinition dalgorithmes danalyse directe tout en maintenant un pouvoir dex-pression suffisamment lev ? 2

    Devant la difficult du problme pos, diffrentes familles de rseaux de haut niveau ontt dfinies : les rseaux rguliers [?], les rseaux ordonns [?] ou encore les rseaux prdi-cats/transitions unaires [?]. Toutes rpondent au besoin de structurer les domaines et les fonc-tions de couleur afin de pouvoir dvelopper des algorithmes danalyse oprant directement sur lemodle de haut niveau.

    Ces diffrents formalismes ont t ensuite homogniss par la dfinition des rseaux colorsbien forms [?] (ou rseaux bien forms), que nous allons tudier dans la section suivante. Il estprouv que ce formalisme a le mme pouvoir dexpression que les rseaux colors. En revanche, lastructuration de ce modle a permis de dfinir (ou dtendre) un nombre important de techniquesdanalyse oprant directement sur le rseau de haut-niveau.

    2Une analogie peut tre faite avec lvolution des langages de programmation.

  • 7/21/2019 Cours Vfsr 2010

    28/67

    28

    8. Dfinition des rseaux bien forms

    Un rseau bien form (ou WN pour Well formed Nets) [?], [?] est un rseau color respec-tant diffrentes contraintes syntaxiques. Comme nous lavons voqu plus haut, le but de cescontraintes est de permettre une utilisation directe de la structure du rseau pour dvelopperdes algorithmes danalyse. Les contraintes imposes sont de trois types :

    1. les domaines de couleurs sont des produits cartsiens de domaines de bases appels classesou classes de couleurs lmentaires ;

    2. les fonctions de couleur sont construites partir de fonctions lmentaires (identit, diffu-sion et successeur) ;

    3. le modle met en avant les symtries du systme. Les comportements asymtriques sontpris en compte par le partitionnement des classes en sous-classes statiques et par lajoutde garde sur les fonctions de couleur et sur les transitions.

    8.1. Domaines de couleur

    Le domaine de couleur des places et des transitions est restreint au produit cartsien den-sembles de couleurs de bases appels classes lmentaires.

    Une classe lmentaire est un ensemble fini, non vide (pouvant tre ordonne) de couleurs ter-minales (dont la dfinition ne dpend daucune autre couleur). Une classe peut tre vue comme unensemble contenant des lments de mme type. Une classe peut tre paramtre ; dans ce cas, lenombre dlments dune classe nest pas donn par une valeur entire fixe (5, 115, 899) mais parune variablen, dont la valeur reprsente alors un paramtre du modle. Par exemple, un ensemblede trois processus clients peut dfinir une classe : on aura alors la classeClientque lon pourranoter Client = {1,2,3} ou de faon plus parlante Client = { Client1,Client2,Client3}. Silon ne veut pas fixer priori le nombre de clients, on pourra reprsenter les clients par la classe

    Client = {1..n}, ou encore Client = { Client1 ...Clientn }, o n reprsentera le nombre declients (et sera un paramtre implicite du modle).

    Lorsque la notion dordre est utile, par exemple pour lemploi de la fonction successeur, onsupposera que la classe o sapplique cette fonction est ordonne ce qui signifie que chaquelment a un unique successeur, et que deux lments nont pas le mme successeur. Lordreutilis sera celui induit par la dfinition de la classe. Par exemple, lordre induit sur la classeClientest tel que le successeur de Client1 estClient2, que le successeur deClient2 estClient3et que celui de Client3 est Client1.

  • 7/21/2019 Cours Vfsr 2010

    29/67

    29

    Une classe lmentaire peut tre partionne en sous-classes statiquesafin de regrouper au seindune mme classe des lments de mme type mais de comportements diffrents. Ce partionne-ment est statique dans le sens o il est effectu lors de la phase de modlisation et ne dpendpas dun marquage donn. Sur lexemple prcdent, il est possible que le client didentit 1 aitun comportement lgrement diffrent des autres clients (lui seul peut, par exemple, accder certaines ressources). Dans ce cas, plutt que de dfinir deux classes distinctes, on partionnerala classe Clienten deux sous classes : la sous-classe contenant le client et la sous-classecontenant les autres clients. On notera alors Client = {1} {2,3}. Ce partionnement pourra

    tre utilis pour restreindre le franchissement de transitions certaines valeurs de sous-classe et,par exemple, de distinguer le client < 1 > des autres clients. Chaque sous-classe statique peuttre paramtre. Dans ce cas, une classe contenant des sous-classes statiques paramtres estgalement paramtre et sa taille est la somme des tailles des sous-classes la constituant. Parexemple, un ensemble de clients peut tre divis en deux sous-ensembles : les clients mineurs etles clients majeurs. La dfinition de la classe client se fait alors de la faon suivante : Client = {Client_m1 ...Client_mn1 } { Client_M1 ...Client_Mn2 }. La taille de la classe Clientestalors n1+ n2.

    Lorsque une place (ou une transition) nest pas colore (ou de couleur neutre) on note ledomaine de couleur de cette place.

    Dfinition 0.22 (Domaine de couleur) Un domaine de couleur est un produit cartsien finide classes lmentaires. Chaque classe lmentaire est un ensemble fini dlments. On noteC l={C1, . . . , C k} lensemble des classes lmentaires et lon impose quei=j [1..k], Ci Cj =.

    Une classe lmentaire peut tre partitionne lors de sa dfinition en sous-classes statiques.On note alors Ci,q la q-me partition de la classe Ci, si le nombre de sous-classes statiques deCi; on a alors

    3 Ci = q=1..siCi,q.

    Une sous-classe statique peut tre paramtre ; dans ce cas on noteni,q le nombre dlmentsde la sous-classe statiqueCi,q.

    Un domaine de couleur est not de faon gnrale par C=Ce11 . . . Cekk oei dsigne le

    nombre de fois (un entier positif ou nul) quapparat 4

    la classeCi dansC. Lorsque tous leseisont nuls, le domaine de couleur est le domaine neutre, que lon note.

    La dfinition des classes apparatra sur une partie de la figure comme illustr ci-dessous(figure 12)5. Les noms des places sont suivis du caractre : puis de leur domaine de couleur.

    3 dnote lunion disjointe4ici Ceii signifie le produitCi . . . Ci o Ci apparat ei fois5Cette syntaxe est trs dpendante de loutil utilis

  • 7/21/2019 Cours Vfsr 2010

    30/67

    30

    Par exemple, la place de nom Mess_A_Emettreest de domaineCnCnT yM e (les valeurs sur

    C_Att: Cn x Cn

    Cn = Noeuds = {1..N1}

    Me = Mess = {1..N2}

    Ty = Type = {Qst} U {Rep}C_Repos: Cn

    Mess_A_Emettre: Cn x Cn x Ty x Me

    Figure 12. Un exemple de classes

    les arcs sont des fonctions de couleur qui seront explicites plus loin). Les domaines de couleur destransitions ne seront jamais prciss directement sur le modle mais dduits automatiquementdu domaine des places lies la transition considre et des fonctions de couleur intervenant surles arcs.

    8.2. Fonctions de couleur

    Les arcs dun WN sont tiquets par des fonctions de couleur qui sont des sommes pondresde tuples de fonctions de couleur lmentaires. Comme pour les rseaux colors, ces fonctionspermettent de prciser par rapport une couleur de franchissement le nombre et la couleur desmarques ncessaires, consommes ou produites.

    Il y a trois fonctions de couleur lmentaires. Chacune est dfinie dun domaine de couleur Cvers une classe lmentaire Ci. La fonction identit (XCi) permet de slectionner une instancede Ci, la fonction successeur (!XCi) permet de slectionner le successeur dune instance de Ci;quant la fonction de diffusion (AllCi) elle permet de considrer tous les lments de Ci. Cettedernire fonction peut tre restreinte une sous-classe statique Ci,q de Ci (AllCi,q). Lorsqueune classe apparat plusieurs fois dans le domaine C, on prcise sur quelle occurrence de Ci estapplique la fonction par un indice supplmentaire.

    Dfinition 0.23 (Fonctions de couleur lmentaires) Soient Ci une classe lmentaire etC= Ce11 . . . C

    ekk un domaine de couleur. Les fonctions de couleur lmentaires sont dfinies

    deC dansB ag(Ci) parc= c11, . . . , c

    e11 , . . . , c

    1k, . . . , c

    ekk :

    XjCi(c) =cji (pour toutj tel que1 j ei) ;

  • 7/21/2019 Cours Vfsr 2010

    31/67

    31

    !XjCi(c) = Successeur decji dansCi (pour toutj tel que1 j ei)

    6 ; AllCi(c) =

    xCi

    x etc Ci,AllCi,q(c) =

    xCi,qx

    SiCest le domaine neutre, alors la seule fonction de couleur possible estAll.

    A laide de ces fonctions lmentaires on peut dfinir une fonction de couleur sur une classeCi comme tant une combinaison linaire des fonctions lmentaires. Les contraintes imposessur les coefficients de cette combinaison linaire assurent que lon slectionne bien un nombrepositif de couleurs.

    Dfinition 0.24 (Fonctions de couleur sur une classe) SoientCi une classe lmentaire etC=Ce11 . . . C

    ekk un domaine de couleur. Une fonction de couleur surCi est une combinaison

    linaire

    fCi =

    k=1..ei

    i,k.XkCi

    +

    q=1..si

    i,q.AllCi,q+

    k=1..ei

    i,k.!XkCi

    telle queq 1..si, K {1..ei}, [i,q+

    kKM in(i,k, i,k)] 0

    Remarque Ces dfinitions appellent un certain nombre de remarques dans une utilisation

    pratique :1. On note indiffremment AllCi , Ci.All, ou SCi la fonction de diffusion sur Ci. De plus,

    lorsquil ny a pas dambigut, on peut omettre le nom de la classe (Alli ou Si) et mmelindice lorsquil ny a quune classe (All ou S).

    2. De mme, on note XjCi , Xji, Xi ou X la fonction identit. De plus, tout nom diffrent de

    All (ou de S) et diffrent dun nom de classe ou dun nom dun lment dune classe peuttre utilis pour dfinir la fonction identit (Y,P h,Philos,P roc, ...) ou de la mme faon,pour dfinir la fonction successeur (!Y, !P h, ...). On se rapproche alors de la dfinition desrseaux prdicats/transitions faisant intervenir la notion de variables et de constantes[?] : le nom de la fonction apparaissant sur un arc est interprt comme une variable.

    3. Par dfinition,q=1..siAllCi,q =AllCi ce qui explique que la fonction AllCi napparat pasdirectement dans la dfinition.Sur lexemple de la figure 13, le modle de gauche peut reprsenter lenvoi dun signal par

    un processus X tous les autres processus. Le modle de droite, quant lui, peut sinterprtercomme lenvoi dun signal un sous ensemble statique des processus, ici les processus de lasous-classe statique {a,b,c}.

    6On suppose ici queCi est une classe ordonne

  • 7/21/2019 Cours Vfsr 2010

    32/67

    32

    C = {a,b,c} U {1..n}

    p1: C

    p2: C

    q: C

    p1: C

    p2: C

    q: C

    Figure 13. Un exemple de fonctions de couleur sur une classe

    Les fonctions de couleur dun WN sont soit des valeurs entires lorsquelles portent sur desplaces non colores, soit des sommes de tuples de fonctions sur les classes du domaine de la placeconsidre.

    Dfinition 0.25 (Fonctions de couleur) Soientt une transition etp une place. Une fonctionde couleur sur un arc reliant t etp est :

    1. une valeur entire siC(p) = ;

    2. une somme de tuplesjfjC1

    . . . f jCk

    , si C(p) = C1 . . . Ck avec tout fjCi

    une

    fonction de couleur deC(t) surCi.

    Bien que ces dfinitions soient un peu formelles, nous rappelons quen pratique le fait de donnerdes noms diffrents aux fonctions identit allge considrablement les notations. Considronslexemple suivant (Figure 14) :

    C_1={1..n1}

    p1: p2:C_1

    p3:C_1

    t:C_1 x C_1

    q1:C_1 x C_1 q2:C_1

    Figure 14. Exemple de fonctions de couleur

    Sur cette exemple, le franchissement de t consomme une marque x de C1 dans la place p2,une marque y de C1 dans la place p3 (il se peut que x = y) et un jeton dans la place p1. Ce

  • 7/21/2019 Cours Vfsr 2010

    33/67

    33

    franchissement produit alors une marque x et une marquey dans la place q2ainsi que lensembledes couples (z, y)avec z dans C1 et diffrent de x dans la place q1. Formellement,

    X dsigne la fonction X1C1 etY dsigne la fonction X2C1

    ; X+ Ydsigne la fonction X1C1 + X

    2C1

    ; All X, Y dsigne le tuple de fonctions f1, f2 avec f1 = (AllC1 X

    1C1

    ) et f2 =X2C1 .

    8.3. Les gardes

    La dfinition des WN est fortement lie la notion de symtrie qui apparat dans les com-portements modliss. La modlisation dun ensemble de ressources de mme type (ou les tatsde processus de mme comportement) est ralise par la dfinition dune place colore : la placemodlise lensemble des ressources (ou ltat dun ensemble de processus) et la distinction desinstances est obtenue par le domaine de couleur de la place.

    Nous avons vu que le partitionnement dune classe en sous-classes statiques permet de dif-frencier, au sein dune mme classe, des comportements lgrement diffrents. Ce mcanismede modlisation vite la duplication de places ou de transitions. Afin de prendre en compte ladfinition de ces sous-classes dans la dynamique du systme il nous faut pouvoir restreindre lefranchissement des transitions certaines instances de sous-classes ainsi que la consommationou la production de marques certaines valeurs. Ce double objectif est atteint par la dfinitiondegardes.

    Dfinition 0.26 (Gardes) Une garde est une fonction boolenne dfinie sur un domaine decouleur C = Ce11 . . . C

    ekk et construite laide des prdicats standard suivants dfinis par :

    c= c11, . . . , ce11 , . . . , c

    1k, . . . , c

    ekk C,

    1. [Xi1Ci =Xi2Ci

    ](c) vaut VRAI ssici1i =ci2i ;

    2. [Xi1Ci = !Xi2Ci

    ](c) vaut VRAI ssici1i est le successeur deci2i dansCi;

    3. [Xi1Ci Ci,q](c) vaut VRAI ssici1i appartient la sous-classe statiqueCi,q.

    4. g1 g2, g1 g2, g1 og1 et g2 dsignent des prdicats standards et, , dsignent lesconnecteurs boolens classiques.

    Remarque Lorsque lon a utilis des noms diffrents deXCi1 pour dsigner la fonction identitsur la i-me composante du domaine de couleur C, cest ce nom qui est galement utilis pourla dfinition des gardes plutt que la notation Xi1C. De plus, plutt que de faire intervenir deuxvariables diffrentes (X etY par exemple) et dutiliser une garde liant ces deux variables ([X=

  • 7/21/2019 Cours Vfsr 2010

    34/67

    34

    Y]) on prfrera utiliser simplement une seule variable (par exemple X). Lorsquune sous-classestatique est un singleton, lon note X= e plutt que X {e}.

    Lorsque une garde g apparat dans la dfinition dune transition t elle sinterprte comme :la transition t est franchissable pour une instance de couleur c si et seulement si la garde vautvrai pour c (g(c) = V RAI) et si les pr-conditions de t sont remplies pour cette instance decouleurc (rgle de franchissement normale). Une garde portant sur une transition modifie doncimplicitement le domaine de couleur de la transition. Si lon veut restreindre lapplication de lagarde une des fonctions attenantes cette transition, il est ncessaire de garder la fonction etnon la transition.

    Lorsque une garde g apparat sur la dfinition dun tuple fdune fonction de couleur on note[g]f le tuple fgarde par g. Cette garde modifie alors la valeur de fde la faon suivante.

    Dfinition 0.27 (Fonctions de couleur gardes) Soientfun tuple de fonctions lmentairesetg une garde. Le tuple gard [g]fest dfini par

    [g]f(c) def

    = ( sig(c) alorsf(c) sinon 0)

    Une fonction de couleur garde est alors une somme de tuples gards.

    Considrons les deux modles suivants (figure 15). Dans le modle de gauche, la garde limite

    C={0} U {1..N1}

    [X=Y]

    p1: Cp2: C

    t:C x C

    q: C

    p1: Cp2: C

    t:C x C

    q: C

    Figure 15. Exemple de gardes

    le franchissement de t aux valeurs (c, c)de C Cvrifiant c = c. La garde devrait tre thori-quement note [X1C=X

    2C]. Le modle de droite est une notation plus simple du mme modle :

    au lieu de faire figurer la garde [X=Y] on remplace Y par Xsur les arcs reliant t p2 et q.

    Les deux modles suivants (figure 16) montrent la diffrence entre une transition garde etune fonction garde. Sur le modle de gauche, la transition t nest franchissable que pour les

  • 7/21/2019 Cours Vfsr 2010

    35/67

    35

    C={0} U {1..N1}

    [Y != 0]

    p1: Cp2: C

    t:C x C

    q: C

    p1: Cp2: C

    t:C x C

    q: C

    [Y != 0]

    Figure 16. Exemple de gardes

    valeurs< c, c >de C Cvrifiantc = 0(qui est une notation abrge de c / {0}et qui signifiec est diffrent de la valeur 0 de C). Sur le modle de droite, la transition est franchissable pourune valeur < c, c > condition que dune part il existe au moins une marque de couleur c dans

    p1 et que dautre part, soit c = 0 soit il existe au moins une marque de couleur c dans p2 : test donc potentiellement franchissable pour des valeurs < c, 0>. Si on franchit t pour < c, c >avec c = 0, une marque de couleur c est prleve de la place p1, une marque de couleur c estprleve de la place p2et une marque de couleur < c, c >est produite dansq. Si par contre lonfranchit la transition t pour une valeur < c, 0> alors seule une marque de couleur c est prlevedep1(pas de pr-condition sur p2) et une marque de couleur < c, 0> est normalement produitedansq.

    8.4. Le formalisme des rseaux bien forms

    Dfinition 0.28 (Rseau bien form) Un rseau bien form est un 7-tupleW N=P,T,Pre,Post,Cl, C,o :

    P est un ensemble non vide et fini de places ; Test un ensemble non vide et fini disjoint deP de transitions; Cl = {C1, . . . , C k} est ensemble de classes lmentaires ; chaque classe lmentaireCi est

    un ensemble fini et non vide pouvant tre partionn en si sous-classes statiques (Ci =q=1..siCi,q); On noteni= |Ci| etni,q = |Ci,q| ;

    C est la fonction de couleur de domaineP T et de codomaine , o est un ensemblecontenant les produits cartsiens finis dlments deCl (classes lmentaires). Un lmentdeC(s) est un tuple < c1, c2, . . . , cl > et est appel couleur de s. C(s) dsigne le domainede couleur des ;

    Post (resp. P re) est la fonction dincidence avant (resp. arrire) qui associe tout couplep, t deP Tune fonction de couleur garde deC(t) versBag(C(p)) ;

  • 7/21/2019 Cours Vfsr 2010

    36/67

    36

    est une fonction qui associe chaque transition une garde ; par dfaut, pour tout t,(t) = V RAI.

    Il existe une fonctionOrdonnedfinie deC ldansboolenet qui prcise si lordre est importantpour une classe lmentaire donne (utilisation ou pas de la fonction successeur sur cette classe).

    La rgle de franchissement et la dfinition du rseau dpli sont les mmes que pour les rseauxcolors. La seule distinction provient de la prise en compte des gardes qui modifie lgrement cesdfinitions par :

    1. une transitiont est franchissable pour une couleur ct C(t)ssi la garde associe t est vraipour ct ((t)(ct) = V RAI) et si t est franchissable normalement pour ct (pr-conditionsvrifies) ;

    2. une transition (t, ct)apparat dans le rseau dpli uniquement ssi la garde associe t estvrai pour ct ((t)(ct) =V RAI).

    Afin dillustrer cette dfinition, nous considrons le problme suivant (modlis figure 17) :Ce rseau est un raffinement du rseau prsent en figure 10 page 21, o lon modlise le routage

    siteCpret

    [t=rep]

    crecrep

    [t=rep]

    senvrep

    servinfo

    Socc

    [t=req]

    srecreq

    messlocalMessEmis

    clinfo

    Catt

    [t=req]

    cenvreq

    site

    Spret

    [s=e]resenv

    messgeneral

    MessRes

    [sd]routage

    [s=d]resdeliv

    messlocalMessDeliv

    +++

    ++routinfo

    Table

    Figure 17. Un modle de routage rseau

    des requtes du client vers le serveur quil a choisi et celui des rponses du serveur vers ce client.Un clientx met (transition cenvreq) destination dun serveur y des messages mis me de typerequte[t= req]modliss sous forme dun quadruplet < x, y, t,me >dans la place M essEmis.Pour les acheminer dans le rseau, la transition resenv les code dans la place MessRes sousla forme gnrale < s,e,d, t, m > o s, initialis par la garde [s = e], est le site dmission dumessage,e son metteur, dson destinataire.

  • 7/21/2019 Cours Vfsr 2010

    37/67

    37

    Sis = d le message, arriv sa destination d, est dlivr dans la place MessDelivsous formelocale < e, d, t, m > par la transition resdeliv. Sinon le routage lenvoie vers le site suivant findiqu par la table de routage. Cette table contient des triplets < s,d,f > indiquant que lesites doit envoyer au site fles messages destins au site d. Un message < s, e, d, t, m >dans laplace MessRes devient ainsi < f, e, d, t, m >dans la mme place et fera ventuellement lobjetde plusieurs redirections. Ici il y a 3 sites : le site 1 est connect 2 et 2 3. Dans la place Table,un triplet tel que < 1, 3, 2> fait transiter par 2, les messages situs en 1 et destins 3.

    Un serveur y traite les messages de type [t= req]qui lui sont destins. Il fournit une rponse

    mr quil met sous forme dun message local < y,x,t,mr > avec [t = rep] par la transitionsenvrep. Cette rponse est aussi code sous forme dun message rseau et est achemine selon lemme mcanisme que le message du client.

    8.5. Les rseaux rguliers et les rseaux ordonns

    En restreignant la dfinition des WN on peut retrouver la dfinition de deux familles derseaux colors. Lintrt de ces rseaux est quil existe des algorithmes simples de calcul defamille gnratrice dinvariants colors et paramtrs sur ces modles [?], [?], [?].

    Dfinition 0.29 (Rseaux rguliers) Un rseau bien form est un rseau rgulier si :

    1. Les classes ne sont pas partitionnes en sous-classes statiques ;

    2. Le domaine de couleur dune place ou dune transition ne peut faire intervenir deux fois lamme classe ;

    3. On nutilise que les fonctions identit (XCi) et diffusion (AllCi) ;

    4. Toutes les gardes sont VRAI (ou plus simplement il ny a ni garde sur les fonctions nigarde sur les transitions).

    Lorsque le domaine de toutes les places et de toutes les transitions est gal aux produit cartsiende toutes les classes on dit que le rseau est homogne. Si ce domaine est rduit une seuleclasse (pas de produit cartsien de classes) on dit que le rseau est un rseau rgulierunaire oumono-classe.

    Lensemble de ces contraintes implique que lon ne peut distinguer une valeur constante dansune classe de couleur et quune transition ne peut distinguer quun objet par classe lmentaire.De plus, on restreint les catgories de fonctions de couleur pouvant tre utilises.

  • 7/21/2019 Cours Vfsr 2010

    38/67

    38

    Nous donnons un exemple maintenant classique [?] de rseaux rguliers (le modle de base dedonnes rpartie, figure 18).

    t1

    t2

    t3

    t4

    C2 = {1..n2}

    C1 = {1..n1}

    < X1, X2 >

    < X1, X2 >

    < All1 - X1, X2 >

    < All1 - X1, X2 >

    Files : C2

    Mess : C1xC2

    Ack : C1xC2

    Update : C1xC2Wait Acks : C1xC2

    < X1, X2 >

    < X1, X2 >

    < X1, X2 >

    < X1, X2 >

    Start Modif : C1 Start Update : C1

    C1.All

    C2.All

    C1.All

    Figure 18. Un modle de base de donnes rpartie

    Lorsquun site X1 veut modifier un fichier X2 de la base de donne (transition t1), aucun

    autre site ne doit travailler sur ce fichier ; il faut donc acqurir un verrou dexclusion mutuellesur ce fichier (arc reliant Files et t1). Initialement, aucun site ne travaille sur la base, do lemarquage initial de Files C2.All.

    LorsqueX1 peut modifier la base, il envoie alors tous les autres sites une demande de mise jour de la base, fonction All1 X1 sur larc t1 Mess et passe en attente dun accus derception de mise jour des autres sites.

    Chaque site modifie alors sa copie de la base en mettant jour le fichier X2(transitiont3) etenvoie un accus de modification dans la place Ack (transitiont4). Lorsque tous les sites (exceptlinitiateur de la modification) ont mis jour leur copie de la base (fonction All1 X1 sur larcAck t2), X1 peut alors retourner au repos et libre alors la base de donne (transition t2).

    Il y a deux classes de couleurs : C1qui reprsente les sites et C2qui reprsentent les fichiersde la base. Initialement, chaque site est prt faire une modification ou une mise jour de labase (multi-ensemble C1.All dans les places StartModif et StartUpdate) et tous les fichierssont libres (C2.All dans la places Files).

    Dfinition 0.30 (Rseaux ordonns) Un rseau bien form est un rseau ordonn si il vrifieles mmes contraintes quun rseau rgulier except le fait quil peut faire intervenir la fonction

  • 7/21/2019 Cours Vfsr 2010

    39/67

    39

    successeur (!XCi) mais pas la fonction de diffusion. Les fonctions autorises sur une classe sontdonc : XCi et !XCi.

    Comme illustration nous proposons une modlisation du trs classique problme des phi-losophes avec prise en deux temps des baguettes. Dans ce modle, linterblocage est contrlpar lajout dune place Chaises limitant N 1 le nombre de philosophes ayant commenc demander des baguettes mais nayant pas encore obtenu les deux.

    D = {1..N}

    Baguettes : D

    < X >

    < X >

    < X >

    < X >

    < X >

    < X >

    < X >

    < X >

    < X >

    < X >

    < X >

    < X > < X >

    PrendreG

    < X >

    fin

    Att1 : D

    PrendreD

    RendreG

    Finir1 : D

    Mange : D

    Att2 : D

    RendreD

    Finir2 : D

    Chaises : {.}

    PrendreChaisePense : D

    D.All

    N-1

    D.All

    Figure 19. Un version du problme des philosophes

    Tous les philosophes sont initialement dans ltat Pense (D.All dans la place Pense). Pourmanger, un philosophe Xdoit dabord prendre une chaise (transition PrendreChaise), puis sabaguette (transition PrendreG) puis la baguette de son voisin (transition PrendreD). Lorsquil

    atteint ltat Mange, le philosophe rend la chaise quil avait prise. Pour retourner ltat Pense,il doit rendre sa baguette, puis celle de son voisin.

    Remarque Un abus de notation est fait lorsque lon dfinit le marquage initial de la place

    Chaises N 1. En effet, de par la dfinition des rseaux ordonns, il nest pas possible apriori de faire intervenir le cardinal dun domaine de couleur dans la dfinition dune fonctionde couleur ou dun marquage initial. Nanmoins, lutilisation du cardinal dune classe de couleurne modifie pas le pouvoir dexpression du modle. En effet, il suffirait de rajouter une classe de

  • 7/21/2019 Cours Vfsr 2010

    40/67

    40

    couleurC de cardinal N 1, de colorer la place Chaises par cette nouvelle classe de couleurs,de lui attribuer le marquage initial C.All et de modifier les arcs autour de cette place de la faonsuivante :

    P re(Chaises, P rendreChaise) =Y, Post(Chaises, P rendreD) = Y.

    9. Le graphe des marquages symboliques

    Le principe de construction du graphe des marquages symboliques (GMS) est de prendre encompte les symtries de lensemble des marquages accessibles afin de les reprsenter de manirecompacte [?, ?, ?]. Cette reprsentation repose sur une structure de donnes et une mthode :

    1. le marquage symbolique reprsente un ensemble de marquages quivalents par rapport certaines permutations de couleur prservant les symtries du modle ;

    2. la rgle de franchissement symbolique dfinit la relation daccessibilit dans le GMS etreprsente un ensemble de franchissements ordinaires.

    Dans la suite de cette section la construction du graphe des marquages symboliques seraillustre laide de lexemple suivant (figure 20). Ce rseau modlise des sites qui peuvent jouer

    Class `

    site is 1..3;

    Domain

    traitement is

    ;

    Var

    x in site;

    y in site;

    site Spret

    crec

    traitement

    Mess

    senv

    traitement

    Socc

    srec

    site

    Re psite

    Catt

    [y x]cenv

    Figure 20. Un modle client serveur

    indiffremment le rle de clients ou de serveurs. Un site dans ltat Prt (place Spret) passedans ltat client en attente (Catt) par la transition cenv ou dans ltat serveur occup (Socc)par la transition srec. Puisquun site ne peut jouer la fois le rle de client et de serveur deson propre message, on munit la transition cenv dune garde [y = x] empchant denvoyer unmessage au site de mme numro. Une telle garde est une condition restreignant le choix desvariables associes une transition.

  • 7/21/2019 Cours Vfsr 2010

    41/67

    41

    Si lon souhaite analyser ce rseau par une technique base sur la construction du graphe desmarquages accessibles (pour une valeur de n donne), on se heurte rapidement au problme delexplosion combinatoire. En effet, la taille de lensemble des marquages accessibles augmente demanire exponentielle en fonction du nombre de sites. Pour trois sites, le graphe des marquagesdu rseau dpli possde 87 sommets et 207 arcs, pour quatre sites il y a 936 sommets et 3124 arcset pour cinq sites il y a 12455 sommets et 53575 arcs. Cependant, beaucoup de ces marquagesreprsentent des tats similaires en terme dvolution future et pourraient ne pas tre construitssans pour autant perdre la possibilit danalyse du modle. La premire tape vers cet objectif

    est la dfinition de la notion de marquage symbolique.

    9.1. Marquages symboliques

    Considrons lvolution suivante du rseau : le site 1 envoie une demande de traitement ausite 2 et le site 3 reste inactif.

    cenv( ) cenv( )

    m1 m2

    m0 m0 = ( + + )

    m1 = ( + ).Spret + ( ).Catt + ( ).Mess

    m2 = ( + ).Spret + ( ).Catt + ( ).Mess

    Figure 21. Deux volutions possibles du rseau de la figure 20

    On obtient alors le marquage m1 = ( + < 3 >).Spret + ().Catt + ().Mess.

    Il est clair que lon obtiendrait un marquage similaire si lon remplaait le site 1 par lesite 3 : 3 envoie une demande 2 et 1 reste inactif, ce qui correspond au marquage m2 =(< 2 > + < 1 >).Spret + (< 3 >).Catt+ (< 3, 2 >).Mess. Le marquage m2 peut tre obtenupar permutation des couleurs partir du marquage m1. Les comportements des diffrents sitessont symtriques et il semble donc naturel de regrouper des marquages symtriques en classesdquivalence appeles marquage symbolique. Cette relation dquivalence est obtenue partirde la dfinition de permutations de couleurs admissibles.

    Dfinition 0.31 (Permutation admissible) SoitC l= {C1, . . . , C k}. Le tuple de permutation= 1, . . . , k est une permutation admissible (de WN) si et seulement si :

    1. i, iest une permutation surCiprservant les sous-classes statiques deCii.e. q, i(Ci,q) =Ci,q

  • 7/21/2019 Cours Vfsr 2010

    42/67

    42

    2. siCi est ordonne, alorsi est une rotation.

    On note lensemble des permutations admissibles. De plus, si c = ci1 , . . . , ciq est une va-leur dun domaine de couleurs C (i.e. c C = Ci1 . . . Ciq , Cij Cl) alors (c) =i1(ci1), . . . , iq(ciq).

    La premire condition caractrise le fait que les lments dune sous-classe statique ont lemme comportement. Leur identit est donc peu importante ds que la permutation prserve lasous-classe statique. La seconde proprit est lie au fait que lordre est important sur une classe

    ordonne : on peut dsignerx et son successeur. Il faut alors prserver lordre sur la classe etrestreindre les permutations aux rotations. La conjonction de ces contraintes impose donc que,pour les classes ordonnes ayant plus dune sous-classe statique, la seule permutation autoriseest lidentit.

    Par exemple, la permutation 1 sur C1 dfinie par 1(1) = 3, 1(2) = 2, 1(3) = 1 permetde dfinir la permutation admissible sur C1 C1 = 1, 1. Si la classe C1 tait une classeordonne, cette permutation ne serait pas correcte car elle ne respecterait pas lordre sur C1.

    A partir de cette dfinition, nous pouvons dfinir laction dune permutation sur une marquage.

  • 7/21/2019 Cours Vfsr 2010

    43/67

    43

    Dfinition 0.32 (Permutation de marquage) Soitmun marquage et une permutationadmissible. Alors.m est le marquage dfini par :

    p P, c C(p),.m(p)((c)) =m(p)(c)

    Sur lexemple prcdent, le marquage m2 peut tre obtenu partir du marquage m1 parapplication de la permutation de couleur = 1, 1.

    Une proprit fondamentale des rseaux bien forms est que la rgle de franchissement estprserve par application dune permutation admissible sur un marquage et sur une instance defranchissement.

    m[t(c)m .m[t((c)).m

    Par exemple, partir du marquage m1il est possible de franchir la transitionsrec(2)(le site 2accepte une requte) et on atteint alors le marquagem1 = ().Spret + ().Catt + ().Socc. On vrifiera sans peine qu partir du marquage m2il est possible de franchir la transition

    srec(2) srec(2)

    m2m1m1 = ( + ).Spret + ( ).Catt + ( ).Mess

    m2 = ( + ).Spret + ( ).Catt + ( ).Mess

    m2m1m1 = ( ).Spret + ( ).Catt + ( ).Socc

    m2 = ( ).Spret + ( ).Catt + ( ).Socc

    Figure 22. Franchissement et permutations

    srec(2)(1(2) = 2) que lon atteint le marquage m2 = ().Spret+().Catt+().Soccet que m1= .m

    2.

    Les marquages obtenus par permutation dun marquage donn sont donc en quelque sortequivalents en terme de comportement futur. Ceci nous permet de dfinir la notion de classedquivalence de marquage, appel marquage symbolique.

    Dfinition 0.33 (Marquage symbolique) SoitEq la relation dfinie par :

    m E q m tqm =.m

    Eq est une relation dquivalence et la classe dquivalence dun marquage m est appel unmarquage symbolique et notm.

  • 7/21/2019 Cours Vfsr 2010

    44/67

    44

    9.2. Reprsentation dun marquage symbolique

    Il faut alors se poser la question de la reprsentation dun marquage symbolique. En effet,reprsenter une classe dquivalence par lensemble des lments en relation est trs coteuxen espace (ceci revient calculer le graphe ordinaire). A loppos, comme dans [ ?], reprsenterune classe dquivalence par un de ses lments et calculer (lorsque cela est ncessaire) si deuxlments sont quivalents est coteux en temps.

    La reprsentation choisie ici utilise le fait que lidentit des couleurs dun marquage symbolique

    nest pas importante mais quil est plus intressant de connatre la distribution des valeurs decouleur dans les places. Par exemple, pour le marquage initial, les couleurs < 1 >, < 2 > et ont la mme distribution dans les places (toutes dans la place Spret). De mme, pour lesmarquages m1 et m2 lidentit des sites nest pas importante. Il suffit de savoir quil y a deuxsites dans ltatSpret, un site dans ltat Cattet une requte envoye par un site un autre site.On peut donc oublier lidentit des couleurs et reprsenter un groupe de k couleurs distribuessymtriquement par une sous-classe dynamique, qui sera caractrise par son cardinal 7. Cessous-classes dynamiques seront notes ZjCi ou Z

    ji avec Ci une classe de couleurs et j un indice

    dsignant la j-me sous-classe dynamique de Ci ; elles seront distribues par une fonction demarquage dans les places du rseau. Cependant, lorsquune classe est dcompose en sous-classesstatiques, il est ncessaire de diffrencier les lments dune sous-classe statique dune autre. Eneffet, les permutations admissibles dun modle doivent prserver les sous-classes statiques (quireprsentent des comportements diffrents). Pour cela, on prcise quelle sous-classe statiqueest associe une sous-classe dynamique par une fonction supplmentaire. De plus, afin que lareprsentation soit cohrente avec le dcoupage statique des classes de couleurs, on impose quela somme des cardinaux des sous-classes dynamiques associes une sous-classe statique soitgale au cardinal de cette sous-classe statique.

    Dfinition 0.34 (Reprsentation symbolique) Une reprsentation symbolique est un 4-tuplem= {{Zji }j=1..

    ni

    }i=1..k,St,Card,Marq avec :

    {Zj

    i }j=1..ni un ensemble de sous-classes dynamiques associes Ci; on noteCi= {Zji }j=1..niet par extension, siC=Ce11 . . . C

    ekk est un domaine de couleur, alors

    C=C1e1 . . . Ckek ; St une application qui associe chaque sous-classe dynamiqueZji une sous-classe statique

    deCi;

    7Le terme dynamique est utilis pour rappeler que le partionnement se fait dynamiquement pour chaquemarquage accessible et non statiquement lors de la dfinition du rseau o lon parle de sous-classe statique

  • 7/21/2019 Cours Vfsr 2010

    45/67

    45

    Card une application qui associe chaque sous-classe dynamique un cardinal (un entierpositif) 8 tel que :

    St(Zj

    i)=Ci,q

    Card(Zji) =|Ci,q|.

    Marq une application qui dfinit la rpartition des sous-classes dynamiques dans les placesdu rseau : p P, Marq(p) Bag(C(p)).

    En utilisant cette reprsentation, le marquage symbolique li m1 et m2 pourra tre not(< Z11 > + < Z

    2

    1 >).Spret+ (< Z3

    1 >).Catt+ (< Z3

    1 , Z1

    1 >).Mess avec |Z11 | = |Z

    21 | = |Z

    31 | = 1. De

    mme, le marquage symbolique li m0 pourra tre not (< Z11 >).Spret avec |Z

    11 |= 3.

    Une reprsentation symbolique dnote un ensemble de marquages ordinaires. Pour cela, onassocie chaque sous-classe dynamique un ensemble de couleurs dans la sous-classe statiquecorrespondante.

    Dfinition 0.35 (Marquages reprsents) Soitm une reprsentation symbolique. Un mar-quage ordinaire m est reprsent parm ssi il existe pour toute classeCi une application i deCi dansCi telle que :

    1. le nombre de couleurs reprsentes par une sous-classe dynamique est gal au cardinal decelle-ci ; i.e. |1(Zji)|= Card(Z

    ji) ;

    2. lensemble des couleurs reprsentes par une sous-classe dynamique est inclus dans une

    seule sous-classe statique, i.e. q 1..si, Zji Ci St(Zji) =q= 1(Zji) Ci,q;3. siCi est une classe ordonne alors lordre surCi est respect ; i.e.

    ch 1(Zji) tq

    !XCi(ch) 1(Z

    j+1mod |Ci|i ) et

    c=ch 1(Zji), !XCi(c)

    1(Zji)

    4. les couleurs sont rparties selon la rpartition des sous-classes dynamiques ; i.e. p,M(p)(c11 , . . . , ce11

    , .=Marq(p)(1(c

    11

    ), . . . , 1(ce11

    ), . . . , k(ck1

    ), . . . , k(cekk

    ))

    A laide de cette dfinition, il est par exemple possible de retrouver les marquages m1 et m2

    partir de la reprsentation symbolique m=(< Z11 >+ < Z21 >).Spret +(< Z31 >).Catt +(< Z31 , Z11 >).Messavec |Z11 |= |Z

    21 |= |Z

    31 |= 1.

    Les contraintes portant sur sur les applications i sont lies entre autres aux conditionsportant sur les permutations admissibles (une permutation respecte les sous-classes statiques etlordre des classes ordonnes). De cette faon on garantit que les marquages reprsents par unmarquage symbolique m sont exactement ceux de la classe dquivalencem.

    8On note|Zji | le cardinal de Zji.