鲁棒随机优化(Robust Stochastic Optimization)和RSOME

前言

记录一下鲁棒优化的学习内容。鲁棒优化和随机优化是不确定性优化中常用的两种方法。其中随机优化的随机变量的概率分布是确定的,对于不确定性观测而言其,确定性的概率分布太乐观了。而对于鲁棒优化是优化不确定下的worst-case的情形,而往往实际的结果没有这么差,也即是其结果太悲观了。因此在随机优化和鲁棒优化之间,产生了概率分布鲁棒优化(Distributionally Robust Optimization,DRO)(不知翻译是否准确),它结合了随机优化的期望目标函数,扩展了不确定性参数的概率分布集合,同时利用了鲁棒优化的worst-case优化原则。相关的DRO基础内容,可以参考斯坦福叶荫宇教授关于DRO的Talk[1]。

1. RSO

文献[2]把树形场景(tree-scenario)的随机线性规划(stochastic linear optimization,SLO)和DRO的不确定性集合,使用event-wise模糊集(event-wise ambiguity set)统一起来,把他们统称为鲁棒随机优化。其每一个离散的场景(或者采样)都对应一个独立完备的不确定性优化问题,也即是一个不确定场景的实例(instance)。
RSO或者DRO相较经典RO的优势在于优化结果大于等于绝对悲观的情景,并且能够结合机器学习方法,利用数据驱动(data-driven)进行优化建模,具有更好的说服力,例如k均值模糊集(K-means Ambiguity Set)。

难能可贵的是文献[2]提供了一个对应RSO的Matlab工具包RSOME(Robust Stochastic Optimization Made Easy),其原码和用户手册可以在它们的官网上下载( www.rsomerso.com )。

工具包中提供了所有的manual examples的源代码,十分方便大家学习。运行环境需要大家安装相应的优化求解器例如cplex,gurobi或者MOSEK。作者论文[2]附录中使用的求解器是MOSEK,但是源代码默认采用cplex作为求解器。RSOME的安装和使用参考其用户手册[3]。

2. 简单示例

数学公式太复杂,来看一下用户手册中的一个简单例子。

2.1 单产品的报童问题(one-product newsvendor problem)

以用户指南16页的3.3.2单产品的报童问题(one-product newsvendor problem)为例[3]。定义 p p p为报纸售价(price), c c c为报刊成本(cost), w w w为报纸进货量, u ~ \tilde{u} u~为每天的市场需求量,是随机变量,服从 u ~ ∼ P ,    P ⊆ F \tilde{u} \sim \Bbb{P},\; \Bbb{P} \subseteq \mathscr{F} u~P,PF F \mathscr{F} F是概率分布的 P \Bbb{P} P的不确定集合,即模糊集。

通常情况下,当天的市场需求量 u ~ \tilde{u} u~对于经销商(报童)而言是未知的,其决策进货量 w w w是在随机变量揭示自己之前做出的。报童的目标当然是最大化经销利润。由于存在不确定性的随机变量 u ~ \tilde{u} u~,DRO优化的目标为即便是最差情况下也有最大的平均利润。
即:
max ⁡ w    inf ⁡ P ∈ F E P [ p ⋅ min ⁡ { w , u ~ } − c ⋅ w ] (1) \underset{w}{\max} \; \underset{\Bbb{P} \in \mathscr{F}}{\inf}\Bbb{E_{\Bbb{P}}} [p \cdot \min\{w,\tilde{u}\}-c\cdot w]\tag{1} wmaxPFinfEP[pmin{w,u~}cw](1) s . t . w ≥ 0 s.t. \quad w \ge0 s.t.w0
其中, inf ⁡ ( x ) \inf(x) inf(x) x x x的下确界, min ⁡ { w , u ~ } \min\{w,\tilde{u}\} min{w,u~}为当天的销售量。

对于最大化和最小化函数 max ⁡ { x , y } 和 min ⁡ { x , y } \max\{x,y\}和\min\{x,y\} max{x,y}min{x,y},可以进行如下等效转换:

max ⁡ { x , y } = x + ( y − x ) + \max\{x,y\}=x+(y-x)^{+} max{x,y}=x+(yx)+ min ⁡ { x , y } = x − ( x − y ) + \min\{x,y\}=x-(x-y)^{+} min{x,y}=x(xy)+

其中, ( x ) + = max ⁡ { x , 0 } (x)^{+}=\max\{x,0\} (x)+=max{x,0}即取 x x x和0的最大值。

由于参数 p , c p,c p,c为确定性的值, w w w先于 u ~ \tilde{u} u~确定,把以上等效转换代入公式(1)目标函数可得:

max ⁡ w    inf ⁡ P ∈ F E P [ p ⋅ [ w − ( w − u ~ ) + ] − c ⋅ w ] = max ⁡ w    w ⋅ ( p − c ) + inf ⁡ P ∈ F E P [ − p ⋅ ( w − u ~ ) + ] (2) \underset{w}{\max} \; \underset{\Bbb{P} \in \mathscr{F}}{\inf}\Bbb{E_{\Bbb{P}}} [p \cdot [w-(w-\tilde{u})^{+}]-c\cdot w] \\ \quad =\underset{w}{\max} \; w\cdot(p-c) + \underset{\Bbb{P} \in \mathscr{F}}{\inf}\Bbb{E_{\Bbb{P}}}[-p \cdot (w-\tilde{u})^{+}]\tag{2} wmaxPFinfEP[p[w(wu~)+]cw]=wmaxw(pc)+PFinfEP[p(wu~)+](2)

同样,由于 − sup ⁡ ( x ) = inf ⁡ ( − x ) -\sup(x)=\inf(-x) sup(x)=inf(x) sup ⁡ ( x ) \sup(x) sup(x) x x x的上确界,公式(2)可以转化为:

max ⁡ w    w ⋅ ( p − c ) + inf ⁡ P ∈ F E P [ − p ⋅ ( w − u ~ ) + ] = max ⁡ w    w ⋅ ( p − c ) − sup ⁡ P ∈ F E P [ p ⋅ ( w − u ~ ) + ] (3) \underset{w}{\max} \; w\cdot(p-c) + \underset{\Bbb{P} \in \mathscr{F}}{\inf}\Bbb{E_{\Bbb{P}}}[-p \cdot (w-\tilde{u})^{+}]\\ \quad=\underset{w}{\max} \; w\cdot(p-c) - \underset{\Bbb{P} \in \mathscr{F}}{\sup}\Bbb{E_{\Bbb{P}}}[p \cdot (w-\tilde{u})^{+}] \tag{3} wmaxw(pc)+PFinfEP[p(wu~)+]=wmaxw(pc)PFsupEP[p(wu~)+](3)

最终优化问题(1)转化为:

max ⁡ w    ( p − c ) w − sup ⁡ p ∈ F    ( E P [ max ⁡ { p ⋅ ( w − u ~ ) , 0 } ] ) (4) \underset{w}{\max}\;(p-c)w-\underset{\Bbb{p}\in \mathscr{F}}{\sup}\;(\Bbb{E}_{\Bbb{P}}[\max\{p \cdot (w-\tilde{u}),0\}]) \tag{4} wmax(pc)wpFsup(EP[max{p(wu~),0}])(4) s . t . w ≥ 0 s.t.\quad w \ge0 s.t.w0

2.2 Wasserstein 模糊集

在求解以上优化问题时,需要指定随机变量 u ~ \tilde{u} u~的模糊集 F \mathscr{F} F。例3.3.2中使用的是Wasserstein模糊集,其定义为:

F = { ∣ ( u ~ , s ~ ) ∼ P ∣ E p [ ρ ( u ~ , u ^ s ~ ) ∣ s ~ ∈ [ S ]    ] ≤ θ P ∈ P 0 ( R × [ S ] ) ∣ P [ u ~ ∈ [ 0 , U ˉ ] ∣ s ~ = s ] = 1 , ∀ s ∈ [ S ] ∣ P [ s ~ = s ] = 1 / S , ∀ s ∈ [ S ] } \mathscr{F}=\begin{Bmatrix} &|&(\tilde{u},\tilde{s})\sim \Bbb{P}\\ &|&\Bbb{E}_{\Bbb{p}}[\rho(\tilde{u},\hat{u}_{\tilde{s}})|\tilde{s} \in [S]\;] \leq \theta \\ \Bbb{P}\in \mathcal{P}_{0}(\Bbb{R}\times[S])&|&\Bbb{P}[\tilde{u}\in [0,\bar{U}]|\tilde{s}=s]=1,\forall s \in [S]\\ &|&\Bbb{P}[\tilde{s}=s]=1/S, \forall s \in [S] \end{Bmatrix} F=PP0(R×[S])(u~,s~)PEp[ρ(u~,u^s~)s~[S]]θP[u~[0,Uˉ]s~=s]=1,s[S]P[s~=s]=1/S,s[S]

其中, [ S ] = { 1 , 2 , ⋯   , S } [S]=\{1,2,\cdots,S\} [S]={1,2,,S}为场景的集合, u ^ \hat{u} u^ u ~ \tilde{u} u~的观测(采样)值或估计值。 ρ ( u ~ , u ^ s ~ ) \rho(\tilde{u},\hat{u}_{\tilde{s}}) ρ(u~,u^s~)表示 u ~ \tilde{u} u~ u ^ \hat{u} u^之间的某种距离测度,右侧第二行表示两者之间的平均距离小于给定的参数 θ \theta θ θ \theta θ也被称为Wasserstein球半径。

根据文献[1],通过引入松弛变量 v ~ {\tilde{v}} v~,可以把以上模糊集转化为event-wise模糊集:

F = { ∣ ( ( u ~ , v ~ ) , s ~ ) ∼ P ∣ E p [ v ~ ∣ s ~ ∈ [ S ]    ] ≤ θ P ∈ P 0 ( R 2 × [ S ] ) ∣ P [ u ~ ∈ [ 0 , U ˉ ] ∣ s ~ = s ρ ( u ~ , u ^ s ~ ) ≤ v ~ ∣ ] = 1 , ∀ s ∈ [ S ] ∣ P [ s ~ = s ] = 1 / S , ∀ s ∈ [ S ] } \mathscr{F}=\begin{Bmatrix} &|&((\tilde{u},\tilde{v}),\tilde{s})\sim \Bbb{P}\\ &|&\Bbb{E}_{\Bbb{p}}[\tilde{v}|\tilde{s} \in [S]\;] \leq \theta \\ \Bbb{P}\in \mathcal{P}_{0}(\Bbb{R}^{2}\times[S])&|&\Bbb{P} \begin{bmatrix}\tilde{u}\in [0,\bar{U}]&|&\tilde{s} = s\\ \rho(\tilde{u},\hat{u}_{\tilde{s}}) \leq \tilde{v} &|& \end{bmatrix}=1,\forall s \in [S]\\ &|&\Bbb{P}[\tilde{s}=s]=1/S, \forall s \in [S] \end{Bmatrix} F=PP0(R2×[S])((u~,v~),s~)PEp[v~s~[S]]θP[u~[0,Uˉ]ρ(u~,u^s~)v~s~=s]=1,s[S]P[s~=s]=1/S,s[S]

也即是通过松弛变量 v ~ {\tilde{v}} v~来表示Wasserstein球的半径。

2.3 测试求解

文献[3]的例3.3.2中,参数设置为: U ˉ = 100 , p = 1.5 , c = 1.0 \bar{U}=100,p=1.5,c=1.0 Uˉ=100,p=1.5,c=1.0,采样数量 S = 500 S=500 S=500,并假设每次采样值 u ^ \hat{u} u^服从 [ 0 , U ˉ ] [0,\bar{U}] [0,Uˉ]上的均匀分布, θ = 0.01 U ˉ \theta=0.01\bar{U} θ=0.01Uˉ。以下代码为RSOME用户手册中的代码[3],非本人代码。

Ubar = 100;                             % Upper bounds of random demands
S = 500;                                % Number of samples 
Uhat = Ubar * rand(1, S);               % Empirical data of demands

p = 1.5;                                % Selling price of the product
c = 1.0;                                % Production cost of the product
theta = Ubar*0.01;                      % The Wasserstein distance

%% Create a RSOME model
model = rsome('newsvendor');            % Create a model object named "newsvendor"

%% Random variables and a type-1 Wasserstein ambiguity set
u = model.random;                       % Random demand
v = model.random;                       % Auxiliary random variable 
P = model.ambiguity(S);                 % Create an ambiguity set with S scenarios
for n = 1:S
    P(n).suppset(0 <= u, u <= Ubar, ...   
                 norm(u-Uhat(n)) <= v );% Define the support set for each scenario
end
P.exptset(expect(v) <= theta);
prob = P.prob;                          % pr for all scenario probabilities
P.probset(prob == 1/S);                 % The probability set of the ambiguity set
model.with(P);                          % The ambiguity set of the model is P

%% Decision
w = model.decision;                     % Define a decision variable w

%% Objective function
loss = maxfun({p*(w-u), 0});            % Profit loss due to unsold products
model.max((p-c)*w - expect(loss));      % Objective as the worst-case expectation

%% Constraints
model.append(w >= 0);                   % The variable w is non-negative

%% Solution
model.solve;                            % Solve the model

我的运行环境是MATLAB2018a和cplex12.8教育版。由于cplex的教育版最大支持1000个优化变量的优化问题,在运行example_3_3_2_exact_nv.m文件时,rsome类的solve方法在调用Cplex求解时,报Cplex/subsref错误。
在这里插入图片描述
在这个例子中,样本数量S=500,导致变量超出了cplex限制,报了下标(subsref)的错误。我把S改为S=70运行正确。如果大家求解问题规模过大,还得需要完全、无限制版的优化求解器。
最后结果为 w = 49.5177 w=49.5177 w=49.5177
在这里插入图片描述

总结

RSOME在使用体验上同yalmip十分相似,但是需要对DRO具有一定的理解才能真正入手。这只是其中的入门的例子,本人数学较差,后面还得补下RO和DRO的基础知识。在此十分感谢RSOME作者香港城市大学副教授Chen Zhi的答疑和其提供的国内网盘RSOME下载链接。

参考文献
[1]Math for DS 直播 NO.4 | 斯坦福大学管理科学与工程叶荫宇. https://www.bilibili.com/video/BV1Kt4y1y7ZU
[2]Chen, Zhi & Sim, Melvyn & Xiong, Peng. (2020). Robust Stochastic Optimization Made Easy with RSOME. Management Science. DOI: 10.1287/mnsc.2020.3603.
[3]Zhi Chen, Melvyn Sim, Peng Xiong.Users Guide for RSOME, version 1.2.
[4]链接: https://pan.baidu.com/s/1ejWU-lRwsmmfo5YgrG5hyA 提取码: k37r

written by Aharon Ben-Tal Laurent El Ghaoui Arkadi Nemirovski Copyright © 2009 by Princeton University Press PART I. ROBUST LINEAR OPTIMIZATION 1 Chapter 1. Uncertain Linear Optimization Problems and their Robust Counterparts 3 1.1 Data Uncertainty in Linear Optimization 3 1.2 Uncertain Linear Problems and their Robust Counterparts 7 1.3 Tractability of Robust Counterparts 16 1.4 Non-Affine Perturbations 23 1.5 Exercises 25 1.6 Notes and Remarks 25 Chapter 2. Robust Counterpart Approximations of Scalar Chance Constraints 27 2.1 How to Specify an Uncertainty Set 27 2.2 Chance Constraints and their Safe Tractable Approximations 28 2.3 Safe Tractable Approximations of Scalar Chance Constraints: Basic Examples 31 2.4 Extensions 44 2.5 Exercises 60 2.6 Notes and Remarks 64 Chapter 3. Globalized Robust Counterparts of Uncertain LO Problems 67 3.1 Globalized Robust Counterpart — Motivation and Definition 67 3.2 Computational Tractability of GRC 69 3.3 Example: Synthesis of Antenna Arrays 70 3.4 Exercises 79 3.5 Notes and Remarks 79 Chapter 4. More on Safe Tractable Approximations of Scalar Chance Constraints 81 4.1 Robust Counterpart Representation of a Safe Convex Approximation to a Scalar Chance Constraint 81 4.2 Bernstein Approximation of a Chance Constraint 83 4.3 From Bernstein Approximation to Conditional Value at Risk and Back 90 4.4 Majorization 105 4.5 Beyond the Case of Independent Linear Perturbations 109 4.6 Exercises 136 4.7 Notes and Remarks 145 PART II. ROBUST CONIC OPTIMIZATION 147 Chapter 5. Uncertain Conic Optimization: The Concepts 149 5.1 Uncertain Conic Optimization: Preliminaries 149 5.2 Robust Counterpart of Uncertain Conic Problem: Tractability 151 5.3 Safe Tractable Approximations of RCs of Uncertain Conic Inequalities 153 5.4 Exercises 156 5.5 Notes and Remarks 157 Chapter 6. Uncertain Conic Quadratic Problems with Tractable RCs 159 6.1 A Generic Solvable Case: Scenario Uncertainty 159 6.2 Solvable Case I: Simple Interval Uncertainty 160 6.3 Solv
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值