【哈密顿圈问题】
对于一个有向图G=(V,E),如果G中的圈C恰好经过每一个顶点一次,则称圈C是一个哈密顿圈。即,哈密顿圈构成一条经过所有的顶点,没有重复的“路线”。如图6是一个含有哈密顿圈的图。

图6 一个含有哈密顿圈的有向图

证明哈密顿圈问题是NPC的,可以通过证明3-SAT ≤ p \leq_p ≤p​哈密顿圈来得到。
【3-SAT ≤ p \leq_p ≤p​哈密顿圈】
构造方法如下:
(1)对于每一个变量 x i x_i xi​,创建3m+3个顶点。命名为 v i , 1 , . . . , v i , 3 m + 3 v_{i,1},...,v_{i,3m+3} vi,1​,...,vi,3m+3​,并且对相邻的顶点,添加边( v i , j , v i , j + 1 v_{i,j},v_{i,j+1} vi,j​,vi,j+1​)和( v i , j + 1 , v i , j v_{i,j+1},v_{i,j} vi,j+1​,vi,j​)。如图中7中红色的点和绿色的边。如果 x i x_i xi​为1,则路径 P i P_i Pi​从左到右。反之,如果 x i x_i xi​为0,则路径 P i P_i Pi​从右到左。
(2)对于每一个变量,添加边 ( v i , 1 , v i + 1 , 1 ) (v_{i,1},v_{i+1,1}) (vi,1​,vi+1,1​), ( v i , 1 , v i + 1 , 3 m + 3 ) (v_{i,1},v_{i+1,3m+3}) (vi,1​,vi+1,3m+3​), ( v i , 3 m + 3 , v i + 1 , 1 ) (v_{i,3m+3},v_{i+1,1}) (vi,3m+3​,vi+1,1​), ( v i , 3 m + 3 , v i + 1 , 3 m + 3 ) (v_{i,3m+3},v_{i+1,3m+3}) (vi,3m+3​,vi+1,3m+3​)。
(3)添加两个节点s,t。添加边 ( s , v 1 , 1 ) (s,v_{1,1}) (s,v1,1​), ( s , v 1 , 3 m + 3 ) (s,v_{1,3m+3}) (s,v1,3m+3​), ( v 3 m + 3 , 1 , t ) (v_{3m+3,1},t) (v3m+3,1​,t), ( v 3 m + 3 , 3 m + 3 , t ) (v_{3m+3,3m+3},t) (v3m+3,3m+3​,t)。
(4)添加边 ( t , s ) (t,s) (t,s)。
构造后的图如图7所示。

图7 3-SAT到哈密顿圈的归约,第1部分
在图7中,可以看到有哈密顿回路:从t出发到达s,s再经过 P i P_{i} Pi​,最后到达t,记为A。
之后对子句进行约束。
(5)对于每个子句 C a C_a Ca​,假设子句为 C 1 = x 1 ∨ x ‾ 2 ∨ x 3 C_1=x_1 \vee \overline x_2 \vee x_3 C1​=x1​∨x2​∨x3​,则这个子句表示哈密顿圈首先由左到右通过 P 1 P_1 P1​,然后由右向左通过 P 2 P_2 P2​,最后由左向右通过 P 3 P_3 P3​。如图8所示,添加点和边。

图8 3-SAT到哈密顿圈的归约,第2部分
可以看到,图中有哈密顿圈当且仅当3-SAT实例有满足的赋值。
证明:假设3-SAT实例有满足的赋值,则给出的哈密顿圈中,如果在满足的赋值中 x i x_i xi​为1,则由左到右通过 P i P_{i} Pi​,反之由右到左通过 P i P_{i} Pi​。对于每一个子句,因为其是被满足的,所以至少有一条路径是按照与该项相关的“正确”的方向通过的。从而添加的子句顶点在哈密顿圈中能够被通过。反之,假设图G中有一个哈密顿圈,则所有添加的子句顶点(图8添加的点)都会被通过。即所有的子句都被满足。
因此,可以得到3-SAT实例是可满足的当且仅当G有哈密顿圈。证明了3-SAT ≤ p \leq_p ≤p​哈密顿圈。因此哈密顿圈问题是NPC的。

,.♥,.,.♥,.,.♥,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥♥,.,.♥,.,.♥,.,.♥,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥
广告时间:
本宝宝开通了一个公众号,记录日常的深度学习和强化学习笔记。希望大家可以共同进步,嘻嘻嘻!求关注,爱你呦!

哈密顿圈问题是NP完全的相关推荐

  1. 【计算理论】计算复杂性 ( NP 完全问题 | 顶点覆盖问题 | 哈密顿路径问题 | 旅行商问题 | 子集和问题 )

    文章目录 一.顶点覆盖问题 二.哈密顿路径问题 三.旅行商问题 四.子集和问题 五.NP 完全问题 一.顶点覆盖问题 顶点覆盖 ( Vertex Cover ) : 给定一个 无向图 G\rm GG ...

  2. NP难问题以及近似算法(基于次模)

    主要是对自己研究领域的多源定位NP问题转换和证明,以及在别人已经有次模函数的基础上,设计有次模性质的函数,(将想法形式化到次模函数中)效果更好(比如时间.比如效果). 改进思路:    我们首先从一个 ...

  3. np.percentile()函数超详解 异常值极端值百分位四分位数

    20211115 当有空值存在时,四分位数会是空值 20211019 https://www.zhihu.com/question/58421946 https://baike.baidu.com/i ...

  4. python pandas 如何找到NaN、缺失值或者某些元素的索引名称以及位置,np.where的使用

    我们在处理数据的时候,经常需要检查数据的质量,也需要知道出问题的数据在哪个位置.我找了很久,也尝试了很多办法,都没能找到一种非常直接的函数,本文所要介绍的是一种我认为比较方便的方法:np.where( ...

  5. 【Math】P=NP问题

    文章目录 **P vs NP** **0 P=NP基本定义** 0.1 Definition of NP-Completeness 0.2 NP-Complete Problems 0.3 NP-Ha ...

  6. python对数运算符号_科学网—Python中算数运算符之注意及np.logspace - 张伟的博文...

    (一)算数运算符 数字2 是一个整数的例子. 长整数 不过是大一些的整数. 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4. (-5+4j ...

  7. 准备IE--复习NP,NP从头开始,每天学一点,就多一点收获

    2011-07-07 今天开始重新开始NP!每天一实验,加油!写下心路历程,为自己加油! 转载于:https://blog.51cto.com/sunchangsheng/605482

  8. 什么是多项式时间?什么是NP问题?

    参考:https://zhidao.baidu.com/question/68492427.html?qbl=relate_question_0&word=%B6%E0%CF%EE%CA%BD ...

  9. P、NP、NPC问题最通俗的讲解

    转:Matrix67原创 什么是P问题.NP问题和NPC问题 这或许是众多OIer最大的误区之一.     你会经常看到网上出现"这怎么做,这不是NP问题吗"."这个只有 ...

最新文章

  1. 留学计算机Ps模板,留学ps怎么写?出国留学ps模板
  2. 使用python对比两个目录下的文件名差异
  3. 一次关于 Mysql 索引优化的思考
  4. libc glibc glib 的关系
  5. PostgreSQL 当月最后一天的工作日 , 计算日期是星期几
  6. 测试面试题集-3.生活物品测试:行李箱、电梯、洗衣机
  7. java随机输出_用java随机输出汉字
  8. 大小仅17KB!这个微型风格迁移模型太好玩了 | 代码+教程
  9. Android一种常见的布局困扰
  10. vuejs2和echarts3组合显示图表
  11. sqlite数据库保存聊天记录
  12. 好用的 edge 插件有哪些?
  13. R语言Γ(gamma)分布
  14. 茶道形式、用具及要素
  15. TTL expired in transit (TTL 传输中过期) ping一个ip却返回另一个ip
  16. Qt5.12+VS2017环境下编译QtAV视频库
  17. echarts从全国地图切换成省级地图地图不居中的问题
  18. HGOI 20190821 慈溪一中互测
  19. C语言输入一串数字字符串,C语言——输入一个字符串,将连续数字字符转换为数字(示例代码)...
  20. 如何高效的配置Nginx

热门文章

  1. WireShark发现局域网中的ARP病毒
  2. XmlMapper详解及工具类封装
  3. 零基础制作【武林外传】辅助工具(三)
  4. 上交所前总工程师白硕:Libra招招制敌,中国是全球唯一有能力的应对者(全文)...
  5. SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port
  6. win10记事本转为html,把IE浏览器“查看源”的HTML编辑器修改为记事本、Word或Excel...
  7. 党员管理系统 spring boot
  8. MIT牛人解说数学体系 Ⅰ
  9. win10系统与win7系统双系统怎么设置默认启动系统
  10. Bottleneck