Detecting Existence of Cycles in Petri Nets
Literature study reveals the existence of many algorithms for detecting cycles (also known as circuits) in directed graphs. Majority of these algorithms can be classified into two groups: (1) traversal algorithms (e.g. variants of depth-first-search algorithms), and (2) matrix-based algorithms (manipulation of the adjacency matrix and its power series). Adjacency matrix based algorithms are computationally simple and more compact than the traversal algorithms. However, a Petri net, due to its bipartite nature, possesses sparse matrix as adjacency matrix. Hence, the matrix based algorithms become inefficient as the algorithm work through redundant data most of its running time. In this paper, we take a closer look into the structure of the adjacency matrix of a Petri net and then propose an algorithm for detecting existence of cycles; the proposed algorithm is computationally efficient as its works through non-redundant data only, as well as simple, easy to understand and easy to implement.
KeywordsCycles detection Petri nets Directed graph
- 1.GPenSIM V9. User Manual (2016). http://davidrajuh.net/gpensim/
- 8.GPenSIM code for Job Scheduling in Grid Computing: http://www.davidrajuh.net/gpensim/2016-SOCO-Cycle-Detection
- 9.Davidrajuh, R.: Developing a new petri net tool for simulation of discrete event systems. In: Proceedings of the Second Asia International Conference on Modeling & Simulation (AMS), pp. 861–866. IEEE (2008)Google Scholar
- 10.Buluç, A., Gilbert, J.R., Shah, V.B.: Implementing sparse matrices for graph algorithms. In: Graph Algorithms in the Language of Linear Algebra, pp. 22, 287 (2011)Google Scholar
- 11.Buluç, A., and Gilbert, J. R.: New ideas in sparse matrix-matrix multiplication. In: Graph Algorithms in the Language of Linear Algebra, pp. 22, 315 (2011)Google Scholar