DECIS 求解器手册 — 两阶段随机规划
1. 引言
DECIS 是一个用于求解两阶段随机线性规划问题的求解器。它使用 Benders 分解(也称为 L 形法)来有效处理具有不确定参数的大规模随机规划问题。DECIS 特别适用于以下场景:
- 模型包含不确定的参数(如需求、价格、收益率等)
- 不确定性可以用离散场景(场景树)表示
- 决策过程分为两个阶段(先做出初始决策,观察随机事件后再做出修正决策)
两阶段随机规划的标准形式为:
\[
\begin{array}{ll}
\text{Min} & c^T x + E_{\omega}[Q(x, \omega)] \\
\text{s.t.} & Ax = b \\
& x \geq 0
\end{array}
\]
其中 \(Q(x, \omega)\) 是第二阶段(修正)问题的最优值,依赖于第一阶段决策 \(x\) 和随机事件 \(\omega\) 的实现。
2. 使用方法
要在 GAMS 中使用 DECIS 求解器:
Option LP = DECIS;
Solve mymodel using LP minimizing z;
DECIS 需要随机数据以场景树的形式提供,这通常通过 GAMS 模型中的随机参数和场景索引来实现。
3. 核心模型
DECIS 将两阶段随机线性规划分解为第一阶段问题和第二阶段问题。第一阶段决策变量对应于在观察到随机事件之前必须做出的决策。第二阶段(修正)变量对应于在随机事件实现后可以调整的决策。
典型的发电容量规划模型示例:
Sets
g generators / g1, g2 /
dl demand levels / h, m, l /;
Parameters
c(g) capital cost / g1 5, g2 3 /
ccmin(g) min capacity / g1 500, g2 300 /
ccmax(g) max capacity / g1 1000, g2 1000 /
alpha(g) operating factor / g1 1.2, g2 0.8 /;
Table f(g,dl) operating cost
h m l
g1 4.3 2.0 0.5
g2 8.7 4.0 1.0;
Parameter d(dl) demand / h 1040, m 1040, l 1040 /;
Parameter us(dl) cost of unserved demand / h 10, m 10, l 10 /;
Free Variable tcost;
Positive Variables
x(g) capacity
y(g,dl) operating level
s(dl) unserved demand;
Equations
cost total cost
cmin(g) min capacity
cmax(g) max capacity
omax(g) max operating level
demand(dl) satisfy demand;
cost .. tcost =e= sum(g, c(g)*x(g))
+ sum(g, sum(dl, f(g,dl)*y(g,dl)))
+ sum(dl, us(dl)*s(dl));
cmin(g) .. x(g) =g= ccmin(g);
cmax(g) .. x(g) =l= ccmax(g);
omax(g) .. sum(dl, y(g,dl)) =l= alpha(g)*x(g);
demand(dl) .. sum(g, y(g,dl)) + s(dl) =g= d(dl);
Model apl1p /all/;
Option LP = MINOS;
Solve apl1p using LP minimizing tcost;
4. 随机数据描述
DECIS 使用场景树来描述随机数据。每个场景对应一组随机参数的实现,并具有相应的概率。DECIS 支持多种方式来指定随机数据的概率分布,包括离散场景和连续分布(通过离散化)。
随机数据通常在 GAMS 模型中使用索引参数和场景维度进行建模。DECIS 会读取场景定义并将其转换为 Benders 分解所需的割平面生成过程。
5. 求解输出
DECIS 在求解过程中会输出详细的日志信息,包括:
- 第一阶段解
- 每个场景的第二阶段解
- 期望值信息
- Benders 割的生成和收敛情况
- 迭代统计
6. 选项参考
| 选项 | 描述 | 默认值 |
| decisalg | 求解算法:0=自动,1=Benders 分解,2=正则化分解 | 0 |
| decisiterlim | 迭代限制 | GAMS iterlim |
| decisout | 输出详细级别:0=最小,1=正常,2=详细 | 1 |
| decisreslim | 时间限制(秒) | GAMS reslim |
| decisseed | 随机数生成器种子 | 0 |
| decisrtol | 相对收敛容差 | 1e-6 |
| decisatol | 绝对收敛容差 | 1e-6 |
| deciswarmstart | 热启动:0=关闭,1=开启 | 0 |
在线留言
尊敬的客户朋友,如您有任何意见建议,请通过下表反馈给我们,我们会尽快与您联系。
|