《NP完全问题(上课)选读ppt课件.ppt》由会员分享,可在线阅读,更多相关《NP完全问题(上课)选读ppt课件.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 NP完全问题完全问题本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。1 什么是好算法?算法的种类和数量积累到一定程度时,需要对算法进行比较和分类。什么是好算法?Edmonds,1975年提出了一个被沿用至今的标准。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。Edmonds算法标准Edmonds算法标准指出具有多项式时间的算法为好算法。多项式时间算法:如果是
2、任意一个问题,对存在着一个算法,它的时间复杂性为O(nk),其中n为输入规模,k为非负整数,就认为存在着一个解问题 的多项式时间算法。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。以多项式作为分界函数?原因有两个:一、常见算法大致分为两类:n一类是多项式时间内可实现的 n另一类需要指数时间(O(cn)多项式时间算法的可实现性远大于指数时间算法。(参见 下表)本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉
3、以及联合循环机组可参照本标准执行,并增补指标。易解问题与难解问题的主要区别易解问题与难解问题的主要区别 在学术界已达成这样的共识:把多项式时间复杂性作在学术界已达成这样的共识:把多项式时间复杂性作为易解问题与难解问题的分界线,主要原因有:为易解问题与难解问题的分界线,主要原因有:1)多项式函数与指数函数的增长率有本质差别多项式函数与指数函数的增长率有本质差别问题规模问题规模n多项式函数多项式函数指数函数指数函数logn nnlognn2n32nn!1010.01121103.31033.2100100010243628800204.32086.4400800010483762.4E18505.
4、650282.225001250001.0E153.0E641006.6100664.41000010000001.3E309.3E157本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。2)计算机性能的提高对易解问题与难解问题算法的计算机性能的提高对易解问题与难解问题算法的影响影响 假设求解同一个问题有假设求解同一个问题有5个算法个算法A1A5,时间复杂,时间复杂度度T(n)如下表,假定计算机如下表,假定计算机C2的速度是计算机的速度是计算机C1的的10倍。下表给出了在相同时间
5、内不同算法能处理倍。下表给出了在相同时间内不同算法能处理的问题规模情况:的问题规模情况:T(n)nn变化变化n/n10n100010000n=10n1020n5005000n=10n105nlogn2501842nn10n7.372n270223n3.162n1316n=n+log10n+31本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。3)多项式时间复杂性忽略了系数,不影响易解问题与难多项式时间复杂性忽略了系数,不影响易解问题与难解问题的划分解问题的划分问题规模问题规模n多
6、项式函数多项式函数指数函数指数函数n8108nn10001.1n20.01n53906255108510001.6111.035101081091010002.5941.0721001016101010200013780.621000102410111030002.4710411024观察结论:观察结论:n100时,(不自然的)多项式函数值大于指数时,(不自然的)多项式函数值大于指数函数值,但函数值,但n充分大时,指数函数仍然超过多项式函数充分大时,指数函数仍然超过多项式函数。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅
7、炉以及联合循环机组可参照本标准执行,并增补指标。以多项式作为分界函数?二、多项式时间算法与计算模型无关 算法的研究依赖于计算模型。在不同类型计算模型上实现算法,计算时间不同。广义ChurchTuring命题:不同计算模型上的计算时间有多项式关系。多项式与多项式的复合函数是多项式,因此,多项式时间算法与计算模型无关。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。2 P类问题易解的问题是否每个问题都有多项式时间算法?在考虑问题的计算复杂性时,常把它化为相应的判定问题考虑。首先看问
8、题分类及其转换。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。问题分类p一类是判定问题 解只有两种,yes或no。例:给定图G=(V,E),问该图是否有哈密尔顿圈。p一类是优化问题 例:给定图G=(V,E),假设边的费用为自然数。求该 图的最短哈密尔顿回路。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。问题转换 优化问题可转换为相应的判定问题求解。例:给定图
9、G=(V,E),假设边的费用为自然数。给 定k=1,2,.,问是否有长度不超过k的哈密尔 顿回路。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。P类问题P类:具有多项式时间算法的判定问题形成一个 计算复杂类,记为P类。P类易解的问题 P-Polynomial思考:已学知识中哪些问题属P类问题?本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。3 NP类问题难解的
10、问题具有指数时间算法的问题。例:货郎担问题(TSP问题)。n!排列方式。n=6:6!=720 n=19:19!1.21*1017 每秒排一次,排3.84*109年 每秒排百万次,排3000年 有算法但实现性差。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。TSP问题1998年,解决了美国13509个城市之间的TSP问题2001年,解决了德国15112个城市之间的TSP问题解决15112个城市之间的TSP问题,共使用了美国Rice大学和普林斯顿大学之间网络互连的,由速度为500
11、MHz 的Compaq EV6 Alpha 处理器组成的110台计算机,所有计算机花费的时间之和为22.6年。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。NP类问题一般而言,验证解比求解易。对具有指数时间的问题,有些可用不确定性算法求解。该算法包含两个阶段:n推测阶段对规模为n的输入实例x,产生一个输出y。n验证阶段检验y是否满足解形式,是否是解。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合
12、循环机组可参照本标准执行,并增补指标。NP类问题 推测阶段是具有多项式时间的非确定性(non-determinism)算法,对输入实例x,下次产生的输出可能不是y。验证阶段是具有多项式时间的确定性算法。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。NP类问题NP类:由具有多项式时间的非确定性算法求解的判定问题形成的一个计算复杂类,记为NP类。NP难解的问题 NPNondeterministic Polynomial 本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供
13、热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。NP类问题举例货郎担问题例:货郎担的判定问题:给定n个城市、正常数k及城 市之间的费用矩阵C,判定是否存在一条经过所有 城市一次且仅一次,最后返回初始出发城市且费用 小于常数k的回路。n算法A用非确定算法在多项式时间内推测一条回路nA用确定算法在多项式时间内判定回路是否是哈密尔顿回路,是否费用和小于k,返回yes或no。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。NP类
14、问题举例求真因子问题例:有一个国王向邻国公主求婚。公主出了一道题:求出48 770 428 433 377 171的一个真因子。若 国王能在一天之内求出答案,公主便接受他的求 婚。n国王,顺序除,一天未算出。223 092 827n宰相,给全国百姓编号,用自己的编号去除公主给的数,除尽的报数,领赏。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。国王:顺序算法 宰相:并行算法 是否所有的难解问题通过并行计算使其在多项式内可解?关于并行算法:当将一个问题分解到多个处理器上解决时,
15、由于算法中不可避免地存在必须串行执行的操作,从而大大地限制了并行计算机系统的加速能力。NP类问题举例求真因子问题本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。阿达尔定律:串行执行操作仅占全部操作1%,解题速度最多也只能提高一百倍。NP类问题举例求真因子问题阿达尔定理告诉我们,对有些难解问题,即使提高计算机运行速度,也不能在多项式时间内验证。即并非所有的难解问题都属于NP类。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃
16、机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。非NP问题举例汉诺塔问题例:汉诺塔问题。n推测阶段给出一种盘子移动方法;n验证阶段需要n步验证该解的正确性。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。类和NP类问题的差别主要差别在于:pP类问题可以用多项式时间的确定性算法进行判定或求解pNP类问题可以用多项式时间的确定性算法来检查和验证它的解 结论:本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、
17、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。4 NPC问题NPCNP Complete,NP完全为定义NP完全问题,首先给出归约的定义。定义1 令和是两个判定问题,如果存在一个 具有如下性能的确定性算法A,可以用多项 式的时间,把问题的实例I转化为问题 的实例I,使得I的答案为yes,当且仅当 I的答案是yes,就称以多项式时间归约 于,记为p。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。关于归约根据定义 1,由于多项式与多项式的复合仍为多项式,因此可推得:1)两
18、个判定问题、n若P,且p,则P2)归约关系p满足传递性:三个判定问题、,若p,p,则 p。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。NP完全问题定义定义 2 令是一个判定问题,如果对NP中的每一 个问题NP,有p,就称判定 问题是一个NP难题。定义 3 令是一个判定问题,如果:(1)NP;(2)对NP中的所有问题NP,都有 p;则称判定问题是NP完全(NPC)的。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组
19、、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。P类、NP类、NPC类问题关系根据定义,可用如下图表示三者之间的关系:NPCNP本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。p对NPC问题,有个重要性质对NPC类中的一个问题,如果能够证明用多项式时间的确定性算法来进行求解或判定,那么,NP中的所有问题都可以通过多项式时间的确定性算法来进行求解或判定。P类、NP类、NPC类问题关系本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的
20、统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。NP完全问题的证明定理 1 令和是NP中的两个问题,使得p。如果是NP完全的,则也是 NP完全的。根据定理1,为证明问题是NP完全的,只需证明下列两点:(1)NP (2)存在一个NP完全问题,使得p。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。5 几个典型的NPC问题p可满足性问题(SATISFIABILITY)判定问题:SATISFIABILITY 输入:合取范式(CNF)布尔表达式f 问题:对布
21、尔表达式f中的布尔变量赋值,是否可 使f的真值为真。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。Cook定理定理 2:可满足性问题SATISFIABILITY是NP完全的。(Cook定理,1971年)Stephen Arthur Cook1982Stephen Arthur Cook1982年获图灵奖,年获图灵奖,NPNP完全完全性理论的奠基人性理论的奠基人Cook定理的意义:给出了第一个NP完全问题,使得对任何问题,只要能证明NP,且SATp,那么是NPC问题。为NPC问
22、题的发现奠定了基础。http:/ 1给出了这颗树的一小部分,其中每个结点都是一个NP完全问题,该问题可在多项式时间里,转换为它的任一儿子结点所表示的问题。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。部分NP完全问题树SATISFIABILITY3-SATISFIABILITYVERTEX_COVERCLQUESUBSET_SUMHAM_CYCLETRA_SALESMAN1本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃
23、机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。几个典型的NPC问题p三元可满足性问题(3-SATISFIABILITY)判定问题:3-SATISFIABILITY 输入:三元合取范式f问题:对布尔表达式f中的布尔变量赋值,是否可使f的真值为真。SATISFIABILITYp3-SATISFIABILITY本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。几个典型的NPC问题p图的着色问题(COLORING)判定问题:COLORING输入:无向图G=(V,E)问题:
24、是否可用种颜色为图的顶点着色,使得相邻顶点不会有相同颜色。3-SATISFIABILITYpCOLORING本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。几个典型的NPC问题p集团问题(CLIQUE)判定问题:CLIQUE输入:无向图G=(V,E),正整数k问题:图中是否包含大小为k的集团,即中是否具有含个顶点的完全子图。SATISFIABILITYpCLIQUE本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余
25、热锅炉以及联合循环机组可参照本标准执行,并增补指标。几个典型的NPC问题p顶点覆盖问题(VERTEX COVER)判定问题:VERTEX COVER输入:无向图G=(V,E),正整数k问题:图中是否存在一个大小为k的顶点覆盖CLIQUE pVERTEX COVER本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。其他的NP完全问题p哈密尔顿回路问题HAMILTONIAN CYCLE判定问题:HAMILTONIAN CYCLE输入:无向图G=(V,E)问题:图中是否存在一条简单回路
26、,使得每个顶点经过一次且一次。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。其他的NP完全问题p子集求和问题SUBSET SUM判定问题:SUBSET SUM输入:整数集、整数问题:是否存在的一个子集,使得中整数之和为。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。其他的NP完全问题p多处理器调度问题MULTIPROCESSOR SCHEDULING判定问题
27、:MULTIPROCESSOR SCHEDULING输入:m个同构处理器、n个作业、时间T问题:是否可将n个作业分配至m个处理器,使其 在T内完成。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。NP完全问题的研究现状p已发现3000多个NP完全问题p2000年5月24日,美国克雷数学研究所在巴黎法兰西学院宣布了七个“千年数学难题”,解决其中一个可获百万美元奖励。其中庞加莱猜想已被我国中山大学朱熹平教授和旅美数学家曹怀东解决。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电
28、机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。NP完全问题的研究现状 1、NP完全问题 (NP=P?)2、霍奇猜想 3、庞加莱猜想 4、黎曼假设 5、杨米尔斯理论 6、纳卫尔斯托可方程 7、BSD猜想。http:/ NP完全问题的求解当必须求解NP完全问题时,有以下几种处理方法:p只运行小的问题实例不是所有问题都接受该方法。如TSP问题。p解决这个问题的一个不太困难的实例如,顶点覆盖问题。若假设图为二部图(图分为两部分,每个子集内部的两个顶点之间无边),则可在多项式时间内求解。本标准适用于已投入商业运行的火力发电厂纯凝式汽轮发电机组和供热汽轮发电机组的技术经济指标的统计和评价。燃机机组、余热锅炉以及联合循环机组可参照本标准执行,并增补指标。NP完全问题的近似解法p使用动态规划、回溯法或分支限界法求解p使用概率算法求解p使用启发式算法求解 遗传算法、模拟退火