- 7
- 0
- 约7.15千字
- 约 31页
- 2018-05-14 发布于四川
- 举报
算法分析与设计 第3章 动态规划 算法总体思想 算法基本步骤 矩阵连乘问题 导弹拦截问题 最长公共子序列 0-1背包问题 算法总体思想 计算斐波那契数列 例2 Fibonacci数列 无穷数列0,1,1,2,3,5,8,13,21,34,55,…,被称为Fibonacci数列。它可以递归地定义为: 动态规划基本步骤 找出最优解的性质,并刻划其结构特征。 递归地定义最优值。 以自底向上的方式计算出最优值。 根据计算最优值时得到的信息,构造最优解。 矩阵连乘问题 矩阵连乘问题 矩阵连乘问题——分析最优子结构 特征:计算A[i:j]的最优次序所包含的计算矩阵子链 A[i:k]和A[k+1:j]的次序也是最优的。 矩阵连乘计算次序问题的最优解包含着其子问题的最优解。这种性质称为最优子结构性质。问题的最优子结构性质是该问题可用动态规划算法求解的显著特征。 矩阵连乘问题——建立递推关系 矩阵连乘问题——计算最优值 用动态规划法求最优解 矩阵连乘问题——构造最优解 void Traceback(int i,int j,int [][]s) { if(i==j)return; Traceback(i,s[i][j],s); Traceback(s[i][j]+1,j,s); cout“让 A”i; cout和 A(s[i][j]+1)相乘endl } 动态规划算法的基本要素 一、最优子结构 动态规划算法的基本要素 二、重叠子问题 动态规划算法的基本要素 三、备忘录方法 矩阵连乘的备忘录解决方法 m?0 private static int lookupChain(int i, int j) { if (m[i][j] 0) return m[i][j]; if (i == j) return 0; int u = lookupChain(i+1,j) + p[i-1]*p[i]*p[j]; s[i][j] = i; for (int k = i+1; k j; k++) { int t = lookupChain(i,k) + lookupChain(k+1,j) + p[i-1]*p[k]*p[j]; if (t u) { u = t; s[i][j] = k;} } m[i][j] = u; return u; } 0-1背包问题 0-1背包问题——求最优解 Void knapsack(int []v,int []w,int c,int [][]m) { int n=v.length-1; int jMax=math.min(w[n]-1,c); for(int j=0;j=jMax;j++) m[n][j]=0; for(int i=n-1;i1;i--){ jMax=math.min(w[i]-1,c) for(j=0;jjMax;j++) m[i][j]=max[i+1][j]; for(j=w[i];j=c;j++) m[i][j]=max(m[i+1][j],m[i+1][j-w[i]]+v[i]);} m[1][c]=m[2][c]; if(cw[1]) m[1][c]=max(m[1][c],m[2][c-w[1]]+v[1]); } 0-1背包问题——构造最优解 Void traceback(int [][]m,int[]w,int c,int []x) { int n=w.length-1; for(int i=1;in;i++) if(m[i][c]==m[i+1][c]) x[i]=0; else{x[i]=1;c=c-w[i];} x[n]=(m[n][c]0)?1:0; } 算法改进 典型例子(一) 算法改进 典型例子(二) 算法复杂度分析 导弹拦截问题 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统,但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹袭击,由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度,计算这套系统最多能拦截多少导弹,并依次输出被拦截的导弹飞来时候的高度。 * * 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题 n T(n/2) T(n/2) T(n/2) T(n/2) T(n) =
您可能关注的文档
- 输煤系统新员工培训课件.01.(2010.10.03).ppt
- 电路(课件).ppt
- 司汤达《红与黑》.ppt
- 第5单元-分数的意义和性质复习.ppt
- 门店销售训练.ppt
- 我的 材料作文之立意.ppt
- 宇宙中的地球与太阳的影响.ppt
- 汽化和液化_(沸腾)_me.ppt
- 第十二章 公司债券.ppt
- SPSS课件02数据的收集.ppt
- 2026-2030中国二硫化碳行业营销战略与投资运作模式分析研究报告.docx
- 公司铣粉工岗位现场作业操作规程.docx
- 织袜工岗位职业健康安全规程.docx
- 2026-2030冻熏三文鱼行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- C语言程序设计2025模拟卷含答案冲刺.docx
- 2026-2030中国冷镀锌角钢行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 硅烷偶联剂生产工岗位职业健康及安全操作规程.docx
- 2025年法律职业资格考试模拟考试.docx
- 2025至2030中国再生PET行业市场深度研究与战略咨询分析报告.docx
- 2026-2030人造板行业市场发展分析及竞争格局与投资战略研究报告.docx
原创力文档

文档评论(0)