原文地址:https://zhuanlan.zhihu.com/p/53085012、
本文仅做记录笔记已方便理解使用。

判断步骤:

1.是否NP?
→ 算法结果能否在多项式时间内验证正确性
2.是否NP-hard?
→使用一个叫做Reduction的技巧,即,如果能用A问题的求解器去求解另一个已知的NP-hard问题,则A问题是NP-hard的

Reduction是将两个算法建立联系的一个过程。我们说X reduce 到Y,意味着,假设现在有一个Y的黑盒求解器,于是我们设计一个多项式算法来用Y的求解器来求解问题X。

对于NP-hard与NP-Complete的区别


如果我们找到一个特别的问题H,使得所有NP问题都可以reduce到问题H上,那这个问题H肯定特别难,因为我们能用这个问题H解决所有的NP问题,因此我们称这个问题H为NP-Hard问题。
这个经过reduce的问题H不一定是NP问题,于是才有上述示意图的上部分,即有一部分NP hard问题是落在圈外的。如果问题H是属于NP的话,那么问题H就是NP-complete问题,NP-complete是NP和NP-hard的交集。

NP定义: 可以在多项式时间验证结果正确性的问题。
NP-hard定义: 对于问题H,所有NP问题都可以reduce到H。
这意味着,如果NP-hard可以用多项式解决,那么所有NP问题都可以用多项式解决。不过目前还没人找到多项式算法。

总的来说,判断一个NP问题是不是NP-Complete的两个方法:
找到一个NP-Complete问题,经过证明可以reduce to
你的问题,这意味着你的方法可以解决这个NP-Complete问题,那很显然,这个解决方法也是NP-Complete的。
所有的NP问题都可以reduced到你的问题

如何证明一个问题是NP-hard(NP-complete)相关推荐

  1. 零知识证明之什么是QAP?什么是P/NP、NP完全问题(NPC问题)、NP hard问题?多项式时间

    文章目录 一.什么是NP问题 1. 多项式时间 2. 关于阶乘 n! 12字助记词真的安全吗? 3. 现实中的NP类问题 二.P是否等于NP, N=NP是否成立 三.什么是NP完全或NP完备 四.什么 ...

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

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

  3. 计算复杂度:P、NP、NP 完备

    时间复杂度是算法的特性,而不是问题的特性.因为一个问题可以用两种以上的算法进行解答,且各自的时间复杂度也不相同.计算机理论科学的计算复杂度理论就是属于这一类的学科. P 指的是用计算机能很快求解的问题 ...

  4. P vs NP vs NP Complete vs NP Hard

    目录 1.写在前面 2.千禧年世纪难题 3.P类和NP类问题特征 4.NPC问题 5.NP-Hard问题 6.总结 1.写在前面 我们看到一个问题,经常会说:"这个没法做,是一个NP问题&q ...

  5. P/NP/NP完全/NP难

    NP完全问题类 这是一类问题,有一个共同的特性:如果其中一个是多项式可解的,那么其他的问题也是多项式可解的. P类 确定性算法的概念:重复相同的输入,每一步执行选择和获得的输出从不改变. 判定问题的P ...

  6. 时间复杂度与NP/NP难/NP完全问题的最简单理解法

    任何关于算法.编程.AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入"学习小组",沙雕博主在线答疑~此外,公众号内还有更多AI.算法.编程和大数据知识分享,以 ...

  7. np.newaxis——np.ndarray增加维数

    numpy.newaxis The newaxis object can be used in all slicing operations to create an axis of length o ...

  8. 区分range() , np.arange() , np.linspace()

    content: range() np.arange() np.linspace() 一.range(start, stop, step) 1.range() 为 python 自带函数 2.生成一个 ...

  9. python中np没有定义_python中的np.empty_python – np.empty,np.zeros和np.one

    我很好奇它使用 np.empty而不是 np.zeros实际上有多大差异,还有关于 np.ones的差异.我运行这个小脚本来测试每个创建一个大型数组所需的时间: import numpy as np ...

  10. python中除法 / 和// 区别 以及np.divide,np.true_divide,np.floor_divide方法区别

    /结果为小数,和平常除法较像 //只保留整数部分的值,若x或者y中任意一个为小数,则结果为小数 >>> x=4 >>> y=4 >>> print ...

最新文章

  1. JS设计模式(13)状态模式
  2. threeJS 中数学相关内容
  3. MongoDB基础知识总结
  4. 【Java报错】java.lang.ClassCastException: xxxClass cannot be cast to java.lang.Comparable 问题重现+解决
  5. TCP和UDP套接字编程
  6. java select下拉标签_java中下拉框select和单选按钮的回显操作
  7. 全国计算机office二级选择题,全国计算机二级msoffice选择题汇总含答案
  8. Python下面向对象的三大实例
  9. 腾讯云的云数据库MYSQL配置
  10. Java配置环境变量、方法和原因
  11. 由数据库连接池想到的----处理他人未释放的资源
  12. 韩版马化腾:在大财阀围堵下仍白手起家的凤凰男,抢滩加密交易平台、公链赛道...
  13. Office小技巧|Excel表格输入身份证数字就变了乱码怎么办?
  14. Ai 缺失字体解决方法
  15. linux自动同步onedrive,Linux下同步onedrive
  16. 使用mybatis注解实现模糊查询
  17. chrome捕获大响应失败:Failed to load response data: request content was evicted from inspector cache
  18. AP模式(路由器的几种模式)
  19. 第一次软件工程课程作业
  20. Automated_bounty_Hunter全自动漏*洞赏金猎人使用场景二

热门文章

  1. 挑战赛 | MagicHub中英混语音识别挑战赛发布基线系统和开发训练集
  2. vlanif和vlan的区别和联系
  3. 微信小程序 组件生命周期
  4. 连接远程Redis服务器超时
  5. IDEA创建一个structs项目
  6. JAVA“包“的概念
  7. 【附源码】Java计算机毕业设计文具商城购物系统(程序+LW+部署)
  8. vue3+setup+validator验证两次输入密码是否一致(土法)
  9. 数字图像处理(六) 图像压缩
  10. CodeSmith for MySQL template