Costruzionedelgrafodistato PerunaretediPetriNconmarcaturainizialeM0sidefinisceilgrafo distato(ografodiraggiungibilità)comeilgrafoincui: Inodirappresentanolepossibilimarcaturedellarete. Gliarchirappresentanoletransizionicheportanodauna marcaturaall altra. Leprincipalicaratteristichediungrafodistatosono: Ilgrafodistatoèunautoma Puòavereunnumeroinfinitodistati L automapuòesserenondeterministicoinquantosono possibilipiùarchiuscentidaunnodo. Graziealgrafodistatoèpossibileverificarefacilmenteleproprietàdi unaretedipetri: limitatezza(boundedness)=numerodistatifinito sicurezza(safeness)=nessunostatoconpiùdiungettoneper posto vivezza(liveness)=apartiredaciascunnododelgrafoesiste uncamminocontenenteunarcoassociatoadognitransizione marcaturemorte(deadlock)=esisteunnodosenzaarchi uscenti reversibilità(reversibility)=daogninodoesisteuncammino cheloconnetteconilnodoiniziale Costruzionedelgrafodistato 1. SicreailnodocorrispondenteallamarcaturainizialeM0esi impostaquestonodocomenodocorrente. 2. DefinendoMklamarcaturacorrispondetealnodocorrente,se noncisonotransizioniattivabilipartendodamkallorasi impostamk 1comenodocorrenteesicalcolanoletransizioni attivabilidamk 1.Sek==0l algoritmotermina. 3. SeesistonotransizioniancoraattivabiliinMksieseguelaprima delletransizioniattivabili,nonconsiderateinprecedenza,esi calcolalanuovamarcatura.setalemarcaturanonèpresente nell insiemedellemarcatureprecedenti,allorasicreauna
nuovamarcaturamk+1eilrelativonodochediventeràilnodo corrente.inoltresicreaunarcotrainodimkemk+1esi denominaconilnomedellatransizioneadessoassociata.se invecelamarcaturagiàappartieneall insiemedellemarcature esistenti,sicreaunarcotramkelamarcaturatrovata.ilnodo attivorimanemk. 4. Siripetel algoritmodalpasso2. Nota:incasodiretinonlimitate,l algoritmopuònonterminaremai portandoadungrafoinfinito.perovviareaquestosiintroduceil simboloωarappresentareunpostochepuòassumereunnumero interononlimitatodigettoni,permettendodiotteneregrafifiniti ancheincasodiretinonlimitate. DatalaRetediPetri(N,M0): Esempidigrafidistato P1 T1 P2 T2 P3 T3
Creareilcorrispondentegrafodistato: 1. CreareilnodorelativoallamarcaturainizialeM0eimpostarlo comenodocorrente 2. Selezionarelaprimatransizioneattiva,nonconsideratain precedenza,ecalcolarelanuovamarcaturamk(m1=010).semk nonappartieneallemarcaturecreateinprecedenza,creareun nuovonodoassociatoadmkecreareunarcodamk 1aMk. ImpostareMkcomenodocorrente. 3. Continuareaffinchénoncisonotransizioniattivabili 4. Seloscattodiunatransizioneportaadunamarcaturagià calcolatainprecedenzamj<k,sicreaunarcodamkadmjedmk rimaneilnodocorrente. 1 0 0 1 0 0 M0 0 1 0 M0 M1 T1 1 0 0 0 1 0 M0 M1 T1 0 0 1 M2 T2 1 0 0 0 1 0 M0 M1 T1 0 0 1 M2 T2 T3
5. Algoritmoterminaquandononcisonopiùtransizioniattivabili intuttelemarcatureraggiunte. Esempio: CalcolareilgrafodistatodellaretediPetri(N,M0): 1. M0=11100 2. M1=11110 3. M2=11120 P1 P4 P2 P3 P5 T1 T2 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 T1 1 1 1 0 0 1 1 1 1 0 T1 1 1 1 2 0 T1
4. UlterioriesecuzionidiT1porterebberoadungrafo infinitoconunnumeroillimitatodimarcheinp4,per questosiutilizzailsimboloω 5. Mk=111ω1 6. Anchel esecuzionedit2provocal aggiuntadiunnumero infinitodimarcheinp5 1 1 1 0 0 1 1 1 ω 0 T1 1 1 1 0 0 1 1 1 ω 0 T1 1 1 1 ω 1 T2 T1 T1 1 1 1 0 0 1 1 1 ω 0 T1 T2 T1 1 1 1 ω ω T1,T2
7. Unavoltaterminateesploratetuttelepossibili transizioniinm=111ω0em=111ωωilnodoattuale diventam0 8. Mk=111ωω 1 1 1 0 0 1 1 1 ω 0 T1 T2 T1 1 1 1 ω ω T1,T2 T2 1 1 1 0 ω T1 1 1 1 0 0 1 1 1 ω 0 T1 T2 T1 1 1 1 ω ω T1,T2 T2 1 1 1 0 ω T2 T1
Esempio: Datalaseguenteretedipetri(N,M0),calcolareilcorrispondentegrafo distato 1. M0=110013 P1 P2 M0 T1 P5 P3 T2 P4 T3 P6
2. M1=001013 P1 P2 P5 P6 T1 P3 T2 P4 T3 T1 M0 M1
3. M2=100113 P1 P2 M0 T1 T1 M1 P3 T2 P5 T2 M2 P4 T3 P6
4. M3=110004 P1 P2 P3 P4 P5 P6 T2 T1 T3 M1 M0 T1 M2 T2 M3 T3
5. M4=001004 P1 P2 P3 P4 P5 P6 T2 T1 T3 M1 M0 T1 M2 T2 M3 T3 M4 T1
6. M5=100104,sistemabloccato P1 P2 M0 T1 T1 M1 P3 T2 P5 T2 M2 P4 T3 M3 T3 T1 P6 M4 T2 M5