动态规划是解决多阶段决策过程最优化问题的一种方法。
1 多阶段决策过程的最优化
多阶段决策过程:可以按时间顺序分解成若干相互联系的阶段,称为“时段”,在每个时段都要做出决策,全部过程的决策形成一个决策序列。
多阶段决策过程最优化的目标:达到整个活动过程的总体效果最优。
由于各段决策间相互联系,本段决策的执行将影响到下一段的决策,以至于影响总体效果,所以决策者在每段决策时不应仅考虑本决断最优,还要考虑对最终目标的影响,从而做出对全局来说是最优的决策。
动态规划就是符合这种要求的一种决策方法。
2 动态规划的基本概念
将实际问题写成动态规划模型需要用到以下概念:
(1)阶段
(2)状态
(3)决策和策略
(4)状态转移方程
(5)指标函数
2.1 阶段
按时间或者空间特征,将所给的问题分解成若干相互联系的阶段,以便按照次序去求每个阶段的解。
例如,“最长的递增子序列”问题中,每次选择一个数可以看作一个阶段,当前阶段选择的数会影响下次可以选择的数;
“连续子序列的最大和”问题中,数组中第
i
i
i个数是否加入子序列可以看一个阶段,当前阶段的决策同样会影响下个阶段的决策。
2.2 状态
各阶段开始时的客观条件叫做状态。描述各阶段状态的变量称为状态变量。状态变量的取值集合称为状态集合。
状态的性质:当某阶段状态给定以后,在这阶段以后过程的发展不受这段以前各阶段状态的影响。也就是说,当前的状态是过去历史的一个完整总结,过程的过去历史只能通过当前状态去影响它未来的发展,这称为无后效性。
反之,如果所选定的变量不具备无后效性,就不能作为状态变量来构造动态规划模型。
2.3 决策和策略
当前状态 ⇒ \Rightarrow ⇒ 做出不同的决策(或选择) ⇒ \Rightarrow ⇒ 确定下一阶段的状态
各段决策确定后,整个问题的决策序列就构成一个策略。对于每个实际问题,可供选择的策略有一定范围,称为允许策略集合。使整个问题达到最优效果的策略就是最优策略。
2.4 状态转移方程
动态规划中本阶段的状态往往是上一阶段状态和上一阶段的决策结果。
如果给定了本阶段的状态和本阶段的决策,那么下一阶段的状态也就完全确定。而描述本阶段到下一阶段的状态转移规律的方程,称为状态转移方程
2.5 指标函数
用于衡量所选定策略的优劣的数量指标称为指标函数。
3 动态规划的基本思想与最优化原理*
3.1 动态规划的基本思想
(1)将多阶段决策过程划分阶段,恰当地选取状态变量、决策变量及定义最优指标函数,从而把问题化为一系列同类型的子问题,然后逐个求解。
(2)求解时从边界条件开始,逆(或顺)过程行进方向,逐段递推寻优。在每一个子问题求解时,都要使用它前面已求出的子问题的最优结果,最后一个子问题的最优解,就是整个问题的最优解。
(3)动态规划方法是既把前一段与未来各段分开,又把当前效益和未来效益结合考虑的一种最优化方法,因此每段的最优策略选取是从全局考虑的,与该段的最优选择一般是不同的。
3.2 动态规划的最优化原理
动态规划方法基于贝尔曼(R. Bellman)等人提出的最优化原理——“一个过程的最优策略具有这样的性质:即无论初始状态及初始策略如何,对于先前决策所形成的状态而言,其以后的所有决策应构成最优策略。”
感觉上面这句话有点绕。
利用上面的最优化原理,可以把多阶段决策问题求解过程表示成一个连续的递推过程,由后向前逐步计算。在求解时,前面的个状态与决策,对后面的子过程来说,只相当于初始条件,并不影响后面子过程的最优策略。