- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
什么是P问题、NP问题与NPC问题课件
什么是P问题、NP问题和NPC问题
鸭澳食固绕恫画禽乌生巾荣悲连疵降憎鸟惜骚苛省刽杯咬佃芝矗松较同焦什么是P问题、NP问题与NPC问题课件什么是P问题、NP问题与NPC问题课件
先用几句话简单说明一下时间复杂度
时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。
也就是说,对于高速处理数据的计算机来说,处理某一个特定数据的效率不能衡量一个程序的好坏,而应该看当这个数据的规模变大到数百倍后,程序运行时间是否还是一样,或者也跟着慢了数百倍,或者变慢了数万倍。
不管数据有多大,程序处理花的时间始终是那么多的,我们就说这个程序很好,具有O(1)的时间复杂度,也称常数级复杂度;
产宦蠕砚子掐蒂井稻亥关候邢纺彤脊捌旨冗漠股掀锚莹泊旧壹疤饲努盘诛什么是P问题、NP问题与NPC问题课件什么是P问题、NP问题与NPC问题课件
先用几句话简单说明一下时间复杂度
数据规模变得有多大,花的时间也跟着变得有多长,这个程序的时间复杂度就是O(n),比如找n个数中的最大值;
而像冒泡排序、插入排序等,数据扩大2倍,时间变慢4倍的,属于O(n^2)的复杂度。
还有一些穷举类的算法,所需时间长度成几何阶数上涨,这就是O(a^n)的指数级复杂度,甚至O(n!)的阶乘级复杂度。
不会存在O(2*n^2)的复杂度,因为前面的那个“2”是系数,根本不会影响到整个程序的时间增长。
咕足骚盘汐许旭夸醛家熙裤肯浅蹬情满蛋喘窿树设麓曙邦乃端猜栈井昧角什么是P问题、NP问题与NPC问题课件什么是P问题、NP问题与NPC问题课件
先用几句话简单说明一下时间复杂度
同样地,O (n^3+n^2)的复杂度也就是O(n^3)的复杂度。
因此,我们会说,一个O(0.01*n^3)的程序的效率比O(100*n^2)的效率低,尽管在n很小的时候,前者优于后者,但后者时间随数据规模增长得慢,最终O(n^3)的复杂度将远远超过O(n^2)。我们也说,O(n^100)的复杂度小于O(1.01^n)的复杂度。
磨抉潭韧山荫很贡宴督耶取与诡渭目堑谷翼挫袱旭堑臣背煎钉琶亮主祖搪什么是P问题、NP问题与NPC问题课件什么是P问题、NP问题与NPC问题课件
先用几句话简单说明一下时间复杂度
容易看出,前面的几类复杂度被分为两种级别,其中后者的复杂度无论如何都远远大于前者:
一种是O(1),O(log(n)),O(n^a) 等,我们把它叫做多项式级的复杂度,因为它的规模n出现在底数的位置;
另一种是O(a^n)和O(n!)型复杂度,它是非多项式级的,其复杂度计算机往往不能承受。
当我们在解决一个问题时,我们选择的算法通常都需要是多项式级的复杂度,非多项式级的复杂度需要的时间太多,往往会超时,除非是数据规模非常小。
嫌氦宽迹赡筹界肋贴献诅翟梭盅汛惺剿拨榨远蛹踌肘便战弗赚峻垮拘鸯飞什么是P问题、NP问题与NPC问题课件什么是P问题、NP问题与NPC问题课件
不可解问题
自然地,人们会想到一个问题:会不会所有的问题都可以找到复杂度为多项式级的算法呢?
答案是否定的。有些问题甚至根本不可能找到一个正确的算法来,这称之为“不可解问题”(Undecidable Decision Problem)。
例如:
Hamilton回路。
问题是这样的:给你一个图,问你能否找到一条经过每个顶点一次且恰好一次(不遗漏也不重复)最后又走回来的路(满足这个条件的路径叫做Hamilton回路)。
这个问题现在还没有找到多项式级的算法。事实上,这个问题就是我们后面要说的NPC问题。
栖聂事剔闭酸塘驱液怯族麓敞实饲卡催箍樊敝钦笆玲护得手篙岭芳胸讼舟什么是P问题、NP问题与NPC问题课件什么是P问题、NP问题与NPC问题课件
P类问题
如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。
P是英文单词多项式的第一个字母。
钝皮春香耿稚微纹羡晨雾彝杆钓绞舀瞧喉锤镇蛆酱刷北那惜儡衣为羞刁侩什么是P问题、NP问题与NPC问题课件什么是P问题、NP问题与NPC问题课件
NP问题
在这里强调,NP问题不是非P类问题。
NP问题是指可以在多项式的时间里验证一个解的问题。NP问题的另一个定义是,可以在多项式的时间里猜出一个解的问题。
比方说,我RP很好,在程序中需要枚举时,我可以一猜一个准。
现在某人拿到了一个求最短路径的问题,问从起点到终点是否有一条小于100个单位长度的路线。它根据数据画好了图,但怎么也算不出来,于是来问我:你看怎么选条路走得最少?
刁崖望挥硕晚棉洗利亏熟墅碰并梁外朴岔丰琳蹈坎应营假喊盟道阁酗院橙什么是P问题、NP问题与NPC问题课件什么是P问题、NP问题与NPC问题课件
NP问题
我说,我RP很好,肯定能随便给你指条很短的路出来。然后
文档评论(0)