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\big((P+T)TP^2\big)$ for live nets (where $P$ and $T$ are the numbers of places and transitions) and in $O\big(P(P+T)^2\big)$ for live free-choice nets. Although these algorithms have a reasonably good computational complexity, large numbers of concurrent pairs of nodes may still lead to long computation times. Furthermore, both algorithms cannot be parallelized without additional effort. This paper complements the palette of concurrency detection algorithms with the Concurrent Paths (CP) algorithm for safe, live, free-choice nets. The algorithm allows parallelization and has a worst-case computational complexity of $O\big((P+T)^2\big)$ for acyclic nets and of $O\big(P^3+PT^2\big)$ 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.
翻译:并发性是(Petri)网描述和模拟复杂系统行为的重要方面。了解哪些库所和变迁可以并行执行有助于理解网的结构,并支持分析技术以及其他性质(如因果性、互斥性等)的计算。所有基于并发性检测的技术都依赖于该检测方法的效率。Kovalyov与Esparza针对活网提出了计算所有并发库所的算法,其复杂度为$O\big((P+T)TP^2\big)$(其中$P$和$T$分别表示库所和变迁的数量),而对活自由选择网则实现了$O\big(P(P+T)^2\big)$的复杂度。尽管这些算法具有较优的计算复杂度,但大量并发节点仍可能导致较长的计算时间。此外,这两种算法在不增加额外工作的情况下难以实现并行化。本文补充了并发性检测算法的方法库,针对安全、活且自由选择网提出了并发路径(CP)算法。该算法支持并行化,在无环网中具有最坏情况计算复杂度$O\big((P+T)^2\big)$,在循环网中复杂度为$O\big(P^3+PT^2\big)$。尽管循环网的计算复杂度未得到改进,但实验评估表明,当网中包含大量存在并发关系的节点时,CP算法仍具有显著优势。