当前位置:   article > 正文

鲁棒优化(1)

鲁棒优化

前言

打算做一个鲁棒优化的系列,先从Bertsimas,2004的文章开始学习,最后的目标时做到分布鲁棒,我也是初学者.

一、什么是鲁棒优化

简而言之,当你的模型存在不确定系数,而你需要免疫这些不确定系数,那你就需要考虑一下鲁棒优化.

二、基本的模型和假设

1.线性模型

在这里插入图片描述
我们假设,c矩阵不包含不确定变量,如果你的模型包含不确定变量,可以将目标函数化成约束的形式.扰动变量只在A阵出现.,约束的右端都是确定参数.
在这里插入图片描述
更具体的形式如上,公式(2).
在这里插入图片描述
我们假设随机变量a,在一定范围内扰动,有上下界,且独立对称分布
a_hat,就是其的波动范围.
在这里插入图片描述
上图表示是y等于x的绝对值,是一种线性化的方法,不懂得可以知乎线性化技巧,了解一下.

在这里插入图片描述
将模型(2)优化出来的结果,代入约束中,接下来我们分析这个解为什么是鲁棒解,即对所有区间内的扰动都满足约束.
在这里插入图片描述
在这里插入图片描述
上述两个公式可以明显的看出,缩放后的约束,左端项与右端项,具有明显的差距.
因为它每一个不确定量都取了最坏的情况,这导致结果非常的保守,这种极端保守的解,会导致很大的浪费.于是数学家们,开始寻找一种方法,减少这个保守度.下一篇,将讲述减少保守度,和控制保守度的方法,以及其对应的机会约束概率.
举例子
在这里插入图片描述
假设x_2前面的系数,【-2,1,0】是波动的,波动的范围是0.5.

x_1=sdpvar(1,1);
x_2=sdpvar(1,1);
x_3=sdpvar(1,1);
y=sdpvar(1,1);
Constraints=[x_1-2*x_2+x_3+0.5*y<=11,...
            3<=-4*x_1+x_2+2*x_3+0.5*y,...
            -2*x_1+x_3==1,...
            x_2<=y,...
            -x_2<=y,...
            0<=x_1,0<=x_2,0<=x_3,0<=y];
F=-(3*x_1-x_2-x_3);
optimize(Constraints,F)
F=value(F);
x_1=value(x_1);
x_2=value(x_2);
x_3=value(x_3);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

yalmip+gurobi编写求解.
在这里插入图片描述
发现y并不等于x_2的绝对值,询问朋友后,我的这种线性化方法,并不是完全等价的,松弛不紧凑,原因是梯度消失.所有大家在用这种方法去绝对值时,要小心.建议使用SOS1.具体我也不是很清楚

    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/400430
    推荐阅读
    相关标签
      

    闽ICP备14008679号