A new efficient algorithm is presented for finding all simple cycles that satisfy a length constraint in a directed graph. When the number of vertices is non-trivial, most cycle-finding problems are of practical interest for sparse graphs only. We show that for a class of sparse graphs in which the vertex degrees are almost uniform, our algorithm can find all cycles of length less than or equal to $k$ in $O((c+n)(k-1)d^k)$ steps, where $n$ is the number of vertices, $c$ is the total number of cycles discovered, $d$ is the average degree of the graph's vertices, and $k > 1$. While our analysis for the running time addresses only a class of sparse graphs, we provide empirical and experimental evidence of the efficiency of the algorithm for general sparse graphs. Despite its several applications, to the best of our knowledge, no deterministic algorithm for this problem has been proposed to date. Our algorithm also lends itself to massive parallelism. Experimental results of a serial implementation on some large real-world graphs are presented.
翻译:显示一种新的有效算法, 以查找所有在定向图表中满足长度限制的简单周期。 当顶点数量不是三重的时, 大多数周期调查问题是只对稀有图表有实际兴趣的。 我们显示, 对于顶点度几乎一致的稀少图表类, 我们的算法可以找到长度小于或等于美元( 美元) 美元( (c+n) (k-1) d ⁇ k) 步骤的所有周期, 其中, 美元是顶点数, 美元是所发现周期的总数, 美元是图表顶点的平均程度, 美元是1美元。 虽然我们对于运行时间的分析只涉及一种稀有图表的类别, 但我们提供了一般稀有图表算法效率的实验和实验证据。 尽管根据我们所知, 迄今没有提出这一问题的确定性算法。 我们的算法本身也具有大规模平行性。 一些大现实世界图表的序列执行的实验结果被展示。