P 问题

P类问题(P:polynominal,多项式):存在多项式时间算法的问题。以排序为例,在排序这个大问题里,是可以找到一种时间复杂度为多项式o(n^2),o(nlogn)的算法(如冒泡排序法,快速排序)来求解排序问题的,所以我们说排序问题是一个有多项式时间算法的问题。所以我们称,P类问题就是存在多项式时间算法的问题。

时间复杂度:o(1)<o(n)<o(nlgn)<o(n^2)<o(n^a)<o(e^n)<o(n!)

多项式级别:o(1)<o(n)<o(nlgn)<o(n^2)<o(n^a)

非多项式级别:o(e^n)<o(n!),计算机难以承受

NP 问题

NP类问题(NP:Nondeterministic polynominal,非确定性多项式):能在多项式时间内验证得出一个正确解的问题。P类问题是NP问题的子集,因为存在多项式时间解法的问题,总能在多项式时间内验证他。

著名的NP类问题举例:

旅行家推销问题:即有一个推销员,要到n个城市推销商品,他要找出一个包含所有n个城市的环路,这个环路路径小于a。我们知道这个问题如果单纯的用枚举法来列举的话会有(n-1)! 种,已经不是多项式时间的算法了,(注:阶乘算法比多项式的复杂)。那怎么办呢?我们可以用猜的,假设我人品好,猜几次就猜中了一条小于长度a的路径,我画画,好的,我得到了一条路径小于a的环路,问题解决了,皆大欢喜。可是,我不可能每次都猜的那么准,也许我要猜完所有种呢?所以我们说,这是一个NP类问题。也就是,我们能在多项式的时间内验证并得出问题的正确解,可是我们却不知道该问题是否存在一个多项式时间的算法,每次都能解决他(注意,这里是不知道,不是不存在)。

NPC 问题

NPC类问题(Nondeterminism Polynomial complete):存在这样一个NP问题,所有的`NP`问题都可以约化成它。换句话说,只要解决了这个问题,那么所有的NP问题都解决了。其定义要满足2个条件:

  • 它得是一个NP问题;
  • 所有的NP问题都可以约化到它。

要证明NPC问题的思路就是: 先证明它至少是一个NP问题,再证明其中一个已知的NPC问题能约化到它。

NPH 问题

NP难问题(NP-hard问题):它满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比 NPC问题的范围广,NP-Hard问题没有限定属于NP),即所有的NP问题都能约化到它,但是他不一定是一个NP问题。

NP-Hard问题同样难以找到多项式的算法,但它不列入我们的研究范围,因为它不一定是NP问题。即使NPC问题发现了多项式级的算法,NP-Hard问题有可能仍然无法得到多项式级的算法。事实上,由于NP-Hard放宽了限定条件,它将有可能比所有的NPC问题的时间复杂度更高从而更难以解决。

排序 np_P问题、NP问题、NP完全问题和NP难问题理解相关推荐

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

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

  2. 【释义】NP complete概念浅析(涵盖:P问题,NP问题,NP完全问题,NP难问题)

    文章目录 前言 正文 1.P问题 2.NP问题 3.NP-complete问题(即:NP完全问题) 4.NP完全问题可能不会长久存在 5.示例 6.NP-Hard问题(即:NP难问题) 7.关系 小结 ...

  3. P、NP、NP完全问题、NP难问题

    可以在多项式时间内求解的问题称为易解的,而不能在多项式时间内求解的问题称为难解的. P类问题:多项式类型,是一类能够用(确定性的)算法在多项式的时间内求解的判定问题. 只有判定问题才属于P 不可判定问 ...

  4. 什么是NP问题,什么是NP hard问题,什么是NP完全问题。

    http://www.cs.pitt.edu/~ztliu/wordpress/2011/05/np-problem/ 首先解释一下什么是NP问题,什么是NP hard问题,什么是NP完全问题. 看下 ...

  5. [机器学习]P问题、NP问题、NP完全问题和NP难问题

    该文章为转载,更正了原作者的一些笔误 在讲P类问题之前先介绍两个个概念:多项式,时间复杂度.(知道这两概念的可以自动跳过这部分) 1. 多项式:axn−bxn−1+cax^n-bx^{n-1}+cax ...

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

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

  7. P问题、NP问题、NP完全问题和NP难问题概念梳理

    非"正规"问题 不可解问题:不存在解决算法的问题 例子:停机问题 不可能有复杂度O(多项式)问题 例子:输出从1到n这n个数的全排列(因为把结果打印出来也是O(n!)的复杂度) & ...

  8. [机器学习] 第一章 绪论 1.P问题、NP问题、NP完全问题和NP难问题

    参考:https://zhuanlan.zhihu.com/p/73953567 参考:https://blog.csdn.net/qq_21768483/article/details/804305 ...

  9. pandas使用replace函数将所有的无穷大值np.inf替换为缺失值np.nan、使用pandas的fillna函数用经验固定值填充缺失值np.nan

    pandas使用replace函数将所有的无穷大值np.inf替换为缺失值np.nan(replace all infinities with a missing value).使用pandas的fi ...

最新文章

  1. 自学了python基础英语_Python自学路线图之Python基础自学
  2. vue12 循环添加重复数据
  3. uibot和按键精灵区别_uibot和按键精灵哪个强大
  4. Qt UDP 广播简单示例
  5. 正确理解Python函数是第一类对象
  6. linux-mv移动更名-硬链接
  7. c# 两个list比较_C# for Grasshopper Day 22 学习笔记
  8. 白话算法(1) for循环不是随便写的
  9. pdnovel.php_Pdnovel 在線閱讀體驗
  10. Python 模块安装失败
  11. 【大数据部落】R语言基于决策树的银行信贷风险预警模型
  12. Python3+telnetlib实现telnet客户端
  13. 【原创】无锁编程技术及实现
  14. unity 音频可视化方案
  15. oracle日期函数,转换函数
  16. 迅雷在下载网页视频时没有自动弹出提示,怎么办?
  17. GEE:内存超限?将研究区划分成规则的小块运算
  18. android phonegap
  19. 模型资源之三:模型库介绍
  20. 视图优化oracle,干货|Oracle复杂视图优化案例分析

热门文章

  1. Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找
  2. Bottle源码阅读(3) HeaderDict
  3. 使用 RequireJS 优化 Web 应用前端
  4. oracleI基础入门(1)--背景
  5. 计算机视觉开源库OpenCV之平滑、模糊和滤波
  6. 蒙特卡罗(Monte Carlo)方法
  7. toad连接oracle12c,[20181107]低版本toad连接18c数据库问题.txt
  8. python rpc_python与RPC服务
  9. 001_ECharts入门
  10. 010_Spring Data JPA一对多关系