算法设计与分析第10章.ppt
《算法设计与分析第10章.ppt》由会员分享,可在线阅读,更多相关《算法设计与分析第10章.ppt(45页珍藏版)》请在三一办公上搜索。
1、南京邮电大学计算机学院 2008年3月,算法设计与分析,DeSign and Analysis of AlgorithmsIn C+,“十一五”国家级规划教材,陈慧南 编著,电子工业出版社,南京邮电大学计算机学院 2008年3月,第3部分 求解困难问题,南京邮电大学计算机学院 2008年3月,第10章 NP完全问题,南京邮电大学计算机学院 2008年3月,10.1 基本概念 10.2 Cook定理和证明 10.3 一些典型的NP完全问题,南京邮电大学计算机学院 2008年3月,10.1 基本概念,南京邮电大学计算机学院 2008年3月,将能在多项式时间求解的问题看作易处理问题(tractabl
2、e problem),而将至今尚未找到多项式时间算法求解的问题视为难处理问题(intractable problem)。,南京邮电大学计算机学院 2008年3月,10.1.1 不确定算法和不确定机,为便于研究,先假定一种运行不确定算法的抽象计算模型,该抽象机除了包含第节的抽象机模型的基本运算外,最根本的区别在于它新增了下面一个新函数和两个新语句:(1)Choice(S):任意选择集合S的一个元素;(2)Failure:发出不成功完成信号后算法终止;(3)Success:发出成功完成信号后算法终止。,南京邮电大学计算机学院 2008年3月,例101 在n个元素的数组a中查找给定元素x,如果x在其
3、中,则确定使aj=x的下标j,否则输出-1。【程序101】不确定搜索算法 void Search(int a,T x)int j=Choice(0,n-1);if(aj=x)coutj;Success();cout-1;Failure();,南京邮电大学计算机学院 2008年3月,包含Choice函数的算法能按如下既定方式执行:当算法执行中需作出一系列的Choice函数选择时,当且仅当对于Choice的任何一组选择都不会导致成功信号时,此算法在O(1)时间不成功终止;否则,只要存在一组选择能够导致成功时,算法总能采取该组选择使得算法成功终止。包含不确定选择语句,并能按上述方式执行一个算法的机器
4、称为不确定机(non deterministic machine)。在不确定机上执行的算法称为不确定算法(non deterministic algorithm)。,南京邮电大学计算机学院 2008年3月,例10-2 将n个元素的序列排成有序序列。【程序10-2】不确定排序算法void NSort(int a,int n)int bmSize,i,j;for(i=0;in;i+)bi=0;for(i=0;in;i+)j=Choice(0,n-1);if(bj)Failure();bj=ai;,南京邮电大学计算机学院 2008年3月,for(i=0;ibi+1)Failure();for(i=0
5、;in;i+)coutbi;coutendl;Success();,南京邮电大学计算机学院 2008年3月,定义10-1(不确定算法时间复杂度)一个不确定算法所需的时间是指对任意一个输入,当存在一个选择序列导致成功完成时,达到成功完成所需的最少程序步。在不可能成功完成的情况下,所需时间总是O(1)。,南京邮电大学计算机学院 2008年3月,例10-3(最大集团及其判定问题)无向图G=(V,E)的一个完全子图称为该图的一个集团(clique)。集团的规模用集团的顶点数衡量。最大集团问题是确定图G的最大集团规模的问题。最大集团判定问题(G,k)是对给定正整数k,判定图G是否存在一个规模至少为k的集
6、团。,南京邮电大学计算机学院 2008年3月,【程序10-3】最大集团判定问题不确定算法void Clique(int gmSize,int n,int k)S=;for(int i=0;i k;i+)int t=Choice(0,n-1);if(tS)Failure();S=St;for(对所有(i,j),iS,jS且ij)if(i,j)E)Failure();Success();,南京邮电大学计算机学院 2008年3月,10.1.2 可满足性问题,例10-4 可满足性问题(satisfiability problem)是一个判定问题,它确定对于一个给定的命题公式,是否存在布尔变量的一种赋值
7、(也称真值指派)使该公式为真。CNF可满足性是指判定一个CNF公式的可满足性。,南京邮电大学计算机学院 2008年3月,【程序10-4】可满足性问题的不确定算法 void Eval(CNF E,int n)int xmSize;for(int i=1;i=n;i+)xi=Choice(0,1);if(E(x,n)Success();else Failure();,南京邮电大学计算机学院 2008年3月,P类和NP类问题,定义10-2(P类和NP类)P是所有可在多项式时间内用确定算法求解的判定问题的集合。NP是所有可在多项式时间内用不确定算法求解的判定问题的集合。定义10-3(多项式约化)令Q1
8、和Q2是两个问题,如果存在一个确定算法A求解Q1,而算法A以多项式时间调用另一个求解Q2的确定算法B。若不计B的工作量,算法A是多项式时间的,则称Q1约化(reduced to)为Q2,记做Q1Q2。,南京邮电大学计算机学院 2008年3月,性质10-1 若Q1P,Q2Q1,则有Q2P。性质10-2 若Q1Q2,Q2Q3,则Q1Q3。,南京邮电大学计算机学院 2008年3月,10.1.4 NP难度和NP完全问题,定义10-4(NP难度)对于问题Q以及任意问题Q1NP,都有Q1Q,则称Q是NP难度(NP hard)的。定义10-5(NP完全)对于问题QNP,Q是NP难度的,则称Q是NP完全(NP
9、 complete)的。,南京邮电大学计算机学院 2008年3月,如何确定某个问题Q是否是NP难度的?一般的证明策略由以下两步组成:(1)选择一个已经证明是NP难度问题Q1;(2)求证Q1Q。由于Q1是NP难度的,因此所有NP类问题都可约化到Q1,根据约化的传递性,任何NP类问题都可约化到Q,所以Q是NP难度的。如果进一步表明Q本身是NP类的,则问题Q是NP完全的。,南京邮电大学计算机学院 2008年3月,10.2 Cook定理和证明,南京邮电大学计算机学院 2008年3月,10.2.1 Cook定理,斯蒂芬库克(Steven Cook)于1971年证明了第一个NP完全问题,称为Cook定理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 10
链接地址:https://www.31ppt.com/p-6191673.html