NP-Completeness

  • 复杂性(Complexity)和不可解性(Intractability)
  • 判定性问题
    • 定义
  • P问题
    • 定义
  • NP问题
    • NTM
    • 定义1
    • 定义2
  • NP-完全问题
    • 正式定义
    • 非正式定义
    • 证明问题π\piπ是NP-完全问题
  • NP-难问题
    • 定义
    • 证明问题π\piπ是NP-难问题
      • 例: 证明O3∣∣CmaxO3||C_{max}O3∣∣Cmax​是NP-难问题
  • P,NP,NPC和NPH的关系

复杂性(Complexity)和不可解性(Intractability)

NP完全问题具有复杂性(Complexity)和不可解性(Intractability)

判定性问题

定义

判定性问题是指需要回答YES和NO的一类问题。
任何一个优化问题都可以被转化为判定性问题

P问题

定义

如果能在确定性图灵机上找到多项式时间程序(算法)来解决判定性问题π\piπ,那么π\piπ就是P问题。
存在多项式时间算法的问题。

NP问题

NTM

非确定型图灵机(NTM)和确定型图灵机(DTM)的不同之处在于,在计算的每一时刻,根据当前状态和读写头所读的符号,机器存在多种状态转移方案,机器将任意地选择其中一种方案继续运作,直到最后停机为止。

定义1

如果能在非确定性图灵机上找到多项式时间程序(算法)来解决判定性问题π\piπ,那么π\piπ就是NP问题。
能在多项式时间内验证得出一个正确解的问题。

定义2

如果能在非确定性图灵机上实现解决判定性问题π\piπ的检验问题的多项式时间程序(算法),那么π\piπ就是NP问题。

NP-完全问题

正式定义

若语言L是NP,对其他所有NPL′L'L′,L′L'L′在多项式时间内传递LLL都成立。

非正式定义

可以用问题B的算法来解决A ,我们就说问题A可以约化成问题B
如果判定性问题π\piπ是NP问题,并且对其他所有属于NP问题的判定性问题π′\pi'π′,π′\pi'π′在多项式时间内约化成π\piπ都成立

存在这样一个NP问题,所有的NP问题都可以约化成它。换句话说,只要解决了这个问题,那么所有的NP问题都解决了。

证明问题π\piπ是NP-完全问题

  • (1)证明π\piπ是NP问题
  • (2)选择一个已知的NP-完全问题π′\pi'π′
  • (3)建立从π′\pi'π′到π\piπ的转换关系fff
  • (4)证明fff是一个多项式级的转换

NP-难问题

定义

给定一个问题π\piπ,如果任何NP问题均在多项式时间多一归约、对数空间多一归约或多项式时间图灵归约下归约于π\piπ,那么称π\piπ是一个NP困难问题。
所有的NP问题都能约化到它,但是它不一定是一个NP问题。

证明问题π\piπ是NP-难问题

  • (1)选择一个已知的NP-完全问题π′\pi'π′
  • (2)建立从π′\pi'π′到π\piπ的转换关系fff
  • (3)证明fff是一个多项式级的转换

例: 证明O3∣∣CmaxO3||C_{max}O3∣∣Cmax​是NP-难问题

  • (1)选择一个已知的NP-完全问题π′\pi'π′
    划分问题
  • (2)建立从π′\pi'π′到π\piπ的转换关系fff
  • (3)证明fff是一个多项式级的转换

P,NP,NPC和NPH的关系

NP-Completeness(NP完全问题)相关推荐

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

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

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

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

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

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

  4. P/NP/NP完全/NP难问题

    P问题 存在多项式时间复杂度求解算法的问题,即P类问题的时间复杂度 为O(n^k),其中k为某一常数,n为问题的规模. NP问题 此类问题的解都能够在O(n^k)时间复杂度内被验证.根据P问题和NP问 ...

  5. P vs NP vs NP Complete vs NP Hard

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

  6. P/NP/NP完全/NP难

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

  7. python np.arange,np.linspace和np.logspace之间的区别

    以下为笔者复制的书上的内容,大家应该都看得懂,少部分用中文讲述 numpy.arange(start,stop,step,dtype)分别表示(开始,结束,步长,数据类型datatype) np.li ...

  8. 去除警告: FutureWarning: In future, it will be treated as `np.float64 == np.dtype(float).type`.

    去除警告: FutureWarning: Conversion of the second argumecated. In future, it will be treated as `np.floa ...

  9. Numpy:利用Numpy库建立可视化输入的二次函数数据点集np.linspace+np.random.shuffle+np.random.normal

    Numpy:利用Numpy库建立可视化输入的二次函数数据点集np.linspace+np.random.shuffle+np.random.normal 目录 输出结果 代码设计 输出结果 代码设计 ...

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

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

最新文章

  1. 管理“我的右上角” : 介绍菜单栏图标软件 Bartender
  2. Python自动化运维:Django之View视图和Template
  3. cuda笔记-一个Block多线程求卷积
  4. 【clickhouse】clickhouse 的 数据类型
  5. Educational Codeforces Round 57 (Rated for Div. 2)
  6. C++11 外部模板
  7. 【钟表识别】基于matlab GUI形态学钟表识别【含Matlab源码 1351期】
  8. [转载]allowTransparency属性
  9. Linux find 命令
  10. 秋季吃哪些食物可以改善心情?
  11. 《眼儿媚·愁云淡淡雨潇潇》
  12. 第三章 微分中值定理及其应用
  13. mac 文档 只读修改
  14. 计算机考证一般多少钱
  15. 百家号视频怎么消重批量处理去重消重去水印去logo软件视频MD5修改工具(短视频去重) 自媒体如何解...
  16. 关于typedef的用法
  17. 使用element分页器进行新闻列表分页
  18. 2022氟化工艺考试试题及答案
  19. 【爬虫搜索引擎工程师,360buy京东商城(集团总部技术系统)】前程无忧官方招聘网站...
  20. 计算机网络终端接口知识,计算机网络实用技术知识点之ISDN接口及配置

热门文章

  1. 怎么样理解同步清零和异步清零?
  2. 逻辑门电路的延时分析
  3. linux下无线网卡安装debian,Debian下安装无线网卡的驱动
  4. c语言取位,C语言位操作
  5. 后端得到Ip并解析其物理地址
  6. 【搞搞算法】多目标遗传算法NSGA-II的C语言代码使用手册
  7. 使用 Steam++ 快速访问 Github
  8. Windows端安装Oracle客户端并配置服务、Oracle数据库备份还原以及修改数据库编码
  9. [css] 页面重构“鑫三无准则” 之“无宽度”准则
  10. 微信页面使用的日期插件