SOCO 2016, ICEUTE 2016, CISIS 2016: International Joint Conference SOCO’16-CISIS’16-ICEUTE’16 pp 376-385

# Detecting Existence of Cycles in Petri Nets

An Algorithm that Computes Non-redundant (Nonzero) Parts of Sparse Adjacency Matrix
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 527)

## Abstract

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.

## Keywords

Cycles detection Petri nets Directed graph

## References

1. 1.
GPenSIM V9. User Manual (2016). http://davidrajuh.net/gpensim/
2. 2.
Cormen, T.H.: Introduction to algorithms. MIT Press, Cambridge (2009)
3. 3.
Tarjan, R.: Enumeration of the elementary circuits of a directed graph. SIAM J. Comput. 2(1973), 211–216 (1973)
4. 4.
Teirnan, J.C.: An efficient search algorithm to find the elementary circuits of a graph. Commun. ACM 13(1970), 722–726 (1970)
5. 5.
Johnson, D.B.: Finding all the elementary circuits of a directed graph. SIAM J. Comput. 4(1), 77–84 (1975)
6. 6.
Hruz, B., Zhou, M.C.: Modeling and Control of Discrete-event Dynamic Systems. Springer, Heidelberg (2007)
7. 7.
Yamada, T., Kataoka, S.: On some LP problems for performance evaluation of timed marked graphs. IEEE Trans. Autom. Control 39, 696–698 (1994)
8. 8.
GPenSIM code for Job Scheduling in Grid Computing: http://www.davidrajuh.net/gpensim/2016-SOCO-Cycle-Detection
9. 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. 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. 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
12. 12.
Slavakis, K., Giannakis, G.B., Mateos, G.: Modeling and optimization for big data analytics: (statistical) learning tools for our era of data deluge. IEEE Signal Process. Mag. 31(5), 18–31 (2014)