背包问题之动态规划法ppt课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设图G=(V, E)是一个带权有向连通图,如果把顶点集合V划分成 k个互不相交的子集Vi(2≤k≤n, 1≤i≤k),使得E中的任何一 条边(u, v),必有u∈Vi,v∈Vi+m(1≤i<k, 1<i+m≤k),则称 图G为多段图,称s∈V1为源点,t∈Vk为终点。多段图的最短路 径问题是求从源点到终点的最小代价路径。
由于多段图将顶点划分为k个互不相交的子集,所以,多段 图划分为k段,每一段包含顶点的一个子集。根据多段图的定义, 每个子集中的顶点互不邻接。不失一般性,将多段图的顶点按 照段的顺序进行编号,同一段内顶点的相互顺序无关紧要。假 设图中的顶点个数为n,则源点s的编号为0,终点t的编号为n-1, 并且,对图中的任何一条边(u, v),顶点u的编号小于顶点v的编 号。
5
对多段图的边(u, v),用cuv表示边上的权值,将从源点s 到终点t的最短路径记为d(s, t),则从源点0到终点9的最 短路径d(0, 9)由下式确定:
d(0, 9)=min{c01+d(1, 9), c02+d(2, 9), c03+d(3, 9)} 这是最后一个阶段的决策,它依赖于d(1, 9)、
3
4
02
3
9
18
6
2
7 8
4
37
45
6
8
56
77 9
6
83
65
图1 一个多段图
4
设G是一个有向加权图,则G从顶点i到顶点j之间的 最短路径问题满足最优性原理。 证明:设i~ip~iq~j是一条最短路径,但其中子路径 ip~iq~j不是最优的, 假设最优的路径为ip~iq’~j, 则我们重新构造一条路径:i~ip~iq’~j 显然该路径长度小于i~ip~iq~j,与i~ip~iq~j 是顶 点i到顶点j的最短路径相矛盾. 所以,原问题满足最优性原理。
的计算结果: 6
d(4, 9)=min{c47+d(7, 9), c48+d(8, 9)} d(5, 9)=min{c57+d(7, 9), c58+d(8, 9)} d(6, 9)=min{c67+d(7, 9), c68+d(8, 9)}
这一阶段的决策依赖于d(7, 9)和d(8, 9)的计算,而d(7, 9)和 d(8, 9)可以直接获得(括号中给出了决策产生的状态转移):
11
1.4 最优性原理
作为整个过程的最优策略具有如下性质:无论过去的 状态和决策如何,对前面的决策所形成的当前状态而 言,余下的诸决策必须构成最优策略。
可以通俗地理解为子问题的局部最优将导致整个问题 的全局最优,即问题具有最优子结构的性质,也就是 说一个问题的最优解只取决于其子问题的最优解,非 最优解对问题的求解没有影响。在 例题1 最短路径 问题中,A到E的最优路径上的任一点到终点E的路径 也必然是该点到终点E的一条最优路径,满足最优化 原理。下面来讨论另外一个问题。
d(2, 9)和d(3, 9)的计算结果,而
d(1, 9)=min{c14+d(4, 9), c15+d(5, 9)}
d(2, 9)=min{c24+d(4, 9), c25+d(5, 9), c26+d(6, 9)}
d(3, 9)=min{c35+d(5, 9), c36+d(6, 9)} 这一阶段的决策又依赖于d(4, 9)、d(5, 9)和d(6, 9)
d(7, 9)=c79=7(7→9) d(8, 9)=c89=3(8→9)
再向前推导,有:
d(6, 9)=min{c67+d(7, 9), c68+d(8, 9)}=min{6+7, 5+3}=8(6→8) d(5, 9)=min{c57+d(7, 9), c58+d(8, 9)}=min{8+7, 6+3}=9(5→8) d(4, 9)=min{c47+d(7, 9), c48+d(8, 9)}=min{5+7, 6+3}=9(4→8)
d(0, 9)=min{c01+d(1, 9), c02+d(2, 9), c03+d(3, 9)}=min{4+17, 2+15, 3+13}=16(0→3) 得到最短路径为0→3→5→8→9,长度为16。
8
1.2 什么是动态规划
在上例的多阶段决策问题中,各个阶段采取的 决策,一般来说是与时间有关的,个决策序列就是在变 化的状态中产生出来的,故有“动态”的含义,称这 种解决多阶段决策最优化问题的方法为动态规划方法。
10
1.3 动态规划适于解决什么样的问题
准确地说,动态规划不是万能的,它只适于解决 一定条件的最优策略问题。 或许,大家听到这个结 论会很失望:其实,这个结论并没有削减动态规划的光 辉,因为属于上面范围内的问题极多,还有许多看似不 是这个范围中的问题都可以转化成这类问题。
上面所说的“满足一定条件”主要指下面两点: (1)状态必须满足最优化原理; (2)状态必须满足无后效性。 这条特征说明什么呢?它说明动态规划适于解决当前 决策和过去状态无关的问题。状态,出现在策略的任何 一个位置,它的地位都是相同的,都可以实施同样的决 策。这就是无后效性的内涵。
9
动态规划是运筹学的一个分支。与其说动态规 划是一种算法,不如说是一种思维方法来得更贴切。 因为动态规划没有固定的框架,即便是应用到同一道 题上,也可以建立多种形式的求解算法。许多隐式图 上的算法,例如求单源最短路径的Dijkstra算法、广 度优先搜索算法,都渗透着动态规划的思想。
因此,动态规划不像深度或广度优先那样可以 提供一套模式,需要的时候,取来就可以使用;它必 须对具体问题进行具体分析处理,需要丰富的想象力 去建立模型,需要创造性的思想去求解。
动态规划
1. 概述 2. 组合问题中的动态规划法 3. 图问题中的动态规划法 4. 查找问题中的动态规划法
1
1. 概 述
1.1 例题(多段图) 1.2 什么是动态规划 1.3 动态规划适于解决什么样的问题 1.4 最优性原理 1.5 无后效性原则 1.6 动态规划法的设计思想
2
1.1 多段图的最短路径问题
7
d(3, 9)=min{c35+d(5, 9), c36+d(6, 9)}=min{4+9, 7+8}=13(3→5)
d(2, 9)=min{c24+d(4, 9), c25+d(5, 9), c26+d(6, 9)}=min{6+9, 7+9, 8+8}=15(2→4)
d(1, 9)=min{c14+d(4, 9), c15+d(5, 9)}=min{9+9, 8+9}=17(1→5)
相关文档
最新文档