欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/6/17 编程问答 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【计算理论】计算复杂性 ( NP 完全问题 | 顶点覆盖问题 | 哈密顿路径问题 | 旅行商问题 | 子集和问题 ) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 一、顶点覆盖问题
  • 二、哈密顿路径问题
  • 三、旅行商问题
  • 四、子集和问题
  • 五、NP 完全问题





一、顶点覆盖问题



顶点覆盖 ( Vertex Cover ) :

给定一个 无向图 G\rm GG , G\rm GG点集覆盖 定义 :

找到 无向图 G\rm GG点集子集 V\rm VV ,

使得 无向图 G\rm GG 中的任何一条边 , 都与 点集子集 V\rm VV 的至少一个节点是接触的 ;


顶点覆盖问题 : 查看 无向图 G\rm GG是否包含一个指定大小的 满足上述要求的 点集子集 V\rm VV ;


符号化表示 :

VERTEX−COVER={<G,K>∣G是无向图,包含k个节点的点集覆盖}\rm VERTEX-COVER = \{ <G, K> | G 是无向图 , 包含 k 个节点的 点集覆盖 \}VERTEXCOVER={<G,K>G,k}

其中 k\rm kk 个节点 的 点集覆盖 就是无向图中有 k\rm kk 个点的点集子集 , 满足点集覆盖要求 ;


点集覆盖 是 NP\rm NPNP 完全问题 ;





二、哈密顿路径问题



哈密顿路径问题在图论中是很重要的问题 ;


在下图中 , 从某个顶点出发 , 将所有的顶点都走一遍, 并且每个顶点只能经过一次 ,

经过所有顶点的 称为 哈密顿圈 ,

经过所有顶点的 道路 称为 哈密顿道路 , 又称为 哈密顿路径 ;


哈密顿路径问题 就是 找到无向图中的哈密顿路径 ;


涉及到的其它概念 :

途径 : 顶点和边的交替出现的序列 , 其顺序符合图中的位置即可 ;
迹 : 每个边不能相同的 途径 ;
路 : 每个点都不相同的 ;

这三个概念 , 一个比一个严格 ;

闭途径 : 起点 和 终点 相同的 途径 ;
闭迹 : 起点 和 终点 相同的 , 也称 回路 ;
圈 : 起点 和 终点 相同的 ;

GGG 指的是 Graphic 图 ;
EEE 指的是 Edge 边 ;
VVV 指的是 Vertext 顶点 ;


哈密顿路径 , 参考 【图论】简单 概念 及 公式 入门 ( 完全图 | 二部图 | 连通图 | 欧拉回路 | 哈密顿圈 | 平面图 | 欧拉定理 ) 博客中的 欧拉回路 与 哈密顿圈 ;


哈密顿路径问题 是 NP\rm NPNP 完全的 ;

无向图中哈密顿路径是否存在 , 该问题也是 NP\rm NPNP 完全的 ;


前者是求出具体的哈密顿路径 , 后者求哈密顿路径是否存在 ;





三、旅行商问题



旅行商问题 : 无向图中 , 每条边都有一个权重 , 求是否有一条哈密顿路径的权重之和 , 不超过给定的自然数 W\rm WW ;

旅行商问题 是 NP\rm NPNP 完全的 ;





四、子集和问题



子集和问题 : 给定一个 自然数集合 , 给定一个 自然数 t\rm tt , 问给定的自然数集合中 , 是否存在子集 , 使它们之和等于给定的自然数 t\rm tt ;

子集和问题 是 NP\rm NPNP 完全的 ;





五、NP 完全问题



计算理论中的 NP\rm NPNP 完全问题 :

SAT\rm SATSAT 布尔可满足性问题 ;

dHAMPATH\rm dHAMPATHdHAMPATH 哈密顿路径问题 ;

TSP\rm TSPTSP 旅行商问题 ;


下图就是已知的 NP\rm NPNP 完全问题 ;

总结

以上是生活随笔为你收集整理的【计算理论】计算复杂性 ( NP 完全问题 | 顶点覆盖问题 | 哈密顿路径问题 | 旅行商问题 | 子集和问题 )的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。