什么叫做NP问题,什么叫做NPC问题?
 首先说明一下问题的复杂性和算法的复杂性的区别,下面只考虑时间复杂性。算法的复杂性是指解决问题的一个具体的算法的执行时

间,这是算法的性质;问题的复杂性是指这个问题本身的复杂程度,是问题的性质。比如对于排序问题,如果我们只能通过元素间的相互比较

来确定元素间的相互位置,而没有其他的附加可用信息,则排序问题的复杂性是O(nlgn),但是排序算法有很多,冒泡法是O(n^2),快速排序平

均情况下是O(nlgn)等等,排序问题的复杂性是指在所有的解决该问题的算法中最好算法的复杂性。问题的复杂性不可能通过枚举各种可能算法

来得到,一般都是预先估计一个值,然后从理论上证明。
 为了研究问题的复杂性,我们必须将问题抽象,为了简化问题,我们只考虑一类简单的问题,判定性问题,即提出一个问题,只需要

回答yes或者no的问题。任何一般的最优化问题都可以转化为一系列判定性问题,比如求图中从A到B的最短路径,可以转化成:从A到B是否有长

度为1的路径?从A到B是否有长度为2的路径?。。。从A到B是否有长度为k的路径?如果问到了k的时候回答了yes,则停止发问,我们可以说从

A到B的最短路径就是k。
 如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P

类问题。P类问题就是所有复杂度为多项式时间的问题的集合。
 然而有些问题很难找到多项式时间的算法(或许根本不存在),比如找出无向图中的哈米尔顿回路问题,但是我们发现如果给了我们

该问题的一个答案,我们可以在多项式时间内判断这个答案是否正确。比如说对于哈米尔顿回路问题,给一个任意的回路,我们很容易判断他

是否是哈米尔顿回路(只要看是不是所有的顶点都在回路中就可以了)。这种可以在多项式时间内验证一个解是否正确的问题称为NP问题。显

然,所有的P类问题都是属于NP问题的,但是现在的问题是,P是否等于NP?这个问题至今还未解决。注意,NP问题不一定都是难解的问题,比如

简单的数组排序问题是P类问题,但是P属于NP,所以也是NP问题,你能说他很难解么?

刚才说了,现在还不知道是否有P=NP或者P<>NP,但是后来人们发现还有一系列的特殊NP问题,这类问题的特殊性质使得很多人相信P<>NP,只

不过现在还无法证明。这类特殊的NP问题就是NP完全问题(NPC问题,C代表complete)。NPC问题存在着一个令人惊讶的性质,即如果一个NPC

问题存在多项式时间的算法,则所有的NP问题都可以在多项式时间内求解,即P=NP成立!!这是因为,每一个NPC问题可以在多项式时间内转化

成任何一个NP问题。比如前面说的哈米尔顿回路问题就是一个NPC问题。NPC问题的历史并不久,cook在1971年找到了第一个NPC问题,此后人们

又陆续发现很多NPC问题,现在可能已经有3000多个了。所以,我们一般认为NPC问题是难解的问题,因为他不太可能存在一个多项式时间的算

法(如果存在则所有的NP问题都存在多项式时间算法,这太不可思议了,但是也不是不可能)。
 类似哈米尔顿回路/路径问题,货郎担问题,集团问题,最小边覆盖问题(注意和路径覆盖的区别),等等很多问题都是NPC问题,所

以都是难解的问题。

NP问题和NPC问题相关推荐

  1. 一文读懂什么是P问题、NP问题和NPC问题

    你会经常看到网上出现"这怎么做,这不是NP问题吗"."这个只有搜了,这已经被证明是NP问题了"之类的话.你要知道,大多数人此时所说的NP问题其实都是指的NPC问 ...

  2. P问题 NP问题 和 NPC问题

    转自Matrix67 这或许是众多OIer最大的误区之一. 你会经常看到网上出现"这怎么做,这不是NP问题吗"."这个只有搜了,这已经被证明是NP问题了"之类的 ...

  3. P 问题、NP 问题、NPC 问题(NP 完全问题)、NPH 问题和多项式时间复杂度

    为了弄清楚上面的概念以及对他们有个基本的了解,所以总结出这篇blog. 1.多项式时间复杂度 定义: 解决问题需要的时间与问题的规模之间是多项式关系. 多项式关系形如 O ( n k ) O(n^k) ...

  4. 【NP问题】P问题,NP问题,NPC问题,NPH问题

    P类问题: 官方定义:所有可以在多项式时间内求解的判定问题.(判定问题:判断是否有一种能够解决某一类问题的能行算法的研究课题.) 自己的理解:对于一类问题,能有一个确定性算法,在多项式时间内就能解出所 ...

  5. 算法:NP问题,NP完全问题(NPC),NPhard问题

    在做计算机算法关于NP完全问题这一章的作业的时候,发现有很多概念理解的不是很透彻,然后就反复看老师的讲义,在网上查阅各种资料,花了很多时间来弄懂这块的内容.发现书上的概念太正式,定义太标准,不容易很快 ...

  6. P问题、NP问题、NPC问题的概念及实例证明

    美剧<基本演绎法>(也就是美版"福尔摩斯")第 2 季第 2 集中,两位研究 NP 问题的数学家被谋杀了,凶手是同行,因为被害者即将证明"P=NP 问题&qu ...

  7. P问题、NP问题、NPC问题、NP难问题的概念[zz]

    你会经常看到网上出现"这怎么做,这不是NP问题吗"."这个只有搜了,这已经被证明是NP问题了"之类的话.你要知道,大多数人此时所说的NP问题其实都是指的NPC问 ...

  8. [zz]澄清P问题、NP问题、NPC问题的概念

     [zz]澄清P问题.NP问题.NPC问题的概念 这或许是众多OIer最大的误区之一.     你会经常看到网上出现"这怎么做,这不是NP问题吗"."这个只有搜了,这已经 ...

  9. 算法问题:什么是P问题、NP问题和NPC问题zz

    这或许是众多OIer最大的误区之一. 你会经常看到网上出现"这怎么做,这不是NP问题吗"."这个只有搜了,这已经被证明是NP问题了"之类的话.你要知道,大多数人 ...

  10. P问题, NP问题, NPC问题, NP-hard问题

    复杂度级别: 1)多项式级别O(n^k);2)非多项式级别,如,指数级O(a^n)和阶乘级别O(n!).后者的复杂度无论如何都大于前者. 归约(约化):如果能找到这样一个多项式变换法则,对任意一个程序 ...

最新文章

  1. 最全干货:从写简历,到面试、谈薪酬的那些技巧和防坑指南
  2. pandas使用rename函数自定义重命名dataframe指定索引标签(位置)的名称(customize rename index value or label)
  3. 牛顿求平方根法(输入是double,输出也是double)
  4. scratch学习_学习scratch编程能学到什么?对孩子有帮助吗?
  5. pg多行合并为逗号分隔一行_postgresql 将逗号分隔的字符串转为多行的实例_PostgreSQL_数据库...
  6. 一加nfc门禁卡录入_忘记门禁卡不再徘徊 一加7T多功能NFC过来拯救你
  7. Dubbo的Provider配置
  8. timestamp 转换 date mysql_MySQL时间函数 | 时间戳和日期之间得转换
  9. selenium+ python自动化--断言assertpy
  10. 计算机网络ieee,博士生程珂论文连续两年被计算机网络顶级会议IEEE INFOCOM录用...
  11. Ubuntu18.04之国内常用源
  12. 配置追踪者—Scylla v1(***测试工具)
  13. 计算机组成原理的IR,计算机组成原理
  14. bxp3.3与其他版本的区别(转)
  15. 中华文本库c语言题答案,大学计算机基础试题题库及答案(精编).doc
  16. 网易云音乐Eason Chen 歌词词云
  17. 如何投稿iMeta期刊?ScholarOne投审稿系统作者使用教程
  18. xilinxFPGA-VGA时序+代码实现详解
  19. 最简单的Document解析xml文件
  20. 浅谈集合转换成数组的方法--toArray()与toArray(T[] a)

热门文章

  1. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java杨佑川音乐播放器908v6
  2. do sb suggest to_为什么 suggest 后不能接 to do?
  3. 计算机网络——知识点超详细总结
  4. 前端js预览并且导出pdf文件
  5. x3100服务器设置linux启动,ubuntu 9.04 X3100 显卡开启3D特效
  6. 北京理工大学计算机学院研究生培养方案,2018北京理工大学非全日制研究生专业学位培养方案...
  7. 【强化学习】小项目分析:DQN玩游戏2048
  8. 最全pink老师JavaScript笔记-JavaScript 基础部分(同步PPT)
  9. 新版全图、T人工具 过 浩方 VS 掌门人 三大平台 即Breeze's MH V2.0正式版 0917 发布
  10. 蛋花花谈人工智能发展的利与弊