- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动规专题
问题1,可分四段分别考虑,每段子问题是互相独立
的,没有任何关联.只是它们先后有顺序,
合起来刚好是原问题而已.每段最少车费相
加即是总车费最少,这是贪心策略.
问题2,问题2就没有这么简单了,要考虑杭州、上
海、南京都存在转车不转车的各种情况,这
就复杂起来了.如各小站也允许转车,那就
更复杂了. ; 问题2复杂化在于,要考虑的各个子问题可能不独立的,如衢州到上海,杭州到南京,衢州到南京,这三个子问题有杭州到上海这个公共部分,这种子问题不独立,用贪心求解会有反例,求出的答案往往是不对的.
;;分析
我们用二维数组f[I,j]来表示第I行第J列这个点到最后一行的最优解,很容易地能够写出一个递推式:
f(i, j)=a[i, j] + min{f(i-1, j)+f(i-1, j + 1)}
可以用双重循环一层一层往上做,做到顶端时答案就求出来了, 即f[I,j]。
这是很典型从底向上层层递推的方法。
; 当然我们也可以从最上面一层一层往下做,稍为麻
烦一点,但f[I,j]的意思变了,效果也差不了多少。
这类问题逆向递推更适合,也更好理解.
如果我们要从正面思路分析这个问题,从顶向下
则更容易想到的是一个非常简单的递归过程 :
f1:=f(i-1,j+1); f2:=f(i-1,j);
if f1f2 then f:=f1+a[i,j] else f:=f2+a[i,j];
显而易见,这个算法就是最简单的搜索算法。时间
复杂度为2n,当n=100, 2n一个天文数字,明显是会超
时的。
; 分析一下搜索的过程,实际上,很多调用都是
不必要的,也就是把做过的情况反复去做了。
为了避免浪费,我们把做过的情况存在一个
opt数组中保存起来。
搜索时,每产生一个f(i, j),就将f(i, j)的值放入opt[[I,j]中,以后再次去做f(i, j)的时候,直接从opt[i, j] 中取来就可以了。
象这种在搜索过程中,用数组将做过的情况记录下来,避免了再次搜索重复去做,叫做记忆化搜索。这种技巧在竞赛中经常被使用。
;动态规划含义
在现实生活中,有一类活动的过程,由于它的特殊性,可将求解过程分成若干个互相联系的阶段,在它的每一阶段都要做出决策,从??使整个过程达到最好的活动效果。因此,各个阶段决策确定后,组成一个决策序列,因而也就确定了整个过程的一条活动路线。这种把一个问题看作是一个前后关联具有链状结构的多阶段过程,就称为多阶段决策过程,这种问题称为多阶段决策问题。
; 在多阶段决策问题中,各个阶段采取的决策,一般来说是和某种顺序(时间)有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义,我们称这种解决多阶段决策最优化的过程为动态规划。
动态规划的显著特征是:
有边界条件,最优子结构,无后效性
且一般划分为很明显的阶段. 动态规划一般还存在一条或多条状态转移方程.
;名词解释: 多阶段决策问题 : 如果一类活动过程可以分为若干个互相联系的阶段,在每一个阶段都需作出决策(采取措施),一个阶段的决策确定以后,常常影响到下一个阶段的决策,从而就完全确定了一个过程的活动路线,则称它为多阶段决策问题。 各个阶段的决策构成一个决策序列,称为一个策略。每一个阶段都有若干个决策可供选择,因而就有许多策略供我们选取,对应于一个策略可以确定活动的效果,这个效果可以用数量来确定。策略不同,效果也不同,多阶段决策问题,就是要在可以选择的那些策略中间,选取一个最优策略,使在预定的标准下达到最好的效果.;决策: 当前状态通过决策,回到了以前状态.可见决策其实就是状态之间的桥梁。而以前状态也就决定了当前状态的情况。数字三角形的决策就是选择相邻的两个以前状态的最优值。状态: 我们一般在动规的时候所用到的一些数组,也就是用来存储每个状态的最优值的。我们就从动态规划的要诀,也就是核心部分“状态”开始,来逐步了解动态规划。有时候当前状态确定后,以前状态就已经确定,则无需枚举.;阶段: 把所给求解问题的过程恰当地分成若干个相互联系的阶段,以便于求解,过程不同,阶段数就可能不同.描述阶段的变量称为阶段变量。在多数情况下,阶段变量是离散的,用k表示。此外,也有阶段变量是连续的情形。如果过程可以在任何时刻作出决策,且在任意两个不同的时刻之间允许有无穷多个决策时,阶段变量就是连续的。状态: 状态表示每个阶段开始面临的
文档评论(0)