A multi-threading algorithm to detect and remove cycles in vertex- and arc-weighted digraph (Q2633178)
From MaRDI portal
scientific article
Language | Label | Description | Also known as |
---|---|---|---|
English | A multi-threading algorithm to detect and remove cycles in vertex- and arc-weighted digraph |
scientific article |
Statements
A multi-threading algorithm to detect and remove cycles in vertex- and arc-weighted digraph (English)
0 references
8 May 2019
0 references
Summary: A graph is a very important structure to describe many applications in the real world. In many applications, such as dependency graphs and debt graphs, it is an important problem to find and remove cycles to make these graphs be cycle-free. The common algorithm often leads to an out-of-memory exception in commodity personal computer, and it cannot leverage the advantage of multicore computers. This paper introduces a new problem, cycle detection and removal with vertex priority. It proposes a multithreading iterative algorithm to solve this problem for large-scale graphs on personal computers. The algorithm includes three main steps: simplification to decrease the scale of graph, calculation of strongly connected components, and cycle detection and removal according to a pre-defined priority in parallel. This algorithm avoids the out-of-memory exception by simplification and iteration, and it leverages the advantage of multicore computers by multithreading parallelism. Five different versions of the proposed algorithm are compared by experiments, and the results show that the parallel iterative algorithm outperforms the others, and simplification can effectively improve the algorithm's performance.
0 references
digraph
0 references
cycle detection and removal
0 references
vertex- and arc-weighted
0 references
multi-threading
0 references
iteration
0 references