P、NP、NPC、NPH问题介绍
-
几者的关系:
-
-
P类问题
-
在多项式时间内可以解决的问题
-
-
NP问题
-
针对一个答案在多项式时间内判断正确性的问题。因为验证一个答案的时间一定不大于解决问题的时间,所以P类问题是NP问题的子集
-
-
要搞明白NPC和NPH问题,要先明白规约的概念
-
规约
-
通俗地讲,问题A能够用问题B的方法解决,那么A可以规约成B(A是B的一种类型)。类似于求解一元一次方程和求解一元二次方程的关系,前者可以规约成后者。可以看出,后者比前者的难度更大、复杂度更高、使用范围更广。
-
-
NPC问题:
-
NPC问题满足两个条件:首先,是NP问题;其次,任意NP问题可以在多项式时间内规约为这个问题。
-
提出NPC问题是为了将所有的NP问题总结(规约)成一个NPC问题,只要解决这个NPC问题,就可以得到解决所有NP问题的通用做法,比如可以将NP问题看做求解一元一次方程,NPC问题看做求解一元二次方程,前者可以看做后者的一个特殊类型,而只要解决了后者,前者就可以解决(套一元二次解的公式)。
-
NPC问题是NP问题的标准形式,一般NP问题是NPC问题的特殊类型。因为规约的原因,NPC问题是NP问题中最难的,想要找到多项式时间内的算法十分困难。
-
如果找到多项式时间内的NPC问题的算法,那么就可以证明NP=P。
-
-
NPH问题
-
满足NPC问题的第二个条件(即任意NP问题可以在多项式时间内规约成该问题)。
-
NPC问题是NP问题和NPH问题的交集。NPH问题的难度不低于NPC问题。
-
参考资料
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!