免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复杂性的渐近性态及其阶随着经济的发展、社会的进步、科学研究的深入,要求用计算机解决的问题越来越复杂,规模越来越大。但是,如果对这类问题的算法进行分析用的是第二段所提供的方法,把所有的元运算都考虑进去,精打细算,那么,由于问题的规模很大且结构复杂,算法分析的工作量之大、步骤之繁将令人难以承受。因此,人们提出了对于规模充分大、结构又十分复杂的问题的求解算法,其复杂性分析应如何简化的问题。我们先要引入复杂性渐近性态的概念。设T(N)是在第二段中所定义的关于算法A的复杂性函数。一般说来,当N单调增加且趋于时,T(N)也将单调增加趋于。对于T(N),如果存在T(N),使得当N时有:(T(N )-T(N )/T(N ) 0那么,我们就说T(N)是T(N)当N时的渐近性态,或叫T(N)为算法A当N的渐近复杂性而与T(N)相区别,因为在数学上,T(N)是T(N)当N时的渐近表达式。直观上,T(N)是T(N)中略去低阶项所留下的主项。所以它无疑比T(N)来得简单。比如当T(N)=3N 2+4Nlog2N +7时,T(N)的一个答案是3N 2,因为这时有:显然3N 2比3N 2 +4Nlog2N +7简单得多。由于当N时T(N)渐近于T(N),我们有理由用T(N)来替代T(N)作为算法A在N时的复杂性的度量。而且由于于T(N)明显地比T(N)简单,这种替代明显地是对复杂性分析的一种简化。进一步,考虑到分析算法的复杂性的目的在于比较求解同一间题的两个不同算法的效率,而当要比较的两个算法的渐近复杂性的阶不相同时,只要能确定出各自的阶,就可以判定哪一个算法的效率高。换句话说,这时的渐近复杂性分析只要关心T(N)的阶就够了,不必关心包含在T(N)中的常数因子。所以,我们常常又对T(N)的分析进-步简化,即假设算法中用到的所有不同的元运算各执行一次,所需要的时间都是一个单位时间。综上所述,我们已经给出了简化算法复杂性分析的方法和步骤,即只要考察当问题的规模充分大时,算法复杂性在渐近意义下的阶。与此简化的复杂性分析方法相配套,需要引入五个渐近意义下的记号:、和。以下设f(N)和g(N)是定义在正数集上的正函数。如果存在正的常数C和自然数N0,使得当NN0时有f(N)Cg(N)。则称函数f(N)当N充分大时上有界,且g(N)是它的一个上界,记为f(N)=(g(N)。这时我们还说f(N)的阶不高于g(N)的阶。举几个例子:(1)因为对所有的N1有3N4N,我们有3N =(N);(2)因为当N1时有N+10241025N,我们有N +1024=(N);(3)因为当N10时有2N 2+11N -103N 2,我们有2N 2+11N -10=(N 2);(4)因为对所有N1有N 2N 3,我们有N2=(N 3);(5)作为一个反例N 3(N 2)。因为若不然,则存在正的常数C和自然数N0,使得当NN0时有N3C N 2,即NC 。显然当取N =max(N0,C+l)时这个不等式不成立,所以N3(N 2)。按照大的定义,容易证明它有如下运算规则:1. (f)+(g)=(max(f,g); 2. (f)+ (g)=(f +g); 3. (f)(g)= (fg); 4. 如果g(N)= (f(N),则(f)+ (g)= (f); 5. (Cf(N)= (f(N),其中C是一个正的常数; 6. f =(f); 规则1的证明:设F(N)= (f) 。根据记号的定义,存在正常数C1和自然数N1,使得对所有的NN1,有F(N)C1 f(N)。类似地,设G(N)=(g),则存在正的常数C2和自然数N2使得对所有的NN2有G(N)C2g(N),今令:C3=max(C1, C2)N3=max(N1, N2)和对任意的非负整数N,h(N)=max(f,g),则对所有的NN3有:F(N)C1f(N)C1h(N)C3h(N)类似地,有:G(N)C2g(N)C2h(N)C3h(N)因而(f)+(g) =F(N)+G(N)C3h(N)+ C3h(N)=2C3h(N)=(h)=(max(f,g)其余规则的证明类似,请读者自行证明。应用这些规则的一个例子:对于第一章中的算法search,在第二章给出了它的最坏情况下时间复杂性Tmax(m)和平均情况下的时间复杂性Tavg(m)的表达式。如果利用上述规则,立即有:Tmax(m)=(m)和 Tavg(m)=(m)+(m)+(m)=(m)另一个例子:估计下面二重循环算法段在最坏情况下的时间复杂性T(N)的阶。for i:=l to N do for j:=1 to i do begin S1; S2; S3; S4; end;其中Sk (k=1,2,3,4)是单一的赋值语句。对于内循环体,显然只需(l)时间。因而内循环只需时间。累加起来便是外循环的时间复杂性:应该指出,根据记号的定义,用它评估算法的复杂性,得到的只是当规模充分大时的一个上界。这个上界的阶越低则评估就越精确,结果就越有价值。关于记号,文献里有两种不同的定义。本文只采用其中的一种,定义如下:如果存在正的常数C和自然数N0,使得当NN0时有f(N)Cg(N),则称函数f(N)当N充分大时下有界,且g(N)是它的一个下界,记为f(N)=(g(N)。这时我们还说f(N)的阶不低于g(N)的阶。的这个定义的优点是与的定义对称,缺点是当f(N)对自然数的不同无穷子集有不同的表达式,且有不同的阶时,未能很好地刻画出f(N)的下界。比如当:时,如果按上述定义,只能得到f(N)=(1),这是一个平凡的下界,对算法分析没有什么价值。然而,考虑到的上述定义有与的定义的对称性,又考虑到常用的算法都没出现上例中那种情况,所以本文还是选用它。我们同样也可以列举的一些运算规则。但这里从略,只提供一个应用的例子。还是考虑算法Search在最坏情况下的时间复杂性函数Tmax(m)。由它的表达式(2.7)及已知a,s,t均为大于0的常数,可推得,当m1时有:Tmax(m)(m+1)a+(2m+1)tma+2mt=(a+2t)m ,于是 Tmax(m)=(m)。我们同样要指出,用评估算法的复杂性,得到的只是该复杂性的一个下界。这个下界的阶越高,则评估就越精确,结果就越有价值。再则,这里的只对问题的一个算法而言。如果它是对一个问题的所有算法或某类算法而言,即对于一个问题和任意给定的充分大的规模N,下界在该问题的所有算法或某类算法的复杂性中取,那么它将更有意义。这时得到的相应下界,我们称之为问题的下界或某类算法的下界。它常常与配合以证明某问题的一个特定算法是该问题的最优算法或该问题在某算法类中的最优算法。明白了记号和之后,记号将随之清楚,因为我们定义f(N)=(g(N)则f(N)=(g(N) 且f(N)=(g(N)。这时,我们说f(N)与g(N)同阶。比如,对于算法Search在最坏情况下的时间复杂性Tmax(m)。已有Tmax(m)=(m)和Tmax(m)=(m),所以有Tmax(m)=(m),这是对Tmax(m)的阶的精确估计。最后,如果对于任意给定的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南高速设计咨询研究院有限公司招聘劳务派遣员工7人考试笔试备考题库及答案解析
- 2026湖南郴州市国资委“英培计划”人才选拔29人考试笔试参考题库及答案解析
- 2025福建福州市鼓楼区朱紫坊创业投资基金管理有限公司招聘1人笔试考试参考试题及答案解析
- 上海公安学院《普通地质学》2025-2026学年第一学期期末试卷
- 2025上海国际货币经纪有限责任公司第四季度招聘工作人员41人笔试考试参考试题及答案解析
- 税务数据分析师职业资格认证指南
- 2025贵州雷山县人民医院招聘临聘11人考试笔试参考题库及答案解析
- 2025年12月四川成都都江堰首嘉医院招聘5人笔试考试参考题库及答案解析
- 2026国家交通运输部所属事业单位第三批招聘195人笔试考试备考题库及答案解析
- 数学苏教七年级下册期末复习专题资料试题经典答案
- 2025-2030中国港口集装箱多式联运效率提升路径研究分析报告
- 人工挖孔沉井施工方案
- 2025年风电场安全巡查合同范本
- 非谓语动词在高考语法填空中的运用以电影哪吒为例课件高考英语一轮复习
- 2025北部湾港集团秋季校园招聘笔试历年备考题库附带答案详解2套试卷
- 思想道德与法治题库及答案2025
- 医用面膜产品介绍
- 新员工入职目标
- 2025年煤矿安全规程培训讲义
- 万科-建筑方案设计任务书
- GB/T 46483-2025信息技术客服型虚拟数字人通用技术要求
评论
0/150
提交评论