- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
〖问题12〗欧几里德货郎担问题和Bitonic旅行路线问题.doc
〖问题12〗欧几里德货郎担问题和Bitonic旅行路线问题
——信息学NOI联赛辅导专题
NOI竞赛辅导 王建德教练讲稿
即一个问题被划分阶段后,阶段I中的状态只能由阶段I-1中的状态通过状态转移方程得来,与其他状态没有关系,特别是与未发生的状态没有关系,这就是无后效性。
如果把问题中的状态定义成图中的顶点,两个状态之间的转移定义为边,转移过程中的权值增量定义为边的权值,则这个问题实际上就是在一个“有向无环加权图”中寻找两个顶点路径的问题。因为无后效性,所以没有环路(否则,无论如何划分阶段,都可以出现后效性)。即这个图可以进行“拓扑排序”,可以以拓扑排序的顺序划分阶段。
〖问题12〗欧几里德货郎担问题和Bitonic旅行路线问题
欧几里德货郎担问题是对平面给定的n个点确定一条连结各点的、闭合的游历路线问题。下图(a)给出了七个点问题的解。
Bitonic旅行路线问题是欧几里德货郎担问题的简化,这种旅行路线先从最左边开始,严格地由左至右到最右边的点,然后再严格地由右至左到出发点,求路程最短的路径长度。下图(b)给出了七个点问题的解。
把两条路中起始顶点相同的状态归于一个阶段,设为阶段[P1,P2]。
Bitonic旅行路线问题
设
Dis[i,j]—阶段(i,j)中i至n和 j至n的最短路长和;
Dis[N,N] ←0; {初始化动态规划数组}
For I←N-1 Downto 1
Do Dis[I,N]←I点至I+1点的距离+Dis[I+1,N];
Dis[N,I]←Dis[I,N];
For I←N-2 Downto 1
Do For J←N-1 Downto I+1 {递推最小值}
Do If I+1J Then Now←Dis[I+1,J]+ I点至I+1点的距离
Else Now←
Now←
Dis[I,J]←Now;
Dis[J,I]←Now;
输出
对于欧几里德货郎担问题,阶段与阶段之间没有什么必然的“顺序”。如道路{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]对应的关系就如图所示
解决“动态规划”问题的基本方法与步骤:
1:确定问题的研究对象,即确定状态。
2:划分阶段,确定阶段之间的状态转移方程。
3:考察此问题现在可否用“动态规划”来解决:
①:考察此问题是否具有“最优子结构”。
②:考察此问题是否为“无后效性”。
4:如果发现此问题目前不能用“动态规划”来解决,则应该调整相应的定义与划分,以达到可以用“动态规划”来解决。
文档评论(0)