动态规划问题(Dynamic Programming)

一、什么是动态规划?

动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法
20 世纪 50 年代初 R. E. Bellman 等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优性原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法—动态规划。

动态规划问题(Dynamic Programming)_第1张图片

解决:例如最优路线问题,生产计划问题 例子详见

动态规划问题(Dynamic Programming)_第2张图片

划分

按决策过程划分为
是否为离散?:
是离散时间决策过程
否连续时间决策过程
是否根据过程演变划分?
随机决策过程
确定性决策过程

二、基本概念

2.1阶段(step)

阶段(step)是对整个过程的自然划分。通常根据时间顺序或空间顺序特征来划分阶
段,以便按阶段的次序解优化问题。阶段变量一般用k = 1,2,L,n 表示。

2.2状态(state)

状态(state)表示每个阶段开始时过程所处的自然状况。它应能描述过程的特征并且无后效性,即当某阶段的状态变量给定时,这个阶段以后过程的演变与该阶段以前各阶段的状态无关。
通常还要求状态是直接或间接可以观测的。
描述状态的变量称状态变量(state variable)。变量允许取值的范围称允许状态集合(set of admissible states)。
xk 表示第k 阶段的状态变量,它可以是一个数或一个向量。
Xk 表示第 k 阶段的允许状态集合。
根据过程演变的具体情况,状态变量可以是离散的或连续的。为了计算的方便有时将连续变量离散化;为了分析的方便有时又将离散变量视为连续的

2.3决策(decision)

当一个阶段的状态确定后,可以作出各种选择从而演变到下一阶段的某个状态,
这种选择手段称为决策(decision),在最优控制问题中也称为控制(control)。
描述决策的变量称决策变量(decision variable),变量允许取值的范围称允许决策集合(set of admissible decisions)。
uk (xk )表示第k 阶段处于状态 xk 时的决策变量,它是 xk 的函数,用Uk (xk ) 表示 xk 的允许决策集合

2.4策略(policy)

动态规划问题(Dynamic Programming)_第3张图片在这里插入图片描述

2.5状态转移方程(equation of state transition)

在这里插入图片描述

2.6指标函数和最优值函数(objective function and optimal value

function)
动态规划问题(Dynamic Programming)_第4张图片

2.7最优策略和最优轨迹(optimal policy and optimal trajectory)

动态规划问题(Dynamic Programming)_第5张图片

2.8递归方程(Recursion equation)

动态规划问题(Dynamic Programming)_第6张图片

三、结论

纵上所述,如果一个问题能用动态规划方法求解,那么,我们可以按下列步骤,建立起动态规划的数学模型:

1.将过程划分成恰当的阶段
2.正确选择状态变量,使它既能描述过程的状态,又满足无后效性,同时确定允许状态集合
3.选择决策变量 k u
4.写出状态转移方程。
5.确定阶段指标及指标函数的形式(阶段指标之和,阶段指标之积,阶段指标之极大或极小等)
6.写出基本方程即优值函数满足的递归方程,以及端点条件

四、动态规划的优越性

  • 能够得到全局最优解。
    由于约束条件确定的约束集合往往很复杂,即使指标函数较简单,用非线性规划方法也很难求出全局最优解。而动态规划方法把全过程化为一系列结构相似的子问题,每个子问题的变量个数大大减少,约束集合也简单得多,易于得到全局最优解。特别是对于约束集合、状态转移和指标函数不能用分析形式给出的优化问题,可以对每个子过程用枚举法求解,而约束条件越多,决策的搜索范围越小,求解也越容易。对于这类问题,动态规划通常是求全局最优解的唯一方法。

  • 可以得到一族最优解。
    与非线性规划只能得到全过程的一个最优解不同,动态规划的得到的是全过程及所有后部子过程的一族最优解。有些实际问题需要这样的解族,即使不需要,它们在分析最优策略和最优值对于状态的稳定性时也是很有用的。当最优策略由于某些原因不能实现时,这样的解族可以用来寻找次优策略。

  • 能够利用经验提高求解效率。
    如果实际问题本身就是动态的,由于动态规划方法反映了过程逐段演变的前后联系和动态特征,在计算中可以利用实际知识和经验提高求解效率。如在策略迭代法中,实际经验能够帮助选择较好的初始策略,提高收敛速度。

五、 动态规划的主要缺点是:

  • 没有统一的标准模型,也没有构造模型的通用方法,甚至还没有判断一个问题能否构造动态规划模型的准则。这样就只能对每类问题进行具体分析,构造具体的模型。对于较复杂的问题在选择状态、决策、确定状态转移规律等方面需要丰富的想象力和灵活的技巧性,这就带来了应用上的局限性。

  • 用数值方法求解时存在维数灾(curse of dimensionality)。若一维状态变量有m个取值,那么对于n 维问题,状态 xk就有 m n m^{n} mn 个值,对于每个状态值都要计算、存储函数fk(xk) ,对于n 稍大的实际问题的计算往往是不现实的。目前还没有克服维数灾的有效的一般方法。

动态规划问题(Dynamic Programming)_第7张图片

六、算法示例

算法1、动态规划详解1
算法2、动态规划详解2

你可能感兴趣的:(数学建模,动态规划,算法)