跳到正文
格致开物MATHWIKI

随机规划与情景树

随机规划用带概率的情景描述决策时尚未知道的量。建模的首要约束是时间顺序:今天决定的量,不能因为模型把明天的两种结果都列成两行,就在两行里偷偷取不同值。情景树把每次获得新信息的时刻画成分叉,分叉前的决策必须共享。

先订货,后补货

设活动前先订 q 件,单价二元;活动当天才知道需求 D:需求四件的概率为 0.75,需求八件的概率为 0.25。不足部分当天可以每件五元补购,未卖出的先订货物没有残值。这里的概率和价格只是用于讲解的一组合成设定,不是实际市场估计。

若当天已知道需求,可分别订四件或八件;但活动前只有一个订单 q。设看到情景 s 后的补购量为 rs≥0,满足 q+rs≥Ds。完整的两阶段模型是 minq,rL,rH≥0 2q+0.75(5rL)+0.25(5rH) q+rL≥4,q+rH≥8. 若商品不可分,另加 q,rL,rH∈ℤ≥0;本例连续模型的最优 q 恰好为整数。图上左右两条枝分别对应低、高需求;分叉后的补购量可以不同,分叉前的 q 却只有一个。

活动前共同先订q件,然后情景树按概率零点七五分为需求四件和按概率零点二五分为需求八件,分叉后分别决定补购量
先订货发生在需求揭晓前;两条情景枝不能各自重写先订量。

把小例算到底

由于补购单价为正,给定 q 时最优补购是 rL=(4−q)+、rH=(8−q)+,其中 (z)+=max⁡(z,0)。于是目标成为单变量分段函数 F(q)=2q+5[0.75(4−q)++0.25(8−q)+],q≥0. 在 0≤q≤4,两种情景都要补购,故 F(q)=25−3q,增加先订量每件使期望总成本下降三元。在 4≤q≤8,只有高需求情景要补购,F(q)=10+0.75q,再多订反而每件增加期望成本零点七五元。q≥8 时无需补购,F(q)=2q 继续增加。因此最优先订 q=4,低需求不补,高需求补四件,期望成本 8+0.25(20)=13 元。

还可用斜率检查概率假设的影响。若高需求概率改为 p,则在 4<q<8 上 F′(q)=2−5p;p<0.4 时订四件,p>0.4 时订八件,恰好 p=0.4 时四至八件的任一先订量有相同期望成本。这个阈值由“多预订一件的成本二元”和“仅在高需求发生时节省五元”比较得到。

非预见性与多阶段树

若为每个情景复制一份初始变量 qs,就必须加非预见性约束 qL=qH;也可像上面直接只用一个 q。不加这条约束的求解器会在低需求枝取四、高需求枝取八,相当于提前知道结果,给出不可执行的乐观值。

多阶段问题在每个节点上先观察已到达的信息,再作下一步决策。两条最终路径在某阶段以前若拥有完全相同的观察历史,就要共享该阶段的决策;只有分叉以后才可以不同。把情景概率 ps 加总为一,并检查每个节点的子枝条件概率也加总为一。情景表来自样本估计时,还须说明罕见情形是否被遗漏,不能仅靠加大情景数掩盖概率校准问题。

验证与风险

本例以期望成本为目标,允许高需求时补购。如果临时采购有断供风险,应添加补购容量、库存约束或缺货损失,最优订量可能改变。对能源调度等题目,储能水平要在情景间沿时间递推,不能每个时段独立清零;鲁棒优化更适合表达必须在整个指定不确定集合内都满足的硬限制。

实际评估时,先用训练期资料拟合情景及概率,在留出的未来期按当时可获信息重新决策,逐期记录实现成本、缺货次数、约束违规和一个简单基线。不能用最终真实需求回填历史决策,也不能把模型求解器的样本内最优值当作部署后的平均表现。

参考资料与相关词条