Lecture10a:Benders分解 -- 应用部分

目录

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 mathematik4(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 终止准则

总结:

  1. 随机规划问题是可分解的
  2. 复杂变量是一阶段的决策变量,子问题最少有场景数目个
  3. 我们可以使用通用的两阶段随机优化问题来表述benders 分解算法
  4. 对于一个凸优化问题,benders分解能够确保收敛于问题的全局最优解。

3 随机市场出清的案例分析

3.1 问题建模

问题描述:

3.2 问题分解 

确定要固定的复杂变量:

 识别子问题:

 主问题:

 注解:

  1. Objective function of subproblems (previous iterations)
  2. Sensitivities of subproblems, with respect to complicating variable P^{G1,DA}
  3. Sensitivities of subproblems, with respect to complicating variable P^{G2,DA}
  4. Sensitivities of subproblems, with respect to complicating variable P^{W,DA}

 3.3 计算结果

 

 4 multi-cut benders decomposition

还是先上参考文献:

  1. Birge, J. R., & Louveaux, F. V. (1988). A multicut algorithm for two-stage stochastic linear programs. European Journal of Operational Research34(3), 384-392.
  2. You, F., & Grossmann, I. E. (2013). Multicut Benders decomposition algorithm for process supply chain planning under uncertainty. Annals of Operations Research210(1), 191-211.

单cut模型:

 多cut版本:

 两者的区别在于:多cut版本的辅助变量和cut都是基于场景构建的

注解:

  1. 单cut版本我们只有保证cut是有效的,才会被加入到主问题当中;但是多cut版本保证不了这一点,其中可能会包含一些无效的cut。
  2. 多cut版本需要权衡内存和计算负担
  3. 如果添加的cut都是有效的,多cut版本肯定比单cut版本更有效,更快的收敛。
  4. 在单cut版本中,我们主问题的规模随着迭代次数线性增长;而在多cut中,主问题规模呈指数式增长。迭代越多,多cut的弱点若明显。
  5. 如果子问题不是线性规划问题,benders分解得到的不一定是最优解,所以需要加入一些启发式策略。
  6. benders分解并不一定比直接求解原问题更快,他只是使原问题变得更加容易处理。

 5 自适应策略的benders分解

动机:

  1. 多cut版本每次生成多个cut,需要较少的迭代次数。
  2. 转化为单cut版本,可以避免主问题的变量和约束数目规模过大。

参考文献:

  1. Sifuentes, W. S., & Vargas, A. (2007). Hydrothermal scheduling using benders decomposition: accelerating techniques. IEEE Transactions on Power Systems22(3), 1351-1359.
  2. 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.
  3. 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 Computation4(3), 211-238.
  4. Rahmaniani, R., Crainic, T. G., Gendreau, M., & Rei, W. (2017). The Benders decomposition algorithm: A literature review. European Journal of Operational Research259(3), 801-817.
  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运筹码仓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值