动态规划

动态规划的原理及应用
 
     动态规划是运筹学的一个分支,是求解多阶段决策过程的最优化数学方法。20世纪50年代初美国数学家R.E.Bellmma
 
等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,把多阶段过程转化为一系列单阶段问题,逐个求解,
 
创立了解决这类问题的新方法——动态规划。
 
     动态规划主要用于以时间划分阶段的动态过程优化问题,但一些与时间无关的静态规划如线性规划或非线性规划,人
 
为引进时间因素后,把它们看成多阶段过程,也可用动态规划求解。
 
 
1.动态规划的基本理论
 
 
 
一.动态规划的术语
 
在研究现实的系统时,我们必须将系统具体的术语抽象为数学统一的术语。在此先简要介绍动态规划中的常用术语。
 
级:我们把系统顺序地向前发展划分为若干个阶段,称这些阶段为“级”。在离散动态规划中,“级”顺序的用自然整数编号,即1,2,…,n.
 
状态(λ):用来描述、刻画级的特征。状态可以是单变量,也可以时向量。在此,我们假设研究的状态具有“无记忆性”,即当前与未来的收益仅决定于当前的状态,并不依赖于过去的状态和决策的历史。
 
状态空间(Λ):由全部系统可能存在的状态变量所组成。
 
决策:在每一级,当状态给定后,往往可以做出不同的决定,从而确定下一级的状态,这种决定称为决策。描述决策的变量称为决策变量。对每个状态λ∈Λ,有一非空集X(λ)称为λ的决策集。决策变量x(λ)∈X(λ)。
 
变换:若过程在状态λ,选择决策x(λ),可确定一个状态集T(λ,x(λ)),过程将从λ移动到其中某个状态.T(λ,x(λ))称为变换函数,它确定过程从一个状态到另一个状态的演变。T(λ,x(λ))可分为两种类型,即确定型和不确定型。确定型的T(λ,x(λ))只含有一个元。不确定型指我们不能确切知道决策的结果,但作为某已知概率分布支配的变换结果,在每级状态和决策是确定的。这时,集函数T(λ,x(λ))将包含多个元素。当T(λ,x(λ))=0 时,过程终止。
 
策略:顺序排列的决策集,记为v。所有可能的策略集构成策略空间Γ。
 
收益:评价给定策略的目标函数r(λ,v),它依赖于状态和策略。总收益是集收益s(λ,v)的某个组合(通常为集收益之和)。若T(λ,x(λ))=0,则r(λ1,v1)= s(λ1,v1);若T(λ,x(λ))= λ2,则r(λ1,v)= s(λ1,v1)+ r(λ1,v2)。
 
 
 
二.序贯决策过程
 
 
 
动态规划的寻优过程可以有正序、逆序两种方式。当初始状态给定时,用逆序方式比较好,当终止状态给定时,用正序方式较好。
 
采用分级的序贯决策方法,把一个含有n个变量的问题转化为求解n个单变量问题。为了应用最优化原理,必须满足分级条件,即目标函数可分性和状态可分性。
 
目标函数可分性:
 
 = (λj, vj )
 
状态可分性:即在n+1 级做决策x(n+1) 后,状态λ(n+1)仅取决于λ(n)和x(n+1) ,而与以前的状态无关。也就是系统的无记忆性。
 
三.最优性定理和基本方程
 
Bellman的最优性原理指出:不管该最优策略上某状态以前的状态和决策如何,对该状态而言,余下的诸决策必构成最优子策略.由此得出最优性定理:
 
策略v(1,n)=( λ1, λ2,…, λn)是最优子策略的充分必要条件是:对任一k(1
 
r(λ1,v*(1,n))=min r(λ1,v(1,n))
 
          =min [r(λ1,v(1,k-1))+v(λk,v(k,n))]
 
因此,在策略集V(1,n)上求最优解,就等价于先在子策略集V(k,n)上求最优解,然后再求这些子最优解在子策略空间V(1,k-1)上的最优解。
 
 
 
逆序递推的基本方程:
 
 
 
 r*(λk)  = min [r(λk,vk)+r*(λk+1)] 终端条件:r*(λn+1) = 0
 
式中:     λk+1 = T(λk, vk)
 
 
 
顺序递推的基本方程:
 
 
 
r*(λk+1)  = min [r(λk+1,vk)+r*(λk)] 始端条件:r*(λ1) = 0
 
式中:     λk+1 = T(λk, vk)
 
 
 
2.动态规划的应用举例
 
用动态规划求解实际问题,首先要建立动态规划模型,需进行以下几方面工作:
 
(1)    正确划分阶段及选择阶段变量k。
 
(2)    正确选择状态变量λk,状态变量应满足以下两个条件:
 
1.能正确描述受控过程的演变特征。
 
2.无后效性
 
(3)    正确选择决策变量及确定个级允许决策集合。
 
(4)    写出状态转移方程(以逆序为例)
 
             λk+1 = T(λk, vk)
 
(5)    确定阶段目标函数的形式,目标函数必须具有可分性,并满足递推关系。
 
(6)    写出基本方程即最优值函数满足的递推方程及端点条件(以逆序极小化为例):
 
      r*(λk)  = min [r(λk,vk)+r*(λk+1)] 终端条件:r*(λn+1) = 0
 
 
 
 
 
例 最短路径问题
 
如图,给定一个运输网络,两点之间连线上的数字表示两点间的距离。试求一条从A到E的运输路线,使总距离最短。
 
动态规划(转)
 
从图中可以看出,我们可以把从A到E的过程分成若干个阶段,这里是四个阶段。处于每个阶段时,都要选择走哪条支路——决策,一个阶段的决策除了影响该阶段的效果之外,还影响到下一阶段的初始状态,从而也就影响到整个过程以后的进程。因此,在进行某一阶段的决策时,就不能只从这一阶段本身考虑,而应使整体的效果最优。
 
我们可以从最后一个阶段开始,由终点向始点方向逐阶递推,寻找各点到终点的最短路径,当递推到始点时,即得到了从始点到终点的全过程最短路。这种由后向前的递推方法,正是动态规划的寻优思想。
 
 
下面我们对这个问题进行求解。把从A到E的全过程分为四个阶段,用k表示阶段变量。第一阶段,有一个初始状态A,三条可供选择的支路、、,以此类推。我们用(,)表示在第k阶段由初始状态到下阶段的初始状态的支路距离。用()表示从第k阶段的到终点E的最短距离。
 
用逆序递推的方法:
 
1.阶段k = 4
 
第4阶段有两个初始状态和。若全过程最短路径经过,则有()= 4 ;若全过程最短路径经过,则有()= 3 。
 
2.阶段 k = 3
 
假设全过程最短路径在第3阶段经过点:
 
若由,则有(,)+()=  4 + 4 = 8
 
若由,则有(,)+()=  6 + 3 = 9
 
因此,()= min(8,9)= 8 ,即由的最短路径是,最短距离是8。
 
类似地,假设全过程最短路径经过点,则有
 
()= min{[(,)+ ()],[(,)+ ()]}
 
         = min (7,8) = 7
 
即由的最短路径是由,最短距离是7。
 
同理可得出:()= min ( 6 , 6 ) = 6
 
由的最短路径有两条和,其距离都是6。
 
3.阶段 k = 2
 
类似地,可计算、、如下:
 
 =  min( 15 , 14 , 14 ) = 14
 
 =  min(11, 12 , 12 ) = 11
 
 =  min(14 , 15 , 13 ) = 13
 
因此,由的最短路径有三条、、,最短距离都是14;由的最短路径是,距离是11;由的最短路径有两条:和,距离是13。
 
4.阶段 k = 1
 
 = min ( 16 , 15 , 16 ) = 15
 
因此,由的全过程最短路径是,最短距离是15。
 
从以上过程可以看出,每个阶段中,都求出本阶段的各个初始状态到终点E的最短路径和最短距离,当逆序递推到过程始点A时,便得到全过程的最短路径及其最短距离,同时得到一族最优结果(即各阶段的各状态到终点E的最优结果)。和穷举法相比,逆叙递推方法大大减少了计算量,且大大丰富了计算结果。
 
此题也可以用顺序递推的方法求解,解法过程相似,在此就不赘述了。
 
 
 
 
 
例 多阶段资产投资的动态规划决策模型
 
1. 多阶段资产投资的决策问题
 
    设某资产市场中共有n种资产可供投资者进行选择,某一投资者要在该市场中进行m(m>1)阶段的投资,在每一阶段中该投资者都可在这n种资产中选择投资。设该投资者可预测到从开始到第m个投资阶段中各个阶段单位资产投资的平均收益与风险。不妨设,在第j(i=l,…,m)个阶段初购买第j(i=l,…,n)种资产,到该阶段末时的平均收益率为,平均风险损失率为;而且,若第j—l阶段末已持有一部分资产,则在第j(j=2,…,m)个阶段初,可以决定这些资产是继续持有、还是出售,而出售资产所得的资金可用于该阶段的资产购买。根据实际情况,每个阶段中每一种资产的买卖均需按交易的金额交纳一定比例的交易费,不妨假设在第j(j=l,…,m)个阶段中买卖第i(i=1,…,n)种资产的交易费率为。
 
多阶段资产投资的决策问题就是要求设计该投资者的一种资产投资组合方案,使得在投资总风险低于一定风险上限要求的前提下,到第m个阶段末时该投资者的投资总收益(即m个阶段的投资收益总和)尽可能大。
 
为简化问题的考虑,建立以下四点假设:
 
1.投资者只在投资开始时(即第1阶段初)向资产市场投入一定数额的自由资金,在其后的m—1个阶段中不再增加对该资产市场的资金投入;同时,也不把已获得的收益资金从资产市场中抽出。也就是说,投资者的最终持有的资产和资金只是由最初的自由资金进行了M次投资后获得的。
 
2.在资产投资中,不允许卖空行为,即投资者出售的资产量不允许超过其当时的实际资产持有量。
 
3,考虑到投资超分散,投资风险就越小,我们确定投资总风险用各阶段中所投资的各种资产风险中最大的一个来衡量。而且,投资者的投资风险要求不能高于一个固定的风险上限。
 
4,投资是持续的,在相邻两阶段间没有其他投资行为。这样,任一阶段未时投资者的资产及自由资金情况与下一阶段初时的情况相同。
 
多阶段资产投资决策的动态规划模型
 
为叙述方便,我们引入以下一些记号:
 
——第j阶段初,投资者拥有的第i种资产的金额(j=1,…,m ; i = 1 , …,n);
 
——第j阶段韧,投资者拥有的自由资金的金额(j=1,…,m );
 
——第j阶段初,投资者对第i种资产的交易金额(j=1,…,m ; i = 1 , …,n);
 
其中:<0表示投资者出售第i种资产;
 
      >0表示投资者购买第j种资产。
 
    (,,…,,)表示第j阶段初投资者持有的资产金额和自由资金金额的状态,我们称之为第j阶段初的投资状态变量,简记为“s (j=l,…,m)。
 
(,,…,)表示第j阶段投资者的资产投资交易的情况.我们称之为第j阶段的投资决策变量,简记为(j=1,…,m)。
 
另记
 
Q——投资者所能承受的投资风险的上限值;
 
M——投资开始时,投资者向资产市场投入的自由投资资金量。
 
下面分析投资决策变量、状态变量间的关系及其所受约束。
 
 
 
1.状态变量
 
   首先,由状态变量的定义和假设l,可得:
 
    =0 (i=l,….n),=M    (1)
 
    其次,由决策变量的定义知,当第j(j=1,…,m)阶段初的投资状态为s时,投资者在该阶段中的投资决策会影响其在该阶段末的投资状态s。具体情况如下:
 
    ①投资者对第i(j=1,…,n)种资产的投资会影响该阶段末时该资产的持有量,即等于+。所以,投资者对第i(i=1,…,n)种资产进行投资,到该时期末其所得的收益为(+)。因此,该阶段末投资者持有的第i种资产的金额j就为
 
   = (1 + )(+)  (i=l,…,n)  (2)
 
并且由“不允许卖空”假设可知 >0    (i=l,…,n)    (3)
 
    ②投资者对第i(i=l,…,n)种资产的投资也会影响该阶段末时的自由资金持有量.即等于所购买的资产金额与所付的交易费的总和。因此,到该阶段末投资者所持有的自由资金就为
 
     =  —     (4)
 
而且.由假设l知,投资者进行投资所消耗的资金额不能超过其总可利用资金的金额,故该阶段末时投资者的自由资金量不能为负值,即
 
     0
 
亦即      (5)
 
 综上可知,当投资者在第j(j=1,…,m)阶段的决策变量为时,投资者在第j阶段初的状态变量s与第j+1`阶段初(即第j阶段末)的状态变量s必满足(1)—(5)式。
 
2.决策变量
 
  首先,由假设2知:在第j(j=l,…,m)阶段初,投资者实际出售的资产值不能超过其此时的资产持有量。
 
即   + >0  (i=l,…,n)
 
故有    —<   (i=1,…,n)    (6)
 
    其次,考虑到投资者在第j(j=1,…,m)阶段中进行投资的总体风险是由其在该阶段末时所持有的总资产产生的。其中,该阶段末投资者对第i(i=1,…,n)种资产的持有量为+ (i=1,…,n),故第j种资产的投资风险就为 (+)(i=1,…,n)。因此,由假设3知,投资者在第j(j=1,…,m)阶段进行投资的总体风险为:
 
    max{(+)}
 
根据投资风险上限要求,有
 
    max{(+)} < Q
 
注意到上式是非线性的,其可以等价于一个线性约束,形式如下
 
    (+) < Q ( i= 1 , …, n )     (7)
 
    综上可知,投资考在第j(j=1,…,m)阶段初的投资状态变量为时,其所进行的投资决策必满足(6)—(7)式。令=(+)—( +)(1km),表示投资者从第k阶段初的状态s开始,依次按决策变量,…,进行投资,到第m阶段末时所得的实际收益值。
 
    因此,投资者的m阶段投资决策,就是在满足条件(1)—(7)的前提下,寻找每个阶段中的投资决策变量,使得这m个阶段投资的总收益 尽可能大。
 
    而由前面对状态变量和决策变量的分析可知,相邻阶段的状态是相关的,因此,可以根据阶段状态变量间的递推关系得出投资者的投资决策目标。
 
令(1km)表示投资者从第k阶段初开始,依次按决策变量,…,进行投资,到第m阶段末时投资者所能获得的最大总收益。
 
根据决策变量的无后效性及状态变量间的关系可得:
 
={+[(+)—(+)]}
 
   = { +(+)—(+)}
 
   = {[(+—)] } (8)
 
故,投资者的投资决策可用一个动态规划表示。该动态规划基本方程为(8)式,约束条件为(7)、(6)、(5)。
 
通过求解这个动态规划模型,可得到投资者m阶段投资的最优决策。
 
考虑到当投资项目较多时,状态向量维数较高,涉及较大的计算量与存储量,故考虑使用逐次迭代法,求近似解。
 
所谓逐次迭代法是一种降低状态维数的近似法,其基本思想是,先保持部分状态变量不变,对其余变量实现最优化,然后以迭代方式反复进行这个过程,直到得到某种程度的收敛为止。
 
原文地址:https://www.cnblogs.com/yujon/p/5467585.html