• 大小: 1KB
    文件类型: .zip
    金币: 2
    下载: 2 次
    发布日期: 2021-03-12
  • 语言: Matlab
  • 标签: BENDERS  分解  MATLAB  

资源简介

BENDERS分解算法,用来求解MIPS,即混合整数线性规划问题。我已经做了注释。

资源截图

代码片段和文件信息

function [OptXOptYOptValue]=BendersDecomposition(CDABb)
% 应用Benders分解算法解决混合整数规划问题
% 调用格式:[OptXOptYOptValue]=BendersDecomposition(CDABb)
% 用来解决如下形式的规划问题:
%         min  C*x+D*y
%         s.t. A*x+B*y>=b; x0-1变量y>=0

%迭代停止的判断阈值:LB/UB大于epsilon时停止迭代。可以根据问题复杂程度灵活调节
epsilon = 0.99;
[nRowAnColA] = size(A);
[nRowBnColB] = size(B);
%step 1:初值化
x0 = zeros(nColA1);%初始值
LB = -1e10;
UB = inf;
p = 0;
q = 0;
U = zeros(100nRowA);
V = zeros(100nRowA);
options = optimset(‘LargeScale‘ ‘off‘ ‘Simplex‘ ‘on‘);
OptionsBint = optimset(‘MaxRLPIter‘100000‘NodeSearchStrategy‘‘bn‘...
    ‘MaxTime‘50000);
while LB/UB    %step 2:求解子问题
    [UorVfvalexitflag] = linprog((A*x0-b)B‘D‘[][]zeros(nRowB1)...
        inf(nRowB1)[]options);
    if exitflag 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1974  2010-02-08 18:20  BendersDecomposition.m

评论

共有 条评论