NP问题、NP难问题(NPH)和NP完全问题(NPC)理解
看算法的时候经常会碰到NP问题、NP难问题(NPH)和NP完全问题(NPC)等术语,每次碰到的时候都似懂非懂,这次专门在网上搜了一些资料看,做一下记录,权当加深印象。
NP是指Non-deterministic Polynomial-time,即非确定性多项式时间。与NP相关的总共有四类问题,是计算复杂度理论中研究的主要内容之一。
- P问题:Polynomial-time问题,即指在多项式时间内可用算法求解的问题
- NP问题:Non-deterministic Polynomial-time问题,指不确定是否存在多项式时间的求解算法,但可以在多项式时间内验证一个猜测解的正确性。(针对NP问题有一个千年难题,即NP=P?,也即是否所有能在多项式时间内验证得出正确解的问题,都是具有多项式时间算法的问题,至今尚未有定论)
- NP难问题:NP-hard(NPH)问题,如果所有NP问题可在多项式时间内转化(归约,意思是解决了后者也就相应的解决了前者)成某个问题,则该问题称为NP难问题。
NP完全问题:NP-complete(NPC)问题,如果所有NP问题可在多项式时间内归约成某个NP问题,则该NP问题称为NP完全问题。也就是说NP完全问题既是NP难问题又是NP问题。
下面贴一张图把四者的关系捋一捋
参考资料:
1.[总结]算法中的P问题、NP问题、NP完全问题和NP难问题
2.Wiki百科-NP困难问题
NP问题、NP难问题(NPH)和NP完全问题(NPC)理解相关推荐
- 【算法】P问题 NP问题 NPC问题 NPH问题的定义与理解
一.前言 二.多项式 三.时间复杂度 四.P问题 五.NP问题 六.NPH问题,NPC问题 七.已经被证明的NPC问题 八.一些具体问题的总结 九.总结 一.前言 在讨论算法的时候,常常会说到这个问题 ...
- python使用numpy中的np.mean函数计算数组的均值、np.var函数计算数据的方差、np.std函数计算数组的标准差
python使用numpy中的np.mean函数计算数组的均值.np.var函数计算数据的方差.np.std函数计算数组的标准差 目录
- Python:一文让你彻底理解numpy中axis=-1/0/1/2... [实例讲解:np.argmax(axis= -1 0 1 2) np.sum(aixs= -1 0 1 2)]
前言 接触python有一段时间了,但总有一道坎在心中挥之不去,那就是Numpy模块中的axis=-1/0/1/2...,每每见到axis=-1.axis=0.axis=1.axis=2等操作,心中真 ...
- 零知识证明之什么是QAP?什么是P/NP、NP完全问题(NPC问题)、NP hard问题?多项式时间
文章目录 一.什么是NP问题 1. 多项式时间 2. 关于阶乘 n! 12字助记词真的安全吗? 3. 现实中的NP类问题 二.P是否等于NP, N=NP是否成立 三.什么是NP完全或NP完备 四.什么 ...
- np 元素位置_证明SAT的NP完全性(NP-completeness)
看懂本文需要提前有哪些知识? 知道什么是图灵机,非确定图灵机 知道什么是SAT问题 什么是NP问题? 首先我们要知道,NP一般都是针对决定性问题(Decision problem)的.比如今天我们要讨 ...
- python 视频流np.arr_python同时用好list与np.array
a = [1,2] #type()后是list a = [1 2] #error *********************************************************** ...
- 你觉得python很难嘛?那只是你没有理解而已
在 Python 尤其是 Python2 中,编码问题是困扰开发者尤其初学者的一大问题.什么 Unicode/UTF-8/str,又是 decode/encode 的,搞得人头都大了.其实不然,看似庞 ...
- javase哪部分最难_关于javase的一些个人理解
以下是自己总结的一些Java常见的基础知识题,答案仅供参考,如有异议请指出.一直保持更新状态. 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java虚 ...
- 【计算理论】计算理论总结 ( P 、NP 、NPC 总结 ) ★★
文章目录 一.P 类 二.NP 类 三.NPC 类 ( NP 完全 ) 四.P .NP .NPC 三者关系 一.P 类 P\rm PP 类 : ★ 所有 能够被 确定性 单个带子图灵机 , 在 多项式 ...
最新文章
- Spring data jpa命名规范
- mysql的查询、子查询及连接查询
- linux查看进程相关命令
- 数据结构之深度优先搜索(用栈实现)问题
- 玩转oracle 11g(28):ora-00064和程序异常终止
- 微服务升级_SpringCloud Alibaba工作笔记0017---Nacos之服务消费者注册和负载
- 什么是deployment 声明式升级应用
- openwrt 需要高级浏览器_树莓派 + OpenWrt 实现 BT 下载机
- putty 配色方案分享
- 宝健中国用产品缔造口碑,深受消费者信赖
- UI设计之什么是设计
- python开启摄像头以及深度学习实现目标检测
- 6-11 使用函数输出水仙花数 (20 分)
- 通过redis-cli批量删除多个指定模式的key
- 【Python应用探索笔记二】百度语音合成与识别
- iphone使用技巧大全
- 一次聊个透彻:满二叉树、完全二叉树、二叉搜索树,二叉平衡树
- 挂件巡检机器人_盘点国内五大智能巡检机器人企业
- 在线教育平台网站源码是什么?
- .NET的未来-广州.NET俱乐部学生分会