Skip to content

18.3.2 离散决策模型的例子

18.3.2.1 购买问题

一时间区间可以分成 n 个周期,在其第 j 个周期内,一工场需要某种原材料 vj 个单位. 在第 j 个周期开始时能得到的这种材料的数量记作 xj1 ,特别地, x0=xa 是给定的. 在每个周期结束时工场将以单位价格 cj 购买待定数量 uj 个单位材料. 同时给定的储存容量 K 是不能超过的,即 xj1+ujK . 要求确定购买策略 (u1,,un) ,使得总费用最小. 于是我们要求解如下的动态规划问题:

(18.127a)OF:f(u1,,un)=j=1nfj(uj)=j=1ncjujmin!(18.127b) CT: xj=xj1+ujvj,j=1(1)n,x0=xa,0xjK,j=1(1)n,Uj(xj1)={uj:max{0,vjxj1}ujKxj1},j=1(1)n.}

在 (18.127b) 中, 保证满足所需要求, 并且储存容量不会超过. 如果每个周期内还要支付每个单位储存费用 ,则在第 j 周期内的中间费用是 (xj1+ujvj/2) , 而修正的费用函数是

(18.128)f(x0,u1,,xn1,un)=j=1n(cjuj+(xj1+ujvj/2)).

18.3.2.2 背包问题

假设有 n 个项目 A1,,An ,相应的权重和价值分别为为 w1,,wnc1,,cn ,问题是要从中选取一些项目,使得总的权重数不超过给定上限 W ,而总价值最大. 这个问题与时间无关. 我们按如下方式重新表述这个问题: 在每一阶段要作出一个有关项目 Aj 选取的决策 uj ,这里若选取 Aj ,则 uj=1 ,否则, uj=0 . 在每一阶段开始时能得到的容量记作 xj1 . 从而就得到如下动态规划问题:

(18.129a)f(u1,,un)=j=1ncjujmin!(18.129b)xj=xj1wjuj,j=1(1)n,x0=W,0xjW,j=1(1)n,uj{0,1},xj1wj,j=1(1)n.uj=0,xj1<wj,}

version 1.24.0