码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 两阶段鲁棒优化matlab实现——C&CG和benders


    目录

    1 主要内容

    2 部分代码

    3 程序结果

    4 程序链接


    1 主要内容

    程序采用matlab复现经典论文《Solving two-stage robust optimization problems using a column-and-constraint generation method》算例,实现了C&CG和benders算法两部分内容,通过对比学习能够方便掌握两种算法的编程要点,深入了解C&CG算法优势,对于学习鲁棒优化是不可多得的资料,程序均采用matlab+cplex求解!

    2 部分代码

    y = binvar(3,1);
    z = sdpvar(3,1);
    x =sdpvar(9,100,'full');
    eta = sdpvar(1);
    g = sdpvar(3,1);
    pi = sdpvar(size(G,1),1);
    v=binvar(size(G,1),1);
    w=binvar(size(G,2),1);
    %% CCG
    LB=-inf; UB=inf; iter=1; BigM=1e5;
    ​
    MP_Cons = [ 0<=z<=800*y, 772<=sum(z), b'*x(:,iter)<=eta, 0<=x(:,iter) ];
    MP_Obj = coe1*y +coe2*z+eta ;
    ops = sdpsettings('solver','cplex','verbose',0);
    ​
    Uncertain_Cons=[ 0<=g<=1, sum(g)<=1.8, g(1)+g(2)<=1.2 ];
    ​
    while abs(UB-LB) >1e-5
        disp(['迭代第',num2str(iter),'次'])
        optimize(MP_Cons,MP_Obj,ops);
        LB = max(LB, value(MP_Obj));                % LB
        
        SP_Obj = b'*x(:,iter) ;
        SP_Cons = [ Uncertain_Cons, 0<=x(:,iter), G*x(:,iter)>=h-E*[value(y);value(z)]-M*g  ];
        SP_Cons = [SP_Cons, 0<=pi,  G'*pi<=b ];
        SP_Cons = [SP_Cons, G*x(:,iter)-h+E*[value(y); value(z)]+M*g <= BigM*(1-v) ];
        SP_Cons = [SP_Cons, pi<=BigM*v];
        SP_Cons = [SP_Cons, b-G'*pi <= BigM*(1-w) ];
        SP_Cons = [SP_Cons, x(:,iter)<=BigM*w ];    
        sol_SP=optimize(SP_Cons,-SP_Obj,ops);
        
        if sol_SP.problem==0                             % SP is solved
            UB=min(UB, coe1*value(y)+coe2*value(z)+value(SP_Obj));           % UB
            disp([' g =   ',num2str(value(g)')]);
        end
        
        MP_Cons = [MP_Cons, 0<=x(:,iter+1), b'*x(:,iter+1)<= eta, G*x(:,iter+1)>=h- E*[y;z]-M*value(g) ];
        
        iter = iter+1;
        display([' LB: ',num2str(LB), '    UB: ',num2str(UB),]);
    end
    

    3 程序结果

    4 程序链接

    【免费】两阶段鲁棒优化matlab实现——C&CG和benders

  • 相关阅读:
    待办-9月7号-11号(month9week2)
    shiro反序列化和log4j
    外包干了一个月,技术明显进步。。。。。
    萝卜快跑:隐私与安全并重的无人驾驶之旅
    如何构建高性能可视化架构?一个交互式实时数据引擎的架构设计
    走进苏州的开源创新之旅:开放原子开源大赛苏州站系列活动启幕
    如何自学3D游戏场景建模和设计?
    linux之mail命令发邮件
    linux------常用命令和系统命令
    InfluxDB学习记录(二)——influxdb的关键概念
  • 原文地址:https://blog.csdn.net/zhangxd212489/article/details/132927362
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号