国际大学生程序设计竞赛试题与算法分析_三_动态规划及.pdf
《国际大学生程序设计竞赛试题与算法分析_三_动态规划及.pdf》由会员分享,可在线阅读,更多相关《国际大学生程序设计竞赛试题与算法分析_三_动态规划及.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、信夕息章赛试题与脚法分析三劫态视划友其表用录扳路问题郭篙山陈明睿中山大学信息科技学 院计算机科学系,广州动态规 划 实际上 是 研 究 一 类 最 优 化 问题 的方法,在经 济、工 程 技 术、企 业 管 理、工 农 业生产及 军事等 领 域 中都 有 广 泛的应用。近年 来,在中,使 用动态 规 划或部分 应 用动态规划 思维求解 的题不仅常见,而且形式也多种多样。而在与此相 近的各类信息学竞赛中,应用动态规划解题已经成为一种趋势,这和动态规划 的优势不无关系。与其说动态 规划是一种算法,不如说是一种思维方法来 得贴切。因为动态规划 没有固定 的框架,即便是应用到 同一道题上,也可以建立多
2、种形式的求解算法。许多隐式 图上 的算法,例如求单源最短路径 的算法、广度优先搜索算 法,都渗透着动态规划的思想。还有许多数学问题,表面上看起来与动态规划风马牛不相及,但是其求解思想 与动态规划是完全一致 的。正因为如此,今后我们还将会分几个专题,对动态规划的应用分 门别类地进行介绍。如场少找曰什州检且知饥匕心廿未”山南乃湘用动态规划的概念和基础什么是 动态规 划动 态 规 划 是 运 筹 学的一个分支。年美国数 学 家等人,根据一类多阶段问题 的特点,把 多 阶段 决策 问题变换 为一系列 互 相联 系 的单阶段 问题,然后逐 个 加以解 决。一些静态模型,只要 人 为地 引进“时 间”因素
3、,分 成时段,就 可以转 化 成 多 阶段的动 态模型,用动态规亚 洲上海 赛区中山大学二 队教练一亚 洲上海 赛区中山大学二 队主力队员划方法去处理。与此 同时,他提 出了解决这类问题的“最优化原理”。“一个过程 的最优 决 策具 有 这 样的性质即无论其初始状态和初始决策如何,其今后诸策略对以第一 个决策所形成 的状态作为初始状 态 的过程而言,必须构成最优策 略”。简言之,一个最优策 略的子策 略,对于它 的初态和终态而 言也必是最优 的。这个“最优 化原理”如果 用数学化 一点 的语 言来描述 的话,就是 假设为了解 决某一优化 问题,需要依 次作出个 决策,如若这个决 策序列是 最优
4、 的,对于任何一个 整数,不论前面个决策是怎样的,以后 的最优决策只取决于由前面决策所确定 的当前状 态,即以后 的决策,。也是 最优的。最优化原理是 动态规划 理论的基 础。动态规划实 际上是一种寻找组合最优化 问题的最优解 的方法,它将一个待求的最优化 问题分解成几个子问题,先寻找子 问题 的局部 最优 解,并 用逆推公式把原 问题的最优解 与子问题的局部最优解联系起来,最后 获得所求问题 的最优解。最优 化 原理说起来很简单,如何灵活应 用它则又是另一回事。它用途很广,由于运用最优化原理来解决的问题本身并没有固定不变 的算法,需要不断地探索其规律并进行归纳和 总结。因此,利用它来解决 问
5、题的本身也就是一种创造。我们 下面希望 通 过讲解 动态规划 的 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http:/信息萦赛一个重要 应用一一最 短路问题,来 帮助读 者初 步掌握它的技巧。最短路问题所谓最短路问题是 指给定起点及终点,并知道由起点到终点的各种 可 能 的路径,问题是要 找一条由起点 到终点的最短 的路,即长 度最短 的路。需要指出 的是 最 短路问题中的“长 度”可以是 通 常意 义下的距 离,也 可以是 运输的时 间或 者 运 输 费用等等。而且,有些
6、 与运输根本 没有关系的问题也可以化 为求最 短路的模型,例 如求关键路径实 际上是网中的最 长路问题等。由起点到 终点的路线图如图所 示,连接两地之间的路的长度用连 线上 的数字表示,求由起点到终点的最 短路。我们很 容 易可以得 到 一个递归形 式的算 法来求解最短路问题,求由几到的最短路的长度已求 出润田 日对所 有。四少 小声图一 般 地,求一个具有个结点的 图 的最 短路,如果使用穷举法,其运算量 是的指数函数。当比较大,同时 图 的深度 较深时,这个算法 在 时 间效率上是 不 可取的。如果用最 优化原 理来思考这个问题,我们可以注意 到 最 短路有 这样 一 个 特性,即如果 最
7、 短路的第站 通 过,则 这 一 最 短 路在 由出发到达终点的那一部分路径,对于起点为到终点所有可能的路径来说,必定也是长度最短的。引入几个记号。记妙日表示 由点到的最短路的长度,例如,私表示由到的最 短路的长度,几表示由到的最 短路的长度。表示从 点出发 到 下 一 步 所 选 的点,的集合。田,表示点到下 一步所选 的点的长度,例如,表示 由到的距离,即,二。则最短路这一特性 可 描述为日,【。公显 然 有哪二,而几勾尹是 未知的,我们将此作为初始 的已知条件。根据最 短路这一特性,职小【队,项,。调用,求出 的最 短路 为今今今今,长度 为,如图中粗线所示。我们 实际 上 是将 求解到
8、的 最 短路问题分解成 结构 相同的若干个子 问题,习,胆,这些 子 问题之 间可 能 有 重 叠,在求解 的过 程 中,如果某个需要求解 的子 问题已经解 出来了,就直接取其结果如果还没有解 出来,就递归进行求解,然后通过这些子问题的解来求出原问题的解。其结果,我们不仅得到了原 问题 的解,而且得,到了一连串子问题的解。动态规划之所以 比穷举法高效的原因,就在于它对每个子问题只求解一次。与穷举法相比,动态规划 的方法有 两个明显 的优点大大减少了计算量丰富了计算结果。从上面例子 的求解结果 中,我们得到 的不仅是由起点出发到终点的最短路,而且还得 到 了从所有各 中间点到终点的最短路,这对许
9、多实际问题来讲是很有用的。你也许会想,动态规划是不是分而治之呢其实,虽然 在分析许多 问题时,我们都使用了这 种将大问题分解成小 问题的思路,但是动态规划不是分治法,这一点我们将在以后 的专题中加以分析。另一种表示形式递推上面我们用递归 的形式描 述 了最 短路问题 的求解方法。既然每个子 问题只求解一次,我们是不是可以确定 出一个求解 子问题顺序,用递推的方法来求解 最短路问题呢其实这样 的顺序是很容 易确定的,例如,。事实涛福场少找“什”曹异翎饥匕心蟹矛”从小书伪湘用 1994-2009 China Academic Journal Electronic Publishing House.
10、All rights reserved.http:/上,如果 把 这个 路线图看 成是一 个 有 向带权 图的话,它的任 一个拓 扑序列的逆序都可以作为求解 子问题顺 序 的序列。于是我 们 就 得 到 了一 个求最 短路问题的递推 形 式 的算法令二,公是某个 求解 子 问题顺 序 的序列,而且且已经解 出二红二而,即项乓。我们 现在用手 工来计算一下,你就会对整个递推过程有更加 清 晰 的理解了邢二终 态,已知和于 硕和二耳二兀二项口,硕二,几 项,十红 习,曰耳 红,项月 卜,红而斑,项刁科,二毋汾翎项口,朝刃闯,翻刃习科舟寿门二红二项,红习,红,卜牡而硕,斑习,耳 刁二,二现 在 的
11、问题是,对任 意 给 定 的路线图,如何定出这个求解 子 问题顺序的序列 呢拓 扑 排序是其中的一种 考虑。但是我们不 要忘记,即使这个 图中含有长度 为 正数的回路,问题 还 是 有 解 的,不过 这个 图就不能进行拓扑 排序了。另外,如果 图中含有起点可达的负 权回路,算法 应该宣告 原 问题无解,但是这个算法并 不能很好地解决这个问题。信息劈赛性,我们可以得到一个由口日修正甲飞习瑞。的公式,【习、】川。公当所有 的红日都不能再改 进的时候,几中存放 的就是由点到点的最短路的长度。这个算法可以写成一个反复迭代的过程,直到整个“系统”稳定下来 的时候,迭代结束。我们可以看作这个迭代过程 收敛
12、于问题的最优解。二对 所有的点。对所有 的点氏,。卿卜职司队,卜口职卜红 日巴,卜罗婉罗这个算法 的好处 在于它 的形式很简单,但是它的效率较低,而且还 有一个 缺 陷当图 中含有起点可达 的负权回路时,这个 算法会陷人 死循环。其实,当图中含有起点可达 的负权回路时,最 短路问题是无解 的。所以当图中含有负权边 的时候,在使用这个算法之前,要进行 额外的检查。正反思维,多向求解要从这个困局之中摆脱出来,不妨用逆向思维,从另一个角度 来看 这个问题。之前的分析是从终点开始,从后 向前逐步 递推求出各点到的最 短路径,最后求得从到的最短路径。其 实,最 短路还 有 另一个性 质 从 起 点到终点
13、的最 短路也 是起 点到该路径上各 点 的最短路径。从 这个性 质出发,我们可以从起点 出发,递推求出其他点 的最短路的长度。现 在 我 们 改 记江日表示由到 点的最 短路的 长度,例如,红表示由到的最短路的长度,红表 示由到的最短路的长度。显然有,而几用尹是 未 知 的,就记为妙日。我们将此作为初始 的已知条件。根据最短路这一特求最短路的】算法有 没有能克服 上面两个问题的算法 呢答 案是肯定 的。首先不妨假设图,中不含 负权回路,则红 词二价一定是从起点到的最短路的长度,因为几不可能继续改进了。然后对所有在中的点进行改进,则下 一个肯定已经求出最 短路的必 定 是二日翻坑势比林”位县知饥
14、匕心始矛从本书几湘用,如 此 下 去,可以肯定 的说,经 过次 迭代,定能求出所有点的最短路长度。下面我们完整地用伪码描述这个算法红二,迁二笋二二取二取日一对所有红二倾,取,二 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http:/信息绪赛这就是求 单源最 短路径 的算法。现 在我们 来 考 虑图中含 有 负 权回路的情况。如果 在算 法 执行 的过程 中存在某个且二且耳,司二几,则图中一定含有 负权回路,这时算 法应 终 止并 返回原 问题无解。如 果 我 们只需 要求出从
15、到的最 短路,则上面 的算法可 改写为 我们 把判 断负权回路也考虑进 去红,环 尹红环日一对所有平,。迁任问题无解红取,二红解表空邢从上 面的分析可以看出,我们从已知的初始状态出发,利用最优化 原理,一步 一步 向未知的目标状态推进,直到目标 状态解 决。从已知推广到 未知,这就是 动态规划 思 维方法 的精髓。算法与广度优先搜索如果我们再换一个 角度,从 图的搜索来重新 审视 这 个算法,就 会 发 现 我 们生成了一棵以结 点为根的搜索树,在 扩 展 结 点 的 时候,我们 每 次总是挑选 深度最小 的结 点进 行 扩展,这种做法其实就是图的广度优先搜 索。换而言之,图的广度优先搜索的思
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国际 大学生 程序设计 竞赛 试题 算法 分析 动态 规划
限制150内