我有相对较小的(40-80个节点)立方(3-regular)平面图,我必须决定它们的汉密尔顿性。我知道这个任务是NP完全的,但我希望渐近指数时间算法对于我感兴趣的图形大小来说非常快。
答案 0 :(得分:3)
40个节点似乎可行。你要选择60个边缘中的40个。
让我们尝试深度优先搜索。
首先,选择一个顶点V.您需要准确排除其3个入射边缘中的一个。一次尝试这三种可能性。当您选择要排除的边时,您将强制包含4条边。在此之后,我们将被排除的边的顶点称为“used”。
如果您可以重复此过程10次,您将选择所有40个边缘,仅搜索3 ^ 10(59049)种可能性。当然,在确定了足够的边之后,你将用尽“孤立的”顶点。
但是,我们现在有了算法的想法。在每个步骤中,尝试选择具有最少“已使用”邻居的顶点。实际上,选择具有2个使用过的邻居的顶点是最好的,因为强制使用了边缘。我不确定选择带有1或0个使用邻居的顶点是否是次佳选择。尝试两种方式! (并且3个使用的邻居表示搜索失败)
当我们完成拾取边缘时,检查它们是否形成一个循环。
您有几张示例图吗?我可以尝试一个简单的实现。
答案 1 :(得分:2)
: “Rubin(1974)描述了一种有效的搜索程序,它可以使用推论找到图表中的部分或全部汉密尔顿路径和电路,从而大大减少回溯和猜测。”
该论文在此处出售:http://portal.acm.org/citation.cfm?id=321850.321854