Token-based replay

Token-based replay technique is a conformance checking algorithm that checks how well a process conforms with its model by replaying each trace on the model (in Petri net notation ). Using the four counters produced tokens, consumed tokens, missing tokens, and remaining tokens, it records the situations where a transition is forced to fire and the remaining tokens after the replay ends. Based on the count at each counter, we can compute the fitness value between the trace and the model.

The algorithm
The token-replay technique uses four counters to keep track of a trace during the replaying:


 * $p$: Produced tokens
 * $c$: Consumed tokens
 * $m$: Missing tokens (consumed while not there)
 * $r$: Remaining tokens (produced but not consumed)

Invariants:


 * At any time: $$p+m \ge c \ge m$$
 * At the end: $$r = p + m - c$$

At the beginning, a token is produced for the source place (p = 1) and at the end, a token is consumed from the sink place (c' = c + 1). When the replay ends, the fitness value can be computed as follows:

$$\frac{1}{2}(1 - \frac{m}{c}) + \frac{1}{2}(1 - \frac{r}{p}) $$

Example
Suppose there is a process model in Petri net notation as follows:

Example 1: Replay the trace ($a, b, c , d$) on the model M

 * Step 1: A token is initiated. There is one produced token ($$p = 1$$).




 * Step 2: The activity $$\mathbf{a}$$ consumes 1 token to be fired and produces 2 tokens ($$p = 1 + 2 = 3$$ and $$c = 1$$).




 * Step 3: The activity $$\mathbf{b}$$ consumes 1 token and produces 1 token ($$p = 3 + 1 = 4$$ and $$c = 1 + 1 = 2$$).




 * Step 4: The activity $$\mathbf{c}$$ consumes 1 token and produces 1 token ($$p = 4 + 1 = 5$$ and $$c = 2 + 1 = 3$$).Replay-abcd-tbr-right-4.png
 * Step 5: The activity $$\mathbf{d}$$ consumes 2 tokens and produces 1 token ($$p = 5 + 1 = 6$$, $$c = 3 + 2 = 5$$).




 * Step 6: The token at the end place is consumed ($$c = 5 + 1 = 6$$). The trace is complete.Replay-abcd-tbr-6.png

The fitness of the trace ($$\mathbf{a, b, c, d}$$) on the model $$\mathbf{M}$$ is:

$$\frac{1}{2}(1 - \frac{m}{c}) + \frac{1}{2}(1 - \frac{r}{p}) = \frac{1}{2}(1 - \frac{0}{6}) + \frac{1}{2}(1 - \frac{0}{6}) = 1$$

Example 2: Replay the trace (a, b, d) on the model M

 * Step 1: A token is initiated. There is one produced token ($$p = 1$$).




 * Step 2: The activity $$\mathbf{a}$$ consumes 1 token to be fired and produces 2 tokens ($$p = 1 + 2 = 3$$ and $$c = 1$$).




 * Step 3: The activity $$\mathbf{b}$$ consumes 1 token and produces 1 token ($$p = 3 + 1 = 4$$ and $$c = 1 + 1 = 2$$).




 * Step 4: The activity $$\mathbf{d}$$ needs to be fired but there are not enough tokens. One artificial token was produced and the missing token counter is increased by one ($$m = 1$$). The artificial token and the token at place $$[\mathbf{b, d}]$$ are consumed ($$c = 2 + 2 = 4$$) and one token is produced at place end ($$p = 4 + 1 = 5$$).Replay-tbr-abd-4.png
 * Step 5: The token in the end place is consumed ($$c = 4 + 1 = 5$$). The trace is complete. There is one remaining token at place $$[\mathbf{a, c}]$$ ($$r = 1$$).

The fitness of the trace ($$\mathbf{a, b, d}$$) on the model $$\mathbf{M}$$ is:

$$\frac{1}{2}(1 - \frac{m}{c}) + \frac{1}{2}(1 - \frac{r}{p}) = \frac{1}{2}(1 - \frac{1}{5}) + \frac{1}{2}(1 - \frac{1}{5}) = 0.8$$