目录
1 一个简答的数值案例
1.1 问题分解
1.2 算法过程及收敛条件
2 使用Benders分解方法求解基于场景的两阶段随机规划问题
2.1 概述
2.2 算法流程
2.3 紧凑模型
2.4 解法
2.5 分解模型 -- 概率的等价处理
2.6 终止准则
3 随机市场出清的案例分析
3.1 问题建模
3.2 问题分解
3.3 计算结果
4 multi-cut benders decomposition
5 自适应策略的benders分解
阅读本节要达到的效果:
- 识别一个包含多个复杂变量和子问题的随机优化问题的可分解结构
- 写出通用随机规划优化问题的Benders分解算法
- 使用Benders分解算法求解一个简单的随机市场出清问题案例
首先祭出始祖的文章:
Benders, J. F. (1962). Partitioning procedures for solving mixed-variables programming problems. Numerische mathematik, 4(1), 238-252.
1 一个简答的数值案例
下面给出一个例子:
1.1 问题分解
例子中,只有一个复杂变量,也就是x3;固定(fixed)该变量,子问题的表述形式如下:
我们只固定了一个约束,为什么对偶变量会有小标 h 呢?
对偶变量的定义是目标相对于约束的敏感性,目标函数不是唯一的,所以对偶变量也就有小标h。
下面我们分析主问题:
1.2 算法过程及收敛条件
算法过程:
收敛条件:
2 使用Benders分解方法求解基于场景的两阶段随机规划问题
2.1 概述
在基于场景的两阶段随机规划问题中,第一阶段是主问题,第二阶段是子问题。主问题为子问题提供固定变量的值,子问题为主问题提供复杂变量的敏感性。
2.2 算法流程
2.3 紧凑模型
更compact的形式,再次重申,一阶段的变量x是复杂变量:
2.4 解法
2.5 分解模型 -- 概率的等价处理
2.6 终止准则
总结:
- 随机规划问题是可分解的
- 复杂变量是一阶段的决策变量,子问题最少有场景数目个
- 我们可以使用通用的两阶段随机优化问题来表述benders 分解算法
- 对于一个凸优化问题,benders分解能够确保收敛于问题的全局最优解。
3 随机市场出清的案例分析
3.1 问题建模
问题描述:
3.2 问题分解
确定要固定的复杂变量:
识别子问题:
主问题:
注解:
- Objective function of subproblems (previous iterations)
- Sensitivities of subproblems, with respect to complicating variable
- Sensitivities of subproblems, with respect to complicating variable
- Sensitivities of subproblems, with respect to complicating variable
3.3 计算结果
4 multi-cut benders decomposition
还是先上参考文献:
- Birge, J. R., & Louveaux, F. V. (1988). A multicut algorithm for two-stage stochastic linear programs. European Journal of Operational Research, 34(3), 384-392.
- You, F., & Grossmann, I. E. (2013). Multicut Benders decomposition algorithm for process supply chain planning under uncertainty. Annals of Operations Research, 210(1), 191-211.
单cut模型:
多cut版本:
两者的区别在于:多cut版本的辅助变量和cut都是基于场景构建的
注解:
- 单cut版本我们只有保证cut是有效的,才会被加入到主问题当中;但是多cut版本保证不了这一点,其中可能会包含一些无效的cut。
- 多cut版本需要权衡内存和计算负担
- 如果添加的cut都是有效的,多cut版本肯定比单cut版本更有效,更快的收敛。
- 在单cut版本中,我们主问题的规模随着迭代次数线性增长;而在多cut中,主问题规模呈指数式增长。迭代越多,多cut的弱点若明显。
- 如果子问题不是线性规划问题,benders分解得到的不一定是最优解,所以需要加入一些启发式策略。
- benders分解并不一定比直接求解原问题更快,他只是使原问题变得更加容易处理。
5 自适应策略的benders分解
动机:
- 多cut版本每次生成多个cut,需要较少的迭代次数。
- 转化为单cut版本,可以避免主问题的变量和约束数目规模过大。
参考文献:
- Sifuentes, W. S., & Vargas, A. (2007). Hydrothermal scheduling using benders decomposition: accelerating techniques. IEEE Transactions on Power Systems, 22(3), 1351-1359.
- Skar, C., Doorman, G., & Tomasgard, A. (2014, August). Large-scale power system planning using enhanced Benders decomposition. In 2014 Power Systems Computation Conference (pp. 1-7). IEEE.
- Zverovich, V., Fábián, C. I., Ellison, E. F., & Mitra, G. (2012). A computational study of a solver system for processing two-stage stochastic LPs with enhanced Benders decomposition. Mathematical Programming Computation, 4(3), 211-238.
- Rahmaniani, R., Crainic, T. G., Gendreau, M., & Rei, W. (2017). The Benders decomposition algorithm: A literature review. European Journal of Operational Research, 259(3), 801-817.