理解P/NP问题

今天在学习时候突然看到了经常出现的NP完全问题,之前一直没在意这是一个什么问题,今天仔细的搜索理解了一下,给大家伙谈谈我的理解,有不对的请大家指正。

到底什么是 P/NP 问题

简单来说就是

P(Polynomial)问题:在多项式时间被验证的问题
NP(Nondeterministic Polynomially)问题:能否证明在多项式时间内找到这个问题的
P类问题是NP问题的子集,因为存在多项式时间解法的问题,总能在多项式时间内验证他。

多项式时间

多项式的一般表达式为 a 0 a_0 a0+ a 1 x a_1x a1x+ a 2 a_2 a2 x 2 \def\bar#1{#1^2} \bar{x} x2+…+ a k a_k ak x k \def\bar#1{#1^k} \bar{x} xk
但求解问题的规模为n时,最坏求解时间是O( n k n^k nk),这就是多项式的算法。

例如:

P vs. NP 是一个非常重要的,未被解决的计算机问题。2000年,克雷顿数学研究所,发布了7个数学难题(Millennium Prize Problems),每个奖励100万美金,其中就有P vs NP问题。

P代表多项式时间。我们发现现实生活中有一类问题,可以在多项式时间(比如 O( n 2 n^2 n2) 等等)内被验证。虽然可以在多项式时间被验证,但是往往不容易解决, 我们将这类问题归类成NP问题。 所以NP问题,本质上是一类在我们可以接受的时间范围内可以被验证的问题。

比如说数独问题,验证很容易,只要遍历行和列去检查就可以了是一个O(n^2)的算法,但是求解很困难。尤其是很大的数独,比如1000*1000的数独。

再比如说,求地图上两点的最短路径,我们可以轻松的在多项式时间内解决。

但是这些可以被计算机验证的问题,可以被计算机解决吗? 于是我们得到一个疑问:数独问题也可以在多项式时间内解决吗? 如果可以,那么P=NP;如果不可以,那么 P ≠ \neq =NP。

究竟P=NP还是P ≠ \neq =NP 呢? 这就是P vs NP问题。 这个问题我们不知道答案,如果谁发现了答案,那么可以得到100万美金的奖励。

推荐阅读:浅谈P vs. NP

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值