Note su contatti e confusione sulle reti di Petri - e
by user
Comments
Transcript
Note su contatti e confusione sulle reti di Petri - e
Chiarimenti su contatti e confusione nelle reti elementari Queste note intendono chiarire le nozioni di contatto e confusione nelle reti di Petri (ma non è detto che ci riescano: eventualmente, segnalatemi la necessità di ulteriori spiegazioni). 1 Contatti Si parla di contatto in una rete elementare quando, in un caso raggiungibile, c’è un evento per il quale tutte le precondizioni sono vere, ed è vera anche una postcondizione. Dal punto di vista della teoria, un contatto non costituisce un problema: la regola di scatto stabilisce che l’evento non è abilitato, senza alcuna ambiguità. La questione è molto più interessante dal punto di vista modellistico. Considerate il seguente frammento di una rete elementare. p1 t1 p2 t2 p3 t3 Interpretiamo gli stati locali p1 , p2 e p3 come tratti di una strada, di lunghezza sufficiente per essere occupati da un’automobile, e diciamo che una marca in pi significa la presenza di un’automobile nel tratto corrispondente. Gli eventi rappresentano il movimento da un tratto al successivo. Se, nella situazione indicata nella figura, l’automobile più a sinistra si sposta da p1 a p2 (scatto dell’evento t1 ) nella rete si produce un contatto. Nel modello formale, quindi, l’auto in p2 non può proseguire, e i passeggeri sopravvivono tranquillamente. Nella realtà, purtroppo, le cose vanno in modo diverso. Questo esempio mostra che, in alcuni casi, un contatto in una rete corrisponde a una situazione “pericolosa”, e giustifica l’interesse della nozione teorica. Ci sono altre ragioni per cui può essere interessante studiare i contatti, ma non ce ne occupiamo qui. Si noti che, sul piano formale, è facile eliminare i contatti, senza influire sul comportamento della rete, aggiungendo a ogni stato locale il suo complemento. Esercizio: che cosa potrebbero rappresentare, nel modello della strada, gli stati complementari di p1 , p2 e p3 ? Possiamo ritenere che, con la loro introduzione, i nostri amici a bordo delle due automobili possano viaggiare serenamente? 1 2 Confusione Si parla di confusione quando, assegnati un caso iniziale e uno finale, non è possibile stabilire oggettivamente se, nel passare dall’uno all’altro, è stato sciolto un conflitto fra due o più eventi. Consideriamo due casi paradigmatici, illustrati dai due frammenti di reti elementari qui sotto. p1 N1 N2 t1 p2 s1 s2 t2 t3 e1 e2 e3 p4 p5 s3 s4 s5 Supponiamo di sapere che N1 ha raggiunto il caso finale {p2 , p4 }. Poiché gli eventi t1 e t2 sono indipendenti, non è possibile stabilire quale dei due sia scattato prima, in una particolare esecuzione; perciò, non si può stabilire se l’esecuzione sia passata dal caso {p3 , p2 }, nel quale c’è un conflitto effettivo fra t2 e t3 . Considerazioni analoghe valgono per N2 con caso finale {s3 , s5 }. Si noti che, in N1 , se il caso finale osservato fosse {p5 }, potremmo dedurre che l’esecuzione ha attraversato il caso {p3 , p2 }. La nozione di confusione è rilevante quando un possibile conflitto in una rete è associato a una decisione nel sistema reale, e alla decisione è associata una responsabilità attribuita a un elemento del sistema. Einar Smith ha dimostrato che, in un sistema che deve garantire la mutua esclusione fra due sezioni critiche, si avranno necessariamente situazioni di confusione. 2