=Paper= {{Paper |id=Vol-3730/paper08 |storemode=property |title=Pushing the Limits: Concurrency Detection in Acyclic Sound Free-Choice Workflow Nets in O(P² + T²) |pdfUrl=https://ceur-ws.org/Vol-3730/paper08.pdf |volume=Vol-3730 |authors=Thomas M. Prinz,Julien Klaus,Nick R.T.P. van Beest |dblpUrl=https://dblp.org/rec/conf/apn/PrinzKB24 }} ==Pushing the Limits: Concurrency Detection in Acyclic Sound Free-Choice Workflow Nets in O(P² + T²)== https://ceur-ws.org/Vol-3730/paper08.pdf
                         Pushing the Limits: Concurrency Detection in
                         Acyclic Sound Free-Choice Workflow Nets in OpP2 ` T 2q
                         Thomas M. Prinz1,˚ , Julien Klaus2 and Nick R.T.P. van Beest3
                         1 Course Evaluation Service, Friedrich Schiller University Jena, 07743 Jena Germany
                         2 Faculty of Mathematics and Computer Science, Friedrich Schiller University Jena, 07743 Jena, Germany
                         3 Data61, Commonwealth Scientific and Industrial Research Organisation (CSIRO), Brisbane, Australia



                                      Abstract
                                      Concurrency is an important aspect of Petri nets to describe and simulate the behavior of complex systems. Knowing
                                      which places and transitions could be executed in parallel helps to understand nets and enables analysis techniques
                                      and the computation of other properties, such as causality, exclusivity, etc.. All techniques based on concurrency
                                      detection depend on the efficiency of this` detection methodology.
                                                                                              ˘          Kovalyov and Esparza have developed algorithms
                                      that compute all concurrent places in O pP ` T qT P2 for live and bounded nets (where P and T are the numbers
                                                                          `             ˘
                                      of places and transitions) and in O PpP ` T q2 for live and bounded extended free-choice nets. Although these
                                      algorithms have a reasonably good computational complexity and are applicable to a large class of nets, large
                                      numbers of concurrent pairs of nodes may still lead to long computation times. This paper complements the palette
                                      of concurrency detection algorithms with the Concurrent Paths (CP) algorithm for sound (simple) free-choice
                                      workflow nets. The algorithm allows parallelization and has a worst-case computational complexity of OpP2 ` T 2 q
                                      for acyclic nets and of OpP3 ` PT 2 q for cyclic nets. Although the computational complexity of cyclic nets has
                                      not improved, the evaluation shows the benefits of CP, especially, if the net contains many nodes in concurrency
                                      relation.

                                      Keywords
                                      Concurrency detection, Workflow nets, Free-Choice, Soundness.




                         1. Introduction
                         Petr1i nets are a popular and well-studied notion to describe, investigate, revise, and analyze complex
                         system behavior. Especially in the area of information systems and business process management, Petri
                         nets are commonly used to model business processes. Instead of classical control-flow graphs resulting
                         from procedural programming languages, nets are able to model concurrent behavior. Of course, although
                         concurrency is an important aspect of nets (and the business process models they may represent), it
                         complicates their analysis. The detection of concurrent places and transitions of nets helps to understand
                         the behavior of a system. It further enables the measurement of similarity of nets with behavior [1], the
                         derivation of other behavioral relations, such as e. g., causality, exclusivity [2, 3], etc. Some ongoing
                         analysis, therefore, depends on concurrency detection and its efficiency.
                            Kovalyov [4] proposed a quintic time algorithm in the number of nodes that computes `all concurrent˘
                         places. Kovalyov and Esparza [5] revised
                                                               `     that algorithm
                                                                            ˘       to obtain a time complexity of O pP ` T qT P2
                                                                          2
                         for live and bounded nets and of O PpP ` T q for live and bounded extended free-choice nets (P is
                         the number of places and T is the number of transitions of a net). Both algorithms are very general,
                         well-suited, and efficient for their respective problem classes of nets. However, if a net contains many
                         concurrent nodes, the computation time increases significantly during evaluation.
                            Decomposition of the net can be used to allow a parallel computation of the concurrency relation and
                         to accelerate the computational method. A decomposition into single-entry single-exit (SESE) fragments
                         helped to speed-up the computation in Weidlich et al. [6] and Ha and Prinz [7]. However, the SESE

                          PNSE’24, International Workshop on Petri Nets and Software Engineering, 2024
                         ˚ Corresponding author.

                          " Thomas.Prinz@uni-jena.de (T. M. Prinz); Julien.Klaus@uni-jena.de (J. Klaus); Nick.VanBeest@data61.csiro.au
                          (N. R.T.P. v. Beest)
                           0000-0001-9602-3482 (T. M. Prinz); 0000-0002-1498-2653 (J. Klaus); 0000-0003-3199-1604 (N. R.T.P. v. Beest)
                                   © 2024 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).


CEUR
                  ceur-ws.org
Workshop      ISSN 1613-0073
Proceedings

                                                                                                             132
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                         132–154


decomposition approach fails if the net contains inherently unstructured fragments (known as rigids).
Weber et al. [8] proposed a quadratic time variant to compute concurrent nodes. Their algorithm requires
a low number of nodes in the pre- and postset as well as only simple cycles (loops). For other cases,
SESE decomposition and the approach of Weber et al. have to utilize the algorithm of Kovalyov and
Esparza or more general techniques, such as state-space exploration or finite complete prefix unfolding
[9]. Therefore, these approaches are again at least cubic in time complexity or worse for nets with
arbitrary loops.
   To overcome these limitations, this paper presents a new algorithm, called the Concurrent Paths (CP)
algorithm, which is applicable to sound (simple) free-choice workflow nets. This class of nets is more
restricted than those for the Kovalyov and Esparza algorithms, since it requires an explicit start and end
place, 1-boundedness, and the simpler definition of free-choiceness [10, 11]. For acyclic nets, however, it
has a quadratic worst-case computation complexity of OpP2 ` T 2 q and, for cyclic nets, the worst-case
complexity increases to a cubic algorithm of OpP3 ` PT 2 q. The core idea of the approach is to consider
concurrent paths instead of concurrent places and transitions. The CP algorithm is well parallelizable. In
addition, the worst-case complexity occurs relatively infrequently, as it depends on the overall number of
loops (incl. nested loops) in a net, which is usually small. If this number of loops can be interpreted as a
constant, the complexity reduces to be quadratic in average. The restriction to connected workflow nets
with single start and end places serves to introduce the method, but unconnected nets with several start
and end places are also possible. In summary, the CP algorithm complements the palette of concurrency
detection algorithms for the special case of sound (simple) free-choice workflow nets. A slightly extended
version of this paper can be found as a technical report [12].
   The remainder of the paper is structured as follows. Section 2 explains basic notions, especially nets,
paths, loops, markings, and semantics. Subsequently, the concept of concurrency and the algorithm
of Kovalyov and Esparza are introduced and described in Section 3. This is followed by revisions of
their algorithm to the quadratic time CP algorithm for acyclic nets in Section 4. Section 5 extends the
algorithm to the Concurrent Paths algorithm being able to handle cyclic nets. The evaluation in Section 6
demonstrates the strengths and weaknesses of the CP algorithm compared to the Kovalyov and Esparza
algorithm for live and bounded free-choice nets. Finally, Section 7 summarizes the results and provides
directions for future work.


2. Preliminaries
This work is based on well-known definitions of Petri nets. Readers already familiar with these concepts
may proceed directly to Section 2.3. However, a quick review is encouraged to ensure alignment with
this paper’s specific notions.

2.1. Nets, Paths, Loops, and Workflow Nets
Definition 1 (Petri net). A Petri net is a triple N “ pP, T, Fq with P and T are finite, disjoint sets of places
and transitions and F Ď pP ˆ T q Y pT ˆ Pq is the flow relation.                                               {

   The union P Y T of a net N “ pP, T, Fq can be interpreted as nodes and F as edges between those nodes.
For x P P Y T , ‚x “ tp | pp, xq P Fu is the preset of x (all directly preceding nodes) and x‚ “ ts | px, sq P Fu
is the postset of x (all directly succeeding nodes). Each node in ‚x is an input of x and each    Ťnode in x‚
is an output
       Ť      of x. The   preset and postset  of a  set of nodes   X  Ď  P Y T is defined as ‚X “     xPX ‚x and
X‚ “ xPX x‚, respectively.

Definition 2 (Path). A path W “ pn1 , . . . , nm q of a net N “ pP, T, Fq is a sequence of nodes n1 , . . . , nm P
P Y T with m ě 1 and @i P t1, . . . , m ´ 1u : ni P ‚ni`1 .                                                      {

    Of course, places and transitions alternate on paths. Nodes are part of a path A “ px, . . . , yq, depicted
x, . . . , y P A. If all nodes of a path are pairwise different, the path is acyclic; otherwise, it is cyclic.
The acyclic path A is sometimes used as the set tx, . . . , yu. Pathspx, yq denotes the set of all acyclic



                                                       133
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                                 132–154


                               Place                      Transition
                                                    B
                                             b                            c
                                       A     Token         d       D             E
                               a                                          g             i
                                                               f
                                                    C
                                Flow
                                             e                            h
Figure 1: A graphical example of a Petri net.


paths between nodes x and y, where x, y P P Y T . Two paths A “ px, . . . , yq and B “ py, . . . , zq can be
concatenated to a new path A ` B “ px, . . . , yq ` py, . . . , zq “ px, . . . , y, . . . , zq. If A and B are acyclic and
A X B “ tyu, then A ` B is acyclic since all nodes of A ` B are pairwise disjoint. A net N is cyclic if there
is at least one node x P P Y T that has a non-trivial path (­“ pxq) to itself.
   Cyclic nets contain at least one loop. A loop is a subgraph of the net in which each node is reachable
from any other node, which can be formally defined as follows:

Definition 3 (Loop). A loop L “ pPL , TL , FL q of a net N “ pP, T, Fq is a strongly connected component
of N, i. e., L is a maximal subgraph of N, such that PL Ď P, TL Ď T , and FL Ď F [13]. We denote
the set of all loops of N with LoopspNq, such that LoopspNq “ H for acyclic nets. We further define
EntriespLq as the set tl P pPL Y TL q : ‚l Ę pPL Y TL qu of loop entries of L, and ExitspLq as the set
tl P pPL Y TL q : l‚ Ę pPL Y TL qu of loop exits of L. All flows in tpo, lq P F : o R pPL Y TL q ^ l P pPL Y TL qu
are loop-entry flows and all flows in tpl, oq P F : l P pPL Y TL q ^ o R pPL Y TL qu are loop-exit flows of L. {

   Each net in this paper is restricted to be (simple) free-choice: @p P P : |p‚| ą 1 ùñ ‚pp‚q “ tpu
[10, 11]. Note that the free-choice property is usually used in its extended version: @t1 ,t2 P T : ‚t1 X ‚t2 ­“
H ùñ ‚t1 “ ‚t2 [14]. Polyvyanyy [10] and Favre et al. [11] provide bijective translations from nets
belonging to the extended definition into nets applying to the simpler free-choice property, through the
use of silent transitions. In the following, we use the terms free-choice to refer to the simpler and extended
free-choice to refer to the extended definition.
   Visualized nets have circles representing places, rectangles representing transitions, and directed edges
representing flows (see Figure 1).

Definition 4 (Workflow and AFW-net). A workflow net W N “ pP, T, F, i, oq is a net pP, T, Fq with i, o P P,
‚i “ H, and o‚ “ H. i is the source and o is the sink of W N. All nodes are on a path from i to o. If W N
is free-choice, we call it FW-net. If W N is acyclic and free-choice, we call it AFW-net.                 {

The visualized net in Figure 1 is a workflow (FW-)net as well as an AFW-net.

2.2. Markings, Semantics, Reachability, and Soundness
The state of a net is described by a so-called marking, which specifies the number of tokens in each place.

Definition 5 (Marking). A marking of a net N “ pP, T, Fq is a total mapping M : P ÞÑ N0 that assigns a
natural number (inclusively 0) of tokens to each place P. Mppq “ 1 means that place p P P carries 1 token
in marking M. The mapping M is sometimes used as the set tp P P : Mppq ě 1u representing only places
having at least one token in M.                                                                         {

  An initial marking of a net is a special marking with at least one place having a token. The initial
marking Mi of a workflow net W N “ pP, T, F, i, oq is a marking tiu where only the source i of a net
contains exactly one token. A terminal marking Mo is a marking tou of W N where only the sink o
contains exactly one token. Transitions whose input places all contain at least one token are enabled in a
marking and can be fired. This leads to the execution semantics of a net:




                                                           134
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                                    132–154


Definition 6 (Execution semantics). Let N “ pP, T, Fq be a net with a marking M. A transition t P T is
enabled in M iff every input place of t contains at least one token, @p P ‚t : Mppq ě 1. If t is enabled in
                                                                                    t
M, then t can occur (“fire”), which leads to a step from M to M 1 via t, denoted M Ñ M 1 , with
                                                    #                #
                                                      1,  p P ‚t      1, p P t‚
                        @p P P : M 1 ppq “ Mppq ´                 `                                     (1)
                                                      0, else         0, else.
I. e., in a step via t, t “consumes” one token from all its input places and “produces” one token for all its
output places [2].                                                                                          {
   Stepwise firings of transitions lead to chains of fired transitions, which describe the behavior of a net
as occurrence sequences:
Definition 7 (Occurrence Sequences and Reachability). Let N “ pP, T, Fq be a net with a marking M0 . A
sequence of transitions σ “ xt1 , . . . ,tn y, n P N0 , t1 , . . . ,tn P T , is an occurrence sequence of M0 iff there is
                                                                       ti
a sequence of markings M0 , M1 , . . . , Mn such that Mi´1 Ñ              Mi holds for each i P t1, . . . , nu. It can be said
that σ leads from M0 to Mn .
   A marking M 1 is reachable from a marking M (denoted MÑ˚ M 1 ) iff there is an occurrence sequence
σ of M that leads to M 1 or M “ M 1 .                                                                                        {
Important properties of nets are liveness and boundedness:
Definition 8 (Liveness and Boundedness). A net N “ pP, T, Fq with its initial marking M0 is live iff for
every reachable marking M, M0 Ñ˚ M, and every t P T , there is a reachable marking M 1 , MÑ˚ M 1 , which
enables t.
  N is n-bounded iff there exists a number n P N0 such that for every reachable marking M, M0 Ñ˚ M,
and for every place p P P it holds that the number of tokens at p is at most n: @p P P : Mppq ď n. N is
safe iff it is 1-bounded.                                                                              {
Soundness describes an important property of workflow nets:
Definition 9 (Soundness). A workflow net W N “ pP, T, F, i, oq with its initial marking Mi “ tiu and its
terminal marking Mo “ tou is sound iff
  (1) @M, Mi Ñ˚ M : MÑ˚ Mo ,
  (2) @M, Mi Ñ˚ M : pMpoq ě 1 ùñ M “ Mo q, and
                                                                                     t
  (3) there is no dead transition in W N:           @t P T DM, M 1 : Mi Ñ˚ M Ñ M 1 . [15]                                   {
Theorem 1. Let W N “ pP, T,`F, i, oq be a FW-net with its initial
                                                             ˘      marking Mi “ tiu and its terminal
                                       1         1     1
marking Mo “ tou and W N “ P, T Y tt u, F Y tpo,t q, pt , iqu be its “short-circuit” net.
                                 W N is sound        ðñ        W N is live and bounded                                      {
Proof. See [15].

2.3. Path-to-End Theorem
To simplify proofs in the remainder of this paper, we use the Path-to-End Theorem. The theorem states
that in sound FW-nets, there is no reachable marking, in which at least two tokens are on an acyclic path
to the sink.
Theorem 2 (Path-to-End Theorem). Let W N “ pP, T, F, i, oq be a FW-net with its initial marking Mi “ tiu
and its terminal marking Mo “ tou.
                                                      W N is sound
                                                            ùñ                                                            (2)
                                                                                 ÿ
                                                                     ˚
                          @p P P @W P Pathspp, oq @M, Mi Ñ M :                           Mpwq ď 1                           {
                                                                              wPW X P



                                                             135
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                         132–154


Proof. The preconditions by Theorem 2 are a FW-net W N “ pP, T, F, i, oq with its initial marking Mi “ tiu
and its terminal marking Mo “ tou. The proof is done by contradiction. Let us assume that:
                                                      ÿ
            Dp P P DW P Pathspp, oq DM, Mi Ñ˚ M :          Mpwq ą 1 ^ W N is sound                     (3)
                                                                  wPW X P

By (3), let p P P be a place
                          ř with an acyclic path W P Pathspp, oq to o and M a reachable marking from
Mi , Mi Ñ˚ M, such that wPW X P Mpwq ą 1.
   First of all, let us consider each transition t P W X T to check how much input places of each t can
lay on path W . Assume, there is a transition t P W X T with more than one input place on W (i. e.,
Dt P W X T : |‚t XW | ą 1). There are exactly two cases for such a t P W X T with |‚t XW | ą 1:

  (1) Dw P ‚t XW : |w‚| ą 1 (at least one input place of t on path W has more than one output transition).
      Following that path W is acyclic, w does not appear twice on W . As a consequence, there is at
      least one other input place w1 in ‚t X W , w ­“ w1 , and, thus, |w‚| ą 1 and tw, w1 u Ď ‚pw‚q “ ‚t.
      Therefore, the FW-net W N is not simple free-choice.

  (2) @w P ‚t XW : |w‚| “ |ttu| “ 1 (all input places of t on path W have exactly t as output transition).
      Let w1 , w2 P ‚t XW , w1 ­“ w2 , be such two input places of t on path W with w1 ‚ “ w2 ‚ “ ttu. Since
      the sink has an empty postset, o‚ “ H, w1 and w2 cannot be o, w1 ­“ w2 ­“ o. By Def. 2 of paths,
      each node n P W (except the last node o on path W ) is directly followed by a node n1 P W X n‚ of
      n’s postset. For this reason and since w1 ­“ w2 , w1 , w2 P W , and w1 ‚ “ w2 ‚ “ ttu, w1 and w2 must
      directly be followed by t on path W . As a consequence, t appears at least twice on path W and,
      therefore, W ’s nodes are not pairwise different. This implies that path W is cyclic and not acyclic.


Both cases fail. As a result, each transition t on W has exactly one input place on W , @t P W X T : |‚t X
W | “ 1. In general, it is valid for W :

                              @t P pW X T q : |‚t XW | “ 1            ^      |t‚ XW | ě 1                     (4)

As a consequence, firing a t P pW X T q in any marking M1 cannot reduce the number of tokens on W :
                                                            t
                                                                     ÿ               ÿ
 @t P pW X T q @M1 , MÑ˚ M1 , t is enabled in M1 , @M2 , M1 Ñ M2 :        M1 pwq ď        M2 pwq (5)
                                                                                   wPW X P    wPW X P

Thus, the only possibility to reduce the number of tokens on W is a place pw P W X P with |pw ‚| ě 2.
Since |o‚| “ 0, pw ­“ o. As a consequence:

                             Dtt,t 1 u Ď pw ‚ : t,t 1 P T     ^       t RW     ^     t1 P W                   (6)

Let t,t 1 be such transitions. Since W N is simple free-choice, it is valid for pw that ‚ppw ‚q “ tpw u “ ‚t Y‚t 1
and, therefore:
                                                ‚t “ ‚t 1 “ tpw u                                             (7)
It results from (7) and for each place pw on W with |pw ‚| ě 2 that each of pw ’s output transition t is
enabled in each reachable marking M1 from M, in which pw has a token:

           @pw P W X P, |pw ‚| ě 2 @t P pw ‚ @M1 , MÑ˚ M1 , M1 ppw q ě 1 : t is enabled in M1                 (8)

We construct an occurrence sequence starting from M with a simple rule: If a p P pW X Pq with |p‚| ě 2
has a token in a reachable marking M1 , MÑ˚ M1 , then t P pp‚ X W q fires following (8). We depict a
reachable marking under this rule with ÑR instead of Ñ˚ , i. e., M ÑR M1 . For this reason, following (5)
and following this rule:                             ÿ
                                 @M1 , M ÑR M1 :           M1 pwq ą 1                                 (9)
                                                             wPW X P




                                                            136
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                   132–154


                                                 B
                                           b                          c
                                    A                   d       D            E
                             a                                        g          i
                                                            f
                                                 C
                                           e                          h
Figure 2: A net with concurrency. It holds that pb, hq P ∥ but pb, gq R ∥.


Since W N is sound by (3) and W is finite, there is at least marking Mo , in which no transition is enabled.
Therefore, let M1 be a reachable marking under this rule, in which no transition is enabled:

                                    M ÑR M1 @t P T : t not enabled in M1                               (10)

Note, it is not possible that a transition in (10) cannot be enabled because of the applied rule. Since
řN is sound by (3), the marking M1 by (10) cannot be the terminal marking Mo by Def. 9 since
W
  wPW X P M1 pwq ą 1 by (9). Therefore, there must be at least one dead transition on W , which contradicts
soundness by Def. 9. This violates contradiction (3), proving the validity of Theorem 2. ✓


3. Concurrency and the Algorithm of Kovalyov and Esparza
                                                                     ˚
A node x P P Y T is called active in a marking M, depicted as xM , in the following if it either contains a
token (x P P and Mpxq ě 1) or is enabled in M (x P T, @p P ‚x : Mppq ě 1).

Definition 10 (Concurrency). For a given sound (simple) free-choice workflow net W N “ pP, T, F, i, oq
and its initial marking Mi “ tiu, there is a concurrency relation ∥Ď pP Y T q ˆ pP Y T q with px, yq P ∥,
x ­“ y, iff there is a reachable marking M, Mi Ñ˚ M, with:
      ˚        ˚
  (1) xM and yM , and

  (2) if x P T and y P P, then @z P ‚x : pz, yq P ∥, and

  (3) if x P P and y P T , then @z P ‚y : pz, xq P ∥, and

  (4) if x P T and y P T , then @z P ‚x @z1 P ‚y : pz, z1 q P ∥.

∥ is symmetric [5]. Following Verbeek et al. [16], sound free-choice workflow nets are safe (i. e.,
1-bounded). As a consequence, ∥ is irreflexive (i. e., a place/transition cannot be concurrent to itself). {

The cases (2)–(4) exclude that a place is in concurrency relation with its output transitions and that two
transitions are in concurrency relation, which require the same tokens from shared input places. For
example, places e and d of Figure 1 are in a concurrency relation, pe, dq P ∥. Both places can be active
(i. e., have a token) in a reachable marking. Place d and transition C are also in a concurrency relation
since there is a reachable marking in which d has a token, C is enabled, and the input place e is in a
concurrency relation with d (cases (2)–(4)). p f , Dq R ∥ although f and D can be active in a reachable
marking. However, following cases (2)–(3), f must be in a concurrency relation with itself, which is not
possible since ∥ is irreflexive.                 `                ˘
    Kovalyov and Esparza [5] defined a cubic O |P|p|P| ` |T |q2 algorithm to identify the ∥ relation for
live, bounded, and extended free-choice nets. We refer to the algorithm as the KovEs algorithm. The
KovEs algorithm is applicable to a wide range of net classes and is, therefore, more general than the
algorithm provided in this paper. In the remainder of this section, we provide an overview of its most
important concepts and explain its functionality. In doing this, we focus on KovEs in the context of sound,
simple free-choice workflow nets to revise the algorithm regarding this class of nets.




                                                       137
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                                         132–154


                                                                         ||
                                                          x                                           x
                      x                                             ||                                         ||
                 ||                                  ||                                          ||
                      y             s                     y                       s                   y              s



                                                                     ||
                                                          x                                           x
                      x                                             ||                                         ||
                             ||                      ||                                          ||
                 ||                                            ||                                         ||
                      y             s                     y                       s                   y              s

                                                                    (a)                                        (b)
                      Case (1): s ⋲ P                                                 Case (2): s ⋲ T

Figure 3: For a pair px, yq P ∥, there are two cases of candidate for px, sq, s P y‚: s P P or s P T . x is visualized as
an octagon since it could be either a place or transition. The dotted lines highlight nodes being in a concurrency
relation. Arcs denote ordinary flow relations. Above the big black arrows, there are the situations before new
pairs in relation were derived. Below the black arrows, there are situations with newly derived relations (in
black). Note that in Case (2) (b) the relation cannot be derived.


   The initial step of the KovEs algorithm is based on a simple observation in free-choice workflow nets
W N “ pP, T, F, i, oq with its initial marking M0 “ tiu: all places in the postset of transitions are pairwise
in a concurrency relation (except for all reflexive pairs):
                                                                      `            ˘
                               @t P T @x, y P t‚, x ­“ y : px, yq P ∥   py, xq P ∥                        (11)

For example, in Figure 2, the pairs tpb, eq, pe, bq, pc, dq, pd, cq, p f , hq, ph, f qu Ď∥. Besides transitions, all
source places containing tokens in M0 can be handled in the same way:
                                                                                 `            ˘
                    @x, y P P, x ­“ y, M0 pxq ě 1 ď M0 pyq : px, yq P ∥            py, xq P ∥                  (12)

   The KovEs algorithm extends an initial set of the concurrency relation R by considering each already
detected pair px, yq P ∥. Since px, yq P ∥, x (y) may also be concurrent to nodes in y‚ (x‚). For example,
pb,Cq is a new candidate for pb, eq in Figure 2. For x, this means that tpx, sq : s P y‚u are new candidate
pairs to be concurrent. For each candidate px, sq, there are exactly two cases: (1) s is a place (s P P and
y P T ), or (2) s is a transition (s P T and y P P). Figure 3 visualizes both cases, where node x is visualized
as an octagon since it could be either a place or transition.
   Consider case (1): Following from Def. 10 of concurrency, there is a reachable marking M from M0 ,
                                                                                                  y
M0 Ñ˚ M, in which x and y are active, thus, y is enabled. In a step where y fires in M, M Ñ M 1 , s contains
a token in the resulting marking M 1 and x is still active in M 1 : x and s are active in M 1 . For this reason, for
case (1), all nodes in y‚ are concurrent to x, leading to the following observation already used in [5]:

Observation 1. Let W N “ pP, T, F, i, oq be a sound free-choice workflow net.

                                                 @x P pP Y T q @y P T :
                                        px, yq P ∥            ðñ              @s P y‚ : px, sq P ∥                             {

The left side of Figure 3 visualizes concurrency relations with dotted lines.
    Considering case (2) (s P T and y P P), there is a reachable marking M from M0 , M0 Ñ˚ M, in which x
and y are active (i. e., Mpyq ě 1). Following [5], px, sq P ∥ if and only if x is concurrent to ‚s. Otherwise, s
and x cannot be active in a reachable marking from M. Case (2) (a) of Figure 3 illustrates such a situation,
in which x is concurrent to ‚s and also to s, px, sq P ∥. Case (2) (b) of Figure 3 visualizes a situation, in
which x is not concurrent to the upper right place but for the other places, such that px, sq R ∥. In general,
it results in the following observation:



                                                                    138
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                        132–154


Observation 2. Let W N “ pP, T, F, i, oq be a sound free-choice workflow net.

                                          @x P pP Y T q @y P P @s P y‚ :
                             `                                    ˘
                                 @p P ‚s : px, yq P ∥ ^ px, pq P ∥ ùñ px, sq P ∥                               {

   Algorithm 1 depicts the resulting algorithm of Kovalyov and Esparza [5]. It differs in its notation from
the original in four ways: At first, itŤexplicitly ignores reflexive pairs of nodes px, xq P pP Y T q ˆ pP Y T q;
second, it uses the union-operator for generating pairs to allow us a simpler  `      discussion
                                                                                             ˘    about its time
complexity; third, line 9 is simplified to just E Ð R instead of E Ð R X pP Y T q ˆ P from the original
paper since all pairs in R must fulfill the condition by lines 3 and 5; and, last, it uses the relation A as a
mapping in lines 7 and 14 instead of a set.
   Readers, who are not familiar with the algorithm, will find an explanation of the algorithm in the
following paragraph. Familiar readers may proceed directly to Section 4. In Algorithm 1, lines 3 and 5
determine the initial concurrency relations discussed as “initial step” above. Line 7 defines a mapping A
from each place to its directly succeeding places (i. e., the union of postsets of the postset of a place). This
is used in line 14 to quickly determine new pairs in relation. E in line 9 is a set that contains new pairs not
investigated yet. The while loop (lines 10–16) is iterated until E is empty. It takes an arbitrary pair px, pq
out of E (line 11) and one random transition t of the postset of p (line 12). Following case (2) discussed
above, x is in concurrency relation with each place in the postset of t (lines 14–16) if it is already in
relation with each place in ‚t (line 13). E is extended with all new pairs (line 15) and R is extended as
well (line 16). Although Kovalyov and Esparza state that their algorithm identifies all pairs of nodes in
concurrency relation, it “only” identifies pairs of places in relation. For this reason, case (1) discussed
above is just indirectly important in Algorithm 1 but will be used for revisions in the next section.

Algorithm 1 The Kovalyov and Esparza algorithm [5] to determine ∥ for a given sound free-choice
workflow net W N “ pP, T, F, i, oq with its initial marking M0 .
 1: function DETERMINE KOV E S C ONCURRENCY(W N “ pP, T, F, i, oq, M0 )
 2:    // AddŤpairs of places carrying
                                    Ť     a token in M0 .
 3:    R Ð p1 PSrcpNq,M0 pp1 qě1 p2 ­“ p1 PSrcpNq,M0 pp2 qě1 tpp1 , p2 qu
 4:    // Add pairs
                  Ť of places
                         Ť       of
                                 Ťthe postset of each transition.
 5:    R Ð R Y tPT p1 Pt‚ p2 ­“ p1 Pt‚ tpp1 , p2 qu
 6:    // Determine
              Ť      Ťfor each place p its post-postset.
 7:    A Ð pPP p1 Ppp‚q‚ tpp, p1 qu
 8:    // Initialize the set of new relations.
 9:    E ÐR
10:    while E ­“ H do
11:         Take px, pq P E and remove it E Ð Eztpx, pqu.
12:         Take
               Ť t P p‚.
13:         if yP‚t tpx,Ť yqu Ď R then
14:             tmp Ð p1 PAppq tpx, p1 qu
15:             E Ð E Y ptmpzRq
16:             R Ð R Y tmp
17:    return R



4. Quadratic Algorithm for AFW-Nets
                                                               `               ˘
The KovEs algorithm has a worst-case time complexity of O |P|p|P| ` |T |q2 resulting from its wide
range of net classes for which it is applicable. This worst case appears if nets have a high level of
concurrency, leading to long computation times as the evaluation will show later. This section revises the
KovEs algorithm for AFW-nets based on soundness, the simpler free-choice property, and Observations 1
and 2 discussed in Section 3. An extension for cyclic FW-nets is presented in the next section.



                                                      139
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                        132–154


   The core idea of the revisions is to explore paths instead of directly succeeding nodes. As a consequence
of the Path-to-End Theorem 2, a place cannot be in a concurrency relation with all places on all paths from
this place to the sink. Therefore, for two concurrent places only those successors can be in a concurrency
relation for which there is no path in-between. This core idea is investigated and refined in the following.
   Concurrency of two different transitions in sound AFW-nets requires the absence of any path between
them:

Theorem 3. Let W N “ pP, T, F, i, oq be a sound AFW-net with its initial marking Mi “ tiu and its terminal
marking Mo “ tou.

                                               @x, y P P Y T, x ­“ y :
                            `                            ˘
                                Pathspx, yq Y Pathspy, xq ­“ H ùñ            px, yq R ∥                         {

Proof. The precondition by Theorem 3 is a sound AFW-net W N “ pP, T, F, i, oq with its initial marking
Mi “ tiu and its terminal marking Mo “ tou. The proof is done by contradiction. We assume there is a
case, where x has a path to y or y has a path to x and both are still in a concurrency relation:
                                          `                        ˘
                  @x, y P P Y T, x ­“ y : Pathspx, yq Y Pathspy, xq ­“ H ^ px, yq P ∥             (13)

Without loss of generality and following from this contradiction (13), let x and y be two nodes with
px, yq P ∥ and there is a path AxÑy from x to y:

              x, y P P Y T, x ­“ y, px, yq P ∥   ^ Pathspx, yq ­“ H         ^    AxÑy P Pathspx, yq         (14)

Following from Def. 10 of concurrency, there is a marking M where x and y are active:
                                                             ˚       ˚
                                            DM, Mi Ñ˚ M : xM ^ yM                                           (15)

To simplify ongoing considerations and following from (14) and (15), we pick two places x1 and y1
carrying a token in M. If x (y) is a place, then x1 “ x (y1 “ y); otherwise, x1 (y1 ) is a place in ‚x (‚y):
                         #                                      #
                            x,                x P P               y,                 yPP
                    x1 “                               , y1 “                                                (16)
                            p P p‚x X Mq, x P T                   p P p‚y X Mq, y P T

Since x1 and y1 are places and W N is sound, Mpx1 q “ Mpy1 q “ 1. Furthermore, let Ax1 Ñy1 be the modified
path of AxÑy with adding x1 or removing y if necessary. Following from Def. 4, there is a path By1 Ño
from y1 to the sink o of W N:

                                  Pathspy1 , oq ­“ H   ^     By1 Ño P Pathspy1 , oq                         (17)

Since W N is acyclic by precondition:

                                     Ax1 Ñy1 ` By1 Ño “ C    ^    C is acyclic                              (18)

As a consequence from (15), (17), and (18), the sum of all tokens on the acyclic path C in M is more than
2:                                      ÿ
                                             Mpcq ě |tx1 , y1 u| “ 2                                 (19)
                                           cPC X P

Since W N is sound, (19) contradicts the Path-to-End Theorem 2 . As a consequence, W N cannot be
sound and the contradiction fails. The theorem is valid. ✓

  Following from Theorem 3 above, if two nodes are in concurrency relation, there is no path between
them.




                                                       140
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                         132–154


                                                    B                 C
                                                            c
                                   A                                                     F
                            a               b                                    e               f
                                                   D                  E
                                                            d
Figure 4: A simple net with exclusive paths, in which, for example place c and place d can never be concurrent.


Corollary 4. Let W N “ pP, T, F, i, oq be a sound AFW-net with its initial marking Mi “ tiu and its
terminal marking Mo “ tou.

                                                @x, y P P Y T, x ­“ y :
                             px, yq P ∥     ùñ          Pathspx, yq “ Pathspy, xq “ H                           {

Proof. The statement directly follows from the contraposition of Theorem 3.

   For example, the AFW-net in Figure 2 has concurrent transitions B and C, pB,Cq P ∥, and concurrent
places b and e, pb, eq P ∥. After firing transition C, Mp f q ě 1 and Mphq ě 1, such that pb, hq P ∥. As
Cor. 4 states, there is neither a path from place b to e nor from place b to h. For place g, there is a path
from place b to g; following Theorem 3, pb, gq R ∥. Regarding Cor. 4, each combination of two (different)
concurrent active nodes cannot have any path in-between for sound AFW-nets.
   Although the absence of paths between two nodes is a necessary condition for concurrency in AFW-
nets, it is not sufficient. For example, in Figure 4, place c has no path to place d, but both are never
concurrent.

4.1. First Revision
The existence or absence of paths between two nodes of an AFW-net is used in our approach to revise the
KovEs algorithm. In doing this, we reconsider Observations 1 and 2 from Section 3. Recall that, given a
pair of nodes px, yq P ∥ and a node s P y‚, we need to determine whether px, sq P ∥. Observation 1 with
y P T states that @s P y‚, px, sq P ∥. Following Cor. 4, there cannot be a path from x to s:

Corollary 5. Let W N “ pP, T, F, i, oq be a sound AFW-net with its initial marking Mi “ tiu and its
terminal marking Mo “ tou.

                                           @y P T @px, yq P ∥ @s P y‚ :
                                    Pathspx, sq “ H             ðñ            px, sq P ∥                        {

Proof. Constructive proof for y P T , px, yq P ∥, s P y‚, and the initial marking Mi “ tiu and the terminal
marking Mo “ tou. We prove both directions:

  Pathspx, sq “ H ùñ px, sq P ∥: By Cor. 4 and since px, yq P ∥, there cannot be a path between x and
     y, Pathspx, yq “ H. Therefore, x R ‚y.
                                                                                                     ˚   ˚
      Following Def. 10 of concurrency and since px, yq P ∥, there is a marking M with xM and yM :
                                                                          ˚              ˚
                                          DM : Mi Ñ˚ M            ^       xM         ^   yM                  (20)

      Since y is active in M and y P T , y is enabled in M. As a consequence, firing y in M can lead to a
      marking M 1 by Def. 6, in which s is active:
                                                        y                 ˚                ˚
                                          DM 1 : M Ñ M 1          ^       xM 1       ^     sM1               (21)

      By Def. 10 of concurrency and since Pathspx, sq “ H and Pathspy, xq “ H by Cor. 4: px, sq P ∥. ✓



                                                            141
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                      132–154


  px, sq P ∥ ùñ Pathspx, sq “ H: By Cor. 4 and since px, sq P ∥: Pathspx, sq “ H. ✓


   Observation 2 with y P P states that x is only concurrent to a transition s P y‚ if it is also concurrent to
all places p in ‚s. This statement is complex to check but can be simplified by considering paths:
Corollary 6. Let W N “ pP, T, F, i, oq be a sound AFW-net with its initial marking Mi “ tiu and its
terminal marking Mo “ tou.

                                        @y P P @px, yq P ∥ @s P y‚ :
                                   Pathspx, sq “ H      ðñ          px, sq P ∥                                {

Proof. Constructive proof for px, yq P ∥, y P P, s P y‚, and the initial marking Mi “ tiu and the terminal
marking Mo “ tou. Let
                                                          ˚          ˚
                                    M, Mi Ñ˚ M ^ xM ^ yM                                              (22)
We prove both directions:
  Pathspx, sq “ H ùñ px, sq P ∥: If x would have a path to any node in ‚s, it would have a path to s.
     However, Pathspx, sq “ H. For this reason, x cannot have a path to any node in ‚s:

                                            @p P ‚s : Pathspx, pq “ H                                     (23)

      As a consequence, since W N is sound, there must be a reachable marking M 1 , in which x is still
      active and s became enabled (active), i. e., firing s is “independent” from x, because there is no path
      from x to s by (23).:
                                                                 ˚        ˚
                                    DM 1 : MÑ˚ M 1 ^ xM1 ^ sM1                                           (24)
      Following Def. 10 and since Pathspx, sq “ H and Pathspy, xq “ H by Cor. 4, px, sq P ∥. ✓
  px, sq P ∥ ùñ Pathspx, sq “ H: By Cor. 4 and since px, sq P ∥: Pathspx, sq “ H. ✓


   In summary, for both cases y P P and y P T , if and only if x has no path to s, then px, sq P ∥. Otherwise,
px, sq R ∥. This is summarized by the following theorem:
Theorem 7. Let W N “ pP, T, F, i, oq be a sound AFW-net with its initial marking Mi “ tiu and its terminal
marking Mo “ tou.

                                            @px, yq P ∥ @s P y‚ :
                                   Pathspx, sq “ H      ðñ          px, sq P ∥                                {

Proof. The theorem combines all cases from Cor. 5 and Cor. 6. ✓

  Although this can already be used to revise the KovEs algorithm, we consider an additional revision as
well.

4.2. Second Revision
Following the first revision, paths play a crucial role to identify concurrency. For this reason, we define
an auxiliary relation:
Definition 11 (HasPath relation). Let W N “ pP, T, F, i, oq be an AFW-net. The HasPath relation
                                  ␣                                            (
                     HasPath “ px, yq P pP Y T q ˆ pP Y T q | Pathspx, yq ­“ H                            (25)

specifies whether a node x has an acyclic path to node y (HasPath is reflexive, so px, xq P HasPath).
HasPathpxq denotes the set of all nodes to which x has a path (again, inclusive of itself).        {



                                                     142
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                           132–154




                                                     HasPath(x)
                                   x        a                           x
                                                                                 a

                                       ||       ||                          ||       ||            c
                                                                                          b




                                                     HasPath(y)




                                                                                              HasPath(y)
                                   y        b                           y



                                     Case (a):                              Case (b):
                            HasPath(x)∩HasPath(y) = ∅               HasPath(x)∩HasPath(y) ≠ ∅

Figure 5: Two cases for mappings HasPathpxq and HasPathpyq of a concurrent pair px, yq P ∥.


   In the following, let px, yq P ∥ for a sound AFW-net. From px, yq P ∥ and Cor. 4 it follows that
y R HasPathpxq and x R HasPathpyq. Let us consider any node a P HasPathpxq to which x has a path. If
a would have a path to y (i. e., y P HasPathpaq), then x would have a path to y via a. For this reason, no
node a P HasPathpxq has a path to y and no node in HasPathpyq has a path to x.
   Regarding px, yq P ∥, there are exactly two cases: (a) No path starting in x to any sink crosses any path
starting in y to any sink (i. e., HasPathpxq X HasPathpyq “ H, cf. Figure 5 Case (a)); or (b) at least one
path starting in x to a sink crosses at least one path starting in y to a sink (i. e., HasPathpxqXHasPathpyq ­“
H, cf. Figure 5 Case (b)).
   To case (a): each node in HasPathpxq must be in concurrency relation with any node in HasPathpyq
after a stepwise application of Theorem 7 regarding the first revision (and, since tokens in both sets can
never converge). This is illustrated in Figure 5 by nodes a and b being concurrent.
   To case (b): the nodes of HasPathpxq are partially overlapping with the nodes of HasPathpyq. This
is illustrated in Figure 5 Case (b) with a gray triangle subset. Let Rȳx “ HasPathpxqzHasPathpyq be the
subset of nodes of HasPathpxq to which y has no path (and, therefore, no node in HasPathpyq as explained
previously). A node a P Rȳx has a subset HasPathpaq Ď HasPathpxq (illustrated as the grid triangle subset
in Figure 5). Although no node in HasPathpyq has a path to a, a may have paths to nodes in HasPathpyq
(more precisely, to nodes in HasPathpaq X HasPathpyq; in Figure 5 this is the subset of the gray triangle
intersecting the grid triangle). Regarding Theorem 3, a cannot be concurrent to those nodes (c in the
illustration). Rāy “ HasPathpyqzHasPathpaq contains all nodes of HasPathpyq to which a has no path (and
so no other node of HasPathpaq). As a consequence, for each node a P Rȳx , there are sets HasPathpaq and
HasPathpyqzHasPathpaq “ Rāy being disjoint. There are disjoint paths from x to each node in HasPathpaq
and from y to each node in Rāy . Following the first revision and Theorem 7, a step-wise consideration of
these paths leads to concurrency between all nodes in HasPathpaq and Rāy . Instead of considering these
nodes step-by-step, their pairwise concurrency can be added directly, i. e., HasPathpaq ˆ Rāy Ď ∥. This
leads to a revised algorithm for sound AFW-nets with a quadratic computational complexity.

4.3. Revised Algorithm
Algorithm 2 defines the revised algorithm for sound AFW-nets. The algorithm computes the concurrency
relation for each node of the net. However, if necessary, it can be modified to just compute the relations
for places. Furthermore, the algorithm assumes the relation ∥ to be represented as an adjacency list.
Naturally, it takes just Op| ∥ |q to put it into a set of pairs.
   Lines 2–6 of Algorithm 2 initialize the algorithm. Lines 3–5 initialize the set R for each unprocessed
node with an empty set (following the KovEs algorithm, which is here the adjacency list of concurrent
nodes). This initialization is linear to the number of nodes, Op|P| ` |T |q. Line 6 computes the HasPath
relation as adjacency list by calling a function computeHasPath of Algorithm 3. The algorithm computes
HasPath utilizing a reverse topological order (each node appears after all its output nodes). Such order



                                                                  143
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                       132–154


Algorithm 2 The acyclic Concurrent Paths algorithm to determine ∥ for a given sound AFW-net W N “
pP, T, F, i, oq.
 1: function DETERMINE C ONCURRENCY(W N “ pP, T, F, i, oq, R “ H)
 2:       // Initialize
 3:       for all x P P Y T do
 4:            if x R R then
 5:                 Rpxq Ð H
 6:       HasPath Ð COMPUTE H AS PATH(W N)
 7:       // Compute
 8:       IÐH
 9:       for all t P T do
10:            for all x P t‚ do `       ˘
11:                 Ipxq Ð Ipxq Y t‚ztxu
12:     for all keys x P I do
13:         for all y P Ipxq do
14:             Rȳx Ð HasPathpxqzHasPathpyq
15:             for all a P Rȳx do `                    ˘
16:                  Rpaq Ð Rpaq Y HasPathpyqzHasPathpaq
17:     return R

Algorithm 3 Computation of HasPath as adjacency list for a given AFW-net W N “ pP, T, F, i, oq.
 1: function COMPUTE H AS PATH(W N “ pP, T, F, i, oq)
 2:    // Initialize
 3:    HasPath Ð H
 4:    for all x P P Y T do
 5:         HasPathpxq Ð H
 6:    L Ð P Y T in reverse topological order starting from o
 7:    for all x P L do        Ť
 8:         HasPathpxq Ð txu Y sPx‚ HasPathpsq
 9:     return HasPath


can be computed in Op|P| ` |T | ` |F|q [13]. Thus, Algorithm 3 can compute HasPath for all nodes in
Op|P| ` |T | ` |F|q as well since each node (|P Y T |) is investigated with its outputs (|F|). Assuming that
set operations (such as Y) can be achieved in constant time, e. g., with a BitSet, HasPath can be computed
for all nodes in Op|P| ` |T | ` |F|q.
   The actual computation of the concurrency relation takes place in lines 8–17. It creates a new adjacency
list I for initial places in concurrency relation (line 8). It investigates all transitions t (line 9) and its
output places x (line 10). Each x is initial concurrent to all other output places of t (line 11). Lines 12–13
investigate all pairs of different places being initially in concurrency relation in I. Line 14 computes the
set Rȳx containing all nodes to which x but not y has a path. As discussed in the Second Revision, each
node a P Rȳx is investigated in lines 15–16, where line 16 adds all nodes in HasPathpyqzHasPathpaq to be
concurrent to a (i. e., all nodes in HasPathpyq to which a does not have a path; recall that a does not have
a path to any node of HasPathpyq because it is in Rȳx ).
   The time complexity for lines 8–16 seems biquadratic, OpX 4 q, at the first view. However, let us
change the perspective on the algorithm focusing on line 16. If line 16 adds new information to
Rpaq, at least one new pair in concurrency was detected. That means if line 16 always adds new
information Rpaq and, therefore, finds a new pair in concurrency, lines 8–16 can execute line 16 at most
| ∥ | ď |pP Y T q ˆ pP Y T q| times, i. e., Op|P|2 ` |T |2 q — the algorithm would be quadratic. In other words,
line 16 is never unnecessarily executed, as we will explain in the following.




                                                      144
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                        132–154


   The main task of lines 8–13 is to create and consider a new pair px, yq, which is taken from each t‚
of t in lines 8–11. There can only be |P|2 of such pairs (as adjacency list) in I. Apart from this pair
(and, of course, py, xq), let us consider all other “initial” pairs pα, β q ­“ px, yq ­“ py, xq of lines 8–11. If
for transition t with x, y P t‚ it is valid that t P HasPathpαq, then t‚ Ă HasPathpαq, and if it is valid that
t P HasPathpβ q, then t‚ Ă HasPathpβ q. For this reason, it is valid that either:

   1. tx, yu Ă HasPathpαq,

   2. tx, yu Ă HasPathpβ q, or
               `                       ˘
   3. tx, yu Ć HasPathpαq Y HasPathpβ q .

As a consequence, all “initial” pairs px, yq and py, xq cannot be added by the handling of other “initial”
pairs. The same holds true for all nodes in Rȳx of line 14 whose information to be concurrent to y is firstly
added in line 16. Line 16, therefore, always adds new information. As explained earlier, line 16 can at
most be executed in quadratic complexity making lines 8–16 quadratic, Op|P|2 ` |T |2 q.
   In summary, assuming that set operations   ` are applicable in constant time (like2 Y and2 ˘z), e. g.,
                                                                                                      ` by a
BitSet, Algorithm 2 can be˘ computed in O p|P| ` |T |q ` p|P| ` |T | ` |F|q ` |P| ` |P| ` |T | “ O 3|P| `
2|T | ` |F| ` |P|2 ` |T |2 “ Op|P|2 ` |T |2 q in the worst-case (as |F| is quadratic to |P| ` |T | in the
worst-case). Since at least those pairs in concurrency must be investigated, which are a subset of
pP Y T q ˆ pP Y T q, it will be difficult to obtain a faster algorithm in terms of asymptotic time complexity
than Op| ∥ |q Ď Op|P|2 ` |T |2 q.


5. Cubic Algorithm for FW-Nets
Although AFW-nets are not unusual, concurrency in cyclic sound FW-nets must be considered as well.
In contrast to the KovEs algorithm, Algorithm 2 cannot be applied to cyclic nets since the revisions are
applicable to acyclic nets only. To overcome this situation, we use a method called loop decomposition
[17] to decompose a cyclic sound FW-net into a set of sound AFW-nets with the same behavior. Cyclic
nets become acyclic by replacing loops with single loop places. Figure 6 shows a cyclic net on the left
side, which is decomposed into four acyclic nets on the right side. Subsequently, we apply Algorithm 2
to each acyclic net and combine all collected concurrency information, i. e., all nodes concurrent to an
inserted loop place are concurrent to all nodes in the corresponding loop.

5.1. Loop Decomposition
The method of loop decomposition [17] was introduced to decompose sound workflow graphs with loops
into sets of sound workflow graphs without loops. This decomposition method was slightly revised in [18].
Favre et al. [11] have shown how free-choice nets can be transferred into workflow graphs and vice
versa. The notion of soundness used in the work of loop decomposition is equal to soundness of FW-nets
[19]. For this reason, loop decomposition can be applied to sound FW-nets without strong modifications.
Algorithm 4 describes the algorithm abstractly. The following only focuses on the consequences for
concurrency detection. For further details about loop decomposition, we refer to previous work [17, 18].
   Loop decomposition identifies loops as strongly connected components (cf. Def. 3 of loops). Following
[17], entries and exits of loops are places in sound FW-nets. The (sometimes unconnected) subgraph
between all loop entries and those loop exits being reachable without passing another loop exit is called
the do-body of the loop. Once a loop exit contains a token, no other place in the loop or the do-body
contains a token [17]. Therefore, the do-body can be interpreted as an implicit, initial “converging area”
of different concurrent tokens before first loop exits are reached. Loop decomposition duplicates the
do-body as an explicit, initial converging area before the loop. Subsequently, it replaces the entire loop
(without the copied do-body) with a single loop place representing the previous loop. All flows into and
out of the loop are redirected to start from and end at the loop place. Repeating this procedure with any
(nested) loop finally leads to an acyclic sound FW-net [17]. For example, the cyclic network on the left



                                                      145
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                   132–154


Algorithm 4 Loop decomposition of a given sound FW-net W N “ pP, T, F, i, oq.
 1: Connections Ð H
 2: AcyclicNets Ð H
 3: function DECOMPOSE L OOPS(W N “ pP, T, F, i, oq)
 4:    Identify LoopspW Nq.
 5:    if |LoopspW Nq| “ 0 then
 6:         AcyclicNets Ð AcyclicNets Y tW Nu
 7:         return AcyclicNets, Connections
 8:    for all L “ pPL , TL , FL q P LoopspW Nq do
 9:         Identify loop entries EntriespLq and loop exits ExitspLq.
10:         Identify do-body DoBodypLq of L.
11:         Copy do-body and relink flows.
12:         Replace L with place pL in W N and` relink flows
                                                         ˘ to pL .
13:         Connections Ð Connections Y t pL , PL Y TL u
14:         Split L into loop fragments.
15:         Insert one source and one sink place to combine loop fragments.
16:         Create new net W NL of it.
17:         DECOMPOSE L OOPS (W NL )
18:    DECOMPOSE L OOPS (W N)
19:    return AcyclicNets, Connections


in Figure 6 contains a loop with the nodes tb, B, c, d, C, e, D, f , E, Q, g, Fu at the top. This loop in
turn contains a nested loop with the nodes tb, B, c, d, C, e, Q, g, Fu. However, this nested loop is only
revealed when the surrounding loop is decomposed. Loop decomposition handles such loops recursively.
   The extracted loops with all their nodes and flows are decomposed by removing all incoming flows
of loop exits. As a consequence, the loop disintegrates into at least one loop fragment. In the original
method of loop decomposition [17], each fragment is extended to an own net. This is unnecessary in
this context of sound FW-nets, since all fragments of the same loop are mutually exclusive [17], i. e.,
no node of one fragment can ever be in a concurrency relation with a node of another fragment of the
same loop. Therefore, all fragments of a loop together get a new single source place and a new single
sink place. For each loop entry and exit, a new transition is inserted connecting the source place with
the entry/exit. For each loop exit, a new transition is inserted to connect it with the new sink place. In
addition, all transitions previously in the preset of a loop exit are connected to the new sink place. The
resulting “loop” net is sound and free-choice. In case that this loop net is still cyclic (in case of nested
loops), loop decomposition can be recursively applied to this net again. This procedure finally terminates
in only sound AFW-nets [17].
   Figure 6 illustrates the decomposition of the cyclic FW-net on the left into its set of AFW-nets. The
cyclic net contains two loops: One with place b as entry and f as exit in the top and one with place h
as entry and j and k as exits. The net is decomposed into four acyclic nets (right). The net at the top
is the loop-reduced version of the cyclic net. The do-bodies (loop 1: tb, B, c, d,C, e, D, Q, g, Fu, loop 2:
th, H, i, Iu) remained and the loops were replaced with loop places (α and β ). Since the remaining
do-body of loop 1 contains a nested loop with loop entries b and g and loop exit e, the recursive
decomposition replaces this loop with loop place γ and its do-body tb, B, c, d,Cu remains. The acyclic
α-loop net corresponds to the upper loop place α and spans from before its loop exit f to before f (D).
This net contains also the nested loop γ and is decomposed accordingly. The β -loop net corresponds to
the lower loop place β . It consists of two fragments (from exit j to before k and from exit k to before j)
and is constructed by adding a source place, sink place, and the remaining transitions. Finally, the γ-loop
net represents the nested loop spanning from e to before e.




                                                    146
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                                                                                                      132–154



                                                                                                                          c
                                                                                                                                              ⟲                   ⟲
                                                                                              b                   B                   C       γ       D       α               R   q

                                                                                                                          d
                                                                                                                                                      ⟲
                                                                                          a       A       h           H           i           I       β           O           p       G           o



                                    g
                                                                                                                                  Acyclic net                     N
     F                                              E


                                    Q
                     c
                                                                                                                                                                      c
     b           B          C           e       D       f           R   q                                                                                                                 ⟲
                                                                                                      f           E           g       F           b   B                       C           γ       D
                     d
                                                                                                                                  α-loop net                      d


 a       A   h       H          i           I   j           O   p           G   o
                                                                                                                                                                                              J
                                                                                                                                                  j
             M                                  J
                                l

                 n   L                      K       k               N                                                         l
                            m                                                                         k           K                       L       n   M           h           H           i       I
                                                                                                                              m
                         Sound cyclic FW-net                                                                                      β -loop net



                                                                                                                                                                                      c

                                                                                                              e           Q           g           F       b               B                       C
                                                                                                                                  γ-loop net                                          d


Figure 6: A sound cyclic FW-net with two loops and one nested loop (left), and its decomposition into four
sound acyclic nets (right). The α- and β -loop nets represent both loops, which were reduced in the net above
with (loop) places α and β . The γ-loop net represents the nested loop and has a corresponding loop place γ.


5.2. The Algorithm
The overall situation after loop decomposition is a set of sound AFW-nets, in which some loop places
are linked to acyclic loop nets. It is important to understand for correctness that the replacement of
(parts of) loops with loop places does not change the concurrency behavior. That is, in sound FW-nets,
an entire loop (after copying the do-body) acts as a place “globally” [17]. For the computation of the
concurrency relation it follows that each node in a concurrency relation with a loop place is concurrent
with each node of the linked loop. Newly inserted transitions and places in the loop nets to facilitate the
decomposition are not of interest, naturally. Nodes of loops in the do-body appear (at least) twice — once
in the surrounding net and once in the corresponding loop net. For instance, places b and c in Figure 6
are in the AFW-net in the top and in the α-loop net. This does not have an influence on the final result,
since if a node remaining in the surrounding net is in concurrency relation with another node, both nodes
also are in concurrency relation in the original net. The same appears with nodes represented by the loop
place being in concurrency relation with other nodes.
   Algorithm 5 describes the Concurrent Paths (CP) algorithm. It computes the adjacency set R of
concurrent nodes. This is initialized with an empty set in line 2. Line 3 calls Algorithm 4 to decompose
net W N into a set of acyclic nets AcyclicNets and a Connections relation. Lines 4–5 compute (and
extend) R for each acyclic net W Na with Algorithm 2. Lines 6–16 replace concurrency relations between
loop places and other nodes. In doing this, it considers each connection between a loop place l and a
linked loop net A (as combination of places and transitions) in line 6. For l, it considers each node c
that is concurrent to l (line 7). If c is also a loop place with a linked loop net, the nodes of that loop
net are assigned to B (lines 8–9). Otherwise, if c is an ordinary node, B only consists of tcu (line 11).
Furthermore, although c is concurrent to the loop place l, it is not of interest since l is “virtual” (line 12).
Then, each node a in A is concurrent to each node in B (lines 13–14). In addition, each node b in B is
concurrent to each node in A (lines 15–16).
   The time complexity of the algorithm depends on the time complexity of loop decomposition as well as
on the (possible) increase of the problem size. Loop decomposition is achievable in Op|P|2 ` |P| ¨ |T | `



                                                                                    147
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                         132–154


Algorithm 5 The Concurrent Paths (CP) algorithm: A cyclic version of the algorithm to determine ∥ for
a sound FW-net W N “ pP, T, F, i, oq.
 1: function C ONCURRENT PATHS(W N “ pP, T, F, i, oq)
 2:    RÐH
 3:    AcyclicNets, Connections Ð DECOMPOSE L OOPS(W N)
 4:    for all W Na P AcyclicNets do
 5:        R Ð DETERMINE C ONCURRENCY(W Na , R)
 6:    for all pl, Aq P Connections do
 7:        for all c P Rplq do
 8:            if c P Connections then
 9:                 B Ð Connectionspcq X pP Y T q
10:            else
11:                 B Ð tcu
12:            Rpcq Ð Rpcqztlu
13:            for all a P A do
14:                 Rpaq Ð Rpaq Y B
15:            for all b P B do
16:                 Rpbq Ð Rpbq Y A
17:    return R


|P| ¨ |F|q [17, 18]. In the worst case of many nested loops, the problem size after loop decomposition
may increase quadratically, i. e., instead of checking one net of size |P| ` |T | ` |F|, |P| nets of size
|P| ` |T | ` |F| must be investigated as a result of the decomposition (in general, the number of (nested)
loops in a net is limited by a low constant). Thus, the complexity of checking a single cyclic net may
increase to Op|P|2 ` |T | ¨ |P| ` |P| ¨ |F|q in the worst case. In this worst case, the application of Algorithm 2
on |P| nets finally leads to a Op|P|3 ` |P| ¨ |T |2 q and, therefore, cubic time complexity. For this reason,
Algorithm 5 has the same time behavior as the KovEs algorithm in the worst case. Although it seems
that Algorithm 5 has no benefit regarding the KovEs algorithm, there are several reasons why there are
situations, in which the algorithm has its advantages:

  (i) The algorithm can be parallelized. At first, each resulting acyclic net can be analyzed in parallel.
      The combination of the results is possible in at most quadratic time. At second, once HasPath
      is computed for a net in at most quadratic time, all transitions can be computed in parallel. The
      combination of the results is at most quadratic as well.

  (ii) It is relatively rare that nets have many (nested) loops [17]. In addition, if a loop has only one entry,
       it is not necessary to consider the do-body. The same holds true if the do-body does not contain
       any converging transition.

 (iii) If the net has a high degree of concurrency involving many nodes, the algorithm should have a
       performance benefit compared to KovEs.

 (iv) Of course, if the net is acyclic, the algorithm is faster.

5.3. Example
To illustrate how Algorithm 5 works, we use the cyclic example net of Figure 6. At first, loop decomposi-
tion decomposes the cyclic net into the acyclic nets on the right side of Figure 6. Subsequently, it performs
for each of the acyclic nets the acyclic CP Algorithm 2. Table 1 contains the relation HasPath and the
temporary relation R for each of the acyclic nets and most of their nodes. For example, if transition A is
investigated, the pair pb, hq is considered. The sets HasPathpbq and HasPathphq can be found in Table 1.




                                                       148
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                                                                                        132–154


Table 1
The table shows for each acyclic net and their nodes being illustrated in the top, the relations HasPath and R.
For HasPath, we omitted the mention for nodes, which are not in concurrency relation with another node. Both
relations were derived after performing Algorithm 2.

                                 c                                                                                                                                              J
                                                   ⟲              ⟲
                                                   γ          α                q                                                                j
     b                   B                   C            D               R
                                 d
                                                          ⟲
 a                                                                        p             o                                      l
         A           h       H           i        I       β       O                G
                                                                                                              k        K                L       n    M      h       H       i       I
                                         Acyclic net                                                                           m   β -loop net
                                                                  N




                                                                      c                                                                                                 c
                                                                                   ⟲
                 f       E           g        F       b   B               C        γ    D                          e       Q        g           F     b         B                   C
                                             α-loop net           d                                                                γ-loop net                           d



         Net                                  Node(s)                         HasPath                                                       R (∥)

                                             a, A, G, o                       [Not of interest for this example]                            H
                                                 b                            b, B, c, d, C, γ, D, α, R, q, G, o                            h, H, i, I, β , O, N, p
                                                 B                            B, c, d, C, γ, D, α, R, q, G, o                               h, H, i, I, β , O, N, p
                                                 c                            c, C, γ, D, α, R, q, G, o                                     d, h, H, i, I, β , O, N, p
                                                 d                            d, C, γ, D, α, R, q, G, o                                     c, h, H, i, I, β , O, N, p
                                                 C                            C, γ, D, α, R, q, G, o                                        h, H, i, I, β , O, N, p
                                                 γ                            γ, D, α, R, q, G, o                                           h, H, i, I, β , O, N, p
                                                 D                            D, α, R, q, G, o                                              h, H, i, I, β , O, N, p
                                                 α                            α, R, q, G, o                                                 h, H, i, I, β , O, N, p
     Acyclic                                     R                            R, q, G, o                                                    h, H, i, I, β , O, N, p
                                                 q                            q, G, o                                                       h, H, i, I, β , O, N, p
                                                 h                            h, H, i, I, β , O, N, p, G, o                                 b, B, c, d, C, γ, D, α, R, q
                                                 H                            H, i, I, β , O, N, p, G, o                                    b, B, c, d, C, γ, D, α, R, q
                                                  i                           i, I, β , O, N, p, G, o                                       b, B, c, d, C, γ, D, α, R, q
                                                 I                            I, β , O, N, p, G, o                                          b, B, c, d, C, γ, D, α, R, q
                                                 β                            β , O, N, p, G, o                                             b, B, c, d, C, γ, D, α, R, q
                                                 O                            O, p, G, o                                                    N, b, B, c, d, C, γ, D, α, R, q
                                                 N                            N, p, G, o                                                    O, b, B, c, d, C, γ, D, α, R, q
                                                 p                            p, G, o                                                       b, B, c, d, C, γ, D, α, R, q

                                 f , E, g, F, b, B, C, γ, D                   [Not of interest for this example]                            H
             α                                c                               c, C, γ, D                                                    d
                                              d                               d, C, γ, D                                                    c

                             j, J, k, K, L, n, M, h, H, i, I                  [Not of interest for this example]                            H
             β                              l                                 l, L, n, M, h, H, i, I                                        m
                                            m                                 m, L, n, M, h, H, i, I                                        l

                                     e, Q, g, F, b, B, C                      [Not of interest for this example]                            H
             γ                                c                               c, C                                                          d
                                              d                               d, C                                                          c



It is valid that HasPathpbqzHasPathphq “ `tb, B, c, d,C, γ, D, α, R, qu.˘ For each of these nodes, we can
extend the relation to, e. g., Rpbq “ Rpbq Y HasPathphqzHasPathpbq “ Rpbq Y th, H, i, I, β , O, N, pu.
   Once all acyclic nets are investigated, the results can be combined. For the upper acyclic net in Figure 6,
there are three loop places α, β , and γ. Let us take α as an example: α is already concurrent to h, H,
i, I, β , O, N, and p (cf. Table 1). Each of these nodes is considered by Algorithm 5, lines 7–16. It
may start with node h, which is not a loop place but an ordinary node. Therefore, B Ð thu and h is not
concurrent to α anymore (lines 10–12). However, each node in the α-loop net (Figure 6), is concurrent
to h (lines 13–14); and h (in B) is concurrent to each node of the α-loop net. The same holds true for
the case of β : It is a loop place so that B contains all nodes of the β -loop net (Figure 6), lines 8–9. That
means, each node of the α-loop net is concurrent to each node of the β -loop net and, naturally, vice versa
(lines 13–16). Table 2 summarizes the R (∥) relations for each node of the original net of Figure 6.




                                                                                            149
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                                                                   132–154


Table 2
The nodes of the net in the top being in a concurrency relation ∥ after performing Algorithm 5 and combining
the R relations in Algorithm 2.

                                       F                                g               E


                                                                        Q
                                                         c

                                        b           B           C           e       D       f           R   q

                                                         d



                                   a        A   h        H          i           I   j           O   p           G   o



                                                M                                   J
                                                                    l

                                                    n    L                      K       k               N

                                                                 m

           Node        R (∥)                                                        Node            R (∥)

             a         H                                                                h           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             A         H                                                                H           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             b         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   i           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             B         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   I           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             c         d, h, H, i, I, j, J, k, K, l, m, L, n, M, N, O,                  j           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
                       p
             d         c, h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                J           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             C         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   k           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             e         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   K           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             D         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   l           m, b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             f         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   m           l, b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             E         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   L           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             g         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   n           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             F         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   M           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             Q         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   N           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             R         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   O           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             q         h, H, i, I, j, J, k, K, l, m, L, n, M, N, O, p                   p           b, B, c, d, C, e, D, f , E, g, F, Q, R, q
             G         H                                                                o           H



6. Evaluation
The KovEs algorithm and the presented CP algorithm in Section 5 have been implemented in a simple
script-based algorithm (PHP) for the purpose of evaluation. The implementation is open-source and
available on GitHub1 . The following experiments were conducted on a machine with an Intel® Core™ i7
CPU with 4 cores, 16 GB of main memory, and Microsoft Windows 11 Professional. PHP was used in
version 8. We performed all measures for 10 times, removed the best and worst times, and used the mean
values of all the remaining runs.
   Both algorithms were applied to a well-known dataset, namely the IBM Websphere Business Modeler
dataset [19], which consists of 1,368 files and is referred to as IBM hereafter. Only 644 nets of the
IBM dataset can be investigated since the algorithm requires sound FW-nets. The nets were available as
Petri Net Markup Language (PNML) models. The comparison of both algorithms was restricted to the
identification of concurrent places instead of concurrent places and transitions, since the KovEs algorithm
cannot find concurrent transitions without modifications. The nets under investigation are small (75%
with less or equal 58 nodes) to big (with a maximum of 546 nodes). Places are more frequent than
transitions (approx. 61%˘4% of all nodes are places). With regard to the number of nodes, a net has
approx. 111%˘11.5% flows.
   Both algorithms find the same places being concurrent for all suitable nets of the IBM dataset. Although
the total number of nodes |N| in a net bounds the number of concurrent nodes | ∥ | ď |pP ` T q2 |, the
number of nodes (R2 “ 0.2), places (R2 “ 0.42), and transitions (R2 “ 0.06) do not well explain the

1 https://github.com/guybrushPrince/cp




                                                                            150
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                                                                                     132–154


                                                                  Kovalyov + Esparza                                             Concurrent Paths


                                            100,000




                  Log. investigated nodes
                                             10,000


                                              1,000


                                               100


                                                10
                                                          10        30       100        300          10                           30        100      300
                                                                                       Log. number of nodes


Figure 7: The number of investigated nodes during computation compared to the number of nodes in the nets.


                                            300,000                                                               300,000
                     Investigated nodes




      Algorithm                             200,000                                          Investigated nodes   200,000                                    Algorithm
         KovEs                                                                                                                                                  KovEs
         CP                                                                                                                                                     CP
                                            100,000                                                               100,000


                                                  0                                                                    0
                                                      0        10000 20000 30000 40000                                      0            50         100
                                                                  Cardinality of ||                                             Ratio between || and nodes

Figure 8: The number of investigated nodes during computation compared to the number of pairs in concur-
rency relation (left) and the ratio between the number of pairs and the number of nodes (right).


degree of concurrency in a net by applying a linear regression considering whether | ∥ | „ |pP ` T q2 |,
| ∥ | „ |P2 |, or | ∥ | „ |T 2 |, respectively.
   The overall goal was to construct a more efficient algorithm than the KovEs algorithm. For this reason,
we have compared the times both algorithms need to compute all concurrency relations for a net. The
CP algorithm was overall faster for the entire dataset. It just needs 285 [ms] to compute 192,170 pairs
of places being in relation. On contrary, the KovEs algorithm requires 14,100 [ms] for doing the same
job, i. e., the CP algorithm is approx. 50 times faster. On closer inspection, KovEs has its benefits for
nets without a high degree of concurrency. For these cases, it performs better than CP. Figure 7 shows a
chart comparing the number of investigated nodes during both algorithms in relation to the number of
nodes in the net. The y-axis is scaled logarithmically. The CP algorithm has, of course, a higher “start up”
number of nodes to investigate, because it visits at least each node and flow once for the computation of
paths. KovEs instead directly starts with the computation of the concurrency relations and, therefore, has
no start up number of nodes and has a better performance for nets with less concurrent nodes. Figure 8
illustrates the number of investigated nodes in relation to the number of relations. The chart reveals
that the computational load of KovEs seems to increase slightly quadratically if the number of nodes in
relation increase. Instead, the load of CP seems to increase only linearly for a higher number of relations.
This correlation between the computational load and the number of relations becomes more obvious if
we compare the computation time in relation to the number of nodes being concurrent as it is done in
Figure 9. The computation time of the KovEs algorithm seems to increase quadratically to the number of
concurrent nodes; instead, the computation time of CP seems to increase just linearly.
   Only 40 out of 644 nets of the IBM dataset are cyclic. The acyclic nets are investigated in 241 [ms]
with CP and in 14,084 [ms] with KovEs. In fact, one net with approx. 42k concurrent pairs alone needs
10,500 [ms] for KovEs but just 45 [ms] with CP. CP is faster than KovEs for 87 nets. In sum, CP needs
171 [ms] and KovEs needs 14,06 [ms] for these 87 nets (speedup factor approx. 82), whereas for the



                                                                                          151
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                                                 132–154


                                             Kovalyov + Esparza                                  Concurrent Paths

                             10.0


                              1.0
           Log. time [s]
                              0.1


                             0.01


                            0.001


                           0.0001




                                    1   10      100    1,000      10k      100k   1       10       100    1,000     10k   100k
                                                                  Log. cardinality of || (> 0)

Figure 9: Computation time regarding the number of pairs of nodes in concurrency relation.


other 557 nets, CP needs 114 [ms] and KovEs needs 41 [ms] (slowdown factor approx. 3). The 87 nets
comprise approx. 172k of pairs in relation against approx. 20k for the others. Therefore, the 87 nets
have a much stronger computational intensity. KovEs is faster for the cyclic nets with 16 [ms] against 43
[ms] for CP. This is reasonable because of three reasons: (1) CP has a higher start up time especially
for cyclic nets by performing a quadratic loop decomposition, (2) CP has the same worst-case cubic
runtime complexity like KovEs, and (3) the ratio of concurrent nodes to the number of nodes is small for
the 40 nets; there are just approx. 2.5 times of nodes in relation compared to the total number of nodes
(i. e., a net with 100 nodes has around 250 pairs of nodes being concurrent). If this ratio is higher, CP
benefits against KovEs. For showcasing this, the acyclic net with approx. 42k pairs of nodes in relation
was surrounded with a simple loop. Although CP has to perform loop decomposition, the computation
times are similar to those of the acyclic case — it shows that CP is more efficient than KovEs if a net
contains many concurrent pairs of nodes.


7. Conclusion
Concurrency detection identifies pairs of nodes that may be executed in parallel. Knowing concurrent
places and transitions in Petri nets is essential to understand their behavior and is crucial as the base for
ongoing analysis. Since such nets are potentially large and complex with many pairs of concurrent nodes,
efficient algorithms are necessary. This paper extends the palette of concurrency detection algorithms
with the Concurrent Paths (CP) algorithm for sound and (simple) free-choice workflow nets. For acyclic
nets, the algorithm performs in quadratic time OpP2 ` T 2 q with P the number of places and T the number
of transitions of a net. The algorithm requires a cubic time complexity in the worst-case for cyclic
nets, OpP3 ` PT 2 q. Although this seems not to be an improvement of the algorithm of Kovalyov and
Esparza (KovEs) (which needs a cubic time complexity for live, bounded, and extended free-choice nets
and, therefore, a wider range of net classes), parallelizing CP is straight-forward and the worst-case of
CP appears significantly less frequent than the worst-case of KovEs and can be assumed to have just a
constant impact on computation time for most nets. An evaluation of CP on a benchmark of nets showed
strong benefits on nets with a high degree of concurrency and only small disadvantages on nets with a
low degree of concurrency.
   This paper enables Petri net analysis to be more efficient, especially, in cases of a high degree
in concurrency of nets. Although single nets could be analyzed efficiently with KovEs, performing
concurrency detection on a large set of nets (e.g., for indexing in a database) may require much time.
CP reduces the effort and enables more efficient strategies to compute other properties of nets such as
causality, exclusivity, etc. As a side effect, related research areas such as business process management



                                                                         152
Thomas M. Prinz et al. CEUR Workshop Proceedings                                                    132–154


and information systems research profit from the new technique as they utilize nets for analysis.
   For future work, we plan to apply CP to efficiently derive all relations in the 4C spectrum [2] for sound
free-choice workflow nets. This would allow for an efficient indexing of nets in querying languages for
nets, which is especially beneficial in business process management.


References
 [1] R. M. Dijkman, M. L. Rosa, H. A. Reijers, Managing large collections of business process models
     - current techniques and challenges, Comput. Ind. 63 (2012) 91–97. doi:10.1016/J.COMPIND.
     2011.12.003.
 [2] A. Polyvyanyy, M. Weidlich, R. Conforti, M. L. Rosa, A. H. M. ter Hofstede, The 4C Spectrum
     of fundamental behavioral relations for concurrent systems, in: G. Ciardo, E. Kindler (Eds.),
     Application and Theory of Petri Nets and Concurrency - 35th International Conference, PETRI
     NETS 2014, Tunis, Tunisia, June 23-27, 2014. Proceedings, volume 8489 of Lecture Notes in
     Computer Science, Springer, 2014, pp. 210–232. doi:10.1007/978-3-319-07734-5_12.
 [3] M. Weidlich, J. Mendling, M. Weske, Efficient consistency measurement based on behavioral
     profiles of process models, IEEE Trans. Software Eng. 37 (2011) 410–429. doi:10.1109/TSE.
     2010.96.
 [4] A. Kovalyov, Concurrency relations and the safety problem for Petri nets, in: K. Jensen (Ed.),
     Application and Theory of Petri Nets 1992, 13th International Conference, Sheffield, UK, June
     22-26, 1992, Proceedings, volume 616 of Lecture Notes in Computer Science, Springer, 1992, pp.
     299–309. doi:10.1007/3-540-55676-1_17.
 [5] A. Kovalyov, J. Esparza, A Polynomial Algorithm to Compute the Concurrency Relation of Free-
     Choice Signal Transition Graphs, Sonderforschungsbereich 342: Methoden und Werkzeuge für die
     Nutzung paralleler Rechnerarchitekturen TUM-19528, SFB-Bericht Nr. 342/15/95 A, Institut für
     Informatik, Technische Universität München, München, Germany, 1995.
 [6] M. Weidlich, A. Polyvyanyy, J. Mendling, M. Weske, Efficient computation of causal behavioural
     profiles using structural decomposition, in: J. Lilius, W. Penczek (Eds.), Applications and Theory
     of Petri Nets, 31st International Conference, PETRI NETS 2010, Braga, Portugal, June 21-25,
     2010. Proceedings, volume 6128 of Lecture Notes in Computer Science, Springer, 2010, pp. 63–83.
     doi:10.1007/978-3-642-13675-7_6.
 [7] N. L. Ha, T. M. Prinz, Partitioning behavioral retrieval: An efficient computational approach with
     transitive rules, IEEE Access 9 (2021) 112043–112056. doi:10.1109/ACCESS.2021.3102634.
 [8] I. Weber, J. Hoffmann, J. Mendling, Beyond soundness: on the verification of semantic
     business process models, Distributed Parallel Databases 27 (2010) 271–343. doi:10.1007/
     S10619-010-7060-9.
 [9] J. Esparza, S. Römer, W. Vogler, An improvement of McMillan’s unfolding algorithm, Formal
     Methods Syst. Des. 20 (2002) 285–310. doi:10.1023/A:1014746130920.
[10] A. Polyvyanyy, Structuring process models, Ph.D. thesis, University of Potsdam, 2012. URL:
     http://opus.kobv.de/ubp/volltexte/2012/5902/.
[11] C. Favre, D. Fahland, H. Völzer, The relationship between workflow graphs and free-choice
     workflow nets, Inf. Syst. 47 (2015) 197–219. doi:10.1016/j.is.2013.12.004.
[12] T. M. Prinz, J. Klaus, N. R. van Beest, Pushing the limits: Concurrency detection in acyclic, live,
     and 1-safe free-choice nets in OppP ` T q2 q, CoRR abs/2401.16097 (2024). doi:10.48550/ARXIV.
     2401.16097. arXiv:2401.16097, Technical Report.
[13] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms, 3rd Edition, MIT
     Press, 2009.
[14] J. Desel, J. Esparza, Free Choice Petri Nets, pbk version ed. edition ed., Cambridge University
     Press, 2008.
[15] W. M. P. van der Aalst, Verification of workflow nets, in: P. Azéma, G. Balbo (Eds.), Application
     and Theory of Petri Nets 1997, 18th International Conference, ICATPN ’97, Toulouse, France, June



                                                    153
Thomas M. Prinz et al. CEUR Workshop Proceedings                                             132–154


     23-27, 1997, Proceedings, volume 1248 of Lecture Notes in Computer Science, Springer, 1997, pp.
     407–426. doi:10.1007/3-540-63139-9_48.
[16] H. M. W. Verbeek, T. Basten, W. M. P. van der Aalst, Diagnosing workflow processes using woflan,
     Comput. J. 44 (2001) 246–279. doi:10.1093/comjnl/44.4.246.
[17] T. M. Prinz, Y. Choi, N. L. Ha, Understanding and decomposing control-flow loops in business
     process models, in: C. D. Ciccio, R. M. Dijkman, A. del-Río-Ortega, S. Rinderle-Ma (Eds.),
     Business Process Management - 20th International Conference, BPM 2022, Münster, Germany,
     September 11-16, 2022, Proceedings, volume 13420 of Lecture Notes in Computer Science, Springer,
     2022, pp. 307–323. doi:10.1007/978-3-031-16103-2_21.
[18] T. M. Prinz, Y. Choi, N. L. Ha, Soundness unknotted: Efficient algorithm for process models with
     inclusive gateways by loosening loops, SSRN (2023). doi:10.2139/ssrn.4504060, preprint.
[19] D. Fahland, C. Favre, J. Koehler, N. Lohmann, H. Völzer, K. Wolf, Analysis on demand: In-
     stantaneous soundness checking of industrial business process models, Data Knowl. Eng. 70
     (2011) 448–466. URL: https://web.archive.org/web/20131208132841/http://service-technology.org/
     publications/fahlandfjklvw_2009_bpm. doi:10.1016/j.datak.2011.01.004, last visited in Jun.
     2024.




                                                   154