动态规划之01背包概要课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《动态规划之01背包概要课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 规划 01 背包 概要 课件
- 资源描述:
-
1、1 学习要点学习要点:n理解动态规划算法的概念。理解动态规划算法的概念。n掌握动态规划算法的基本要素掌握动态规划算法的基本要素(1 1)最优子结构性质)最优子结构性质(2 2)重叠子问题性质)重叠子问题性质n掌握设计动态规划算法的步骤。掌握设计动态规划算法的步骤。(1)(1)找出找出最优解最优解的性质,并刻划其结构特征。的性质,并刻划其结构特征。(2)(2)递归地定义最优值。递归地定义最优值。(3)(3)以以自底向上自底向上的方式计算出最优值。的方式计算出最优值。(4)(4)根据计算最优值时得到的信息,构造最优解。根据计算最优值时得到的信息,构造最优解。2n动态规划法的定义:在求解问题中,对于
2、动态规划法的定义:在求解问题中,对于每一步决策每一步决策,列出各种,列出各种可能的局部解可能的局部解,再,再依据某种依据某种判定条件判定条件,舍弃那些肯定不能得,舍弃那些肯定不能得到最优解到最优解的局部解,在每一步都经过筛选,的局部解,在每一步都经过筛选,以每一步都是最优解来保证以每一步都是最优解来保证全局全局是最优解。是最优解。n动态规划通常应用于最优化问题,即动态规划通常应用于最优化问题,即做出做出一组选择以达到一个最优解一组选择以达到一个最优解。关键是存储。关键是存储子问题子问题的每一个解,以备它的每一个解,以备它重复出现重复出现。3n动态规划算法与分治法类似,其基本思想动态规划算法与分
3、治法类似,其基本思想也是将待求解问题分解成若干个子问题。也是将待求解问题分解成若干个子问题。n但是经但是经分解得到的子问题往往不是互相分解得到的子问题往往不是互相独立的独立的。不同子问题的数目常常只有多。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子项式量级。在用分治法求解时,有些子问题被重复计算了许多次。问题被重复计算了许多次。4n 问题问题4-14-1:存在一个数字三角形,从顶到底有多:存在一个数字三角形,从顶到底有多条路径,条路径,每一步可沿每一步可沿左斜线向下或垂直向下左斜线向下或垂直向下。路径。路径所经过的数字之和称为路径得分,要求求出最小路所经过的数字之和称为路径得分
4、,要求求出最小路径得分。径得分。n状态表示状态表示1-1 1-1 用一元组用一元组D D(X X)描述问题,)描述问题,D D(X X)表)表示从顶到达第示从顶到达第X X层的得分。但是一元组层的得分。但是一元组D D(X X)描述的子问题不能满足最优子)描述的子问题不能满足最优子结构性质,因为结构性质,因为D D(X X)的最优解可能)的最优解可能不包含子问题不包含子问题D D(X-IX-I)的最优解。这)的最优解。这样,动态规划方法是无法在状态表示样,动态规划方法是无法在状态表示1-11-1上应用。上应用。动态规划对状态表示的要求动态规划对状态表示的要求 5n状态表示状态表示 1-2 1-
5、2 用二元组用二元组D D(X X,Y Y)描述问题,)描述问题,D D(X X,Y Y)表示到达第)表示到达第X X层第层第Y Y个位置时的得分,那么个位置时的得分,那么 D D(X X,Y Y)的最优解包)的最优解包含了子问题含了子问题D D(X+1X+1,Y Y)或)或D D(X+1X+1,Y-1Y-1)的最优解,)的最优解,状态转移方程为状态转移方程为 :D D(X X,Y Y)=minD(X+1,Y),D(X+1,Y-1)+AX,Y=minD(X+1,Y),D(X+1,Y-1)+AX,Y D D(4 4,*)=A4,=A4,*6D(i,j)1234567816725668363455
6、3438123812D(X,Y)=min D(X+1,Y),D(X+1,Y-1)+AX,Y 7声明部分;声明部分;输入输入a数组数组,M行行N列;列;/下标从下标从1开始开始for(j=1;j=1;i-)/自底向上自底向上DP for(j=M-i+1,n=1;n=2*i;j+,n+)Dij=min(Di+1j,Di+1,j-1)+aij;coutmin(D1);/输出第一行最小值输出第一行最小值8D(i,j)123456781112343436566649136897D(X,Y)=min D(X-1,Y),D(X-1,Y+1)+AX,Y 9动态规划设计一般要经历以下几个步骤:动态规划设计一般要
7、经历以下几个步骤:1 1、划分、划分阶段阶段:按照问题的时间或空间特征,把问题:按照问题的时间或空间特征,把问题分为若干个阶段。分为若干个阶段。2 2、确定、确定状态状态:将问题发展到各个阶段时所处的各种:将问题发展到各个阶段时所处的各种客观情况用不同的状态表示出来。客观情况用不同的状态表示出来。3 3、确定决策并写出、确定决策并写出状态转移方程状态转移方程:因为决策和状态:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态,所以如果确定的状态和决策来导出本阶段的状态,所以如果确定了决策,状态转移方程也就可以写出
8、。了决策,状态转移方程也就可以写出。4 4、寻找、寻找边界条件边界条件:给出的状态转移方程是一个递推:给出的状态转移方程是一个递推式,需要一个式,需要一个递推的终止条件或边界条件递推的终止条件或边界条件。5 5、程序设计实现:动态规划的主要难点在于理论上、程序设计实现:动态规划的主要难点在于理论上的设计,一旦设计完成,实现部分就会非常简单。的设计,一旦设计完成,实现部分就会非常简单。101 1、阶段:把问题分成几个相互联系的有顺序的几、阶段:把问题分成几个相互联系的有顺序的几个个环节环节,这些环节即称为阶段。,这些环节即称为阶段。2 2、状态:某一阶段的出发、状态:某一阶段的出发位置位置称为状
9、态。称为状态。3 3、决策:从某阶段的一个状态演变到下一个阶段、决策:从某阶段的一个状态演变到下一个阶段某状态的某状态的选择选择。4 4、状态转移方程:前一阶段的终点就是后一阶段、状态转移方程:前一阶段的终点就是后一阶段的起点,前一阶段的决策选择导出了后一阶段的状的起点,前一阶段的决策选择导出了后一阶段的状态,这种关系描述了由态,这种关系描述了由k k阶段到阶段到k+1k+1阶段状态的演变阶段状态的演变规律,称为状态转移方程。规律,称为状态转移方程。11n动态规划与一般搜索技术最大不同的地方就是动态规划与一般搜索技术最大不同的地方就是记录了已求解过的问题的结果。记录了已求解过的问题的结果。n子
10、问题的记录:子问题的记录:q最重要、最为复杂最重要、最为复杂q状态表示状态表示q用一个数、一组数或一个向量来实现状态表示用一个数、一组数或一个向量来实现状态表示n子问题结果的记录子问题结果的记录12n找出最优解的性质,并刻划其结构特征。找出最优解的性质,并刻划其结构特征。n递归地定义最优值递归地定义最优值。n以以自底向上自底向上的方式计算出最优值。的方式计算出最优值。n根据计算最优值时得到的信息,构造最优根据计算最优值时得到的信息,构造最优解。解。在动态规划中,可将一个问题的解决方案视为一在动态规划中,可将一个问题的解决方案视为一系列决策的结果。不同的是,在贪婪算法中,每系列决策的结果。不同的
11、是,在贪婪算法中,每采用一次贪婪准则便做出一个不可撤回的决策,采用一次贪婪准则便做出一个不可撤回的决策,而在动态规划中,还要考察每个最优决策序列中而在动态规划中,还要考察每个最优决策序列中是否包含一个最优子序列。是否包含一个最优子序列。13动态规划设计的一般模式:动态规划设计的一般模式:for k=阶段最小值阶段最小值 to 阶段最大值阶段最大值 do /顺推每一个阶段顺推每一个阶段 for i=状态最小值状态最小值 to 状态最大值状态最大值 do /枚举阶段枚举阶段k的每一个状态的每一个状态 for j=决策最小值决策最小值 to 决策最大值决策最大值 do /枚举阶段枚举阶段k中状态中状
12、态i可选择的每一种决策可选择的每一种决策fik=min(max)fik-1+aik-1,jk-1|ik-1通过决策通过决策jk-1可达可达ik14某个问题的最优解包含着其子问题的最优解某个问题的最优解包含着其子问题的最优解。这种性。这种性质称为质称为最优子结构性质最优子结构性质。例如图中,若路线例如图中,若路线I和和J是是A到到C的最的最优路径,则根据最优化原理,路线优路径,则根据最优化原理,路线J必是从必是从B到到C的最优路线。的最优路线。用反证法证明:假设有另一路径用反证法证明:假设有另一路径J是是B到到C的最优路径,则的最优路径,则A到到C的的路线取路线取I和和J比比I和和J更优,矛盾。
展开阅读全文