关于P类问题,NP问题,NPC问题的一些粗浅理解

最近在做初赛题,发现总是考一些P和NP问题,完全不知道是什么

得不得分都随缘了,所以还是简单的了解了一下,有的说的可能不是很标准,单做初赛也肯定是够了


我们要学习这三种问题,首先要对时间复杂度有一定的了解

一共分为两个大类

第一种,多项式级

大体上是由n作为底数,例如O(n),O(logn),O(n^2),O(n^a),当然还有O(1)

第二种,非多项式级

由n作为指数,例如O(2^n),当还还有更高的O(n!)


First,P类问题

这是最好理解的,简要来说就是OI比赛考的算法,时间复杂度为多项式级

例如最短路算法


Second,NP问题,不太好理解,我就笼统的说了

所有的可以解的问题都是NP问题,时间复杂度可以是多项式级,也可以是指数级

再多说一句,如何证明NP=P

什么意思呢,就是证明所有的可以解的问题多可以用都项式级时间复杂度来做(算法)

这个并不难,大家可以自己好好思考一下,我就不在这里说了


Last,NPC问题,首先我们要知道一个叫做约化的东西

简而言之,就是可以用一个解法B,来替代解法A,(解法A对应问题A,解法B对应问题B,同时包含问题A)

就说成A问题约化为B问题(保证B问题的时间复杂度大于等于A问题的时间复杂度)

NPC问题就是找到一个问题,让所有的NP问题都可以约化成它,让这个问题的解可以做出所有的NP问题


这就是可以大概完成初赛的介绍了,希望对大家有帮助

再给一个讲的很详细的博客,如果你希望了解更深刻:http://www.matrix67.com/blog/archives/105

 

posted @ 2018-10-09 21:08  Bruce--Wang  阅读(1693)  评论(0编辑  收藏  举报