第3章 动态规划_1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
pqr
2014年1月13日星期一
第3章 动态规划
13
三个矩阵连乘
三个矩阵 A1 , A2 和 A3 的维数分别为10 100,100 5 和 5 50 , 计算 ( A1 A2 ) A3 和 A1 ( A2 A3 ) 需要的数乘次数?
( A1 A2 ) A3
10 100 5 10 5 50
2014年1月13日星期一
第3章 动态规划
7
动态规划的基本思想
与分治法类似,其基本思想也是将待求解问题
分解成若干个子问题,先求解子问题,然后
从这些子问题的解得到原问题的解。
☻与分治法不同的是,适合用动态规划求解的问题,
经分解得到的子问题往往不是相互独立的。
2014年1月13日星期一
第3章 动态规划
用动态规划算法解问题,可依据其递归式以自底向上
的方式进行计算。
在计算过程中,保存已解决的子问题答案。
2014年1月13日星期一
第3章 动态规划
21
例1.计算矩阵连乘积A[1:6],其中各矩阵的维数分别为:
A1
j 1
i 1 2 3 4 5 6
A2
2 3 4 5
A3
A4
A5
A6
30 35 35 15 15 5 5 10 10 20 20 25
2014年1月13日星期一 第3章 动态规划 18
2.建立递归关系
A[i : j ]
1)
i j
单一矩 阵
m[i][i] 0
2)
i j
Ai Ai 1 Ai 2 A j 1 A j
m[i][ k ] m[k 1][ j ] pi 1 pk p j
( j i)
2014年1月13日星期一
第3章 动态规划
23
m[ 4][ 4] m[5][ 6] p3 p4 p6 0 5000 1250 m[ 4][ 6] min m[ 4][5] m[6][ 6] p3 p5 p6 0 1000 2500 min{6250 ,3500 } 3500
100 5 50 10 100 50 75000
=7500
A1 ( A2 A3 )
2014年1月13日星期一
第3章 动态规划
14
矩阵连乘问题
给定 n 个矩阵 { A1 , A2 , , An } ,求矩阵 连乘积的最优计算次序。
??
2014年1月13日星期一
第3章 动态规划
2014年1月13日星期一
第3章 动态规划
11
动态规划算法设计步骤
⑴分析最优解的性质,并刻划其结构特征; ⑵递归地定义最优值; ⑶以自底向上的方式计算出最优值; ⑷根据计算最优值时得到的信息,构造最优解。
步骤(1)--(3)是基本步骤。在只需要求出最优值的情形, 步骤(4)可以省略。若需要求出问题的一个最优解,则必 须执行步骤(4)。此时,需要利用在步骤(3)中计算最优值 时记录的相关信息。
第3章 动态规划
19
2.建立递归关系
单一 矩阵
0 i j m[i][ j ] min { m [ i ][ k ] m [ k 1 ][ j ] p p p } i j i 1 k j i k j
2014年1月13日星期一
第3章 动态规划
20
3.计算最优值
m[2][ 2] m[3][5] p1 p 2 p5 0 2500 35 15 20 13000 m[2][5] min m[2][3] m[4][5] p1 p3 p5 2625 1000 35 5 20 7125 m[2][ 4] m[5][5] p p p 4375 0 35 10 20 11375 1 4 5
2014年1月13日星期一
第3章 动态规划
10
动态规划的特点
※ 动态规划法用于最优化问题,这类问题会有多 种可能的解,而动态规划找出其中最优值的解。 若存在若干个取最优值的解的话,它只取其中 的一个。 ※ 对于重复出现的子问题,只在第一次遇到时加 以求解,并把答案保存起来,以后再遇到时不
必重新求解。
第三章
动态规划
Dynamic Programming
掌握动态规划算法的基本要素 掌握设计动态规划算法的步骤 通过应用范例学习动态规划算法设计策略
2014年1月13日星期一
第3章 动态规划
1
T max c x LP : s.t. Ax b x0
20世纪50年代
美国数学家R. E. Bellman等人
6
可以表示为: n=6,p=(30, 35, 15, 5, 10, 20, 25)
2014年1月13日星期一
第3章 动态规划
22
1 2 3 4 5 6 0 15750 7875 9375 11875 15125 0 2625 4375 7125 10500 0 750 2500 5375 0 1000 0 3500 5000 0
1 0
2 1 0
3 1 2
4 3 3 3 0
5 3 3 3 4 0
6 3 3 3 5 5 0
0
S[i][j]
(( A4 A5 ) A6 ) ( A4 ( A5 A6 ))
5 10 20 5 20 25 3500 10 20 25 5 10 25 6250
2014年1月13日星期一
2014年1月13日星期一
第3章 动态规划
4
动态规划的基本要素
1)最优子结构性质 2)子问题重叠性质
最优化原理:一个最优化策略的子策略总是最优的。
一个问题满足最优化原理又称其具有最优子结构性质。
2014年1月13日星期一
第3章 动态规划
5
B
I
J'
J
C
如图,若路线I和J是A到C的最优 路径,则根据最优化原理,路线J
2014年1月13日星期一
第3章 动态规划
24
4.构造最优解
( A1 ( A2 A3 ) ) ((A4 A5 ) A6 )
练习:设n=5和 p=(10, 5, 1, 10, 2, 10),求矩阵 连乘积问题最优值。
2014年1月13日星期一
第3章 动态规划
25
8
T(n)
n/2
T(n/4) T(n/4) T(n/4)
=
n
n/2 n/2 n/2
T(n/4)
T(n/4)
T(n/4) T(n/4) T(n/4)T(n/4)T(n/4) T(n/4)
避免大重复计算
2014年1月13日星期一
第3章 动态规划
9
动态规划的实质 动态规划的实质是分治思想和解决冗余。
1) 一种将问题实例分解为更小的、相似的子问题。 2) 存储子问题的解而避免计算重复的子问题。 主要特点: 问题分解;采用表格技术,用多项式 算法代替指数算法;空间换取时间
2014年1月13日星期一
第3章 动态规划
12
Baidu Nhomakorabea
§3.1 矩阵连乘问题
两个矩阵相乘
若 A 是一个 p q 矩阵, B 是一个 q r 矩阵, 则其乘积 C AB 是一个 p r 的矩阵。
q
Cij Aik Bkj
k 1
q
1 i p,1 j r
计算C需要多少次数乘?
设A[1 : n] A[1 : k ] A[k 1 : n] 为最优计算次序, 若存在一个计算次序 A ' [1 : k ] 其需要的计算量更少
令
A[1 : n] A' [1 : k ] A[k 1 : n]
矛 盾
矩阵连乘积计算次序问题具有最优子结构性质, 即最优解包含着子问题的最优解。
• 虽然动态规划主要用于求解以时间划分阶段的动 态过程的优化问题,但是一些与时间无关的静态 规划(如线性规划、非线性规划),只要人为地引 进时间因素,把它视为多阶段决策过程,也可以 用动态规划方法方便地求解。 • 应用广泛:经济管理、生产调度、工程技术和最 优控制。例如最短路线、库存管理、资源分配、 设备更新、排序、装载等问题,用动态规划方法 比用其它方法求解更为方便。
动态规划
最优化原理
2014年1月13日星期一
第3章 动态规划
2
• 动态规划(dynamic programming)属运筹学中的规划论分支, 是求解决策过程最优化的数学方法。 20 世纪 50 年代初美国 数学家R.E.Bellman等人在研究多阶段决策过程的优化问题 时,提出了著名的最优化原理(principle of optimality) , 把多阶段过程转化为一系列单阶段问题,逐个求解,创立
了解决这类过程优化问题的新方法——动态规划。
• 多阶段决策问题: 指这样的一类特殊的活动过程,问题可 以按时间顺序分解成若干相互联系的阶段,在每一个阶段
都要做出决策,全部过程的决策是一个决策序列。要使整 个活动的总体效果达到最优的问题,称为多阶段决策问题。
2014年1月13日星期一
第3章 动态规划
3
A
必是从B到C的最优路线。
'
反证法证明:假设有另一路径 J 是 B 到 C 的最优路径, 则 A 到 C 的路线取 I 和 J 比 I 和 J 更优,矛盾。
'
***最优化原理是动态规划的基础。
2014年1月13日星期一
第3章 动态规划
6
一般来说,只要该问题可以划分成规模更小 的子问题,并且原问题的最优解中包含了子 问题的最优解(即满足最优化原理),则 可以考虑用动态规划解决。
15
例如,矩阵连乘积A1A2A3 A4可以有以下5种不同的 完全加括号方式: (A1(A2(A3A4))), (A1((A2A3)A4)), ((A1A2)(A3A4)), ((A1(A2A3))A4), (((A1A2)A3)A4)。 每一种完全加括号方式对应于一种矩阵连乘积的 计算次序,而这种计算次序与计算矩阵连乘积的 计算量有着密切的关系。
2014年1月13日星期一
第3章 动态规划
16
为方便起见,定义下列的符号:
矩阵连乘积 Ai Ai 1 A j
A[i : j ]
m[i][ j ]
A[i : j ] 最少数乘次数
A[1 : n]
m[1][ n]
2014年1月13日星期一
第3章 动态规划
17
1.分析最优解的结构
反证法
最优子结构