动态规划个性化优化.pptVIP

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态规划的优化 优化势在必行。 一些适用一类状态转移方程的优化:利用四边形不等式、函数的凸性等。 大多数状态转移方程的求解需要采用“个性化”的优化手段。 动态规划的优化 优化的关键:减少冗余。 问题一——书稿复制(cerc98) n本书,编号1,2,…,n。每本pi页。 全部分给m个抄写员。每人分到顺序连续的若干本,每本只分给一人。 求一种方案,使每人分到的页数和的最大值为最小。 例子:n=9,m=3 100 200 300 400 500 / 600 700 / 800 900 问题二——工作分批(ioi2002) n项工作,编号为1,2,…,n。给定每项工作花费系数Fi和所需时间Ti。 可按序分成任意多批依次执行,每批包含编号连续的工作。 第一批开始于时间0。若某批包含工作i,i+1,…,j,开始于时间t,则该批中所有工作的完成时间是t+s+(Ti+Ti+1+…+Tj)。这也是下一批的开始时间。 一个工作的花费是其完成时间*Fi,求最小可能的总花费。 例子:n=5,s=1 (T1,T2,…,T5)=(1,3,4,2,1) (F1,F2,…F5)=(3,2,3,3,4)  可分成三批{1,2}{3}{4,5},完成时间为(5,5,10,14,14),总花费153。 问题三——元件折叠 线性排列的元件C1,C2,…,Cn。Ci宽wi,高hi。 要折叠成宽度为W的若干行(即每行元件总宽度≤W),每行高度为该行中最高元件高度。行与行之间为布线通道,若Ci与Ci+1之间折叠,则它们所在行之间布线高度为li,ln=0。 求最小总高度。进入 “通用”的解法 共同点:给定一个序列,求一种满足一些条件的最优化划分,使题中定义的某种“花费”最小。 面对这三个相似的问题,我们大多会采用模式化的方法:  以序列每个数为阶段    以此前的每个数为最近的划分点      按状态转移方程判断  若给定划分的区间数目,则增加一维。 问题一O(n3),问题二O(n2) ,问题三O(n2)。 问题一——方程 f(i,j):pi+pi+1+…+pj。 g(i,k):在将[i,n]中的数分成k份的最优划分中,花费最大区间的花费值。 问题一——分析(1) 如果 j是[i+1,n]的第一个划分点(即动态规划的决策) [i,j]的花费不大于[j+1,n]中花费最大区间的花费值 那么:j也是[i,n]的第一个划分点。 性质一:[i+1,j]是g(i+1,k)对应的分划中的第一个区间,如果f(i,j) ≤g(j+1,k-1)那么g(i,k)=g(j+1,k-1),即g(i,k)=g(i+1,k)。 问题一——分析(2) 转折点是第一个这样的划分点j,它使[i,j]的花费为[i,n]中所有区间花费的最大值。 形式化定义为:  令0≤i≤n,2≤k≤m,i ≤si,k≤n,如果f(i,si,k-1)g(si,k,k-1)且  f(i,si,k)≥g(si,k+1,k-1),则si,k是一个“转折点”。 性质二:对0≤i≤n,2≤k≤m, 转折点唯一存在 问题一——分析(3) 性质三:对k≥2,  g(i,k)=min{f(i,si,k),g(si,k,k-1)} 最优决策是转折点或它之前的一点 问题一——分析(4) 计算g(i,k): [i+1,j]是g(i+1,k)对应划分的第一个区间。 f(i,j)≤g(j+1,k-1)则根据性质一有g(i,k)=g(j+1,k-1); 否则f(i,j)g(j+1,k-1),又根据si,k定义及性质二,有i≤si,k≤j,从而容易确定si,k,继而应用性质三。 问题一——算法分析 for i:=n downto 1 do g(i,1):=f(i,n); {边界条件} for k:=2 to m do 计算边界g(n-k+1,k); j:=n-k+1; for i:=n-k downto m-k+1 do if f(I,j)=g(j+1,k-1) then g(i,k):=g(j+1,k-1){性质一} else if f(i,i)=g(i+1,k-1) then 【 g(i,k):=f(i,i); j:=i 】 else 【while f(i,j-1)=g(j,k-1) do j:=j-1; {定si,k} g(i,k):=min{f(i,j),g(j,k-1)} {性质三} if g(i,k)=g(j,k-1) then j:=j-1】 end_for_k 外层每循环一次,j递减的工作量是O(n)。因此

您可能关注的文档

文档评论(0)

nnh91 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档