随机规划
字数 2024 2025-10-26 19:16:22
随机规划
随机规划是处理含有随机参数的最优化问题的数学分支。当优化问题的某些参数(如需求、成本或资源)具有不确定性,并且这种不确定性可以用概率分布描述时,就需要用到随机规划。它的核心思想是在决策中考虑随机性的影响,寻找一种策略,使得在平均意义下或在某种风险度量下是最优的。
-
核心概念:不确定性与决策时序
随机规划问题与确定性优化问题的根本区别在于参数的不确定性和决策的时序。我们通过一个经典的报童问题来引入这些概念。- 问题描述:一个报童每天早晨需要决定订购多少份报纸。每份报纸的进货成本为c元,售价为p元。当天没卖掉的报纸可以按残值s元退回。每天的需求d是一个随机变量。
- 不确定性:需求d是未知的,但我们假设知道它的概率分布。
- 决策时序:报童必须在知道当天的实际需求之前做出订购量x的决策。这种必须在不确定性揭示之前做出的决策,称为第一阶段决策或此时此地决策。
-
两阶段随机规划
这是随机规划最基本和最重要的模型,它明确地将决策分为两个阶段。- 第一阶段:在随机事件发生之前做出的决策,例如报童的订购量x。这个决策必须在不了解随机参数具体实现的情况下做出。
- 随机事件实现:随机参数(如需求d)的一个具体数值被观测到。
- 第二阶段:也称为补偿决策或recourse action。在观测到随机变量的实现后,为了“弥补”第一阶段决策可能带来的不匹配而做出的决策。在报童问题中,第二阶段决策可以理解为“销售”行为本身,但它是一个被动的结果(卖出量是min(x, d))。一个更典型的例子是生产计划:第一阶段决定生产量,第二阶段若需求高于产量,则需要支付额外成本紧急补货;若需求低于产量,则需要支付库存成本。这里的补货量和库存量就是第二阶段的补偿决策。
- 目标函数:目标是最小化(或最大化)总期望成本(或收益)。总成本包括第一阶段的成本,加上第二阶段的期望成本。期望值是对所有可能的随机场景取平均。
-
数学模型与补偿函数
两阶段随机规划的标准数学模型如下:
Minimize cᵀx + E[Q(x, ξ)]
subject to Ax = b, x ≥ 0
其中:x是第一阶段的决策变量。cᵀx是第一阶段的成本。ξ代表随机向量(如需求)。E[...]表示数学期望。Q(x, ξ)是补偿函数,它定义了在给定第一阶段决策x和随机变量实现ξ的情况下,第二阶段最优决策所带来的成本。
补偿函数
Q(x, ξ)本身也是一个优化问题的解:
Q(x, ξ) = min { q(ξ)ᵀy | W(ξ)y = h(ξ) - T(ξ)x, y ≥ 0 }
其中y是第二阶段的决策变量。这个模型表明,第二阶段的决策需要满足由随机事件ξ和第一阶段决策x所构成的约束条件(T(ξ)x + W(ξ)y = h(ξ))。 -
求解的挑战与场景法
随机规划模型的主要求解挑战在于计算期望值E[Q(x, ξ)]。如果随机变量ξ是连续型的,那么期望值是一个高维积分,直接计算非常困难。如果ξ是离散型的,但有大量(甚至无限)多种可能结果(场景),计算期望也同样复杂。- 场景法:最常用的求解方法是场景法。我们将随机变量
ξ的连续概率分布用一组离散的、具有代表性的场景{ξ₁, ξ₂, ..., ξ_S}来近似,每个场景s有一个对应的发生概率p_s(且∑p_s = 1)。 - 确定性等价问题:通过场景法,我们可以将两阶段随机规划问题转化为一个大规模的决定性线性规划问题,称为确定性等价问题。这个问题的形式如下:
Minimize cᵀx + ∑_{s=1}^S p_s * (q_sᵀy_s)
subject to:
Ax = b, x ≥ 0
T_s x + W_s y_s = h_s, for all s = 1, ..., S
y_s ≥ 0, for all s = 1, ..., S
这个模型为每一个场景s都创建了一份第二阶段的决策变量y_s的副本。它的含义是:寻找一个第一阶段的决策x,使得它对于所有可能发生的场景,都能通过相应的第二阶段决策y_s进行“补偿”,并且总的期望成本最小。
- 场景法:最常用的求解方法是场景法。我们将随机变量
-
风险度量与其它扩展
基本的随机规划模型以期望值作为目标,这被称为风险中性模型。但它忽略了决策者可能对不利结果(高风险)的厌恶。- 风险厌恶:为了建模风险厌恶行为,可以对目标函数进行修改。常见的方法包括:
- 均值-方差模型:在最小化期望成本的同时,限制成本的方差。
- 条件风险价值(CVaR):将CVaR作为约束或部分目标加入模型,以控制尾部损失。
- 多阶段随机规划:许多实际问题(如长期投资、多周期生产计划)的决策是分多个时段依次做出的。每个时段都可以获取新的信息并做出新决策,这需要更复杂的多阶段随机规划模型来描述。
- 风险厌恶:为了建模风险厌恶行为,可以对目标函数进行修改。常见的方法包括: