动态规划与多阶段决策问题简介

文章介绍了动态规划的概念,通过最短路径问题和库存成本最低问题两个实例进行说明。多阶段决策问题的特点、阶段变量、状态、决策、策略和状态转移方程被详细阐述,同时讨论了指标函数在衡量决策效果中的作用,以及如何寻找最优解。最后,提到了数学模型在解决此类问题中的应用。
摘要由CSDN通过智能技术生成


1.引例

1.1最短路径问题

在这里插入图片描述
动态规划求解从A到F的最短路径。

1.2 库存成本最低问题

某企业生产某种产品,每月月初按订货单发货,生产的产品随时入库,仓库最多能够储存产品90千件。在1至6月其生产成本和产品订单的需求数量情况如下表:
在这里插入图片描述
已知上一年底库存量为40千件,要求6月底库存量仍能够保持40千件。问:如何安排这6个月的生产量,使既能满足各月的定单需求,同时生产成本最低。

2、多阶段决策问题

2.1 特点

在这里插入图片描述

2.2 阶段和阶段变量

相互联系又有区别的子问题——阶段
描述阶段的变量——阶段变量( k k k表示)

2.3状态、状态变量、可能状态集

某特定时间与空间中位置及运动特征的量——状态
反映状态变化的量——状态变量
状态变量的取值范围或集合——可能状态集(可达状态集),可以是离散的也可以是连续的

状态变量

无后效性(马尔可夫性)——系统从某个阶段之后的发展,仅与当前状态及之后的决策决定,与之前的状态和经历无关——(强化学习应用)

状态

阶段 k k k的初始状态 s k s_k sk,终止状态 s k + 1 s_{k+1} sk+1,可能状态集 S k S_k Sk,即 s k ∈ S k s_k \in S_k skSk

2.4决策、决策变量和允许变量集合

从给定阶段的状态出发到下一个阶段状态的选择(行动 a c t i o n action action)——决策
描述决策变化的量——决策变量,可以是数、向量、其他量、也可是状态变量的函数
决策变量的取值范围——允许决策集合

决策变量和允许决策集合

u k = u k ( s k ) u_k=u_k(s_k) uk=uk(sk)表示阶段 k k k状态为 s k s_k sk时的决策变量,允许决策集 U k ( s k ) U_k(s_k) Uk(sk)表示,允许决策集合实际是决策的约束条件

2.5策略和允许策略集合

决策序列——策略(全过程策略、 k k k部字策略)
依次进行的 n n n个决策构成的决策序列——全过程策略(简称策略),表示为
p 1 , n { u 1 u 2 , ⋯   , u n } p_{1,n}\left\{u_1u_2,\cdots,u_n\right\} p1,n{u1u2,,un}
  从 k k k阶段到第 n n n阶段,依次进行的阶段决策构成的决策序列称为 k k k部子策略,表示为 p k , n { u k , u k + 1 , ⋯   , u n } p_{k,n}\left\{u_k,u_{k+1},\cdots,u_n\right\} pk,n{uk,uk+1,,un},显然,当 k = 1 k=1 k=1时的 k k k部子策略就是全过程策略
  不同策略的集合即允许策略集合,记作 P 1 , n P_{1,n} P1,n。最有效果的策略称为最优策略

2.6状态转移方程

s k + u k ( s k ) ⇒ s k + 1 s_k+u_k(s_k) \Rightarrow s_{k+1} sk+uk(sk)sk+1
  无后效性的转移过程: s k + 1 s_{k+1} sk+1只和 s k s_k sk u k ( s k ) u_k(s_k) uk(sk)有关,与之前的 s 1 , s 2 , ⋯   , s k − 1 s_1,s_2,\cdots,s_{k-1} s1,s2,,sk1及其决策 u 1 ( s 1 ) , u 2 ( s 2 ) , ⋯   , u k − 1 ( s k − 1 ) u_1(s_1),u_2(s_2),\cdots,u_{k-1}(s_{k-1}) u1(s1),u2(s2),,uk1(sk1)无关。表示为:
s k + 1 = T k ( s k , u k ( s k ) ) s_{k+1}=T_k(s_k,u_k(s_k)) sk+1=Tk(sk,uk(sk))
  多阶段决策过程的状态转移方程

2.7指标函数

衡量策略或子策略或决策效果的某种数量指标——指标函数。如奖励函数。

阶段指标函数

g k ( s k , u k ) g_k(s_k,u_k) gk(sk,uk)表示 k k k阶段处于 s k s_k sk状态下执行 u k ( s k ) u_k(s_k) uk(sk)决策的指标。强化学习中的即时奖励 r r r
R k ( s k , u k ) R_k(s_k,u_k) Rk(sk,uk)表示 k k k子过程的指标函数。与 s k s_k sk p k ( s k ) p_k(s_k) pk(sk)有关,严格可表示为 R k ( s k , p k ( s k ) ) R_k(s_k,p_k(s_k)) Rk(sk,pk(sk))。可简写为 R k ( s k , u k ) R_k(s_k,u_k) Rk(sk,uk) R k ( s k ) R_k(s_k) Rk(sk)。累积奖励函数 R R R,由各阶段指标函数(奖励函数)累积而成。

过程指标函数

动态规划中的过程指标函数(目标函数),有关于阶段指标的分离形式。 k k k部子过程的指标函数可表示为:
R k , n = R k , n ( s k , u k , s k + 1 , u k + 1 , ⋯   , s n , u n ) = g k ( s k , u k ) ⨁ g k + 1 ( s k + 1 , u k + 1 ) ⨁ ⋯ ⨁ g n ( s n , u n ) \begin{aligned}R_{k,n}&= R_{k,n}(s_k,u_k,s_{k+1},u_{k+1},\cdots,s_n,u_n)\\ &=g_k(s_k,u_k)\bigoplus g_{k+1}(s_{k+1},u_{k+1})\bigoplus \cdots \bigoplus g_n(s_n,u_n)\end{aligned} Rk,n=Rk,n(sk,uk,sk+1,uk+1,,sn,un)=gk(sk,uk)gk+1(sk+1,uk+1)gn(sn,un)
⨁ \bigoplus 表示某种运算。
  常见目标形式各阶段效应之
R k = ∑ i = k n g i ( s i , u i ) \begin{equation} R_k=\sum_{i=k}^ng_i(s_i,u_i) \end{equation} Rk=i=kngi(si,ui)
而有些问题如系统可靠性问题,目标函数为各阶段连
R k = ∏ i = k n g i ( s i , u i ) \begin{equation} R_k=\prod \limits_{i=k}^ng_i(s_i,u_i) \end{equation} Rk=i=kngi(si,ui)

2.8最优解

k k k子过程指标函数 R k ( s k , p k ( s k ) ) R_k(s_k,p_k(s_k)) Rk(sk,pk(sk))在状态 s k s_k sk下的最优值—— f k ( s k ) f_k(s_k) fk(sk)

f k ( s k ) = o p t p k ∈ P K ( s k ) { R k ( s k , p k ( s k ) ) } k = 1 , 2 , ⋯   , n \begin{aligned} f_k(s_k)=\mathop{opt}\limits_{p_k\in P_K(s_k)}\left\{R_k(s_k,p_k(s_k))\right\}\\ k=1,2,\cdots,n \end{aligned} fk(sk)=pkPK(sk)opt{Rk(sk,pk(sk))}k=1,2,,n
相应的 s k s_k sk状态下的最优子策略记为 p k ∗ ( s k ) p_k^*(s_k) pk(sk)。构成该子策略的各阶段决策称为该过程的最优决策,记
u k ∗ ( s k ) , u k + 1 ∗ ( s k + 1 ) , ⋯   , u n ∗ ( s n ) u_k^*(s_k),u_{k+1}^*(s_{k+1}),\cdots,u_n^*(s_n) uk(sk),uk+1(sk+1),,un(sn)

p k ∗ ( s k ) = { u k ∗ ( s k ) , u k + 1 ∗ ( s k + 1 ) , ⋯   , u n ∗ ( s n ) } ( k = 1 , 2 , ⋯   , n ) \begin{aligned} p_k^*(s_k)=\{u_k^*(s_k),u_{k+1}^*(s_{k+1}),\cdots,u_n^*(s_n)\}\\ (k=1,2,\cdots,n) \end{aligned} pk(sk)={uk(sk),uk+1(sk+1),,un(sn)}(k=1,2,,n)
简记为
p k ∗ = { u k ∗ , u k + 1 ∗ , ⋯   , u n ∗ , k = 1 , 2 , ⋯   , n } \begin{aligned} p_k^*=\{u_k^*,u_{k+1}^*,\cdots,u_n^*,k=1,2,\cdots,n\} \end{aligned} pk={uk,uk+1,,un,k=1,2,,n}
特别,当 k = 1 k=1 k=1 s 1 s_1 s1取值唯一时, f 1 ( s 1 ) f_1(s_1) f1(s1)就是问题最优值,而 p 1 ∗ p_1^* p1就是最优策略。若取值不唯一,则问题最优值记为 f 0 f_0 f0,有
f 0 ∗ = o p t s 1 ∈ S 1 { f 1 ( s 1 ) } = f 1 ( s 1 = s 1 ∗ ) f_0^*=\mathop{opt} \limits_{s_1\in S_1}\{f_1(s_1)\}=f_1(s_1=s_1^*) f0=s1S1opt{f1(s1)}=f1(s1=s1)
最优策略即 s 1 = s 1 ∗ s_1=s_1^* s1=s1状态下的最优策略: u k ∗ ( k = 1 , 2 , ⋯   , n ) u_k^*(k=1,2,\cdots,n) uk(k=1,2,,n),最优策略和最优值统称为最优解

3. 数学模型

o p t u 1 u n R ( s 1 , u 1 , s 2 , u 2 , ⋯   , s n , u n ) s . t . { s k + 1 = T k ( s k , u k ) s k ∈ S k u k ∈ U k k = 1 , 2 , ⋯   , n \mathop{opt} \limits_{u_1 u_n}R(s_1,u_1,s_2,u_2,\cdots,s_n,u_n)\\ s.t.\left\{ \begin{array}{lr} s_{k+1}=T_k(s_k,u_k) \\ s_k\in S_k\\ u_k\in U_k\\ k=1,2,\cdots,n \end{array} \right. u1unoptR(s1,u1,s2,u2,,sn,un)s.t. sk+1=Tk(sk,uk)skSkukUkk=1,2,,n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古道西风瘦码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值