算法复杂性精选课件.ppt
《算法复杂性精选课件.ppt》由会员分享,可在线阅读,更多相关《算法复杂性精选课件.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于算法复杂性关于算法复杂性第一页,本课件共有75页 旅行商旅行商(TSP)问题问题一个商人欲到一个商人欲到n个城市推销商品,每两个城市个城市推销商品,每两个城市i和和j之间的距离为之间的距离为dij,如,如何选择一条道路,使得商人每个城市走过一遍后回到起点且所走路径何选择一条道路,使得商人每个城市走过一遍后回到起点且所走路径最短。最短。解:设解:设xij=1若商人行走的路线中包含从城市若商人行走的路线中包含从城市i到到j的路径,否则的路径,否则xij=0。第二页,本课件共有75页可行解:用可行解:用n个城市的一个排列表示商人按个城市的一个排列表示商人按这个排列序推销并返回起点。这个排列序推销
2、并返回起点。使用枚举法求解,需要使用枚举法求解,需要(n-1)!次枚举。次枚举。以计算机以计算机1秒可以完成秒可以完成24个城市所有路径枚个城市所有路径枚举为单位。举为单位。城市数城市数 24 25 26 27 30计算时间计算时间 1秒秒 24秒秒 10分分 4.3小时小时 10.8年年第三页,本课件共有75页1.问题与实例问题与实例问题问题(problem):需要回答的一种提问,通需要回答的一种提问,通常包含一些参数和取值未定的自由变量,可常包含一些参数和取值未定的自由变量,可以从两个方面加以描述:以从两个方面加以描述:(1)对所有参数的一般描述;)对所有参数的一般描述;(2)对回答(也称
3、为)对回答(也称为解解)所需要满足的特)所需要满足的特性的描述。性的描述。实例实例(instance):当对一个问题中的参数:当对一个问题中的参数赋予特定的数值时,如何寻找相应的回答赋予特定的数值时,如何寻找相应的回答(解),这种提问称为该问题的一个实例。(解),这种提问称为该问题的一个实例。问题是对许多具体事例构成集合的一种抽象问题是对许多具体事例构成集合的一种抽象表述,而实例就是相应问题的一种具体表现表述,而实例就是相应问题的一种具体表现形式。形式。第四页,本课件共有75页例:线性规划问题与实例例:线性规划问题与实例一个线性规划问题的实例是指矩阵和向量组一个线性规划问题的实例是指矩阵和向量
4、组(A,b,c)的某一特定取值,这些参数按照如的某一特定取值,这些参数按照如下的结构关联在一起,描述了问题(解)下的结构关联在一起,描述了问题(解)所需要满足的特性。所需要满足的特性。线性规划问题是对具有上述结构的所有实例线性规划问题是对具有上述结构的所有实例的一种抽象描述。的一种抽象描述。第五页,本课件共有75页算法算法算法算法:是一组含义明确的简单指令。:是一组含义明确的简单指令。一个问题是算法可解的一个问题是算法可解的(solvable):存在一个求解该:存在一个求解该问题的算法,只要让算法运行足够长的时间,并且保证问题的算法,只要让算法运行足够长的时间,并且保证满足算法在运行过程中所需
5、要的存储空间,它就能求解满足算法在运行过程中所需要的存储空间,它就能求解该问题的任何一个实例。该问题的任何一个实例。停机问题停机问题:不可能构造出一个程序来确定任意给:不可能构造出一个程序来确定任意给出的程序是否会陷入无限循环。出的程序是否会陷入无限循环。第六页,本课件共有75页算法复杂性算法复杂性算法复杂性算法复杂性(algorithm complexity):描述算法的存储要求和运行时间要求,分描述算法的存储要求和运行时间要求,分为算法的空间复杂性和算法的时间复杂性。为算法的空间复杂性和算法的时间复杂性。-利用算法需要的初等运算次数来表示算利用算法需要的初等运算次数来表示算法的时间复杂性。
6、法的时间复杂性。第七页,本课件共有75页多项式时间算法与指数时间算法多项式时间算法与指数时间算法输入规模输入规模(input size):表示一个:表示一个实例实例所所需要的字符串长度。需要的字符串长度。一般的,使用一般的,使用 位二进制就可以位二进制就可以表示任意整数表示任意整数r。线性规划的输入规模为:线性规划的输入规模为:第八页,本课件共有75页对应对应TSP,枚举算法的基本计算总次数为,枚举算法的基本计算总次数为(n-1)!n=n!实例的二进制输入长度总量不超过实例的二进制输入长度总量不超过 L=n(n-1)+log2|P|其中其中P为所有非零数为所有非零数dij的乘积。的乘积。假设假
7、设 中每个数据都有上中每个数据都有上界界K,则有,则有第九页,本课件共有75页一个求解实例一个求解实例I的算法的基本计算总次数的算法的基本计算总次数C(I)同实例同实例I的计算机二进制输入长度的计算机二进制输入长度d(I)的关系的关系常用符号常用符号C(I)=f(d(I)=O(g(d(I)表示,它的表示,它的含义:求解实例含义:求解实例I的算法的基本计算总次数的算法的基本计算总次数C(I)是实例是实例输入长度输入长度d(I)的一个函数,该函的一个函数,该函数被另一个函数数被另一个函数g(x)控制,即存在一个函数控制,即存在一个函数g(x)和一个常数和一个常数a,使得,使得第十页,本课件共有75
8、页多项式时间算法与指数时间算法多项式时间算法与指数时间算法定义:假设问题和解决该问题的一个算法已经定义:假设问题和解决该问题的一个算法已经给定,若给定该问题的一个实例给定,若给定该问题的一个实例I,存在多项式,存在多项式函数函数g(x),使得,使得成立,则称该算法对成立,则称该算法对实例实例I是多项式时间算法;是多项式时间算法;若若存在存在g(x)为为多项式函数且对该问题任意一个实多项式函数且对该问题任意一个实例例I,都有上式成立,则称,都有上式成立,则称该算法为解决该问题该算法为解决该问题的的多项式时间算法多项式时间算法。当当g(x)为为指数函数时,称相应的算法为指数函数时,称相应的算法为指
9、数时间指数时间算法算法。第十一页,本课件共有75页Growth Rate:Sketch10nn22nn!=2O(n lg n)input lengthtime第十二页,本课件共有75页多项式时间算法的优点:多项式时间算法的优点:(1)随着问题输入规模的增加,算法的计)随着问题输入规模的增加,算法的计算量(即算法复杂性)呈多项式增长;算量(即算法复杂性)呈多项式增长;(2)一个多项式时间算法利用另一个多项)一个多项式时间算法利用另一个多项式时间算法作为其式时间算法作为其“子程序子程序”,构造一个,构造一个新的复合型算法,则新算法仍是多项式时新的复合型算法,则新算法仍是多项式时间算法。间算法。第十
10、三页,本课件共有75页单纯形算法的复杂性单纯形算法的复杂性单纯形算法需要单纯形算法需要2n-1次迭代。次迭代。第十四页,本课件共有75页定理:当定理:当2时,用单纯形算法求解上述问题时需要时,用单纯形算法求解上述问题时需要2n-1次迭代。次迭代。第十五页,本课件共有75页 椭球法椭球法 第一个可以在多項式时间內解决一般线性规划问题的第一个可以在多項式时间內解决一般线性规划问题的解法。解法。根据根据(P)与与(D)的对偶关系的对偶关系,我们可将两者的最优解以一我们可将两者的最优解以一组最优性条件联结起来组最优性条件联结起来:第十六页,本课件共有75页第十七页,本课件共有75页第十八页,本课件共有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 复杂性 精选 课件
限制150内