学习笔记:浅谈NP完全性问题

本文探讨了算法的复杂度,介绍了P类和NP类问题的定义,特别是聚焦于NP完全性问题(NPC问题)的概念。阐述了NPC问题的性质,如如何证明一个问题为NPC问题,并列举了几个已知的NPC问题实例,如团问题、顶点覆盖问题和旅行商问题。最后,讨论了解决NP完全问题的一些策略,包括动态规划、概率分析、近似算法和启发式算法。
摘要由CSDN通过智能技术生成

迄今为止,我们所研究的所有算法几乎都是多项式时间的算法:对于规模为n的输入,在最坏情况下的运行时间是O(n^k),其中k为某一确定的常数。

如果一个判定问题的复杂度是该问题的一个实例的规模n的多项式函数,则这种可以在多项式时间内解决的判定性问题属于P类问题。P类问题就是所有复杂度为多项式时间的问题集合。通俗地称所有复杂度为多项式时间的问题为易解问题的问题类,否则为难解问题。

关于多项式时间。什么是多项式?小学时就接触过这样的方程式...

ax+b=0,ax^2+bx+c=0

第一,虽然把所需运行时间为O(n^100)的问题作为“难处理问题”也有其合理之处,但实际中却只有极少数问题需要如此高次的多项式时间,且经验表明,一旦某一问题的第一个多项式时间算法被发现后,往往跟着就会发现更为有效的算法。第二,对很多合理的计算模型来说,在一个模型上用多项式时间可解决的问题,在另一个模型上也可以在多项式时间内解决。第三,由于在加法、乘法和组合运算下多项式是封闭的,因此,多项式时间可解问题具有很好的封闭性。

反之,非多项式时间一般指指数增长模式,或更复杂模式。

然而有些问题很难找到多项式时间的算法(或许根本不存在)。但是如果给了该问题的答案,可以在多项式时间内判定这个答案是否正确。这种可以在多项式时间内验证一个解是否正确的问题称为NP问题(Non-deterministic Polynomial),亦称为易验证问题类。

简单地说,存在多项式时间的算法的一类问题,称之为P类问题;至今没有找到多项式算法解的一类问题,称

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值