👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
文献来源:
鲁棒优化(RO)是最近一种处理数据不确定性的优化方法。因为它是为了避免输入数据中的任何扰动而导出的,所以(单级)RO模型的解决方案往往过于保守。为了解决这一问题,引入并研究了两阶段RO(以及更一般的多级RO),也称为鲁棒可调或自适应优化[3],其中第二阶段问题是在第一阶段决策完成后对决策进行建模,并揭示了不确定性。由于改进的建模能力,两级RO已成为一种流行的决策工具。应用包括网络/运输问题、投资组合优化[17]和电力系统调度问题。
在本文中,作者提出了一种列和约束生成算法来解决两阶段鲁棒优化问题。与现有的Benders式切割平面方法相比,柱和约束生成算法是一个通用程序,具有统一的方法来处理最优性和可行性。对两阶段鲁棒位置运输问题的计算研究表明,它的执行速度快了一个数量级。
📚2 运行结果
在解决鲁棒电力系统调度问题时也发现了类似的结果[21]。这些结果表明,无论问题大小,定义最坏情况成本的重要场景数量相对稳定且较小。因此,一种快速识别重要场景的方法,以及针对所产生的主问题的有效算法,可以大大提高两级反渗透问题的解决能力。
部分代码:
Cons_SP2 = [Cons_SP2, b-G'*pi <= BigM*(1-u), x<=BigM*u];
sol_SP2 = optimize(Cons_SP2,Obj_SP2,ops);
s_g=value(g);
s_pi=value(pi);
% Add constraints in MP2 (unlike CCG algorithm, this time new varialbes are not added in MP2)
if sol_SP2.problem==0 % SP2 is solved
UB=min(UB,[f;a]'*[s_y;s_z]+value(-Obj_SP2));
display(['Iter ',num2str(k),' g = ',num2str(s_g')]);
Cons_MP2 = [Cons_MP2, eta>=( h - E*[y;z] - M*s_g )'*s_pi];
else % SP2 is unbounded, not completed yet. Because still don't know how to identify scenario for which Q(s_y)=inf.,
Cons_MP2 = [Cons_MP2];
end
k=k+1;
display(['UB: ',num2str(UB),' LB: ',num2str(LB)]);
if k>=100
break
end
end
🎉3 文献来源
部分理论来源于网络,如有侵权请联系删除。
[1] Zeng, Bo, and Long Zhao. "Solving two-stage robust optimization problems using a column-and-constraint generation method." Operations Research Letters 41, no. 5 (2013): 457-461.