如何找到(迭代)有向图中往返给定节点的所有循环?
例如,我想要这样的东西:
A->B->A
A->B->C->A
但不是:
B->C->B
我在搜索中找到了此页面,由于循环与强连通分量不同,我继续搜索,最后,我找到了一种有效的算法,它列出了有向图的所有(基本)循环。它来自 Donald B. Johnson,论文可以在以下链接中找到:
http://www.cs.tufts.edu/comp/150GA/homeworks/hw1/Johnson%2075.PDF
java 实现可以在以下位置找到:
http://normalisiert.de/code/java/elementaryCycles.zip
A 数学约翰逊算法的演示可以找到here,可以从右侧下载实现(“下载作者代码”).
注意:实际上,有很多算法可以解决这个问题。本文列出了其中一些:
http://dx.doi.org/10.1137/0205007
根据文章,约翰逊的算法是最快的算法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)