P问题、NP问题、NPC问题和NP-hard详解

NP问题,P问题,NPC问题详解—黄宇老师《算法分析》笔记 多项式时间归约 1、优化问题可转换为判定问题, 关注同样的结构指标 (1)优化问题:关注特殊结构,优化结构指标 (2)判定问题:不关注指标的最大/小值,关注阙值k 是否存在一个结构,指标与k满足某关系 (3)优化难于判定:优化的解⇒判定的解,判定的解⇏优化的解 很多优化问题在多项式时间内可解 ⇔其判定问题在多项式时间内可解 所以,可只关注形式上更便于处理判定问题 2、最大团问题: ①题目描述:无向图G,若子图H为完全图,则H为G的一个团,... 阅读详情

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文部份转载于https://blog.youkuaiyun.com/u012176591/article/details/51470999 感谢作者博主的辛苦付出。

一、p问题、NP问题、NPC问题、NP-hard问题的关系。

1.首先解释一下什么是P问题,什么是NP问题,什么是NPC问题,什么是NP-hard问题。

  1. P问题(Polynomial):这个应该最易理解,就是一个问题可以通过确定性图灵机在多项式(Polynomial)的时间的得到解决。例如排序问题。(确定性图灵机,遇见分支确定执行某个分支,目前所有计算机的原型)
  2. NP问题(Nondeterministic Polynomial time Problem):简单的说就是一个问题可以通过非确定图灵机在多项式时间得到解决。(非确定性图灵机,遇见分支遍历所有的分支程序,执行所有分支情况,目前不存在)。所以简单的说NP问题就是在目前无法通过有效的算法在多项式时间求解的问题,但是可以在多项式时间内进行求解结果的验证。例如旅行商问题。
  3. NPC问题(NP Complete):NP完全问题,所有NP问题在多项式时间内都能规约(Reducibility)到它的NP问题,即解决了此NPC问题,所有NP问题也都能得到解决。
  4. NP-hard(NP hard):NP难问题,所有NP问题在多项式时间内都能规约(Reducibility)到它的问题,但不一定是NP问题。

2.规约——一种技巧

       归约(reduction): 归约是证明NP-hard问题的一种常用方法,通常用<=这个符号来表示。如P<=Q,这个就表示P is reducible to Q , or Q is the reduction from P or P is reduced to Q(P问题可以归约到Q问题,or可以把P归约到Q) 。这里的reduction的符号可以当成是 比较难易程度的小于等于号,意味着P至少比Q容易,或者Q至少比P难。
       归约主要做的就是以下两个转化(注意两个转化都要在polynomial的时间内完成)【已知P是个NP-hard问题,证新问题Q 亦是NP-hard问题】,
      1. 把P的输入转化到Q的输入;
      2. 把Q的输出转化到P的输出。
 下图展示了上述规约过程。其中T1 在多项式时间将 P的输入Pinput 转化成Q的输入Qinput ; T2在多项式时间将 Q的输出Qoutput转化成P的输出Poutput 。也就是说NP-hard问题P 可以依赖于对问题Q 的解决而解决。那么Q 至少比P要难,即P<=Q。

二、证明该问题属于什么类型的问题

下面来列出了一些常见的证明问题及其证明套路。

  1. 证明NP问题。这个容易,即给你一个结果,你能在polynomial的时间内验证该结果的正确性。
  2. 证明NP-hard问题。我们要证明一个问题是NP-hard的时候,我们通常要做的是找到一个已被证明了的NPC问题,并把这个NPC问题归约到该问题上去(即NPC<=NP-hard)。
  3. 证明NP-Complete问题。分以下两步:     
  • 第一步证明这个问题属于NP;
  • 第二步,证明这个问题是NP-hard的。

下图列出了几个已被发现NP-Complete问题(更全面的NP-Complete问题列表,见链接A compendium of NP optimization problems,以及List of NP-complete problems),及其规约关系。可以看出所有的NP问题都可以规约到SAT(即NP<=SAT),也就是说SAT至少与NP问题一样难,或者如果解决了3SAT问题,所有的NP问题就解决了。同样的,SAT<=3SAT,3SAT<=Independent Set,Independent Set<=Vertex Cover OR Clique。(SAT和3SAT都是NPC问题)

规约关系具有传递性,所以有3SAT<=Vertex Cover,NP<=NP-Complete。 事实上,由于NP-Complete⊂⊂ NP 且 NP<=NP-Complete,可以推导出 所有的NP-Complete 可以相互规约,也就是所有的NP-Complete都是等价的。


 

NP-hard问题(NP-难问题) "NP" 的全称是 "Nondeterministic Polynomial time" 的缩写,翻译为中文是“ 阅读详情

相关推荐

P、NP、NPC、NP-hard 问题及组合最优化问题的认识和理解

P、NP、NPC和NP-hard 问题 算法的时间复杂度 时间复杂度是指在 问题的规模扩大之后,程序求解所需要的时间增长的有多快 示例: 如果无论数据有多大,时间总是那么多,则称常数级复杂度,O(1) 若数据规模变多大,程序花费的时间变多长,即 O(n);若数据变大2倍,时间变长4倍,即 O(n^2);这些属于多项式时间复杂度,如找最大值,冒泡排序… 形如 O(a^n), O(n!) 等时间复杂...

NULL的博客 1万+

P、NP、NPC、NPH问题的联系和区别

P、NP、NPC、NPH问题的联系和区别一、P问题二、NP问题三、NPC问题归约的概念NPC问题定义四、NPH问题五、联系与区别 一、P问题 能找到一个时间复杂度为多项式时间的算法的问题 二、NP问题 能在多项式时间内验证问题的一个解是否正确,即:非确定性多项式问题(nondeterministic polynomial) 三、NPC问题 归约的概念 如果问题A的输入能够在多项式时间内转化为问题B...

weixin_44810016的博客 1万+

P、NP、NP-Hard、NPC问题之间的关系

P、NP、NP-Hard、NPC问题之间的关系导语: 探究P、NP、NP-Hard、NPC问题之间的关系 P问题  P问题是能够在多项式时间内求出问题的解,多项式时间就是类似与O(n^{r}),其中r可以为小数。除了平方立方之类的表示之外,O(nlogn)和O(n)之类的更小的复杂度也算是P问题的时间复杂度。也就是说,能够在小与多项式时间内求出问题最优解的就算是P问题。NP问题  NP问题无法在

ppaii123的博客 3309

P问题,NP问题,NPC问题,以及三者之间的关系

一、以下是从百度知道上转载来的关于P问题,NP问题,NPC问题的解释 1、P问题 P是一个判定问题类,这些问题可以用一个确定性算法在多项式时间内判定或解出。如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P类问题。P类问题就是所有复杂度为多项式时间的问题的集合。 NP是一个判定问题类,这些问题可以用一个确定算法在多项

chenchao's blog 7533

一起聊聊什么是P问题、NP问题、NPC问题

概念P问题:如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。通常NOI和NOIP不属于P类问题,我们常见到的一些信息奥赛的题目都是P问题。 NP问题:可以在多项式的时间里猜出一个解的问题。NP问题不是非P类问题。NP问题是指可以在多项式的时间里验证一个解的问题。之所以要定义NP问题,是因为通常只有NP问题才可能找到多项式的算法。 所有的P类问题都是NP问题。也就

xiangzhihong8的专栏 1万+

保姆级教程:手把手教你为STM32F407和W25Q128制作Keil MDK的SPI Flash下载算法(FLM文件)

本文提供了一份详细的教程,指导开发者如何为STM32F407和W25Q128制作Keil MDK的SPI Flash下载算法(FLM文件)。从理解下载算法的核心机制到实现FlashPrg.c的核心操作,再到链接脚本与地址映射实战,手把手教你完成定制化SPI Flash下载算法的开发与优化。

weixin_28716769的博客 408

P问题、NP问题、NPC问题和NP-hard问题详解

文章目录**时间复杂度**确定性算法与非确定性算法P类问题(Polynomial)-NP问题的子集NP问题(Non-deterministic Polynomial)-NPC问题的子集NPC问题NP难问题**机器学习中的过拟合与N/NP问题** 在讲题目中的概念的时候,先介绍涉及到的基本概念。 时间复杂度 多项式polynomial:类似于axn−bxn−1+cax^n-bx^{n-1}+caxn−bxn−1+c这样的式子。 对于规模为n的输入,它们在最坏的情况下的运行时间为O(nkn^knk),其中k为某

KikuWong 5127

数字化车间智能排产调度挑战赛(一)—— 数学模型

科大讯飞——数字化车间智能排产调度挑战赛。

Lyyyp的博客 5649

P、NP、NPC和NP-Hard问题详解

P、NP、NPC和NPH问题详解

houor的博客 653

打通Creo与Matlab的桥梁:Simscape Multibody Link插件安装与配置全攻略

本文详细介绍了Simscape Multibody Link插件的安装与配置全流程,旨在帮助机械工程师和开发者打通Creo与Matlab/Simulink之间的桥梁,实现CAD模型到多体动力学仿真的高效转换。文章重点解析了版本兼容性、管理员权限、注册文件配置等关键步骤与常见故障排查方法,助力用户快速建立设计与仿真一体化工作流。

rrr55的博客 634

LT9211 单路mipi转双路mipi芯片,方案成熟,提供技术支持

LT9211 单路mipi转双路mipi芯片

TEL15012949045的博客 5014

算法设计与分析:NP 完全理论深度解析

PL∣L可由确定性图灵机在多项式时间内判定P = \{ L \mid L \text{ 可由确定性图灵机在多项式时间内判定} \}PL∣L可由确定性图灵机在多项式时间内判定换言之,如果存在一个确定性算法AAA,使得对任意输入xxx若x∈Lx \in Lx∈L,则AxA(x)Ax在OnkO(n^k)Onk时间内输出 “Yes”若x∉Lx \notin Lx∈L,则AxA(x)Ax在OnkO(n^k)Onk。

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 29

【Office激活】学校正版Office已激活成功仍弹出激活窗口

学校正版Office激活问题:已激活成功仍弹出激活窗口

ESCM_的博客 1万+

P、NP、NPC和NP-Hard相关概念

P、NP、NPC和NP-Hard相关概念的图形和解释 一、相关概念 P:能在多项式时间内解决的问题   NP: 不能在多项式时间内解决或不确定能不能在多项式时间内解决,但能在多项式时间验证的问题   NPC: NP完全问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的NP问题,即解决了此NPC问题,所有NP问题也都得到解决。   NP hard:NP难问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的问题(不一定是NP问题)。 二、四...

qq_35301188的博客 3166

从Safety Manual到系统安全概念

本文系统阐述了构建功能安全"证据链"的工程化方法论,核心要点包括:1)建立"风险→对策→验证→证据"闭环链条;2)SafetyManual和FMEDA作为关键证据支撑点,前者界定系统安全边界,后者量化诊断覆盖率;3)通过四步法继承芯片安全机制并扩展至系统级;4)形成"设计-分析-验证"三维闭环体系,包括安全目标、技术实现和验证矩阵;5)强调证据链闭环对安全认证和OEM认可的重要性。该方法论实现了从理论要求到工程实践的完整转化,确保安全设计可验证、可

VehSwHwDeveloper的博客 721

YOLOv11在视频流中的时序建模改进-(加入ConvLSTM或Transformer捕捉帧间关联)

本文提出了一种结合ConvLSTM和Transformer的改进YOLOv11算法,用于增强视频目标检测的时序建模能力。针对视频检测中运动模糊、遮挡等挑战,研究分析了ConvLSTM的局部时空特征建模和Transformer的全局注意力机制之间的互补性。通过数学公式详细阐述了ConvLSTM的门控机制和Transformer的自注意力计算原理,并提出分层融合策略:底层使用ConvLSTM处理高分辨率特征捕捉局部运动,高层应用Transformer建立全局时空关联。改进方案在YOLOv11架构中插入时序增强模

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 680

P、NP、NPC和NP-Hard相关概念的图形和解释

P、NP、NPC和NP-Hard相关概念的图形和解释 一、相关概念 P:能在多项式时间内解决的问题   NP: 不能在多项式时间内解决或不确定能不能在多项式时间内解决,但能在多项式时间验证的问题   NPC: NP完全问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的NP问题,即解决了此NPC问题,所有NP问题也都得到解决。   NP hard:NP难问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的问题(不一定是NP问题)。 二、四...

limcof的博客 404

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

算法导论—SAT、NP、NPC、NP-Hard问题

给定布尔 (Boolean) 表达式 (由 AND, OR, NOT, 变量, 和括号构成), 是否存在对变量 TRUE 或 FALSE 的赋值, 使得整个表达式真。SAT 问题 (Propositional satisfiability problem, 命题可满足问题, SAT):给定命题逻辑公式 (propositional formula), 是否可满足 (存在一个模型)。

我们都是被分成两半的人,一边热爱生活,一边憎恨生活。面对生活,我们总是在矛盾的两端摇摆,在反复的矛盾和犹豫中,一边踉跄前行,一边重振旗鼓。我渴望改变,渴望变得更好,渴望找到出口……就像一个溺水人的挣扎,就像一个救生圈。我是一个矛盾集合体,想要变得快乐,但是 6737

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

P问题、NP问题、NPC问题、NP-hard问题详解

要理解P问题、NP问题、NPC问题、NP-hard问题,需要先弄懂几个概念: 什么是多项式时间? 什么是确定性算法?什么是非确定性算法? 什么是规约/约化? 多项式时间(Polynomial time) 什么是时间复杂度? 时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当程序所处理的问题规模扩大后,程序需要的时间长度对应增长得有多快。也就是说,对于某一个程序,其处理某一个特定数据的...

KunBB的博客 5万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

P,NP,NPC,NP-Hard,co-NP问题辨析

      学算法学到这章,真是神仙打架。上网学习各位前辈的文章,看的我也是眼花缭乱。终于看到一篇易于理解的(网址附于文末),看过之后写写自己的理解。如有错误,请各位前辈指正!       P问题,在这里不说全称了,感觉说了也没用。P问题就是指能在多项式时间求解出的问题。举个例子...

gls_nuaa的博客 7747

【计算复杂性理论】P问题、NP问题、NPC问题、NP-hard问题详解

是计算复杂性理论中的四个重要概念,它们帮助我们理解不同类型的计算问题及其解决难度。这些问题涉及到问题的解法是否能够在多项式时间内找到,并且探讨了解决问题的计算复杂度。通过理解这些概念,我们可以更好地评估不同类型问题的计算复杂度,并根据问题的性质选择合适的解决方案。

wq6qeg88的博客 1947

P,NP, NPC, NP-Hard问题的关系详解

我想试着把p, np, npc, np-hard问题给大家讲清楚了。讲不清楚,你给我留言,砸我招牌砸我店。 在介绍之前,先说一下什么是确定性问题,什么是非确定性问题。 确定性: 比如小学学的加减乘除之类的,你只要按部就班的算,这个算法就能得到结果。 非确定性: 比如找大质数的问题。有没有一个公式,你一套公式,就可以一步步推算出来,下一个质数应该是多少,这样的公式是没有的。但可以告诉你一个答案,你在...

u014073556的博客 3307
上一篇: 1.方程组的几何解释
下一篇: 2.矩阵消元
斯文之刃
博客等级 码龄9年 1422粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值