动态规划1

动态规划


1.动态规划概论


动态规划(Dynamic Programming,DP)
是运筹学的一个分支,是求解决策过程最优化的过程。在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。


2.动态规划应用过程


使用动态规划方法求解决策问题首先要将问题改造成符合动态规划求解要求的形式,要涉及以下阶段:
(1)阶段
(2)状态
(3)决策与策略
(4)状态转移方程
(5)指标函数
(6)基本方程


(1) 划分阶段
把一个复杂决策问题按时间或空间特征分解为若干(n)个相互联系的阶段(stage), 以便按顺序求解;
阶段变量描述当前所处的阶段位置,一般用下标k 表示;


(2) 确定状态
每阶段有若干状态(state), 表示某一阶段决策面临的条件或所处位置及运动特征的量,称为状态反映状态变化的量叫作状态变量k 阶段的状态特征可用状态变量 sk 描述;


每一阶段的全部状态构成该阶段的状态集合Sk,并有sk属于Sk。每个阶段的状态可分为初始状态和终止状态,或称输入状态和输出状态,阶段的初始状态记作sk终止状态记为sk+1 ,也是下个阶段的初始状态。


(3) 决策、决策变量
所谓决策就是确定系统过程发展的方案,决策的实质是关于状态的选择,是决策者从给定阶段状态出发对下一阶段状态作出的选择。
用以描述决策变化的量称之决策变量,和状态变量一样,决策变量可以用一个数,一组数或一向量来描述.也可以是状态变量的函数,记以 xk=xk(sk) ,表示于 k 阶段状态 sk 时的决策变量
决策变量的取值往往也有一定的容许范围,称之允许决策集合决策变量 xk(sk)的允许决策集用 Xk(Sk)表示xk(sk)属于Xk(Sk) , 允许决策集合实际是决策的约束条件


(4)策略和允许策略集合
策略(Policy)也叫决策序列。策略有全过程策略k 部子策略之分,全过程策略是指具有n 个阶段的全部过程,由依次进行的 n 个阶段决策构成的决策序列,简称策略,表示为p1,n{x1,x2,…,xn}。 从 k 阶段到第 n 阶段,依次进行的阶段决策构成的决策序列称为 k 部子策略,表示为pk,n{xk,xk+1,…,xk+n} ,显然当 k=1时的 k 部子策略就是全过程策略。


(5) 状态转移方程
状态转移确定从一个状态到另一个状态的转移过程,
由状态转移方程描述: sk+1 = T (sk, xk);
状态转移方程在大多数情况下可以由数学公式表达, 如: sk+1 = sk + xk


(6) 指标函数
用来衡量策略或子策略或决策的效果的某种数量指标,就称为指标函数。它是定义在全过程或各子过程或各阶段上的确定数量函数。对不同问题,指标函数可以是诸如费用、成本、产值、利润、产量、耗量、距离、时间、效用,等等。

a.阶段指标函数(也称阶段效应
vk(sk , xk)表示第 k 段处于状态 sk且所作决策为 xk 时的指标,则它就是第 k 段指标函数,简记为 vk

b.过程指标函数(也称目标函数)
f(sk , xk)表示第k子过程的指标函数表示处于第 k 段 sk 状态且所作决策为xk时,从 sk 点到终点的距离。由此可见, f(sk , xk)不仅跟当前状态 sk 有关,还跟该子过程策略 pk(sk) 有关,严格说来,应表示为 fk(sk , pk(sk))它是由各阶段的阶段指标函数 vk(sk , xk)累积形成的,对于 k 部子过程的指标函数可以表示为:
在这里插入图片描述
式中 ⊕ ,表示某种运算,可以是加、减、、乘、除、开方等.
多阶段决策问题中,常见的目标函数形式之一是取各阶段效应之和的形式,即:
在这里插入图片描述
有些问题,如系统可靠性问题,其目标函数是取各阶段效应的连乘积形式, 即:
在这里插入图片描述


(7) 最优解
fk* (sk) 表示第 k 子过程指标函数Fk(sk , pk(sk))在状态 sk 下的最优值,即:
在这里插入图片描述
fk *(sk) 为第 k 子过程上的最优指标函数;与它相应的子策略 pk(sk) 称为状态 sk 下的最优子策略,记为 pk*(sk)


(8)基本方程
一般地,对于 n 个阶段的决策过程,假设只考虑指标函数是“和”与“积”的形式,第 k 阶段和第 k+1 阶段间的递推公式可表示如下:
当过程指标函数为下列“和”的形式时
在这里插入图片描述
相应的函数基本方程为 :
在这里插入图片描述


3.动态规划问题


例1:用动态规划求解最短路问题
在这里插入图片描述
最短路的求解:
阶段:
可分为4个阶段, k = 1, …, 4。
状态:
可用城市编号, S1={Q}, S2={A1,A2,A3}, S3={B1,B2,B3}, S4={C1,C2}, S5={T}
决策:
决策变量也可用城市编号;
状态转移方程:
sk+1= xk;
阶段指标函数:
vk(sk,xk)=cskxk
过程指标(阶段递推)函数:
fk(sk)=min{vk(sk,xk)+fk+1(sk+1)}

k = 4
f4 (C1) = 3, f4(C2) = 4
k = 3
f3(B1)=min{1+f4(C1)=4*, 4+f4(C2)=8}=4
f3(B2)=min{6+f4(C1)=9, 3+f4(C2)=7*}=7
f3(B3)=min{3+f4(C1)=6*, 3+f4(C2)=7}=6
k = 2
f2(A1) = min{7+ f3(B1), 4+ f3(B2), 6+ f3(B3) } = min{11*, 11*, 12} = 11
f2(A2) = min{3+ f3(B1), 2+ f3(B2), 4+ f3(B3) } = min{7*, 9, 10 } = 7
f2(A3) = min{4+ f3(B1), 1+ f3(B2), 5+ f3(B3) } = = min{8*, 8*, 11 } = 8
k = 1
f1(Q) = min{2+f2(A1), 4+f2(A2), 3+f2(A3)} = min{13, 11*, 11* } = 11
最短路是:
Q> A2 > B1 > C1 > T,p={A2,B1,C1,T}
Q> A3 > B1 > C1 > T ,p={A3,B1,C1,T}
Q> A3 > B2 > C2 > T ,p={A3,B2,C2,T}
在例题中,求解最短路线的计算公式可以概括写成:
在这里插入图片描述

其中,vk 在这里表示从状态 sk 到由决策 xk 所决定的状态 sk+1 之间的距离。f5(s5)=0 是边界条件,表示全过程到第四阶段终点结束。


  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1D/1D动态规划是指状态数为O(n),转移为O(n)的动态规划方程。一般情况下,求解的时间复杂度为O(n^2),但通过优化可以将时间复杂度降低到O(nlogn)甚至O(n)。[2] 在1D/1D动态规划中,决策单调性优化是一种常见的优化技巧。决策单调性指的是在动态规划的过程中,可以通过剪枝或其他方法来减少不必要的计算。这种优化可以进一步提高算法的效率。 具体来说,当决策单调性优化应用于1D/1D动态规划问题时,我们可以根据问题的特点和约束条件,选择一种合适的决策策略,使得在状态转移时可以减少不必要的计算。这样可以大大降低算法的时间复杂度。 总之,1D/1D动态规划是一种通过状态数为O(n),转移为O(n)的动态规划方程来解决问题的方法。通过决策单调性优化,可以进一步提高算法的效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [1D/1D动态规划优化初步 模型一](https://blog.csdn.net/u010152669/article/details/23025691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [1D/1D动态规划](https://blog.csdn.net/tanjunming2020/article/details/126631403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值