Download presentation
Presentation is loading. Please wait.
1
Behaviour-Preserving Transition Insertions in Unfolding Prefixes
Victor Khomenko University of Newcastle upon Tyne
2
Motivation Some design methods based on Petri nets repeatedly execute the following steps: Analyze the original PN spec Modify the PN by behaviour-preserving transition insertion
3
Example: VME Bus Controller
Device VME Bus Controller lds ldtack d Data Transceiver Bus dsr dtack lds- d- ldtack- ldtack+ dsr- dtack+ d+ dtack- dsr+ lds+
4
Example: Encoding Conflict
dtack- dsr+ 00100 ldtack- 00000 10000 lds- 01100 01000 11000 lds+ ldtack+ d+ dtack+ dsr- d- 01110 01010 11010 01111 11111 11011 10010 M’’ M’
5
State Graphs vs. Unfoldings
Relatively easy theory Many efficient algorithms Not visual State space explosion problem
6
State Graphs vs. Unfoldings
Alleviate the state space explosion problem More visual than state graphs Proven efficient for model checking Quite complicated theory Not sufficiently investigated Relatively few algorithms
7
Example: Encoding Conflict
dtack- dsr+ e1 e2 e3 e4 e5 e6 e7 e12 dsr+ lds+ ldtack+ d+ dtack+ dsr- d- lds+ Code(conf’)=10110 Code(conf’’)=10110 lds- ldtack- e9 e11
8
Example: Resolving the conflict
lds- d- ldtack- ldtack+ dsr- dtack+ d+ dtack- dsr+ lds+ csc+ csc-
9
Example: Resolving the conflict
dtack- dsr+ csc+ 001000 000000 100000 100001 lds+ ldtack- ldtack- ldtack- dtack- dsr+ 011000 100101 010000 110000 ldtack+ lds- lds- lds- dtack- dsr+ M’’ M’ 011100 110101 010100 110100 d+ d- csc- dsr- dtack+ 011110 011111 111111 110111
10
Example: Resulting Circuit
Data Transceiver Device Bus d lds dtack dsr csc ldtack
11
Motivation: validity Need to check the validity of the transformation
safeness bisimulation The validity should be checked before the transformation is performed, i.e. on the original prefix (to avoid backtracking)
12
Motivation: avoid re-unfolding
Perform the transformation directly on the prefix to avoid re-unfolding Re-unfolding is time-consuming Good for visualization (re-unfolding can dramatically change the look of the prefix) Can transfer information (e.g. encoding conflicts) between the iterations of the algorithm
13
Example: Re-unfolding
14
Sequential pre-insertion
Preserves safeness Preserves traces Can introduce deadlocks: need to check that the new transition never ‘steals’ tokens from any other enabled transition simple state property can be checked on the original prefix
15
Sequential post-insertion
Preserves safeness Yields a bisimular PN Nothing to check!
16
Concurrent insertion Can introduce unsafeness Can introduce deadlocks
17
Place insertion: token
If the place insertion is valid and t’ or t’’ is not dead then p contains token iff there is a t’’-labelled event in the prefix which does not have t’-labelled predecessor
18
Place insertion: validity
Tokens(C)=n + #t’C – #t’’C The transformation is valid if: for all instances e of t’ and t’’ of the prefix, Tokens([e]){0,1}, and for all cut-offs e with a corresponding configuration C, Tokens([e])=Tokens(C) If a valid transformation is rejected by this criterion then t’ and t’’ are not live
19
Pre-insertion in the prefix
Naïve splitting can yield an incomplete prefix!
20
Pre-insertion in the prefix
Naïve splitting can yield an object which is not a branching process!
21
Pre-insertion in the prefix
Find all possible extensions of the prefix by the new transition Amend the instances of the split transitions Amend the cut-off corresponding configurations
22
Post-insertion in the prefix
Naïve splitting can yield an incomplete prefix!
23
Post-insertion in the prefix
Definition: a configuration is extendible if in the modified prefix it can be extended by an instance of the new transition If there is a cut-off event e with a corresponding configuration C such that [e] is extendible and C is not extendible then terminate unsuccessfully Amend the instances of the split transition Amend the cut-off corresponding configurations
24
Place insertion in the prefix
Assumption: the place insertion has passed the validity check If n = 1 then create a new (causally minimal) instance cmin of p For each instance e of t′ (including cut-offs), create a new instance of p and connect it to e For each instance e of t′′ (including cut-offs): connect e to cmin if e has no t′-labelled predecessor and to the instance of p in the postset of the (unique) maximal t′-labelled predecessor of e otherwise
25
Concurrent insertion in the prefix
Perform the corresponding place insertion Perform the sequential pre-insertion This two steps can easily be combined p t’ t’’ n
26
Equivalent insertions
Equivalence is easy to check Fewer transformations to consider Can convert to ‘canonical form’, e.g. pre-insertions – good for unfolding No need to check validity – post-insertions are always valid
27
Commutative insertions
Definition: two transition insertions commute if they can be performed in any order concurrent insertions commute with any other insertions pre-insertions commute with post-insertions two pre/post-insertions commute iff they split different transitions or the sets of split off places do not overlap A valid insertion remains valid if another valid commutative insertion is applied first, i.e. the validity needs to be checked only once
28
Summary Rigorous validity criteria developed
can be checked on the original prefix – no backtracking Algorithms for performing transformations directly on the prefix avoids re-unfolding, good for performance and visualization proofs of correctness Optimisation equivalent transformations commutative transformations
29
Thank you! Any questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.