P问题,NP问题,NP完全问题,NP难问题

本文探讨了时间复杂度的分类,重点讲解了P、NP和NP难问题的区别,通过旅行商问题实例说明。P问题涉及多项式时间解决,而NP问题强调验证解的效率。旅行商问题展示了NP完全问题的挑战,揭示了寻找最优解的困难。
摘要由CSDN通过智能技术生成

这四类问题可以用时间复杂度进行区分。
函数时间复杂度具有如下规律:
O(1)<O(logn)<O(nlogn)<O( n 2 n^2 n2)<O( n 3 n^3 n3)<O( 2 n 2^n 2n)<O(n!)<O( n n n^n nn),其中,n指问题的规模。
P(Polynominal,多项式)问题:可以在多项式时间内解决的问题。一个规模为n的问题,如果能在n的多项式时间内解决,就是一个P问题。

NP(Nondeterministic polynominal,非确定性多项式)问题:可以在多项式时间内验证一个解的问题。也就是说,我们虽然不知道能不能在多项式时间内找到问题的解,但是,如果已知一个解,我们可以在多项式时间内验证这个解是否为该问题的可行解。
视频中举了一个非常通俗易懂的例子:在一次聚会中,有100万个人,我们需要找出其中具有"高颜值"的人,需要逐个遍历,属于穷举法,非常耗时,但是如果我们随便找出一个人,来判断他的颜值,却能轻易地在有限时间内得出:此人是否为"高颜值"。这就是我们所说的,能够在多项式时间内对这个"解"进行验证。
知乎上面有个博主举了著名的旅行商(TSP)问题,解释的非常好:P问题、NP问题、NP完全问题和NP难问题
在这里插入图片描述
显然,一个P问题也是一个NP问题。如果能够在多项式时间内找到问题的解,那么当然能在多项式时间内验证一个解是否满足问题的约束。反过来,如果一个问题是NP问题,它是否为P问题呢?这是一个史上最难的数学问题之一,美国克雷数学研究所曾悬赏一百万美金求解该难题。
NP难(Hard)问题和NP完全(Complete)问题:NP问题能够在多项式时间内规约(转化为)问题X,X的复杂度大于原NP问题,则X是一个NP-Hard问题,如果X也是一个NP问题,则称X是NP-Complete的,否则X是NP-Hard的。NP-Complete问题是NP问题中最难以解决的一类问题。例如逻辑电路(给定一个逻辑电路,问是否存在一种输入为true)、哈密顿回路问题和旅行商问题。
旅行商(TSP)问题:
在这里插入图片描述
有一个旅行商从A点出发开始送货,要送到所有的城市,且不重复,怎样的路径是最短的?如果计算机来遍历所有的方法,将是一个规模非常大,几乎不可能解决的NP完全问题。

在这里插入图片描述
参考文章:https://zhuanlan.zhihu.com/p/73953567
参考视频:https://www.bilibili.com/video/BV1Wz4y1d7wb?from=search&seid=9763121901535508344

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菜的成长之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值