鲁棒优化(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);

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

  • 17
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值