1、首先涉及到的基本概念有:

  • (1)确定性算法(Determinism): 设A是问题Π的一个解决算法,在算法的整个执行过程中,每一步都能得到一个确定的解,这样的算法就是确定性算法。

  • (2)非确定性算法(Nondeterminism):设A是求解问题Π的一个算法,它将问题分解成两部分,分别为猜测阶段和验证阶段,其中

    • 猜测阶段:在这个阶段,对问题的输入实例产生一个任意字符串y,在算法的每一次运行时,串y的值可能不同,因此,猜测以一种非确定的形式工作。
    • 验证阶段:在这个阶段,用一个确定性算法(有限时间内)验证:① 检查在猜测阶段产生的串y是否是合适的形式,如果不是,则算法停下来并得到no;② 如果串y是合适的形式,则验证它是否是问题的解,如果是,则算法停下来并得到yes,否则算法停下来并得到no。它是验证所猜测的解的正确性。

另外涉及到的概念有:

多项式时间(Polynomial):对于规模为n的输入,它们在最坏的情况下的运行时间为O(n^k),其中k为某个常数,则该算法为多项式时间的算法
在计算复杂度的理论中,算法的计算时间也就是时间复杂度m(n)不大于算法规模n的多项式倍数,也就是说m(n)是关于n的一个多项式函数。例如,时间复杂度为O(n^2)的就是多项式时间,而时间复杂度为O(2^n)的则不是关于n的多项式函数,因此就不是多项式时间。

2、P类问题,NP类问题,NP难问题,NPC问题

  • (1)P类问题:在多项式时间内可解的问题。
  • (2)NP类问题(Nondeterminism Polynomial):在多项式时间内“可验证”的问题。也就是说,不能判定这个问题到底有没有解,而是猜出一个解来在多项式时间内证明这个解是否正确。即该问题的猜测过程是不确定的,而对其某一个解的验证则能够在多项式时间内完成。P类问题属于NP问题,但不确定是否为NP问题的真子集。
  • (3)NPC类问题(Nondeterminism Polynomial complete):存在这样一个NP问题,所有的NP问题都可以约化成它。换句话说,只要解决了这个问题,那么所有的NP问题都解决了。其定义要满足2个条件:
    • 首先,它得是一个NP问题;
    • 然后,所有的NP问题都可以约化到它。
  • 要证明npc问题的思路就是:
    • 先证明它至少是一个NP问题,
    • 再证明其中一个已知的NPC问题能约化到它。
  • (4)NP难问题(NP-hard问题):NP-Hard问题是这样一种问题,它满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比
    NPC问题的范围广,NP-Hard问题没有限定属于NP),即所有的NP问题都能约化到它,但是他不一定是一个NP问题。NP-Hard问题同样难以找到多项式的算法,但它不列入我们的研究范围,因为它不一定是NP问题。即使NPC问题发现了多项式级的算法,NP-Hard问题有可能仍然无法得到多项式级的算法。事实上,由于NP-Hard放宽了限定条件,它将有可能比所有的NPC问题的时间复杂度更高从而更难以解决。

以上四个问题他们之间的关系可以用下图来表示:

3、在2中涉及到的另外一个概念呢,就是:规约/约化

  • 简单的说,问题A可以约化为问题B,就可以理解为:问题B的解就一定是问题A的解。
  • 也可以理解为,“问题A可归约为问题B”,指问题B的答案可用于解决问题A。因此解决A不会难于解决B。
  • 由此也可以知道的是问题B的时间复杂度一定会大于等于问题A。
  • 《算法导论》上举了这么一个例子。比如说,现在有两个问题:求解一个一元一次方程和求解一个一元二次方程。那么我们说,前者可以规约为后者,意即知道如何解一个一元二次方程那么一定能解出一元一次方程。我们可以写出两个程序分别对应两个问题,那么我们能找到一个“规则”,按照这个规则把解一元一次方程程序的输入数据变一下,用在解一元二次方程的程序上,两个程序总能得到一样的结果。这个规则即是:两个方程的对应项系数不变,一元二次方程的二次项系数为0。
  • 从规约的定义中我们看到,一个问题规约为另一个问题,时间复杂度增加了,问题的应用范围也增大了。通过对某些问题的不断规约,我们能够不断寻找复杂度更高,但应用范围更广的算法来代替复杂度虽然低,但只能用于很小的一类问题的算法。存在这样一个NP问题,所有的NP问题都可以约化成它。换句话说,只要解决了这个问题,那么所有的NP问题都解决了。这种问题的存在难以置信,并且更加不可思议的是,这种问题不只一个,它有很多个,它是一类问题。这一类问题就是传说中的NPC问题,也就是NP-完全问题。

对于“NP难问题”的理解相关推荐

  1. p问题、np问题、npc问题、np难问题的理解(纯属个人见解)

    最近因为要证明np问题,所以找了一系列概念去理解这4个问题.理解的时候看到好多人给出了不同的答案,我下面会借鉴别人的答案来总结出一份对于我自己来说,最容易理解这4个问题的说法. 预备知识了解: 这部分 ...

  2. 排序 np_P问题、NP问题、NP完全问题和NP难问题理解

    P 问题 P类问题(P:polynominal,多项式):存在多项式时间算法的问题.以排序为例,在排序这个大问题里,是可以找到一种时间复杂度为多项式o(n^2),o(nlogn)的算法(如冒泡排序法, ...

  3. NP问题、NP难问题(NPH)和NP完全问题(NPC)理解

    看算法的时候经常会碰到NP问题.NP难问题(NPH)和NP完全问题(NPC)等术语,每次碰到的时候都似懂非懂,这次专门在网上搜了一些资料看,做一下记录,权当加深印象. NP是指Non-determin ...

  4. NP-Hard?大白话学习P问题、NP问题、NP完全问题和NP难问题

    ## 该笔记自用为主,记录一些日常学习过程中看到的不熟悉的知识和从未接触过的知识,用于回看和记录.其中有一些个人理解,如有错误请讨论指正. 前言 在讨论这一串问题之前,我们需要复习两个概念. 1.多项 ...

  5. 算法中的P问题、NP问题、NP难问题和NP完全问题

    P问题:该问题存在一个可以在多项式时间内解决该问题的算法.(P:polynominal,多项式) 为什么我们要研究这个?因为计算机处理的输入常常不是那么几十个几千个那么一点点,想象一下,当计算机处理的 ...

  6. P问题,NP问题,NP难问题

    转自:https://blog.csdn.net/csshuke/article/details/74909562 有一则程序员界的笑话,就是有一哥们去google面试的时候被问到一个问题是:在什么情 ...

  7. 【看了就懂】P问题、NP问题、NP完全问题和NP难问题

    为了避免对这四个问题有一定理解基础的人看的很烦,个人简单理解的四个问题: P问题:有多项式时间算法,算得很快的问题. NP问题:算起来不确定快不快的问题,但是我们可以快速验证这个问题的解. NP-co ...

  8. 算法4类问题:P问题、NP问题、NP完全问题、NP难问题

    在讲P类问题之前先介绍两个个概念:多项式,时间复杂度. 1.多项式:axn-bxn-1+c 称为x最高次为n的多项式 2.时间复杂度 时间复杂度表示所需的计算工作量,当输入值接近无穷时,算法所需工作量 ...

  9. 算法中的P问题、NP问题、NP完全问题和NP难问题梳理

    结论(可以简单这么初步认识):NPH>NPC>NP>或=P 在讲P类问题之前先介绍两个个概念:多项式,时间复杂度.(知道这两概念的可以自动跳过这部分) 1.多项式: axn−bxn− ...

最新文章

  1. YC中国被撤,陆奇独立运营个人新品牌「奇绩创坛」
  2. Flutter之Decoration(边框、圆角、阴影、形状、渐变、背景图像等)
  3. fpga初始化错误_一种SRAM型FPGA单粒子效应加固平台设计
  4. 解决kubesphere node-exporter守护进程pod安装失败的问题
  5. php编写服务器端脚本程序,PHP脚本语言写的简单服务器程序
  6. SPOJ-New Distinct Substrings,注意会爆int
  7. 中值滤波_图像处理之低通滤波
  8. python自学视频与excel_三大金融工具特训班_金融职场+智能量化高手必修课-Wind来袭+Python金融+Excel分析,全套视频教程学习资料通过百度云网盘下载...
  9. 利用postman测试post请求
  10. 现代西班牙语第一册 单词表
  11. 神经派考古学 - 推荐一个blog
  12. 软件工程实践寒假作业
  13. 深圳大学计算机网络实验五:Socket编程
  14. 《挑战程序设计竞赛》 读后感(转载)
  15. 2022 QS世界大学排名发布!MIT霸榜,清北冲上全球前20
  16. Android HID设备的连接
  17. 聚合易支付,支付宝免签约即时到账,财付通免签约,微信免签约支付,QQ钱包免签约,免签约支付
  18. Word中 mytype公式编辑器编辑的公式与文字不对齐,偏上的问题
  19. 微风:什么样的人适合学习UI设计?
  20. (转)flex dataGrid 编辑

热门文章

  1. web开发学习什么,爱奇艺前端面试
  2. 从高中到大学 寻找真实的自己
  3. 休学的影响来了,家长多养孩子一年
  4. Ubuntu系统下截屏快捷键
  5. EV代码签名证书是什么?和单位代码签名证书有何不同?
  6. Gbase 8a GDCA考试真题100%
  7. 实验:导航标定、评价
  8. 电脑睡眠后蓝屏,SSD丢盘响应慢,SSD会自我修复!
  9. 程序员租女友遭骗 事件经过曝光网友表示不同情
  10. 数独游戏java版(一)--核心算法