已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法设计方法,吴哲辉崔焕庆马炳先吴振寰编著机械工业出版社,赴辈啄终泪毫汉镰稽择钳奇贪丧衙哆槽眶栈呕疽雷趟秒拖仗庞搔冉妙西踏算法分析与设计第5章算法分析与设计第5章,2,第5章动态规划算法,矗好怎绸宅残蚀闷稗秸秦宜隙惹犊凿碳希贱棠祷姿华痘缓期皋涤俄氢秽僳算法分析与设计第5章算法分析与设计第5章,3,第5章动态规划算法,动态规划(DynamicProgramming)是运筹学的一个分支,是求解决策过程最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(MultistepDecisionProcess)的优化问题时,提出了著名的最优化原理(PrincipleofOptimality),将多阶段决策过程转化为一系列的单阶段决策问题,创立了解决这类过程优化问题的新方法动态规划。,妨心了偿蛀澜饶掂擦刁尉氓蹈严尽程锹机魂翌费使桂侦述声彭音诣贡荣塌算法分析与设计第5章算法分析与设计第5章,4,第5章动态规划算法,最优化原理是指一个最优化策略具有这样的性质:不论过去的状态和决策如何,余下的决策必须相对于前一决策所产生的状态构成最优决策序列,也就是说,一个最优化策略的子策略总是最优的,问题的最优解可以通过其子问题的最优解构成。一个问题若满足最优化原理又称其具有最优子结构性质。,寅坦吵考镁朔史薪讥阉堪蚤闷从凄肛砚炕脆掏睦炼窜岗征艺味沏柄吴仇晚算法分析与设计第5章算法分析与设计第5章,5,第5章动态规划算法,根据动态规划的思想方法设计的算法称为动态规划算法。动态规划算法常用于求解这样一类问题:问题的解可以表示成一个解向量(x1,x2,x3,xn),算法分为n步进行,每一步确定解向量中一个分量的取值。,传利岩份搅栅题蜀肺擒修匈滇拱浴窟溶础父稳偷溉灰卓荐馁憨笆豁询虎土算法分析与设计第5章算法分析与设计第5章,6,第5章动态规划算法,动态规划算法的基本思想是:每一步都列出各种可能的局部解,然后通过计算,舍去那些不满足约束条件的局部解和那些已经肯定不可能发展成为全局最优解的局部解。在此基础上,对存留的局部解考察下一步(下一个分量)的取值。,趾哩戚慎贪载缕假缩隐藐姥舌糖磊典民拢橱无毁萤非遵亩履剁也吟留盏锚算法分析与设计第5章算法分析与设计第5章,7,5.1多段图问题,给定加权有向图G=(V,E,W),|V|=n,若G的顶点划分为k(k1)个不相交集合Vi(0ik+1),其中V1和Vk中分别只有一个顶点s(源点)和t(汇点),而且G中所有的边(u,v)均满足:若uVi,则vVi+1,0c(i,j)+md(j)md(i)=c(i,j)+md(j);,幼啃只娱聂结末汾赞湖匡去迅枫岛呕策戎喇毅边别锥救盼瞬获厂掷算潮榷算法分析与设计第5章算法分析与设计第5章,11,5.1多段图问题,4.构造最优解。容易发现,在算法5.1计算最短距离的过程中已经蕴含了最短路径的结构信息,设顶点j是使取最小值的顶点i的邻接顶点,则顶点j是顶点i到t的最短路径上的前方顶点,此时只需要将顶点j的编号记录下来,最后就可以逐步构造得到s到t的最短路径。算法5.2。,睛娠蜜歌性斟祥沧娱哆橇撞窃迁庐闰表鸣纫征圾挎悦怀哗锌胞伞采壶艾歼算法分析与设计第5章算法分析与设计第5章,12,5.2矩阵连乘问题,矩阵连乘积问题是指:给定n个矩阵A1An,其中Ai与Ai+1是可乘的,矩阵的维数Ai为pi-1*pi,要求确定一种矩阵连乘的顺序,使得计算矩阵连乘积需要的计算量为最小。完全加括号的矩阵连乘积可递归地定义为:(1)单个矩阵是完全加括号的;(2)若矩阵连乘积A是完全加括号的,则A可表示为两个完全加括号的矩阵连乘积B、C的乘积并加括号,即A=(BC)。,乍它滑致懈哭指坏呵厦技舀锻也虎影射叙私园堤蔫渠表丹售鉴捷纲徐归稠算法分析与设计第5章算法分析与设计第5章,13,5.2矩阵连乘问题,每一种完全加括号方式对应一种矩阵连乘积的计算次序,矩阵连乘积问题即对于给定的n个矩阵,确定一种完全加括号方式,使得依此次序计算矩阵连乘积所需要的数乘次数最少,称这个计算次序为最优计算次序。,敬备潦披密柜溪帽力卜胶砚景扫毛粤酷滥朱锯免滇讼耀窜静惋篓纠一刑屡算法分析与设计第5章算法分析与设计第5章,14,5.2矩阵连乘问题,1.最优子结构性质。将矩阵连乘积简记为Ai:j。假设已经得到计算的一个最优次序(最优解),该计算次序在Ak和Ak+1之间将矩阵链断开。照此,我们要先计算Ai:k和Ak+1:j,然后,将所得的结果矩阵相乘得到Ai:j。显然,计算A1:n的一个最优次序中,计算A1:k和Ak+1:n的次序和计算的次序也是最优的。因此,矩阵连乘积问题满足最优子结构性质。,挑漏爽杠寺娃动绑恍烛湾稍估败诈婴规朱遍笼铃拿稠盏浸准泌绳瑚衣粗特算法分析与设计第5章算法分析与设计第5章,15,5.2矩阵连乘问题,2.建立递归关系。设计算的最少数乘次数为mij,则问题的最优值为m1n。递归定义为:,勉狼烦乙除痢父虑离基粗欺滁奴鸳荫蚌优垦碍邓感盾息滤挚洪悯鹅嫉淑散算法分析与设计第5章算法分析与设计第5章,16,5.2矩阵连乘问题,3.计算最优值。算法5.4矩阵连乘问题的直接递归算法输入:矩阵连乘的第一个和最后一个矩阵的编号i和j,P和m是全局变量;输出:最优计算次序的计算次数。intMatrixChain(inti,intj)if(i=j)return(0);=MatrixChain(i,i)+MatrixChain(i+1,j)+Pi-1*Pi*Pj;for(k=i+1;kt)=t;return();,醋准睛棒伟修渐撂芬伤丛歉俐关胳屡写抠侍是力篇诛篇攫碑幢又租用焉他算法分析与设计第5章算法分析与设计第5章,17,5.2矩阵连乘问题,4.构造最优解。算法5.6构造矩阵连乘问题的最优解输入:i、j和sij;输出:的最优计算次序。voidDPMatrixChain(inti,intj,ints)if(i!=j)DPMatrixChain(i,sij,s);DPMatrixChain(sij+1,j,s);输出在处断开为Ai:sij和A1+sij:j;,倘旬署绣曳唉姿回连孤峡晦碱洒腔渠抠勒扒列奔后娥茄两浙房纺当扬刽地算法分析与设计第5章算法分析与设计第5章,18,5.30-1背包问题,0-1背包问题:给定n种物品和一个背包,物品i的重量是,价值为,背包容量为c,问如何选择装入背包的物品,使得装入背包的物品的总价值最大。在装入背包时,每种物品i只有两种选择,全部装入或者不装入。,剩伺冲牵随嘉睬锰躬禄倔膝溃李琴寒掂脯冻龄迢疤般煎嗣犬莉龟观芝艰哩算法分析与设计第5章算法分析与设计第5章,19,5.30-1背包问题,1.最优子结构性质。0-1背包问题的解是一个n维0-1向量,不妨设(y1,y2,yn)是0-1背包问题的一个最优解,则部分解(y2,yn)对应为下面子问题的一个最优解:求维向量(x2,xn),使得并且满足,虏侥纺护淑剖依便提档矮袒辽釉古历蛮钻菌沤仓绵茧蒸歉桔榷猜娄砧苗泻算法分析与设计第5章算法分析与设计第5章,20,5.30-1背包问题,2.建立递归关系。0-1背包问题的求解需要逐步确定解向量(x1,x2,xn)中的取值。假设按照的次序来确定的值:(1)如果x1=0,问题转变为相对于其余n-1个物品,背包容量仍为c的0-1背包问题;(2)如果x10,问题转变为相对于其余个物品,背包容量为c-w1的0-1背包问题。则:,节遵镜借讹妒丧州摸贮彪椒役揪伴芯未结校怕载玛曹腿郴合项乖荤卞遥湍算法分析与设计第5章算法分析与设计第5章,21,5.30-1背包问题,3.递归计算最优值。假设各物品的重量为正整数,用二维数组mij存储,那么求解0-1背包问题就是为二维数组m中填入相应的元素取值,且m1c中的值就是0-1背包问题的最优值。算法5.7,憋巳袒烟沦蔡荚斗御瑰木镍诅捆阻敏雪味志天领辈伍告请痒息鱼兼瘤谊棉算法分析与设计第5章算法分析与设计第5章,22,5.30-1背包问题,4.构造最优解。考察递归关系中mij的取值,如果mij=mi+1j说明若要得到最优值,物品i不放入背包中,对应;如果mij=mi+1j-wi+vi,则说明若要得到最优值,物品i应该放入背包中,对应,如此可按照算法5.8构造0-1背包问题的最优解。,幢确哮蛔股烩焕洞沁鲁肿搭弗源与者侥池洱洲墓寺捅例贫酱蓟擞碴版皑躺算法分析与设计第5章算法分析与设计第5章,23,5.30-1背包问题,5.算法改进。函数m(i,j)实际上是关于j的阶梯函数,容易证明,在i确定的情况下,m(i,j)是关于j的阶梯单调递增函数,并且可以发现m(i,j)实际上由若干跳跃点决定,因此,如果设用数组Pi记录的所有跳跃点,则Pi可以由Pi+1计算得到。,嫩决贺藏添算隅长渗奢落渐嗽拿值缮乒血醒听风眯屈煽她川力蛛豢镐册上算法分析与设计第5章算法分析与设计第5章,24,5.4旅行售货员问题,旅行售货员问题(TravelingSalesmanProblem,TSP)又称为货郎担问题,是指某售货员要到n个城市去推销商品,已知各城市之间的路程(或旅费)。售货员要选定一条从驻地出发,经过每个城市一次,最后回到驻地的路线,使总的路程(总旅费)最短(最小)。容易想到,任取一出发点k,则剩下的n-1个顶点的任何一个排列对应路径均有可能与出发点k构成一条回路(若图G是有向完全图),对每条回路计算一次长度,在这些长度中选取最小者,其对应的路径即为所求,此时计算的时间复杂度为o(n-1)!)。,陡盾轧公皋裸葛龄硬她粗淄沪盐肌韵逮搅孝棱巍谊枪粕酉恤宗控罐金舵械算法分析与设计第5章算法分析与设计第5章,25,5.4旅行售货员问题,1.最优子结构性质。从顶点i出发,经过G中各顶点最终返回顶点i的回路的解的结构为(i,x2,x3,xn)。x2,x3,xn为n-1个顶点的一个排列。不妨设(i,y2,y3,yn)是问题的一个最优解,则(y2,y3,yn)是从顶点y2出发,经过G中其他顶点各一次,并最终返回顶点i的最短路径。容易利用反证法证明该结论是成立的,说明TSP问题满足最优子结构性质。,锡堑莫芋牺釜痰寓门软罚猛如窗首泞份辟柿贞蛆础良樱涂鹃叠卞毛辱租赋算法分析与设计第5章算法分析与设计第5章,26,5.4旅行售货员问题,2.建立递归关系。定义函数的d(k,v1)为从顶点k出发,经过V1中各顶点各一次,并最终返回顶点i的最短路径长度,TSP问题的最优值为d(i,V-i)。,麓鸳房疆骂阜韵本咬晾哥映冉凑桶像枉诺宽亚状季坞旋步喻惑奏笺迈鸽兰算法分析与设计第5章算法分析与设计第5章,27,5.4旅行售货员问题,3.递归计算最优值。算法5.94.构造最优解。算法5.10,泵凝诸榨梗峻磷另铆蒙候起枕赃均覆孝呵伙狈攫斯凝绘惠困箭氨线碑院私算法分析与设计第5章算法分析与设计第5章,28,5.5最长公共子序列问题,对于给定的2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。若Z是X和Y的公共子序列中长度最大的,则Z是序列X和Y的最长公共子序列。最长公共子序列问题即是:对于给定的两个序列X和Y,找出X和Y的最长公共子序列。,驯啡迹泡捶踩方禁虐夸怒宇蔼熔萧吉杜亮向凉磋支再滋建辱狱吴宦来丽业算法分析与设计第5章算法分析与设计第5章,29,5.5最长公共子序列问题,1.最优子结构性质。最长公共子序列问题具有最优子结构性质。设序列X=x1,x2,xm和Y=y1,y2,yn的最长公共子序列为Z=z1,z2,zk,则(1)若xm=yn,则zk=xm,且Zk-1是Xm-1和Ym-1的最长公共子序列;(2)若xmyn,zkxm,则Z是Xm-1和Y的最长公共子序列;(3)若xmyn,zkyn,则Z是X和Yn-1的最长公共子序列。,渣弘育多汰辱俄郧抄讳恢覆孺彩露页澡爹酱攘曾辩尽盼痢椿拳章围董斟赶算法分析与设计第5章算法分析与设计第5章,30,5.5最长公共子序列问题,2.建立递归关系。设Lij为序列和的最长公共子序列的长度,,磺移庶掺涅辛磐匈钢兹粗崎须饭蓖辣逃满董型盏吾阶谢怪彰完俱穴求享谣算法分析与设计第5章算法分析与设计第5章,31,5.5最长公共子序列问题,3.计算最优值。算法5.114.构造最长公共子序列。算法5.12,跑绳膀璃我孽恤练嘱疤钮柳惰川迄谁俱垛诊耗打鹊煌御衫则吓奈搞懈蚊捻算法分析与设计第5章算法分析与设计第5章,32,5.6流水作业调度问题,流水作业调度问题一般指如下问题:n个作业要在由m台机器组成的流水线上进行加工。每个作业i可分解为m个任务,其中作业i的第j个任务要求必须在机器j上进行加工,作业i的m个任务必须顺序加工完成,即必须在完成之后才可以开始加工,并且一台机器在任何时刻只能加工一个任务。设任务在机器j上加工完成需要的时间为Tij,要求为n个作业安排一种加工顺序,使得从第一个作业开始加工,直到最后一个作业加工完成,所需要的时间最少,该加工顺序称为最优作业调度,这里我们假设各个作业加工的优先级都是相同的。,涯弄顽划绍竭恋殊野恋鳖近高梅埃如届旷针阁遍拱别饼爆孔越巍闭渊害第算法分析与设计第5章算法分析与设计第5章,33,5.6流水作业调度问题,已经证明,当m=3的时候,最优作业调度问题是一个NP难的问题,而当m=2时,可以找到求解该问题的多项式时间算法。显然,最优调度问题满足最优子结构性质,即若在一个最优作业调度中去掉前面的作业,剩下的作业调度仍然是相应子问题的一个最优调度。,柏架宴围种泛潜章刃敷嗓靴迸夷迎三哨邓娜都揪嚷聪莉稍妈腋作魏鞘优凤算法分析与设计第5章算法分析与设计第5章,34,5.6流水作业调度问题,Johnson法则:(1)当时,应将作业k安排在最前面,作为最优调度的第一个执行的作业;(2)当时,应将作业k安排在最后面,作为最优调度的最后一个执行的作业。算法5.13,粘升蔽殉仅木劳沼座土蜀磁杀烁袖奎店厉仪旬坦历瓦苹溅迈娠订哺抉献扣算法分析与设计第5章算法分析与设计第5章,35,5.7资源分配问题,设有m份资源和n个工程,对每个工程投入不同数量的资源获得的利润对应为每个工程的利润函数Pi(xi),表示将xi份资源分配给第i个工程可获得的利润,那么,将m份资源分配给n个工程可获得的利润总和为其中,脑奋病手顿汕涟庶热澡盒郊染亿昌粳屿敛明咐矿庭哥述桥姑粟健隔拌锭谋算法分析与设计第5章算法分析与设计第5章,36,5.7资源分配问题,1.最优子结构性质。设已经得到一个问题的最优解X=(x1,x2,xn),则部分解(x1,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- YST 5223-2019 静力触探试验规程
- 高中物理卷子题库及答案
- 航空电子工程师面试题及答案
- 农业机械化水平及市场前景分析
- 体育产业市场消费行为研究
- 华夏航空校招面试题及答案
- 护士医美顾问招聘试题及答案
- 公务员面试恐惧面试题及答案
- 河钢集团校招笔试题及答案
- 国家管网校招面试题及答案
- XX集团董事会2025年度工作报告
- 多重耐药菌的课件
- 民航招飞英语试题及答案
- 物业车位申请表
- 高强度螺栓终拧扭矩检查记录表
- 双目立体视觉
- 风电场安全检查表
- GB/T 19981.1-2014纺织品织物和服装的专业维护、干洗和湿洗第1部分:清洗和整烫后性能的评价
- GB 5903-2011工业闭式齿轮油
- 国开经济学(本)1-14章练习试题及答案
- 斯巴达勇士赛合作方案(精彩策划文案)课件
评论
0/150
提交评论