最优化原理与无后效性
来源:互联网 发布:centos 6.5手动配置ip 编辑:程序博客网 时间:2024/06/04 18:15
上面已经介绍了动态规划模型的基本组成,现在需要解决的问题是:什么样的“多阶段决策问题”才可以采用动态规划的方法求解?
一般来说,能够采用动态规划方法求解的问题必须满足.最优化原理和.无后效性原则。
(1)动态规划的最优化原理。作为整个过程的最优策略具有如下性质:无论过去的状态和决策如何,对前面的决策所形成的当前状态而言,余下的诸决策必须构成最优策略。
可以通俗地理解为子问题的局部最优将导致整个问题的全局最优,即问题具有最优子结构的性质,也就是说一个问题的最优解只取决于其子问题的最优解,非最优解对问题的求解没有影响。在例题1最短路径问题中,A到E的最优路径上的任一点到终点E的路径也必然是该点到终点E的一条最优路径,满足最优化原理。下面来讨论另外一个问题。
【例题2】余数最少的路径。
如图所示,有4个点,分别是A、B、C、D,相邻两点用两条连线C2k,C2k-1(1≤k≤3)表示两条通行的道路。连线上的数字表示道路的长度。定义从A到D的所有路径中,长度除以4所得余数最小的路径为最优路径。 求一条最优路径。 |
由此可见,并不是所有的“决策问题”都可以用“动态规划”来解决,运用“动态规划”来处理问题必须满足最优化原理。
(2)动态规划的无后效性原则。所谓无后效性原则,指的是这样一种性质:某阶段的状态一旦确定,则此后过程的演变不再受此前各状态及决策的影响。也就是说,“未来与过去无关”,当前的状态是此前历史的一个完整总结,此前的历史只能通过当前的状态去影响过程未来的演变。具体地说,如果一个问题被划分各个阶段之后,阶段 I 中的状态只能由阶段 I+1 中的状态通过状态转移方程得来,与其他状态没有关系,特别是与未发生的状态没有关系,这就是无后效性。从图论的角度去考虑,如果把这个问题中的状态定义成图中的顶点,两个状态之间的转移定义为边,转移过程中的权值增量定义为边的权值,则构成一个有向无环加权图,因此,这个图可以进行“拓扑排序”,至少可以按他们拓扑排序的顺序去划分阶段。
看一看下面的两个具体例子。
【例题3】货郎担问题。对于平面给定的n个点,编程确定一条连结各点的、闭合的游历路线问题。图中给出了7个点的情况问题的解。
【例题4】旅行路线问题。在货郎担问题的基础上,若规定这种游历路线先从最左边开始,严格地由左至右到最右边的点,然后再严格地由右至左到出发点,求整个路程最短的路径长度。图中给出了7个点问题的解。
| |
那么,对于旅行路线问题来说,阶段[P1,P2]如果可以由阶段[Q1,Q2]推出,则必须满足的条件就是:Pl < Q1或P2 < Q2。例如,阶段[3,4]中的道路可以由阶段[3,5]中的道路加一条边4—5得出,而阶段[3,5]的状态却无法由阶段[3,4]中的状态得出,因为在旅行路线问题的要求中必须严格地由左到右来旅行。所以如果已经知道了阶段[3,4]中的状态,则阶段[3,5]中的状态必然已知,因此,问题满足无后效性原则,可以考虑用动态规划方法求解。
而对于货郎担问题,阶段与阶段之间没有什么必然的“顺序”。如道路{3—2—5—7,4—6—7}属于阶段[3,4],可由属于阶段[2,4]的道路{2—5—7,4—6—7}推出;而道路{2—3—6—7,4—5—7}属于阶段[2,4],可由属于阶段[3,4]的道路{3—6—7,4—5—7}推出。如果以顶点表示阶段,推出关系表示边,那么,阶段[3,4]与阶段[2,4]对应的关系就如图右所示。可以很清晰地看出,这两个阶段的关系是“有后效性”的。因为这个图中存在“环路”。对于这个问题是不能像上一个问题那样来解决的。 | |
- 最优化原理与无后效性
- 动态规划最优化原理与无后效性
- 什么是无后效性?
- 后及性、无前溯性与无后效性——马尔可夫过程“无后效性”回溯谈
- hdu 5035 指数分布无后效性
- hdu3466_01背包变形 理解无后效性
- uva 11552 无后效性的动态规划
- 动态规划中的最有子结构和无后效性
- 较难处理的背包问题+无后效性的深入理解(09年多校)(3008)
- 维护无后效性的技巧——立即计算代价
- HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)
- HDU 3466 Proud Merchants(变种01背包 + 无后效性)
- leetcode -- 392. Is Subsequence 【贪心算法 + 双指针 + 无后效性】
- hdu4433(三维DP,后效性)
- 裸KMP 最简单无优化版本
- 动态规划(4):消除后效性
- (动态规划DP)面试题:求数组中两个数的最大差值(只能下标大的减去下标小的)符合无后效性
- ListView原理与优化
- java 学习笔记 day02
- 一个使用数学技巧实现的数值交换
- MicroStation VBA程序软件发布注意事项
- 互联网垃圾与遗留系统
- 国外知名的源代码网站
- 最优化原理与无后效性
- AT指令详解
- CHECKBOX"全选"的JavaScript
- 我的C语言编程经验札记
- 利用GET方式实现Web登录认证的MIDLET
- Swing Control如何设置背景色
- 净利润
- 简单二级联动菜单实现
- AT指令详解——