New Plug-in: Replay using Recomposition

A new plug-in has been added to the Divide-and-Conquer framework: The “Replay using Recomposition” plug-in. Initially, this plug-in is similar to the “Replay with Decomposition” plug-in, but it does not stop there. Where the “Replay with Decomposition” plug-in stops after having done the decomposed replay, the “Replay with Recomposition” possibly continues to improve on the result.

As mentioned in

H. M. W. Verbeek, W. M. P. van der Aalst: Merging Alignments for Decomposed Replay. In: Kordon, F; Moldt, D. (Ed.): Application and Theory of Petri Nets and Concurrency, pp. 219–239, Springer International Publishing, Torun, Poland, 2016.

it is possible to merge subalignments back together into an alignment. However, this may not be possible for all subalignments, as some of them will contain conflicts on the borders of the subalignments. After merging, these subalignments are not an alignment, but a pseudo alignment.

After having done a decomposed replay that results in pseudo alignments, the “Replay with Recomposition” plug-in will do another decomposed replay, in which one of the conflicts is solved by combining the related subnets. As such, it resolves the conflict by recomposing these subnets into a single subnet.

Provided sufficient time (and resources), the “Replay with Recomposition” plug-in will return the same fitness value as the non-decomposed replay would, but possibly in less time. Furthermore, the “Replay with Recomposition” has the possibility to terminate earlier, based on some termination criteria. For example, this plug-in allows you to specify that you want to have the best possible fitness value, but that it may only take 10 minutes to compute it. This best possible fitness value will be an interval of a lower bound and an upper bound, with the guarantee that the exact fitness will be in that interval.


  1. An event log
  2. An accepting Petri net


  1. An alignment, possibly containing pseudo alignments.



Configuration options

The first dialog allows you to configure which classifier should be used, and the move-on-log and the move-on-model costs. Note that the current plug-in does not allow you to specify different costs move-on-log costs etc.
The second dialog allows you to configure which transition labels are mapped onto which activities. Initially, a transition label is mapped onto an activity with the same name, if it exists, and to no activity ([invisible]) if it does not exist.
The third dialog allows you to configure which pseudo alignments should be rejected for another replay. A rejected pseudo alignment will not be replayed again. As a result of rejecting pseudo alignments, the returned fitness interval may grow. You can configure a threshold for the number of conflicts and a threshold for the time spent on the pseudo alignment.
The fourth and last dialog allows you to configure when the recomposed replayer should terminate. Of course, the replay also terminates if no pseudo alignments remain, in which case the fitness interval only contains the actual fitness value. You can configure a threshold for the total amount of time (if this is set to 10 minutes, the replayer will not start another replay if 10 minutes have passed), a threshold for the percentage of alignments (if this is set to 90, the replayer will not start another replay if alignments have been constructed for at least 90% of the traces), a relative and absolute width for the fitness interval, and a threshold for the number of replays.