NP的一些相关概念和认识

【严格定义请参考相关教材性读物,此文尽量从通俗易懂入手】

1.基础概念:

  • P问题:多项式时间内可解的判定问题
  • NP问题:多项式时间内可验证(结果是0或者1)的问题
  • co-NP问题:NP的补问题
  • NPC问题:【NP-Complete】NP问题中最难的问题
  • NP-Hard问题:比所有NP问题还难的问题,但不要求一定是NP问题

2.关系分析:

  • 所谓验证就是在提供一个证据的情况下,判断一个目标是否可以达到,相比起来:判定就要找到一组具体的变量来满足一定的目标条件,如达到最优解的一组变量值,而验证是提供了某一组变量的值,看是否满足目标条件。相对而言:

    验证要比判定简单。举个简单的例子:验证就是给你一组数字,让你看它是否是某个方程组的解,而判定则要求你求出所有解。毫无疑问,验证是简单的。(这里只是举例说明,不考虑精确性,尽管在中文中,这两个词的意思是如此接近,这里的名词也仅是常用的词汇的翻译,谁让老外先研究我们再翻译呢)

  • 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问题。

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值