简述P问题,NP问题,NP完全问题以及NP Hard问题
参考1
参考2
写在前面
在了解P问题,NP问题,NPC问题以及NP Hard问题之前,我们需要明白多项式级的复杂度和非多项式级的复杂度。时间复杂度是当问题规模扩大后,程序需要的时间长度增长得有多快。有O(1)的时间复杂度,也称常数级复杂度;数据规模变得有多大,花的时间也跟着变得有多长,这个程序的时间复杂度就是O(n)。数据扩大2倍,时间变慢4倍的,属于O(n^2)的复杂度。
- 多项式级的复杂度,它的规模n出现在底数的位置;
- 非多项式级的复杂度,比如O(a^n)和O(n!)型复杂度,其复杂度计算机往往不能承受。
P问题
如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。
NP问题
在多项式时间内“可验证”的问题。也就是说,不能判定这个问题到底有没有解,而是猜出一个解来在多项式时间内证明这个解是否正确。即该问题的猜测过程是不确定的,而对其某一个解的验证则能够在多项式时间内完成。P类问题属于NP问题,但NP类问题不一定属于P类问题。所有的P类问题都是NP问题,因为能多项式地解决一个问题,也就能够在多项式的时间内验证问题的解。
NP完全问题
约化: 如果能找到这样一个变化法则,对任意一个程序A的输入,都能按这个法则变换成程序B的输入,使两程序的输出相同,那么我们说,问题A可约化为问题B。
一个问题A可以约化为问题B的含义即是,可以用问题B的解法解决问题A。比如一元一次方程可以约化为一元二次方程,方法为将一元二次方程的二次项系数设为0。约化具有传递性,如果问题A可以约化为问题B,问题B可以约化为问题C,则问题A可以约化为问题C。
NPC问题: 首先,它得是一个NP问题;然后,所有的NP问题都可以约化到它。
NP-Hard问题
它满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比 NPC问题的范围广)。NP-Hard问题同样难以找到多项式的算法,但它不列入我们的研究范围,因为它不一定是NP问题。
他们之间的关系如下图所示
简述P问题,NP问题,NP完全问题以及NP Hard问题相关推荐
- P、NP、NP完全问题、NP难问题
可以在多项式时间内求解的问题称为易解的,而不能在多项式时间内求解的问题称为难解的. P类问题:多项式类型,是一类能够用(确定性的)算法在多项式的时间内求解的判定问题. 只有判定问题才属于P 不可判定问 ...
- NP-Hard?大白话学习P问题、NP问题、NP完全问题和NP难问题
## 该笔记自用为主,记录一些日常学习过程中看到的不熟悉的知识和从未接触过的知识,用于回看和记录.其中有一些个人理解,如有错误请讨论指正. 前言 在讨论这一串问题之前,我们需要复习两个概念. 1.多项 ...
- 什么是NP问题,什么是NP hard问题,什么是NP完全问题。
http://www.cs.pitt.edu/~ztliu/wordpress/2011/05/np-problem/ 首先解释一下什么是NP问题,什么是NP hard问题,什么是NP完全问题. 看下 ...
- NP问题、NP难问题(NPH)和NP完全问题(NPC)理解
看算法的时候经常会碰到NP问题.NP难问题(NPH)和NP完全问题(NPC)等术语,每次碰到的时候都似懂非懂,这次专门在网上搜了一些资料看,做一下记录,权当加深印象. NP是指Non-determin ...
- 【释义】NP complete概念浅析(涵盖:P问题,NP问题,NP完全问题,NP难问题)
文章目录 前言 正文 1.P问题 2.NP问题 3.NP-complete问题(即:NP完全问题) 4.NP完全问题可能不会长久存在 5.示例 6.NP-Hard问题(即:NP难问题) 7.关系 小结 ...
- 排序 np_P问题、NP问题、NP完全问题和NP难问题理解
P 问题 P类问题(P:polynominal,多项式):存在多项式时间算法的问题.以排序为例,在排序这个大问题里,是可以找到一种时间复杂度为多项式o(n^2),o(nlogn)的算法(如冒泡排序法, ...
- 【看了就懂】P问题、NP问题、NP完全问题和NP难问题
为了避免对这四个问题有一定理解基础的人看的很烦,个人简单理解的四个问题: P问题:有多项式时间算法,算得很快的问题. NP问题:算起来不确定快不快的问题,但是我们可以快速验证这个问题的解. NP-co ...
- [机器学习]P问题、NP问题、NP完全问题和NP难问题
该文章为转载,更正了原作者的一些笔误 在讲P类问题之前先介绍两个个概念:多项式,时间复杂度.(知道这两概念的可以自动跳过这部分) 1. 多项式:axn−bxn−1+cax^n-bx^{n-1}+cax ...
- P问题、NP问题、NP完全问题和NP难问题概念梳理
非"正规"问题 不可解问题:不存在解决算法的问题 例子:停机问题 不可能有复杂度O(多项式)问题 例子:输出从1到n这n个数的全排列(因为把结果打印出来也是O(n!)的复杂度) & ...
- [机器学习] 第一章 绪论 1.P问题、NP问题、NP完全问题和NP难问题
参考:https://zhuanlan.zhihu.com/p/73953567 参考:https://blog.csdn.net/qq_21768483/article/details/804305 ...
最新文章
- c++调用python3
- DPDK使用linux drivers(二十九)
- 图解字符串的朴素模式匹配算法
- file_get_contents高級用法
- Shared pool内存块组成结构及4031错误原因分析
- string转换成date类型_你竟然知道SpringMVC是如何完成类型转换和数据绑定的吗?...
- 违反GPL协议,法院判罚了!国内首例
- unity全栈开发是什么意思_unity游戏公司面试问题总结
- Django模板层:DTL模板渲染-变量
- kali 安装volatility_电子取证技术之实战Volatility工具
- winform DataGridView的虚模式填充,CellValueNeeded事件的触发条件
- c#退出窗口跳转_详解C#切换窗口
- FlexSIM.ED v4.0 1CD(生产排程,虚拟管理,能力平衡软件)
- Nginx 漏洞扫描及修复方案
- 图像原始格式 YUV444 YUV422 YUV420 详细解析
- python操作模拟器多开操作_窗口多开模拟器同步操作器▲按键精灵脚本▲
- 史上最超级KB的10个故事~你撑到第几个才发抖?
- layui 动态表格 合并单元格
- 决策树算法原理及实现
- vuex如何在没有moudles的情况下,新增一个moudle