文章目录
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 sk∈Sk。
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,⋯,sk−1及其决策
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),⋯,uk−1(sk−1)无关。表示为:
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=k∑ngi(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=k∏ngi(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)=pk∈PK(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∗=s1∈S1opt{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)sk∈Skuk∈Ukk=1,2,⋯,n