精华内容
下载资源
问答
  • 鲁棒优化理论

    2020-12-15 09:15:32
    鲁棒优化理论 初学优化理论,第一篇博客文章,想梳理鲁棒优化理论的框架,包括:详细说明使用何种类型的鲁棒优化方法求解何种问题是有效的、高效的;阐述鲁棒优化方法与其他广泛使用的优化方法之间有哪些联系。顺便...

    鲁棒优化理论

    初学优化理论,第一篇博客文章,想梳理鲁棒优化理论的框架,包括:详细说明使用何种类型的鲁棒优化方法求解何种问题是有效的、高效的;阐述鲁棒优化方法与其他广泛使用的优化方法之间有哪些联系。顺便展示鲁棒优化方法的应用领域,以及在这些领域取得的一系列成果。如果感兴趣的可以在下方追加评论,也好按需撰文……

    展开全文
  • 鲁棒优化研究综述

    2016-10-17 22:11:24
    鲁棒优化研究综述
  • yalmip求解鲁棒优化

    千次阅读 2020-04-23 22:16:16
    使用yalmip求解鲁棒优化前言鲁棒优化简介yalmip实操求解优化问题示例代码结果总结 前言 记录一下早起夭折的研究想法。想使用鲁棒优化(robust optimization)解决整数资源规划问题。目标函数和约束条件都很简单, ...

    前言

    记录一下早期夭折的研究想法,想使用鲁棒优化(robust optimization,RO)解决整数变量的资源分配问题。目标函数和约束条件都很简单, 但是含有随机变量。由于随机变量的分布未知,在此考虑使用鲁棒优化RO进行资源分配,具有更好地鲁棒性,即对变化具有更好包容性。如果能够得到随机变量的均值和方差,使用鲁棒优化资源分配十分完美。
    但是对于随机变量,自己又没有实际的数据,无法得到其均值和方差,也无从进行数据拟合,进行概率分布检验(卡方检验等)。最终的想法也就夭折了。或许夭折的想法也有意义,在此记录,以便对看到的人有启发。

    鲁棒优化简介

    鲁棒优化是含有不确定参数的优化问题 [1],同随机优化不同。随机优化的不确定参数是具有确定性概率分布的随机变量。而鲁棒优化的不确定性,是指在优化问题中相关不确定参数位于确定的集合范围内,没有确定的概率分布,这里的参数可以是目标函数的系数,也可以是约束条件的系数。鲁棒优化追求即便是在最坏情况下(worst case),其得出的解仍然满足约束条件,不可违背。
    鲁棒优化对于数学功底好的同学来说,写论文很顺畅。因为鲁棒优化一般都可以转换为确定性的对等式(Robust counterpart),再使用确定的求解方法求解。

    yalmip

    yalmip类似python的第三方库,在MATLAB环境下运行,支持多种优化求解器,使得求解优化问题十分简单方便。使用yalmip求解鲁棒优化参考[2],yalmip的使用可以参考[3]。

    实操求解

    优化问题

    在这里插入图片描述
    示例优化问题如上图所示,12个整数优化变量,3个不确定参数。在该示例中,假设不确定集合为box类型(即箱型,每个不确定参数都有确定上下界)。以上示例可以很简单的转化为确定性的线性规划问题。

    示例代码

    %% 2019-7-1 by WDL
    % 使用鲁棒优化建模分析
    % 定义整数变量 包含优化变量和随机变量
    clc;clear all
    %step1 变量定义
    x = intvar(12, 1);%优化变量 intvar定义整型优化变量12行1列
    w = intvar(3, 1);%随机变量
    %step2 参数设置 
    Ta=150; Tb=150; Tc=150;  
    Na=400;Nb=400;Nc=400;
    dt=1;%时间间隔
    
    %添加约束条件
     F = [x(1)+x(2)+x(3)+x(4)<=Na,...
         x(5)+x(6)+x(7)+x(8)<=Nb,...
         x(9)+x(10)+x(11)+x(12)<=Nc,... %约束条件(1)-(3)
         x(1)>=w(1)*dt+Ta>=0,...
         x(5)>=w(2)*dt+Tb>=0,...
         x(9)>=w(3)*dt+Tc>=0,...%约束条件(4)-(6)
         x>=50]; %非负约束
    %设置不确定集合,此示例为box类型 
    % W = [0<=w(1)<=40,0<=w(2)<=40,0<=w(3)<=40,uncertain(w)];
     W = [-20<=w<=20,uncertain(w)]; %uncertain(w)指明不确定性
     options = sdpsettings('solver','cplex');   %设置求解器为cplex
     objective = sum(x); %目标函数 最小化优化变量累加和
     sol=optimize(F + W,objective,options) %优化求解
     Xc=value(x) %解
     Oc=value(objective)%目标值
     
    
     %% 不考虑鲁棒优化
     x=intvar(12,1);
     F1 = [x(1)+x(2)+x(3)+x(4)<=Na,...
         x(5)+x(6)+x(7)+x(8)<=Nb,...
         x(9)+x(10)+x(11)+x(12)<=Nc,... %约束条件(1)-(3)
         x(1)>=w(1)*dt+Ta>=0,...
         x(5)>=w(2)*dt+Tb>=0,...
         x(9)>=w(3)*dt+Tc>=0,...%约束条件(4)-(6)
         x>=50]; %非负约束
     objective1 = sum(x);
     options = sdpsettings('solver','cplex');   %设置求解器为cplex
     sol1=optimize(F1,objective1,options)
     Xc1=value(x) 
     Oc1=value(objective1)
     
    figure %作图
    X=[Xc,Xc1]
    bar3(X)
    

    结果

    (1)鲁棒优化
    Oc=960
    Xc=[170 50 50 50 170 50 50 50 170 50 50 50]’
    (1)确定性优化
    Oc1=600
    Xc1=[50 50 50 50 50 50 50 50 50 50 50 50]’
    在这里插入图片描述

    总结

    使用yalmip时,最好安装相应的求解器,例如cplex或者gurobi。

    参考文献
    [1] Gorissen, Bram L., et al. “A Practical Guide to Robust Optimization.” Omega-International Journal of Management Science, vol. 53, 2015, pp. 124–137.
    [2]Robust optimization. https://yalmip.github.io/tutorial/robustoptimization/
    [3]yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP). https://www.cnblogs.com/kane1990/p/3428129.html

    展开全文
  • 为了解决设计中存在的公差与实际制造中的误差经常引起运动机构的实际性能发生波动甚至发生变异的问题,通过构建设计目标机构的目标函数鲁棒性和约束函数鲁棒性,将鲁棒优化设计方法应用到运动机构的设计中。...
  • 希望可以帮做鲁棒优化相关的同行们省去手动求对偶和Robust Counterpart,然后吭哧吭哧编程的麻烦。本文将简单介绍XProg(内容主要来自Xprog的用户手册)。Julia语言里有为鲁棒优化开发的JuMPeR。个人使用体验是XProg更...

    此文简单介绍AROMA的1.0版本:XProg。希望可以帮做鲁棒优化相关的同行们省去手动求对偶和Robust Counterpart,然后吭哧吭哧编程的麻烦。

    本文将简单介绍XProg(内容主要来自Xprog的用户手册)。Julia语言里有为鲁棒优化开发的JuMPeR。个人使用体验是XProg更简洁,功能更齐全:可以直接编程最新的分布式鲁棒优化(DRO)的相关模型,而JuMPeR主要适用于传统的鲁棒优化模型,而且似乎现在处于无人维护的状态。Julia入门科普请出门左转到 @覃含章的覃含章:Julia:简单易用的数值计算/优化编程语言

    https://zhuanlan.zhihu.com/p/39253127

    XProg由Dr. Peng Xiong开发,旨在用最简单直观的语言进行鲁棒优化模型的求解。最新版本的AROMA由Prof. Melvyn Sim, Dr. Peng Xiong 和Dr. Zhi Chen开发。XProg只有Matlab版;AROMA将会增加 Python 版本。两者都可通过调用Gurobi,Cplex, MOSEK等求解器进行求解。

    XProg

    先上一个多产品的分布式鲁棒报童模型的求解,直观感受一下。

    其中,模糊集(ambiguity set)

    为,

    求解程序如下:

    对于里面的extended模糊集和extended LDR的概念,请参考

    Adaptive Distributionally Robust Optimization

    pubsonline.informs.org

    由上面的例子可以看出,XProg提供了一种照着原始模型编出来的简洁高效编程方法。它已经把求对偶求robust counterpart等步骤全部内嵌到程序里去了。这大大地减少了之前做RO或者DRO的问题的时候,往往得先手动求对偶,然后再用C, C++, Java,Matlab等求解的那份酸爽!

    以下直接举例来阐明XProg的用法,具体语法请参阅XProg包里面的“用户手册”。以下所举的例子大都在安装包中的“examples”。

    1、 线性规划 (Linear Programming)

    对于任意的 线性规划 :

    实现起来特别方便:

    比如下面这个 线性规划 :

    只需要在程序开始赋值:

    解出来结果如下:

    2、 混合整数规划(Mixed Integer Programming)

    对于混合整数规划,只需在定义变量时注明是二进制变量(binary variable)还是整数变量就可:

    3、 随机规划

    XProg 还可以对随机规划问题进行求解。不同场景下的决策可以用cell array实现,举例如下(编者实在太懒。。。问题描述请参考用户手册第15页):

    求解程序如下:

    求解结果如下:

    4、 经典鲁棒优化模型求解

    举例多阶段库存优化模型(问题描述请参考用户手册22页):

    实现程序如下:

    5、 分布式鲁棒优化模型求解

    详见文首的例子。

    鉴于XProg很快就要被功能强大N多的AROMA取代,本文特别精简地介绍了XProg这个简单实用的鲁棒优化(RO, DRO)编程语言。AROMA进一步对XProg进行了精简,但是功能却更加强大了。等AROMA正式上线之后,再写一篇详细的入门介绍文章。

    展开全文
  • 火星探测转移轨道的鲁棒优化算法
  • 金融系统鲁棒优化问题研究.caj
  • 【OR】YALMIP 鲁棒优化

    2020-10-04 15:21:18
    YALMIP系列 鲁棒优化

    Robust optimization

    robust optimization guide可以见这系列博客。一般情况下,robust optimization处理两组变量,包括决策变量(x\mathbf{x})和不确定变量(w\mathbf{w}),deterministic worst case cost的目标函数追求最小化并且约束条件为鲁棒可行(robustly feasible),不确定参数可以从一个定义的不确定集合中任意取值
    minxmaxwf(x,w)s.t.g(x,w)0w:h(w)0 \min_x\max_w f(x, w)\\ s.t. \quad g(x, w)\leq 0 \quad \forall w:h(w)\leq 0
    YALMIP也无法求解任意的不确定问题,而且这类问题一般是intractable problem,但是可以求解特定类型的robust optimization problem.

    Supported Scenarios

    robust optimization中,不同的情况称为场景(scenarios),对应的robust counterpart称为filters. 主要有三种场景

    1. 元素级别的约束bTx+(ATx+c)Tw0b^Tx+(A^Tx+c)^Tw\leq 0,可以使用对偶理论或者迭代法(需要安装MPT)消除不确定性.
    2. 当不确定约束在一个正则球(norm-ball, p=1,2,∞),可以在worst case的情况下对目标函数的robust counterpart取极值消除不确定性.
    3. conic constraints使用迭代法消除

    Simple linear programming examples

    对于box uncertainty的建模方式可以使用worst case直接建模

    for simple box uncertainty as in this case, YALMIP explictly performs the maximization, leading to a more efficient worst-case model.

    sdpvar x w
    F = [x+w<=1];
    W = [-0.5<=w<=0.5, uncertain(w)];
    obj = -x; % max x
    sol = optimize([F W], obj);
    

    另一种对不确定性建模的方式可以使用convex hull,引入辅助变量t1t_1t2t_2表示不确定变量

    %% convex hull
    sdpvar x w t1 t2
    F = [x+w<=1];
    W = [w==t1*(-0.5)+t2*0.5, t1+t2==1, 0<=[t1 t2]<=1];
    W = [W, uncertain([t1 t2 w])];
    obj=-x;
    sol = optimize([F, W], obj);
    

    设置使用duality filter

    %% duality filter
    sdpvar x w t1 t2
    F = [x+w <= 1];
    W = [w == t1*(-0.5) + t2*0.5, t1+t2 == 1, 0 <= [t1 t2] <= 1];
    W = [W,uncertain([t1 t2 w])];
    objective = -x;
    sol = optimize(F + W,objective,sdpsettings('robust.lplp','duality'));
    

    conic uncertainty models

    The uncertainty description has to be conic representable (which in YALMIP means that it only uses linear conic constraints, or nonlinear operators that can be represented using linear conic constraint).

    考虑如下conic optimization问题,容易计算出xmax=0x_{\max}=0

    %%
    sdpvar x w(2, 1)
    F = [x+sum(w)<=1];
    W = [norm(w)<=1/sqrt(2), uncertain(w)];
    obj = -x;
    sol = optimize([F W], obj)
    

    等效建立模型如下

    %%
    sdpvar x w(2, 1)
    F = [x+sum(w)<=1];
    W = [w'*w<=1/2, uncertain(w)];
    obj = -x;
    sol = optimize([F W], obj)
    

    advanced problems

    使用强对偶定理或者迭代法求解robust optimization,这表示问题中的决策变量可存在整数或者逻辑约束

    The robustification is done using strong duality arguments in the uncertainty space, or by simple enumeration. This means that there is no problem with integer and logic constraint in the decision variables.

    %%
    sdpvar x w
    F = [x+w<=1, ismember(x, [0.2 0.4])]; % 加入逻辑约束
    W = [-0.5<=w<=0.5, uncertain(w)];
    obj=-x;
    sol = optimize([F W], obj);
    

    求解关于sum-of-squares的不确定问题(使用非线性算子),希望找到一个整数值aa,其取值范围在[3,5][3, 5],使得多项式ax4+y4+uxy+1tax^4+y^4+uxy+1\geq t在任意1u1-1\leq u\leq 1成立.

    %%
    sdpvar x y t u a
    p = a*x^4+y^4+u*x*y+1;
    F = [uncertain(u), -1<=u<=1];
    F = [F, ismember(a, [3 4 5])];
    F = [F, sos(p-t)];
    solvesos(F, -t) % lower bound by maximizing t
    

    其中关于sos的定义如下

    sos: Declare sum-of-squares structure
    F = sos(p)
    input:
    p: SDPVAR object
    output:
    F: Constraint
    
    Example:
       Typical usage is
     
    F = sos(p)
    
    An experimental feature is to search for
    low rank decompositions. To search for a 
    decomposition using at most 3 terms, use
    a second argument
    
    F = sos(p,3)
    
    Note that his feature requires the solver LMIRANK.
    

    Uncertain semidefinite and second order cone

    本例中通过在robust counterpart部分的顶点上迭代,每次求解一个新的SOCP或者SDP问题

    YALMIP can robustify SOCP and SDP constraints with affine dependence on the uncertainty, under the restriction that the uncertainty is constrained to a polytopic set.

    %%
    t = sdpvar(1,1);
    P = sdpvar(2,2);
    A = [-1 t;0.2 -1]
    
    F = [A'*P + P*A <= -eye(2), 1 <= t <= 2, uncertain(t)];
    sol = optimize(F,trace(P))
    

    features

    有时只需要推导出robust counterpart但不需要求解,可以通过robustify指令完成

    [Frobust,robust_objective] = robustify(F + W,objective);
    

    求解通过如下指令完成

    sol = optimize(Frobust,robust_objective);
    

    References

    Robust optimization
    Automatic_robust_convex_programming

    展开全文
  • 应用鲁棒优化的方法处理风电出力和电力市场电价的不确定性,同时考虑碳排放约束对虚拟电厂竞标的影响,建立虚拟电厂鲁棒优化竞标模型。算例分析结果验证了所提模型的经济性和鲁棒性,显示了鲁棒优化法处理含有不确定...
  • 这个包含如下几个优化类别的资源: 全局优化 鲁棒优化 半定优化 数值优化
  • 鲁棒优化工具包-XProg和RSOME

    热门讨论 2020-07-15 23:37:59
    鲁棒优化工具包-XProg和RSOME1.XProg和RSOME2.错误分析 记录一下鲁棒优化学习内容。之前研究过一段时间的鲁棒优化,但由于没有数据也就没有继续研究下去。最近有时间,觉得鲁棒优化比较有意思就继续研究一下。主要...
  • 针对在突发事件发生的紧急救援期,应急物流系统的运载能力有限性及多种应急物资的需求不确定性,采用相对鲁棒优化方法建立了基于总时间和总成本最优的多目标数学模型.结果表明:模型合理地解决了应急物资在需求不确定...
  • 通过顺序凸双级规划进行非线性鲁棒优化
  • 鲁棒优化算法1

    千次阅读 2019-03-17 18:14:16
    后来有了鲁棒优化。这几日了解了这个算法或者说思想,在此小结。 使用情况: 一般的的优化问题,比如选址、网络规划、路径优化等。在确定参数即譬如说物流量的确定、人员工资的确定等。但是现实问题上,大多数参数...
  • 以设计变量存在不确定的火星探测轨道设计模型为研究对象,采用最小最大鲁棒优化方法获得该模型的鲁棒优化解.在传统的最小最大方法的基础上,考虑了决策变量的扰动,提出了一种嵌套的差分演化算法.在该算法中,内层差分...
  • 针对现有的时域鲁棒优化算法无法解决带约束的优化问题,基于群智能优化方法,提出一种求解带约束优化问题的时域鲁棒优化算法.首先,用约束条件构造罚函数,将带约束优化问题处理成为无约束优化问题;然后,采用一个分段...
  • 随机优化和鲁棒优化的区别

    千次阅读 2020-02-27 14:17:57
    随机优化(SO)和鲁棒优化(RO)实际上都是针对不确定情况的优化方法,从系数本身来说,SO需要知道或者预设一个该系数的概率分布,而RO需要知道这个系数的取值范围。从求解思路上来说,SO通常是限制失败的概率,即...
  • 在随机优化模型的基础上,提出了利用后悔模型形成的鲁棒优化模型。 然后,分析了鲁棒优化模型,随机优化模型和确定性优化模型之间的关系,并提出了两种算法:枚举法和遗传算法。 这两种算法的代码由Visual Studio ...
  • 在离散需求情景概率不确定的条件下, 建立基于最大最小方法的多周期库存鲁棒优化模型. 考虑需求分布分别隶属于区间和椭球不确定集两种情形, 运用对偶理论将多周期库存鲁棒优化模型转化为易于求解的凸规划问题. 数值...
  • 讲解一般范数下的鲁棒优化,深入剖析内容以及优化问题
  • 基于鲁棒优化的若干投资组合模型研究_赵庆.caj
  • 风险应对视角下不确定需求定位_路径鲁棒优化研究,风险应对视角下不确定需求定位_路径鲁棒优化研究
  • 基于数据驱动鲁棒优化的高比例清洁能源高速充电站规划,采用数据驱动鲁棒优化算法量化可再生能源、充电负荷的不确定性问题,从而百分百可再生比例下实现最优充电站配置
  • 基于鲁棒优化的系统辨识算法研究,钱富才,黄姣茹,对不确定数据属于一个有界集,而不是服从特定概率分布的系统辨识问题,本文提出了一种以鲁棒优化为基础的新方法。该方法将系统辨
  • 综合考虑SNOP的功能特性与运行边界,建立了面向配电网弹性提升的SNOP配置三层防御-攻击-防御优化模型,并提出了求解该模型的两阶段鲁棒优化方法——列约束生成(CCG)算法。以IEEE 33节点为例,对所述模型和求解算法...
  • 两阶段鲁棒优化及列和约束生成算法

    千次阅读 多人点赞 2020-10-18 21:06:47
    两阶段鲁棒优化及列和约束生成算法1. 前言2. 两阶段RO3. Benders对偶割平面法 1. 前言 有同学私信我两阶段鲁棒优化的问题,自己之前主要研究单阶段的鲁棒优化,对于两阶段优化不太懂。查了点资料,通过翻译和自己的...
  • 带有服务率的车队规模问题及其鲁棒优化,朱琳,李波,针对我国车队规模问题研究比较薄弱的现状,本文在一般车队规模问题的基础上,提出了带有服务率的车队规模问题,问题的提出融入了
  • 针对可再生能源出力的随机波动性,基于鲁棒优化思想构建了供电能力评估模型;针对运行安全被破坏的情况,提出了以配电网运行风险最小为目标、以交直流换流器等为调控对象的优化控制策略,充分挖掘系统的供电潜力。算...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,618
精华内容 647
关键字:

鲁棒优化