Chapter06_动态规划

  1. 举例说明什么是多阶段的决策过程以及具有多阶段决策问题的特性?
    1. 什么是? 一个过程可以分为多个阶段,在每个阶段都需要做出决策,且前一个决策的结果会成为后一个决策的起点;这样将一个问题看做一个前后关联具有链式结构问题称为多阶段过程。
    2. 特性 各个阶段采取的决策,一般来说与时间相关,决策依赖于当前的状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生。
    3. 例如 在寻找最短路时,可将其划分为多个不同阶段,且每一阶段的决策会成为下一阶段决策的起点。
  2. 解释以下概念
    1. 阶段
      • 将说给问题的过程分为若干个相互联系的阶段,以便能按一定的次序求解。
      • 描述阶段的变量,称为阶段变量,常用 kk 表示
    2. 状态
      • 表示每个阶段开始所处的自然状态或客观条件,其描述了研究问题过程的状况,又称不可控因素。
      • 描述状态的变量称为状态变量。其可用一个数、一组数或一组向量来描述。常用 Sk\mathbb{S}_k 表示第 kk 阶段的状态变量。
      • 可达状态集 在某阶段下,可达到的状态的集合。此阶段的某状态 sks_k 必然 skSks_k\in\mathbb{S}_k
      • 此处的状态应该满足无后效性:某阶段的状态给定后,则此阶段以后过程的发展不收这个阶段以前各阶段的影响。
    3. 决策
      1. 处于某一阶段的某个状态时,可以做出不同的决定(或选择),从而确定下一阶段的状态,此种决定称为决策
      2. 描述决策的变量称为决策变量,其用一个数、一组数或一组向量表示。常用 uk(sk)u_k(s_k) 表示第 kk 阶段当状态处于 sks_k 时的决策变量。其是状态变量的函数。
      3. 允许决策集合 实际问题中,决策变量的取值往往限制于某一范围之内,此范围称为允许决策集合。常用 Dk(sk)\mathbb{D}_k(s_k) 表示第 kk 阶段从状态 sks_k 出发的允许决策集合,显然有 uk(sk)Dk(sk)u_{k}(s_k)\in \mathbb{D}_k(s_k)
    4. 最优策略
      1. 策略 策略是按顺序排列的决策组成的集合。
      2. 子策略 由过程第 kk 个阶段开始到终止状态为止的过程,称为问题的后部子过程(或 kk 子过程)。由每段决策按顺序排列组成的策略函数序列 {uk(sk),,un(sn)}\{u_k(s_k),\cdots, u_n(s_n)\} 称为 kk 子过程策略,简称子策略,记 pk,n(sk)p_{k,n}(s_k)pk,n(sk)={uk(sk),uk+1(sk+1),,un(sn)}p_{k,n}(s_k) = \{u_{k}(s_k),u_{k+1}(s_{k+1}),\cdots, u_n(s_n)\}
      3. 全过程策略k=1k=1 时,测决策函数序列称为全过程的一个测策略,简称策略,记 p1,n(s1)p_{1,n}(s_1)p1,n(s1)={u1(s1),u2(s2),,un(sn)}p_{1,n}(s_{1}) = \{u_{1}(s_1),u_{2}(s_2),\cdots, u_{n}(s_n)\}
      4. 可供选择的策略范围,称为允许策略集合P\mathbb{P} 表示
      5. 从允许策略集合中找出达到最优效果的策略称为最优策略
    5. 状态转移方程
      1. 确定过程由一个状态到另一个状态的演变过程。若给定第 kk 阶段的状态变量 sks_k 的值,如果该阶段的决策变量 uku_k 一经确定,第 k+1k+1 的状态变量 sk+1s_{k+1} 也就完全确定。即 sk+1s_{k+1} 的值随着 sks_kuku_k 的变化而变化。这种确定关系,记为sk+1=Tk(sk,uk)s_{k+1}=T_{k}(s_k,u_k)
    6. 指标函数最优值函数
      1. 指标函数 用于衡量所实现过程优劣的一种数量指标。是定义在全过程和所有后部子过程上所确定的数量指标。常用 Vk,nV_{k,n} 表示。即Vk,n=Vk,n(sk,uk,sk+1,uk+1,,sn+1), k=1,2,,nV_{k,n}= V_{k,n}(s_k,u_k,s_{k+1},u_{k+1},\cdots,s_{n+1}),\ k= 1,2,\cdots,n对于要构成动态规划模型的指标函数,应具有可分离性,且满足递推关系。即 Vk,nV_{k,n} 可表示为 sks_{k}uku_{k}Vk+1,nV_{k+1,n} 的函数。记为Vk,n(sk,uk,sk+1,,sn+1)=ψk[sk,uk,Vk+1,n(sk+1,,sn+1)]V_{k,n}(s_k,u_k,s_{k+1},\cdots,s_{n+1}) = \psi_{k}[s_k,u_k,V_{k+1,n}(s_{k+1},\cdots,s_{n+1})]
      2. 常见的指标函数形式
        1. 过程和其任意子过程的指标是其所包含各阶段的指标之和 Vk,n(sk,uk,sk+1,,sn+1)=j=knvj(sj,uj)V_{k,n}(s_{k},u_k,s_{k+1},\cdots,s_{n+1})=\sum_{j=k}^{n}v_{j}(s_j,u_j)vj(sj,uj)v_{j}(s_j,u_j) 表示第 jj 阶段的指标;上式亦可写成Vk,n(sk,uk,sk+1,,sn+1)=vk(sk,uk)+Vk+1,n(sk+1,uk+1,,sn+1)V_{k,n}(s_{k},u_k,s_{k+1},\cdots,s_{n+1}) = v_{k}(s_k,u_k) + V_{k+1,n}(s_{k+1},u_{k+1},\cdots,s_{n+1})
        2. 过程和其子过程的指标是其所包含各阶段指标之积Vk,n(sk,uk,sk+1,,sn+1)=j=knvj(sj,uj)V_{k,n}(s_{k},u_k,s_{k+1},\cdots,s_{n+1})=\prod_{j=k}^{n}v_{j}(s_j,u_j)vj(sj,uj)v_{j}(s_j,u_j) 表示第 jj 阶段的指标;上式亦可写成Vk,n(sk,uk,sk+1,,sn+1)=vk(sk,uk)Vk+1,n(sk+1,uk+1,,sn+1)V_{k,n}(s_{k},u_k,s_{k+1},\cdots,s_{n+1}) = v_{k}(s_k,u_k) \cdot V_{k+1,n}(s_{k+1},u_{k+1},\cdots,s_{n+1})
      3. 指标函数的最优值,称为最优值函数,记为 fk(sk)f_k(s_k)。表示从第 kk 阶段的状态 sks_k 开始到第 nn 阶段的终止状态的过程,采取最优策略所得到的指标函数值。即fk(sk)=opt{uk,,un}Vk,n(sk,uk,,sn+1)f_k(s_k) = \underset{\{u_k,\cdots,u_n\}}{\mathrm{opt}} V_{k,n}(s_k,u_k,\cdots,s_{n+1})
    7. 边界条件 最终阶段的最优值函数 fn+1(sn+1)f_{n+1}(s_{n+1}) 的值称为边界条件
  3. 建立动态规划模型时需要注意哪些点,他们在模型中的作用是什么?
    1. 注意事项
      1. 各阶段的状态应该满足无后效性,即某阶段的状态给定后,该阶段后的过程,不会收到该阶段之前各段状态的影响。即sk+1=T(sk,uk)s_{k+1} = T(s_k,u_k)下一阶段的状态仅受当前阶段状态和决策的影响
  4. 试述动态规划方法的基本思想,动态规划基本方程的结构、方程中各个符号的含义以及正确写出动态规划方程的关键要素
    1. 基本思想
      1. 动态规划方法的关键在于正确写出基本的递推关系式以及恰当的边界条件。要做到这一点,必须将问题的过程分为几个相互联系的阶段,恰当地选取状态变量和决策变量以及定义最优值函数,从而将一个大问题化为一族同类型的子问题,然后逐个求解。即从边界条件开始,逐段递推寻优,在每一个子问题的求解中,均利用了它前面的子问题的最优化结果,依次进行,最后一个子问题所得的最优解,就是整个问题的最优解
      2. 多阶段决策过程中,动态规划方法既是把当前一段和未来各段分开,又把当前效益和未来效益结合考虑的一种最优化方法。因此,每段决策的选取是从全局来考虑的,与该段的最优选择答案一般是不同的
      3. 求整个问题的最优策略时,由于初始状态是已知的,而每段的决策都是该段状态的函数,故最优策略所经过的各段状态便可逐次变化得到,从而确定最优路线。
    2. 基本方程
      1. kk 阶段与 k+1k+1 阶段的递推式fk,n(sk)=optukDk(sk){vk(sk,uk(sk))+fk+1(uk(sk))}, k=n,n1,,1f_{k,n}(s_k) = \underset{u_k\in\mathbb{D}_k(s_k)}{\mathrm{opt}}\{v_{k}(s_k,u_k(s_k)) + f_{k+1}(u_k(s_k))\},\ k =n,n-1,\cdots,1
      2. 边界条件fn+1(sn+1)=0f_{n+1}(s_{n+1}) = 0
    3. 正确写出规划方程的重要因素
      1. 将问题的过程划分为恰当的阶段
      2. 正确选择状态变量 sks_k,使其既能描述过程的演变,又具有无后效性
      3. 确定决策变量 uku_k 及每阶段的允许决策集合 Dk\mathbb{D}_k
      4. 正确写出状态转移方程
      5. 正确写出指标函数 Vk,nV_{k,n} 的关系,应满足如下3方面性质
        1. 是定义在全过程和所有后部子过程上的数量函数
        2. 具有可分离性,并满足地递推关系,即Vk,n(sk,uk,,sn+1)=ψk[sk,uk,Vk+1,n(sk+1,uk+1,,sn+1)]V_{k,n}(s_k,u_k,\cdots,s_{n+1}) = \psi_k[s_k,u_k, V_{k+1,n}(s_{k+1},u_{k+1},\cdots,s_{n+1})]
        3. 函数 ψk(sk,uk,Vk+1,n)\psi_k(s_k,u_k,V_{k+1,n}) 对于变量 Vk+1,nV_{k+1,n} 严格单调
  5. 试述动态规划的最优化原理,以及它同动态规划基本方程的之间的关系
    1. 最优性原理
      1. “一个过程的最优策略具有这样的性质:即无论初始状态及初始决策如何,对于先前决策所形成的状态而言,其以后的所有决策应构成最优策略。” 即 一个最优策略的子策略总是最优的;
      2. 其与动态规划基本方程的之间并不是无条件等价的,也不存在确定的蕴含关系。
      3. 是策略最优性必要条件
    2. 动态规划的最优性定理 (充要条件) 设阶段数为 nn 的多阶段决策过程,其编号为 k=0,1,,nk=0,1,\cdots,n允许策略 p0,n1=(u0,u1,,un1)p^*_{0,n-1}=(u_0^*,u_1^*,\cdots,u_{n-1}^*) 为最优策略的充要条件是对任意一个 kk0<k<n10<k<n-1) 和 s0S0s_0\in\mathbb{S}_0V0,n1(s0,p0,n1)=optp0,k1p0,k1(s0){V0,k1(s0,p0,k1)+optpk,n1p0,k1(sk~)(sk~,pk,n1)}\begin{split}V_{0,n-1}(s_0,p^*_{0,n-1}) = & \underset{p_{0,k-1}\in p_{0,k-1}(s_0)}{\mathrm{opt}}\{V_{0,k-1}(s_0,p_{0,k-1})+ \\& \underset{p_{k,n-1}\in p_{0,k-1}(\widetilde{s_k})}{\mathrm{opt}}(\widetilde{s_k},p_{k,n-1})\}\end{split}式中 p0,n1=(p0,k1,pk,n1)p^*_{0,n-1} = (p_{0,k-1},p_{k,n-1})sk~=Tk1(sk1,uk1)\widetilde{s_k} = T_{k-1}(s_{k-1},u_{k-1}),它是由给定的初始状态 s0s_0 和子策略 p0,k1p_{0,k-1} 所确定的 kk 阶段状态。
      • 推论 若允许策略 p0,n1p^*_{0,n-1} 是最优策略,则对任意的 k, 0<k<n1k,\ 0<k<n-1,它的子策略 pk,n1p^*_{k,n-1} 对于以 sk=Tk1(sk1,uk1)s_k^*=T_{k-1}(s^*_{k-1},u^*_{k-1}) 为起点的 kkn1n-1 子过程来说,必是最优策略
  6. 试述动态规划方法与逆推解法和顺推解法之间的联系及应注意之处
    1. 逆推解法已知初始状态s1s_1,并假定最优值函数 fk(sk)f_k(s_k) 表示第 kk 阶段的初始状态为 sks_k,从 kk 阶段到 nn 阶段所得得到的最大收益
      1. 从第 nn 阶段有fn(sn)=maxxnDn(sn)vn(sn,xn)f_{n}(s_n) = \max_{x_{n}\in\mathbb{D}_n(s_n)} v_n(s_n,x_n)其中 D(sn)\mathbb{D}(s_n) 是由状态 sns_n 所确定的第 nn 阶段的允许决策集合。解此一维极值问题,就可得到最优解 xn=xn(sn)x_n = x_{n}(s_n) 和最优值 fn(sn)f_n(s_n),需要注意的是,若 Dn(sn)\mathbb{D}_n(s_n) 仅有一个决策,则 xnDn(sn)x_{n}\in\mathbb{D}_n(s_n) 就应该写成 xn=xn(sn)x_n=x_n(s_n)
      2. n1n-1 阶段有fn1(sn1)=maxxn1Dn1(sn1)[vn1(sn1,xn1)fn(sn)]f_{n-1}(s_{n-1}) = \max_{x_{n-1}\in\mathbb{D}_{n-1}(s_{n-1})} [v_{n-1}(s_{n-1},x_{n-1})\cdot f_{n}(s_n)]其中 sn=Tn1(sn1,xn1)s_n = T_{n-1}(s_{n-1},x_{n-1});解此一维极值问题,得到最优解 xn1=xn1(sn1)x_{n-1}=x_{n-1}(s_{n-1}) 和最优值 fn1(sn1)f_{n-1}(s_{n-1})
      3. kk 阶段有fk(sk)=maxxkDk(sk)[vk(sk,uk)fk+1(sk+1)]f_{k}(s_k) = \max_{x_{k}\in\mathbb{D}_k(s_k)}[v_{k}(s_k,u_k)\cdot f_{k+1}(s_{k+1})]其中 sk+1=Tk(sk,xk)s_{k+1} = T_{k}(s_k,x_k);由此解得最优解 xk=xk(sk)x_{k} = x_{k}(s_k) 及最优值 fk(sk)f_{k}(s_k)
      4. 如此类推,直到第一阶段,有 f1(s1)=maxx1D1(s1)[v1(s1,x1)f2(s2)]f_{1}(s_{1}) = \max_{x_{1}\in\mathbb{D}_{1}(s_1)}[v_1(s_1,x_1)\cdot f_{2}(s_2)]其中 s2=T1(s1,x1)s_{2} = T_{1}(s_1,x_1);解得最优解 x1=x1(s1)x_{1}=x_1(s_1) 和最优值 f1(s1)f_{1}(s_1)
      5. 由于初始状态 s1s_1 已知,故 x1=x1(s1)x_1=x_1(s_1)f1(s1)f_1(s_1) 是确定的,从而 s2=T1(s1,x1)s_2 = T_{1}(s_{1},x_1) 也就是确定的,于是 x2=x2(s2)x_2=x_2(s_2)f2(s2)f_{2}(s_2) 也是确定的。如此,按上述递推过程相反顺序推算下去就可逐步确定每阶段决策及效应。
    2. 顺推解法 设已知终止状态的 sn+1s_{n+1},并假定最优值函数 fk(s)f_k(s) 表示第 kk 阶段末的结束状态为 ss,从 11 阶段到 kk 阶段所得到的最大收益。
      1. 从第一阶段有f1(s2)=maxx1D1r(s2)v1(s2,x1)f_{1}(s_2) = \max_{x_1\in\mathbb{D}_1^{r}(s_{2})} v_{1}(s_2,x_{1})其中 s1=T1r(s2,x1)s_{1} = T_{1}^r(s_{2},x_1) 解得最优解为 x1=x1(s2)x_1=x_{1}(s_2) 和最优值 f1(s2)f_{1}(s_2)。若 D1r(s2)\mathbb{D}_1^r(s_2) 仅有一个决策,则 x1D1r(s2)x_1\in\mathbb{D}^r_1(s_2) 可写成 x1=x1(s2)x_{1} = x_{1}(s_2)
      2. 在第二阶段有f2(s3)=maxx2D2r(s3)[v2(s3,x2)f1(s2)]f_2(s_3) = \max_{x_{2}\in\mathbb{D}^r_2(s_3)}[v_{2}(s_3,x_2)\cdot f_{1}(s_2)]其中 s2=T2r(s3,x2)s_{2} = T_{2}^r(s_3,x_2);解得最优解 x2=x2(s3)x_2 = x_{2}(s_3) 和最优值 f2(s3)f_{2}(s_3)
      3. kk 阶段有fk(sk+1)=maxxkDkr(sk+1)[vk(sk+1,xk)fk1(sk)]f_{k}(s_{k+1})=\max_{x_{k}\in\mathbb{D}^r_k(s_{k+1})}[v_{k}(s_{k+1},x_k)\cdot f_{k-1}(s_k)]其中 sk=Tkr(sk+1,xk)s_{k} = T^r_{k}(s_{k+1},x_k);由此解得最优解 xk=xk(sk+1)x_{k} = x_{k}(s_{k+1}) 和最优值 fk(sk+1)f_k(s_{k+1})
      4. 如此类推到 nn 阶段fn(sn+1)=maxxnDnr(sn+1)[vn(sn+1,xn)fn1(sn)]f_{n}(s_{n+1}) = \max_{x_{n}\in\mathbb{D}^r_{n}(s_{n+1})}[v_{n}(s_{n+1},x_n)\cdot f_{n-1}(s_n)]其中 sn=Tnr(sn+1,xn)s_{n} = T^r_n(s_{n+1},x_n);由此解得最优解 xn=xn(sn+1)x_{n} = x_{n}(s_{n+1}) 以及最优值 fn(sn+1)f_{n}(s_{n+1})
      5. 由于终止状态 sn+1s_{n+1} 是已知的,故 xn=xx(sn+1)x_n = x_{x}(s_{n+1})fn(n+1)f_{n}(n+1) 是确定的。再按计算过程的相反顺序推算,就可逐步确定每阶段的决策和效应。
    3. 联系 顺序解法和逆序解法在本质上并无区别,顺序解法相当于将现实的起点当做重点,将现实的终点当做起点,采用逆序方法求解。应注意的是 顺序解法是由 sk+1s_{k+1}xkx_k 去确定 sks_k;而逆序解法是由 sks_kxkx_k 去确定 sk+1s_{k+1} 的。
  7. 对静态规划的模型(如线性规划、非线性规划、整数规划等),一般可以采用动态规划的方法求解,对此你能否说一下各自的优缺点?
    1. 对于某些静态问题,可以人为引入时间因素,将其看作是按阶段进行的一个动态规划问题,这就使得动态规划成为求解某些线性、非线性规划的有效方法。

results matching ""

    No results matching ""