【严格定义请参考相关教材性读物,此文尽量从通俗易懂入手】 1.先来几个基础的概念: 2.关系分析: 验证要比判定简单。举个简单的例子:验证就是给你一组数字,让你看它是否是某个方程组的解,而判定则要求你求出所有解。毫无疑问,验证是简单的。(这里只是举例说明,不考虑精确性,尽管在中文中,这两个词的意思是如此接近,这里的名词也仅是常用的词汇的翻译,谁让老外先研究我们再翻译呢) 图上很清晰,我就不解释了。
【转】NP的一些相关概念和认识
精选 转载P问题:多项式时间内可解的判定问题
NP问题:多项式时间内可验证(结果是0或者1)的问题
co-NP问题:NP的补问题
NPC问题:【NP-Complete】NP问题中最难的问题
NP-Hard问题:比所有NP问题还难的问题,但不要求一定是NP问题
所谓验证就是在提供一个证据的情况下,判断一个目标是否可以达到,相比起来:判定就要找到一组具体的变量来满足一定的目标条件,如达到最优解的一组变量值,而验证是提供了某一组变量的值,看是否满足目标条件。相对而言:
Co-NP是NP的补问题,举例来讲,如果我们说某一个某一个NP问题是:是否满足条件的解,那么Co-NP就是是否不存在这样的解满足条件?那么Co-NP问题是NP问题么,不一定。
不要误解为NP就是P问题的反义(从字面上看),至少到目前为止,还没有人能证明P,NP,co-NP的绝对包含关系,我们的认知只是从一般感觉上出发【广告:谁要是能解决这个包含问题,图灵奖探囊取物】。当前研究者倾向于:
NPC,俗称NP完全问题,是号称NP问题中最难的问题集合,据说目前已经找到1k多的NPC问题,它们都是最难的?yes,或者说是一样难的,只要你能证明其中一个是可以多项式时间内找到解的,那么你就证明了p=NP了。试想:最难的都是P的了,其它的就更不用说了。重复:图灵奖也是你的了。
常见的NPC问题有:
CIRCUIT-SAT 布尔组合电路:找到让电路可满足的布尔输入值指定
SAT 布尔逻辑:找到让布尔公式满足的值指定
2-CNF-SAT 三文字合取范式:找到让三文字合范式最后输出值满足的值指定
Clique 完全子图:在一个图中,找到最大的顶点集合,要求这几个顶点之间全连接
Vertex-cover 顶点覆盖:在一个图中,找到最小的顶点集合,要求这几个顶点所相连接的边覆盖全图
Ham-Cycle 哈密顿圈:要求寻找一条环游路线使得经过每个定点恰好一次
TSP 旅行商问题:如何找到在拜访每个地点一次后再回到起点的最短路径,也就是最优哈密顿圈问题
Subset-sum 子集和:找到一个子集,让其和满足一定条件
NP-hard不一定是NP问题,如果我们希望证明一个问题是NPC问题,往往先证明其是一个NP问题,然后是NP-hard问题,那么其就是一个NPC问题。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Etherchannel 的一些认识
Etherchannel 的一些认识
职场 Etherchannel 休闲 物理链路 逻辑链路 -
一些概念
以太网技术、DES加密算法、UPS电源
以太网技术 UPS电源 DES加密算法