第3章动态规划(new)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中间结点集,
边集E,对于任意பைடு நூலகம்e有长度
输出:一条从起点到终点的最短路
引导例子(2/10)
一个实例
引导例子(3/10)
蛮力算法:考察每一条从某个起点到某个终点的路径, 计算长度,从其中找出最短路径。 在上述实例中,如果网络的层数为k,那么路径条数将接 近于2K。 动态规划算法:多阶段决策过程.每步求解的问题是后面
动态规划的历史(4/5)
贝尔曼,R Richard Bellman (1920~1984) 美国数学家,美国科学院院士,动态规划的创始人。 1920年8月26日生于美国纽约。1984年3月19日逝世。1941 年在布鲁克林学院毕业,获理学士学位,1943年在威斯康 星大学获理学硕士学位,1946年在普林斯顿大学获博士学 位。1946~1948年在普林斯顿大学任助理教授,1948~1952 年在斯坦福大学任副教授,1953~1956年在美国兰德公司任 研究员,1956年后在南加利福尼亚大学任数学教授、电气 工程教授和医学教授。 贝尔曼因提出动态规划而获美国数学会和美国工程 数学与应用数学会联合颁发的第一届维纳奖金(1970), 卡内基-梅隆大学颁发的第一届迪克森奖金(1970),美国 管理科学研究会和美国运筹学会联合颁发的诺伊曼理论奖 金(1976)。1977年贝尔曼当选为美国艺术与科学研究院院 士和美国工程科学院院士。
动态规划的基本思想
动态规划算法与分治法类似,其基本思想也是将待 求解问题分解成若干个子问题,先求解子问题,然后从 这些子问题的解得到原问题的解。
动态规划算法与分治法不同的是,经分解得到的
子问题往往不是相互独立的,有大量子问题会重复出
现。
为了避免重复计算,动态规划法是用一个表来存放
一计算过的子问题。
动态规划算法适用于求解最优化问题
通常按如何四步骤设计动态规划算法: (1)找出最优解的性质,并刻画其结构特征; (2)递归定义求最优值的公式 (3)以自底向上方式计算最优值 (4)根据计算最优值时得到的信息,构造最优解。
引导例子(1/10)
最短路径问题描述: 输入:起点集合{ S1, S2, ..., Sn } , 终点集合{T1, T2, ... , Tm},
分析: 由于矩阵乘法满足结合律,故计算矩连乘积 A1A2…An可以有多个计算次序。 例如: (A1(A2(A3A4 ))) 等等
(A1((A2A3 )A4))
((A1A2)(A3A4))
先考虑两个矩阵乘积的计算量
设A为raca矩阵 B为rbcb矩阵, void matrixMultiply(int **a, int **b, int **c, int ra, int ca, int rb, int cb )
动态规划的历史(2/5)
动态规划遵循的“最佳原理”简而言之, “一个最优策略的子策略总是最优的”。动态 规划是运筹学的一个分支,它是解决多阶段决 策过程最优化的一种方法,大约产生于50年代, 由美国数学家贝尔曼(R·Bellman)等人,根 据一类多阶段决策问题的特点,把多阶段决策 问题变换为一系列互相联系单阶段问题,然后 逐个加以解决。
阶段求解问题的子问题. 每步决策将依赖于以前步骤的
决策结果.
引导例子(4/10)
引导例子(5/10)
蛮力算法:考察每一条从某个起点到某个终点的路径, 计算长度,从其中找出最短路径。 在上述实例中,如果网络的层数为k,那么路径条数将接 近于2K。 动态规划算法:多阶段决策过程.每步求解的问题是后面
第3 章
学习要点:
动态规划
理解动态规划算法的概念。
掌握动态规划算法的基本要素。
掌握设计动态规划算法的步骤
通过范例学习动态规划算法设计策略
推荐书籍
动态规划的历史(1/5)
有许多问题,用穷举法才能得到最佳解。 苦输入量n稍大一些,计算量太大,特别对渐近 时间复杂性为输入量的指数函数的问题,计算 机 无 法 完 成 。 采 用 动 态 规 划 ( Dynamic programming)能得到比穷举法更有效的算法。 动态规划的指导思想是,在每种情况下,列出 各种可能的局部解,从局部解中挑出那些有可 能产生最佳的结果而扬弃其余,从而大大缩减 了计算量。
动态规划的历史(5/5)
贝尔曼因在研究多段决策过程中提出动态规划而闻名 于世。1957年他的专著《动态规划》出版后,被迅速 译成俄文、日文、德文和法文,对控制理论界和数学 界有深远影响。贝尔曼还把不变嵌入原理应用于理论 物理和数学分析方面,把两点边值问题化为初值问题, 简化了问题的分析和求解过程。1955年后贝尔曼开始 研究算法、计算机仿真和人工智能,把建模与仿真等 数学方法应用到工程、经济、社会和医学等方面,取 得许多成就。贝尔曼对稳定性的矩阵理论、时滞系统、 自适应控制过程、分岔理论、微分和积分不等式等方 面都有过贡献。 贝尔曼曾是《数学分析与应用杂志》及《数学生 物科学杂志》的主编,《科学与工程中的数学》丛书 的主编。已出版30本著作和7本专著,发表了600多篇 研究论文。
阶段求解问题的子问题. 每步决策将依赖于以前步骤的
决策结果.
引导例子(6/10)
前边界不变,后边界前移
引导例子(7/10)
引导例子(8/10)
引导例子(9/10)
求总长模10的最小路径
引导例子(10/10)
§3.1
矩阵连乘问题
给定n个矩阵{A1, A2,…, An},其中Ai与Ai+1 是可乘的。考 察这N个矩阵的连乘积 A1A2…An
{ if(ca!=rb) error(“Can’t multiply”);
for(i=0; i<ra; ++i)
for(j=0; j<cb; ++j)
{
c[i][j] =0; for(k=0;k<ca; ++k) c[i][j]+=a[i][k]*b[k][j];
动态规划的历史(3/5)
动态规划开始只是应用于多阶段决策性问 题,后来渐渐被发展为解决离散最优化问题的 有效手段,进一步应用于一些连续性问题上。 然而,动态规划更像是一种思想而非算法,它 没有固定的数学模型,没有固定的实现方法, 其正确性也缺乏严格的理论证明。因此,一直 以来动态规划的数学理论模型是一个研究的热 点。