algorithm - 显示不相交哈密顿路径的 np 完备性
问题描述
考虑不相交哈密顿路径问题:
输入:可以有向或无向的图
输出:该图是否存在至少 2 个边不相交的哈密顿路径?边不相交意味着两条路径不共享一条边。
证明不相交哈密顿路径是 np 完全的。
有人告诉我这个问题是 np-complete,但我无法证明它是 np-hard。我尝试将原始的哈密顿路径和哈密顿循环简化为这个问题,但我想不出解决方案。
解决方案
我想出了以下减少,不确定它是否最简单,但它很简单。
假设 G 是对应于 HP 实例的无向图。现在用以下方式构造一个新的图 G':
现在很容易看出,如果 G 有一条哈密顿路径,则 G' 将有两条边不相交的哈密顿路径,因为每条边都被某个子图替换,该子图本身有两条边不相交的哈密顿路径(直走或走弯曲边)。如果 G' 有一个 HP,那么 G 也有,因为一旦你进入对应于原始边之一的子图,你别无选择,只能在另一端离开它,这对应于取 G 中的原始边。唯一可能发生的“问题”是路径是否在这些子图中开始或结束,但是我们可以忽略内部路径的一小部分,仍然获得 G 的 HP。
注意 G' 有一个 HP => G 有一个 HP => G' 有两个边缘不相交的 HP。因此,G 有一个 HP <=> G' 有两个边缘不相交的 HP。
转换显然可以在多时间内完成,因此您的问题是 NP-Hard。
有向情况类似,只需相应地引导转换图中的边即可。
推荐阅读
- clearquest - 如何通过 HTTP Restful API 获取 ClearQuest 中的所有缺陷
- r - 拆分和子串字符串列表
- latex - 乳胶表:在一列中垂直居中文本,其他列顶部对齐固定宽度
- typo3 - 避免从访问受限页面索引文件 ke_search 错字3
- python - 如何将列表转换为整数
- random - 什么是随机种子的熵以及它是如何工作的?
- php - 显示 JSON 数据但未绘制表格(使用 Datables - 服务器端处理)
- javascript - 在 javascript 中拖放克隆
- c - 为什么循环迭代 6 次但条件给出 5 次
- python-3.x - 尝试运行代码分析参考列表以供阅读时出现问题