【发布时间】:2015-11-21 03:45:35
【问题描述】:
我有一个有 562 个顶点和 3961 个边的有向图(如果你好奇的话,边是http://a3nm.net/share/raw_graph_284374.txt),我想在这个图中找到一个循环,它不会两次通过同一个顶点并且长度一样长尽可能。
我知道这个问题是 NP 难的(通过减少哈密顿循环问题),但我并不真正关心找到 最长的循环,只是一个相当长的循环。一个简单的 DFS 实现可以找到长度为 100-200 的循环,但我确信有许多启发式方法和改进可以用来找到更长的循环。
是否有任何(开源)程序或库可以用来在这种大小的图中找到更长的循环?
【问题讨论】:
-
对我的回答没有很好的建议,但是您链接的数据集有 562 个顶点和 3961 个边。我在 DFS 的尝试在这里找到了 ~200 个顶点的循环(每次都不同,因为我打乱了考虑边的顺序)。
-
哦,抱歉,我测试的是错误的文件。我相应地编辑了问题。感谢您指出!
标签: algorithm graph cycle approximation hamiltonian-cycle