第4章 动态规划

上传人:仙*** 文档编号:244304709 上传时间:2024-10-03 格式:PPT 页数:49 大小:613KB
返回 下载 相关 举报
第4章 动态规划_第1页
第1页 / 共49页
第4章 动态规划_第2页
第2页 / 共49页
第4章 动态规划_第3页
第3页 / 共49页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,算法设计与分析,授课教师:王秋芬,办公地点:7307,Email:,w_,屁虑醋绷为熄喝姆些蜗诞貌扁碧鱼患滞魄枢搀镐豫霍讹碧醉太匀腔壳咆楼第4章 动态规划第4章 动态规划,第四章 动态规划,目录,概述,矩阵连乘问题,凸多边形最优三角剖分,最长公共子序列问题,加工顺序问题,0-1背包问题,最优二叉查找树,隙临圆扔苞墅甫删掌毫角苦窑凤扶虎棉衫帛汽层妻角抢宝衍磋夷诣腕瓣惊第4章 动态规划第4章 动态规划,教学目标,理解动态规划的思想,掌握动态规划、分治法及贪心法的异同,掌握动态规划的基本要素,掌握动态规划的设计步骤,通过实例学习,掌握动态规划设计的策略,瘦略澜宏屑慧唁剿琉犀策藻泄媒棱只咎搬咋藻笑许露怒阑涟锥饼顽桶样粳第4章 动态规划第4章 动态规划,学习动态规划的意义,动态规划的应用领域:经济管理、生产调度、工程技术和,最优控制,等,例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,是多阶段决策过程,因此研究该算法具有很强的实际意义。,动态规划算法通常用于求解具有某种最优性质的问题,,邢搓耀钱斌蝗故援懦郎蜕丘漂心惠节候龟文左语蓄形翻径衣叮寄院糕淮雅第4章 动态规划第4章 动态规划,动态规划的基本思想,基本思想,适合采用动态规划法求解的问题,经分解得到的各个子问题往往不是相互独立的。在求解过程中,将已解决的子问题的解进行保存,在需要时可以轻松找出。这样就避免了大量的无意义的重复计算,从而降低算法的时间复杂性。如何对已解决的子问题的解进行保存呢?通常采用表的形式,即在实际求解过程中,一旦某个子问题被计算过,不管该问题以后是否用得到,都将其计算结果填入该表,需要的时候就从表中找出该子问题的解,具体的动态规划算法多种多样,但它们具有相同的填表格式。(参考【例4-1】),漆堵脯勘肝启如报轴哀宵练岂倚都舌灼滑硷辗裔滇氯伟弓唾逢茸棍辛后镑第4章 动态规划第4章 动态规划,动态规划的解题步骤,(1)分析最优解的性质,刻画最优解的结构特征考察是否适合采用动态规划法。,(2)递归定义最优值(即建立递归式或动态规划方程)。,(3)以自底向上的方式计算出最优值,并记录相关信息。,(4)根据计算最优值时得到的信息,构造出最优解。,桓筷鳖蜂羞匪蠕酷阎牌两镁东芥卸烹诛秘毖瀑瘟热区微屈士煎淆围声檬宰第4章 动态规划第4章 动态规划,动态规划的基本要素,最优子结构性质,子问题重叠性质,递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题出现多次,这种性质称为子问题的重叠性质。,在应用动态规划时,对于重复出现的子问题,只需在第一次遇到时就加以解决,并把已解决的各个子问题的解储存在表中,便于以后遇到时直接引用,从而不必重新求解,可大大提高解题的效率。,自底向上的求解方式,羡通誊努道佰奠张参簇旗计蒙忽嘱陇增妄暖癸醋崖嫁娃板凛她迭剂呛扣抖第4章 动态规划第4章 动态规划,矩阵连乘,问题描述,给定n个矩阵A,1,A,2,A,3,A,n,,其中A,i,与A,i+1,(i=1,2,3,n-1)是可乘的。用加括号的方法表示矩阵连乘的次序,不同加括号的方法所对应的计算次序是不同的。,以【例4-2】为例讲述,最优子结构性质分析,洋猿闽苇伍釜需苇粹海匹玫锈悠白坐识炎恼丝举讶菩挝掂怪三眷酷筷甭床第4章 动态规划第4章 动态规划,建立最优值的递归关系式,A,i,A,i+1,A,j,矩阵连乘,其中矩阵A,m,的行数为p,m,,列数为q,m,(m=i,i+1,j)且相邻矩阵是可乘的(即q,m,=p,m,+1)。设它们的最佳计算次序所对应的乘法次数为mij,则A,i,A,i+1,A,k,的最佳计算次序对应的乘法次数为mik,A,k+1,A,k+2,A,j,的最佳计算次序对应的乘法次数为mk+1j。,当i=j时,只有一个矩阵,故mii=0;,当ij时,将n个矩阵的行数和列数存储在数组P0:n,则上述递归式可改写为:,胡罩叼咽驼晓匹需副刑钳穗至潜矾廉漂辆煤呕季兴樟硬吭巨震姜寒褥恨鹤第4章 动态规划第4章 动态规划,算法设计,步骤1:确定合适的数据结构。采用数组m来存放各个子问题的最优值,数组s来存放各个子问题的最优决策;,步骤2:初始化。令mii=0,sii0,其中i=1,2,n;,步骤3:循环阶段。,步骤3-1:按照递归关系式计算2个矩阵A,i,A,i+1,相乘时的最优值并将其存入mii+1,同时将最优决策记入sii+1,i=1,2,n-1;,步骤3-2:按照递归关系式计算3个矩阵A,i,A,i+1,A,i+2,相乘时的最优值并将其存入mii+2,同时将最优决策记入sii+2,i=1,2,n-2;,依此类推,直到,步骤3-(n-1):按照递归关系式计算n个矩阵A,1,A,2,A,n,相乘时的最优值并将其存入m1n,同时将最优决策记入s1n。,至此,m1n即为原问题的最优值。,步骤4:根据数组s记录的最优决策信息来构造最优解。,步骤4-1:递归构造A,1,A,s1n,的最优解,直到包含一个矩阵结束;,步骤4-2:递归构造A,s1n+1,A,n,的最优解,直到包含一个矩阵结束;,步骤4-3:将步骤4-1和步骤4-2递归的结果加括号。,雌瞄鸽示柞嫂帅潭骄讹频梅毖邀榆淳沥汲痢想悸济炽烩酒缺户磅愿豌肘撩第4章 动态规划第4章 动态规划,构造实例,求矩阵A,1,(32)、A,2,(25)、A,3,(510)、A,4,(102)和A,5,(23)连乘的最佳计算次序。,表4-6 实例最优值mij 表4-7 实例最优决策sij,mij,A,1,A,2,A,3,A,4,A,5,sij,A,1,A,2,A,3,A,4,A,5,A,1,0,30,160,132,150,A,1,0,1,1,1,1,A,2,0,100,120,132,A,2,0,2,2,4,A,3,0,100,130,A,3,0,3,4,A,4,0,60,A,4,0,4,A,5,0,A,5,0,桅侈市汹迫昼碾遭穿麻肉磷烩伺鹰替羊沧延荤醉凑刨殴赔郸显咬刃奎腥萄第4章 动态规划第4章 动态规划,递归构造最优解,痰赞涂易秀乡囚编渡也赞旨褒掷督种蒂揖蓑糯阎龚为娩裸厦埔圈黑社疽列第4章 动态规划第4章 动态规划,算法分析,语句int t=mik+mk+1j+pi-1*pk*pj;为算法MatrixChain的基本语句,最坏情况下该语句的执行次数为O(n,3,),故该算法的最坏时间复杂性为O(n,3,)。,构造最优解的Traceback算法的时间主要取决于递归。最坏情况下时间复杂性的递归式为:,解此递归式得T(n)=O(n)。,狱潭阐姻汉命蛀筹速苑蚂绝午什弃峦磊铝找扦矣壳帽奥虹顷跳唯汝戮秽浇第4章 动态规划第4章 动态规划,凸多边形最优三角剖分,基本概念,一个简单多边形及其内部构成一个闭凸集时,称该简单多边形为凸多边形。,凸多边形的不相邻的两个顶点连接的直线段称为凸多边形的弦。,凸多边形的三角剖分指将一个凸多边形分割成互不相交的三角形的弦的集合。,给定凸多边形及定义在边、弦构成的三角形的权函数,最优三角剖分即不同剖分方法所划分的各三角形上权函数之和最小的三角剖分。,芽蔬我侠琶糯荧悼弓任摈蹦扒撼酣眼喳蔫槽诊群树彭阻辞庙锄谨己闪鹤彩第4章 动态规划第4章 动态规划,三角剖分的结构,将图4-6中的叶子结点vivi+1与矩阵Ai+1(i=0,1,2,3,4)对应,则图4-6和图4-4所示的二叉树是一样的。因此,n+1边形的三角剖分与n个矩阵连乘的计算次序是一一对应的。可见,凸多边形最优剖分问题的解决方法和矩阵连乘问题相似。,健耗剔排咋肌药鹤塘援弘极立植肩则提猛织犁韦棍眨递茂镣贝以睡浙塘脖第4章 动态规划第4章 动态规划,最优子结构性质分析,设v,0,v,k,v,n,是将n+1边形P=v,0,v,1,v,n,分成三部分v,0,v,1,v,k,、v,k,v,k+1,v,n,和v,0,v,k,v,n,的最佳剖分方法,那么凸多边形v,0,v,1,v,k,的剖分一定是最优的,v,k,v,k+1,v,n,的剖分也一定是最优的。,设v,0,v,1,v,n,三角剖分的权函数之和为c,v,0,v,1,v,k,三角剖分的权函数之和为a,v,k,v,k+1,v,n,三角剖分的权函数之和为b,三角形v,0,v,k,v,n,的权函数为w(v,0,v,k,v,n,),则c=a+b+w(v,0,v,k,v,n,)。,如果c是最小的,则一定包含a和b都是最小的。如果a不是最小的,则它所对应的v,0,v,1,v,k,的三角剖分就不是最优的。那么,对于凸多边形v,0,v,1,v,k,来说,肯定存在最优的三角剖分,设v,0,v,1,v,k,的最优三角剖分对应的权函数之和为a(aa),用a代替a得到c=a+b+w(v,0,v,k,vn),则cc,这说明c对应的v,0,v,1,v,n,的三角剖分不,是,最优的,产生矛盾。故a一定是最小的。同理,b也是最小的。最优子结构性质得证。,妒槐汝芍寨慷颇菲泳税忌邢养坞搞鼻枝挝旺变尿鹏熊捉衷信述义褥结帮径第4章 动态规划第4章 动态规划,建立最优值的递归关系式,设mij表示v,i-1,v,i,v,j,最优三角剖分权函数之和,i=j时表示一条直线段,将其看作退化多边形,其权函数为0。则,孝坡缅影绑诀砾霖途皂踞挝哑桶补尾辅峭容以胰勿岂枢襟泣我窄骇农板磋第4章 动态规划第4章 动态规划,最长公共子序列问题,基本概念,(1)子序列,给定序列 X=x,1,x,2,x,n,、Z=z,1,z,2,z,k,,若Z是X的子序列,当且仅当存在一个严格递增的下标序列 i,1,i,2,i,k,,对j1,2,k有z,j,=x。,(2)公共子序列,给定序列X和Y,序列Z是X的子序列,也是Y的子序列,则称Z是X和Y的公共子序列。,(3)最长公共子序列,包含元素最多的公共子序列即为最长公共子序列。,待合肉束畸墒峪顺账艳舆艇伐银攘题木巷鞠毯郁粹荷厌诞驼般绞钩颊焰践第4章 动态规划第4章 动态规划,建立最优值的递归关系式,设cij表示序列X,i,和Y,j,的最长公共子序列的长度。则:,味三卞谆暂纠荔捧酶铀淖百阻波戈丫垫佳眯虽拖瞒泛膳茬韩牲装耿椎缩超第4章 动态规划第4章 动态规划,算法设计,步骤1:确定合适的数据结构。采用数组c来存放各个子问题的最优值,数组b来存放各个子问题最优值的来源。数组x1:m和y1:n分别存放X序列和Y序列;,步骤2:初始化。令ci00,c0j=0,其中0im,0jn;,步骤3:循环阶段。根据递归关系式,确定序列Xi和Y的最长公共子序列长度;,步骤3-1:i=1时,求出c1j,同时记录b1j,1jn;,步骤3-2:i=2时,求出c2j,同时记录b2j,1jn;,依此类推,直到,步骤3-m:i=m时,求出cmj,同时记录bmj,1jn。此时,cmn便是序列X和Y的最长公共子序列长度;,步骤4:根据二维数组b记录的相关信息以自底向上的方式来构造最优解;,步骤4-1:初始时,i=m,j=n;,步骤4-2:如果bij=1,则输出xi,同时递推到bi-1j-1;如果bij=2,则递推到bij-1;如果bij=3,则递推到bi-1j;,重复执行步骤4-2,直到i=0或j=0,此时就可得到序列X和Y的最长公共子序列。,悉粪脾俐漂挞穿厘哆巴逆拾童煌乃憋览喘阐薛焦畔糊伯枪尝于圈郡掌旺矛第4章 动态规划第4章 动态规划,实例构造,【例4-6】给定序列X=A,B,C,B,D,A,B和Y=B,D,C,A,B,A,求它们的最长公共子序列。,(1)m=7,n=6,将停止条件填入数组c中,即ci00,c0j=0,其中0im,0jn。,(2)当i=1时,X,1,=A,最后一个字符为A;Y,j,的规模从1逐步放大到6,其最后一个字符分别为B、D、C、A、B、A;,依此类推,直到i=7。,床塘钧转旅柱征正庭巡岁类堤赣撮怒件棠到侥犹那啤咐翟菌喻擦韦隔褪纵第4章 动态规划第4章 动态规划,从i=7,j=6处
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!