(lecture_05)动态规划(2)共38页文档

合集下载

动态规划

动态规划
f1(A)=MIN r(A,B1)+ f2(B1) r(A,B2)+ f2(B2)
=MIN(3+12,4+10)=14
最短路线: A—— B2 ——C2——D2——E2——F 最优解: d1*(A)= B2,最短用时14
1
B2
C3
4 2
D3
5
E2
4
A
2
C2
3 3 3
D2
2
F
3
B1
5 4
C1
4
2
E1
最优解: d2*(B1)= C1
1
B2
C3
4 2
D3
5
E2
4
A
2
C2
3 3 3
D2
2
F
3
B1
5 4
C1
4
2
E1
4
3
D1
A
B
C
D
E
F
如果S2=B2,则下一步能取C2或C3,故
f2(B2)=MIN r(B2,C2)+ f3(C2)
r(B2,C3)+ f3(C3) =MIN(2+8,1+11)=10
最短路线: B2 ——C2——D2——E2——F
1
B2
C3
4 2
D3
5
E2
4
A
2
C2
3 3 3
D2
2
F
3
B1
5 4
C1
4
2
E1
4
3
D1
A
B
C
D
E
F
如果S4=D3,则下一步只能取E2,故

动态规划

动态规划

多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前状态,又随即引起状 态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义,称这种解决多阶段决策最优化 问题的方法为动态规划方法 。
任何思想方法都有一定的局限性,超出了特定条件,它就失去了作用。同样,动态规划也并不是万能的。适 用动态规划的问题必须满足最优化原理和无后效性 。
动态规划
运筹学的分支
01 原理
03 局限性
目录
02 分类
动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年 代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理, 从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域, 并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了 显著的效果 。
最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成 的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最优化策略的子策略总是最优的。一个问题满足 最优化原理又称其具有最优子结构性质 。
将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它以前各阶段的状态无法直接影响它未来 的决策,而只能通过当前的这个状态。换句话说,每个状态都是过去历史的一个完整总结。这就是无后向性,又 称为无后效性 。
状态:状态表示每个阶段开始面临的自然状况或客观条件,它不以人们的主观意志为转移,也称为不可控因 素。在上面的例子中状态就是某阶段的出发位置,它既是该阶段某路的起点,同时又是前一阶段某支路的终点 。

动态规划(完整)

动态规划(完整)
第七章 动态规划
主要内容:
§7.1多阶段决策问题 §7.2 动态规划的基本概念和基本原理
§7.3 动态规划应用举例
例 求解最短路问题
A1 2 Q 4 3 A3 A2 6 3 7 4 B1 1 4 2 4 4 1 5 6 B2 3 B3 3 3 C2 C1 3 4 T




分阶段的最短路径
• • • • • • • Ⅳ : C1—T Ⅲ --Ⅳ : B1—C1—T Ⅱ--Ⅲ--Ⅳ :A2—B1—C1—T Ⅰ--Ⅱ--Ⅲ --Ⅳ: Q—A2—B1—C1—T Q--A3—B1—C1—T Q--A3—B2—C2—T 3 4 7
决策为 xk 时的指标,则它就是第 k 段指标函
数,简记为vk 。 (2)过程指标函数(也称目标函数) 用f(sk , xk)表示第k子过程的指标函数。表
示处于第 k 段 sk 状态且所作决策为xk时,
从 sk 点到终点的距离。由此可见, f(sk , xk)
不仅跟当前状态 sk 有关,
还跟该子过程策略 pk(sk) 有关,严格说来,应
(6) 指标函数
用来衡量策略或子策略或决策的效果的 某种数量指标,就称为指标函数。它是定义 在全过程或各子过程或各阶段上的确定数量 函数。对不同问题,指标函数可以是诸如费 用、成本、产值、利润、产量、耗量、距离、 时间、效用,等等。
(1)阶段指标函数(也称阶段效应)
用vk(sk , xk)表示第 k 段处于状态 sk且所作
资规划, 排序问题和生产过程的最优控制
等问题;
§7.2 动态规划的基本概念和基本思想
一、基本概念
使用动态规划方法求解决策问题首先要将 问题改造成符合动态规划求解要求的形式, 要涉及以下概念: (1)阶段 (3)决策与策略 (2)状态 (4)状态转移方程

Lecture_05

Lecture_05

从问题到程序
9
复杂关系,如: 3≤x≤5 时 z 取值 2,否则取值 1。可以用 关系表达式和条件表达式描述:
z = (x >= 3 ? (x <= 5 ? 2 : 1) : 1);

有了关系表达式和条件表达式,足以描述任何可能的复杂 条件。但写出的描述可能比较复杂,不太直观 逻辑运算符专门用于基于简单的逻辑构造复杂的逻辑关系。 用逻辑运算符可直接描述
只能写出平铺直叙的直线型程序。这种程序从头开始执
行,一个个语句执行到最后
不能区分情况,不能用简单方式描述重复的类似动作

例如,要写一个函数,返回两参数中的较大值:
double dmax (double, double) 需要:
比较数据大小(判断) 根据判断结果决定做什么(分情况处理)

函数 dmax 的定义:
double dmax (double x, double y) { return x > y ? x : y; }

例:z = dmax(2, 3);
注意它的计算过程
条件表达式

从问题到程序
8
符号函数 sign对应的C函数: double sign (double x) { return x > 0 ? 1 : (x == 0 ? 0 : -1); }

这里假定了a不为0,处理a为0的情况也不困难(加判断)
连续 if 条件判断

从问题到程序
22
前例中出现了连续的条件判断:
成立时做某些操作 不成立时判断下一条件

这种情况下的建议书写形式(清晰,又不会退格太多): if (...) { ... ... } else if (...) { ... ... } ... ... else { ... ... }

动态规划

动态规划



状态 B1 在决策 u2 ( B1 ) 作用下的一个新的状态,记作u2 ( B1 ) C2 . 4、策略 策略是一个按顺序排列的决策组成的集合。由过程的第 k 阶段开始到 终止状态为止的过程,称为问题的后部子过程(或称为 k 子过程)。
返回 结束
动态规划
由每段的决策按照顺序排列组成的决策函数序列
k 1,2,, n.
对于动态规划模型的指标函数,应具有可分离性,并满足递推关系
Vk ,n k [ sk , uk ,Vk 1,n ( sk 1 ,, sn1 )]
在实际问题中指标函数都满足这个性质。 常见的指标函数有下列两种形式 (1)过程和任一子过程的指标是它所包含的各阶段指标的和,即
指标函数的最优值,称为最优值函数,记作 f k (sk ) 它表示从第 k 阶段 的状态 sk 开始到第 n 阶段的终止状态的过程,采取最优策略所得到的 指标函数值。即
f k ( sk ) opt Vk ,n ( sk , uk ,, sn1 )
uk ,,un
返回 结束
动态规划
在不同的问题中,指标函数的含义不同,它可能是距离,利润,成本 ,产品的产量,资源消耗等。 二、动态规划的基本思想和基本方程 结合最短路问题介绍动态规划的基本思想 。最短路线有一个重要特性,
这种递推关系式称为动态规划的基本方程。
返回
结束
动态规划
资源分配问题 某工业部门根据国家计划的安排,将某种高效率的设备 五台,分配给所属的甲、乙、丙三个工厂,各工厂若获得 这种设备之后,可以为国家提供盈利如表2-2所示。
问这五台设备应如何分配给工厂,才能使国家得到的 盈利最大。
返回
结束
动态规划
表2-2

动态规划讲解例子课件

动态规划讲解例子课件

解:整个计算过程分四个阶段,从最后一个阶段开始。
第四阶段(D →E): D 有两条路线到终点E 。
显然有 f4(D1 ) 5;
f4(D2 ) 2
9
2
12
B1
10
14
C1 3
9
D1 5
6
A
5 B2 10
1
4
13
6
C2 5
8
2
E
D2
B3
12 11
C3 10
第三阶段(C →D): C 到D 有 6 条路线。
系统所处的状态和时刻是进行决策的重要因素; 即在系统发展的不同时刻(或阶段)根据系统所处的状 态,不断地做出决策;
找到不同时刻的最优决策以及整个过程的最优策略。
17
动态规划方法的关键:在于正确地写出基本的递 推关系式和恰当的边界条件(简称基本方程)。
要做到这一点,就必须将问题的过程分成几个相 互联系的阶段,恰当的选取状态变量和决策变量及定义最 优值函数,从而把一个大问题转化成一组同类型的子问题, 然后逐个求解。
6
A
5 B2 10
1
4
13
6
C2 5
8
2
E
D2
B3
12 11
C3 10
考虑经过 C3 的两条路线
f3(C3 )

d mind
(C (C
3 3
, ,
D1 ) D2 )
f4(D1 ) f4(D2 )

8 5 min10 2

12
(最短路线 C3 D2 E
最优策略 0 10 20 30 40 50 60
第二阶段:求 f2(x)。此时需考虑第一、第二个工厂如何进

05动态规划分析

05动态规划分析
2019/1/18 24
算法分析:典型的DP!

1 ->?
1 ->2=min(1*2,1*3,1*5,1*7)
1 ->2 ->3=min(2*2,1*3,1*5,1*7) 1 ->2 ->3 -> 4 = min(2*2,2*3,1*5,1*7) 1 ->2 ->3 -> 4 ->5= min(3*2,2*3,1*5,1*7)
2019/1/18
Sample Output
1300 2100 2000 4000 3000 2000 1400 1200 1900
4 4 5 9 7
12
再思考(1792) Super Jumping! Jumping! Juping!
2019/1/18
13
解题思路?
三、经典问题:最长公共子序列 1793: Sample Input
2019/1/18 6
思考:免费馅饼(1789)
2019/1/18
7
如何解决?
请发表见解
2019/1/18 8
再思考:
打地鼠1791
2019/1/18
9
二、经典问题:最长有序子序列
I 0 1 4 2 7 3 2 4 5 5 8 6 3 7 6 8 9
Num[I] 1
2019/1/18
10
2019/1/18
25
状态转移方程?

F(n)=min(F(i)*2,F(j)*3,F(k)*5,F(m)*7) (n>i,j,k,m)
这道题如果用枚举法(暴力思想),在 数塔层数稍大的情况下(如31),则需 要列举出的路径条数将是一个非常庞大 的数目(2^30= 1024^3 > 10^9=10亿)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档