我有相当小的(40-80节点)立方(3-规则)平面图,我必须决定他们的哈密尔顿性。我知道的事实,这任务是NP完全,但我希望渐近指数时间的算法是仍然是在图形大小我很感兴趣,非常快查找立方平面图中的哈密尔顿周期
6
A
回答
3
40个节点似乎是可行的。您正在选择包含60个边的40个。
让我们尝试一个深度优先搜索。
要开始,选择一个顶点V.您将需要排除其3个入射边缘中的一个。一次尝试这三种可能性。当您选择要排除的边时,您将强制包含4条边。在此之后,我们将调用被排除的边的顶点“used”。
如果你可以重复这个过程10次,你会选择所有40条边,只搜索3^10(59049)个可能性。当然,在足够的边界被确定之后,你会用完“孤立”的顶点。
但是,我们现在有一个算法的想法。在每一步中,尝试用最少的“已使用”邻居来挑选一个顶点。实际上,挑选2个使用邻居的顶点是最好的,因为使用的边是强制的。我不确定选择1或0使用邻居的顶点是次好的。尝试两种方式! (和3个使用的邻居表示搜索失败)
当我们完成拾取边缘时,检查它们是否形成单个周期。
你有几个样本图吗?我可能会尝试一个简单的实现。
2
从http://mathworld.wolfram.com/HamiltonianCycle.html: “鲁宾(1974)介绍一个高效的搜索程序,可以使用减少回溯和臆测的减法来找到图中的一些或全部Hamilton路径和电路。“
相关问题
- 1. 快速哈密顿周期计算
- 2. 如何找到不使用“禁止”边的哈密尔顿周期数?
- 3. 下面的链接中是否有哈密尔顿电路图?
- 4. 最短哈密尔顿路径和bitmasking
- 5. 枚举*所有*哈密尔顿路径
- 6. 如何检测图是否是哈密尔顿的
- 7. 哈密顿电路
- 8. 查找图表中的周期数(Python)
- 9. JGrapht:哈密尔顿循环程序返回getEdgeWeightException
- 10. 为什么TSP NP-hard而哈密尔顿路径NP-complete?
- 11. 在给定开始点和结束点的图中找到哈密尔顿路径的数量
- 12. 安卓:活动周期和辛格尔顿
- 13. 寻找哈密顿电路TSP问题的问题
- 14. 曼哈顿图中的峰检测
- 15. 如何在java中生成哈密尔顿循环实现邻接矩阵
- 16. 曼哈顿CodinGame中的IndexOutOfRangeException
- 17. 在blowfish加密哈希中查找salt
- 18. 查找本周星期一
- 19. 如何使用FFT查找周期函数的周期?
- 20. 查找有向图中的所有周期
- 21. 查找图实现中的所有周期
- 22. 在Python中查找前一周/上周的星期五
- 23. 曼哈顿距离的Python
- 24. 绘制一个具有1800个哈密尔顿路径的7顶点简单图形
- 25. 查找给定周数的日期
- 26. 如何查找日期值的一周?
- 27. 查找本周的具体日期
- 28. 查找二维空间中的两个最远点(曼哈顿距离)
- 29. 以独立于平台的方式从IP地址查找MacAddress
- 30. 访问播放辛格尔顿方法