History-Dependent Petri Nets Kees van Hee, Alexander Serebrenik, Natalia Sidorova, Wil van der Aalst ?
Motivation Choices made in processes often depend on the previous events – process history Process history is often available from logs Encoding history-based decisions into the net structure can be complex, error-prone, and decreasing the readability We do not model the whole state of a system, but only some aspects of it!
Goal
History logic History: a partially ordered set of labeled events E, ≤, λ , where λ: E → Σ Operations on history: extension with an event union of histories Given a set of labels Σ and an event variable x, we define a formula φ, a term q and a label expression l :
Examples of history guards Short-hand notations: # S – the number of events with a label from set S, x : φ ≡ (#x: φ)>0 x : φ ≡ (#x: φ) =(#x: true) Examples: #{ a } < #{ b } x : ( λ( x ) = a y : ( λ( y ) = b x ≤ y))
Token history nets Tokens are colored with histories. Transitions have guards evaluated on the union of the histories of consumed tokens. Tokens produced by a transition firing are colored with the union of histories of the consumed tokens extended by the firing event.
Global history nets History is available to all transitions. Guards are evaluated on this history. Transition firings extend the history with a corresponding event. Global history nets are Turing complete: Take a net where transitions have unique labels. Then guards of the type allow to simulate inhibitor arcs.
Token history vs. global history Suppose the global history is aabc. What are token histories? Token on p and q might share the event with label a, but not necessarily. Corollary: token history cannot be reconstructed from the global history. Suppose the marking of the token history net is [(p,H 1 )] + [(p,H 2 )] + [(q,H 3 )] + [(q,H 4) ] where H 1 = {e 1,e 2 }, {e 1 ≤ e 2 }, {(e 1,a),(e 2,b)} , H 2 = {e 4,e 5 }, {e 4 ≤ e 5 }, {(e 4,a),(e 5,b)} , H 3 = {e 1,e 3 }, {e 1 ≤ e 3 }, {(e 1,a),(e 3,c)} , H 4 = {e 4,e 6 }, {e 4 ≤ e 6 }, {(e 4,a),(e 6,c)} . What is the global history? It might be abcabc, or aabbcc, or abacbc, etc. Corollary: the global history cannot be reconstructed from the token histories.
However we can simulate global history by token history Each transition t is connected to extra place p. Initially with the empty history: the token history of p is the global history t p
Counting Formulae Guards A counting formula φ is defined by Nets with counting formulas are Turing complete (remember: ) So we provide a translation of this class into bisimilar inhibitor nets.
Guards (#A) ρ (#B + k )
Construction for compound formulae Consider a guard g(t) for transition t in disjunctive normal form ¬φ is trivial φ 1 φ 2 : test arcs for each formulae to t φ 1 φ 2 : duplicate t into t and t’ each with one test arc
Let ( N,m ) be a Petri net with n transitions and y Z n. The y -distance of ( N,m ) is D (( N, m ), y )) = y T · where is the set of all executable finite firing sequences. Let A and B be two label sets and y (A,B) is a vector with 1 for transitions labeled by an A label, -1 for B labels and 0 for the rest. The y (A,B) distance is the max difference in the number of the firings of A-transitions and the number of the firings of B-transitions. There is an efficient algorithm to determine if the distance is finite! When the guards are of the form #A # B + k and y (A,B) < , we can construct a Petri net bisimilar to the global history net. Similarly #A # B + k and y (B,A) < Bounded synchronization distance
LTL guards without Next LTL formulae can be translated into B Ü chi automata LTL-guards are evaluated on finite traces (history!) they can be translated to finite deterministic automata. Synchronous product of the Petri net with these automata yields a classical Petri net.
Conclusion Incorporating history into a model allows to separate process information from safety constraints. History nets are Turing complete. Still, some subclasses can be translated to classical PNs. For some other subclasses a translation to inhibitor nets is proposed.
Future Work The use of tokens nets for component-based systems. Need for additional operations like projection and intersection of histories Transformation of other subclasses to PNs. What about Presburger logic?
symbols and constructs * 1 (o) 2 (o) min (t) max (t) a* t p : t p :