👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
作为随机规划的一类,机会约束常用来处理约束条件中含有随机变量的情形,数学模型如(1-2)所示,最初是作为求解不确定性环境下优化问题的工具被提出,难点在一般情况下,机会约束规划问题一般都是非凸问题.在某些假设下,Miller和 WagIer[29]研究了带有随机右端项的机会约束规划问题,证明了其确定性等价问题是一个凹规划问题.在线性决策规则下, Charnes和 Cooper [2]研究了三类模型:最大期望值模型、最小方差模型和最大概率模型,构建了相应的确定性等价模型,且证明了等价模型是凸问题. Prekopa [30]对两种随机规划模型进行了研究,第一类模型使用概率约束,并将条件期望约束添加到目标函数中作为惩罚项;第二类模型是第一类模型的特例:不确定性下的两阶段问题,其中仅要求第二阶段问题以给定的高概率被求解.
上述研究是直接考虑连续概率分布情况,另外一个研究方向是采取基于蒙特卡洛抽样的样本近似方法[31],将带有连续概率分布的机会约束规划问题转化为有限数量样本逼近问题.然后通过下面两种策略将样本逼近问题转化为大规模确定性混合整数规划问题.
本文用于联合机会约束问题的顺序凸近似算法的 Matlab 实现。它包括条件风险值 (CVaR) 和风险值的顺序凸近似 (迭代 dc) 之间的比较。
example_run.m
:运行文件,主函数main_function.m
:包括生成样本,应用 CVAR 近似、ε近似和直流近似,返回特定设置的结果gensample.m
:为所有随机变量生成正态分布obj_fun.m
:目标函数quantile.m
:约束的分位数opt_cvar.m, opt_dc.m, opt_eps.m
:CVAR优化,一步直流近似,ε近似con_fun_cvar.m, con_fun_dc.m, con_fun_eps.m
:CVAR、一步直流近似、ε近似的约束lincave.m
:凹函数的线性近似
📚2 运行结果
部分代码:
% joint chance constrained programming
function [x_cvar fval_cvar runtime_cvar x_eps fval_eps runtime_eps x_dc fval_dc runtime_dc] ...
=mainfunction(Dim,ConDim,Alpha,SampleSize,Eps,StopEps,MaxIter,MaxDCIter,TolFun,TolCon)
global dim condim alpha sample sample_size epsilon;
dim=Dim; % dim is the dimension of random vector
condim=ConDim; % condim is the number of constraints
alpha=Alpha; % alpha is the probabilistic constraint level
sample_size=SampleSize; % number of random samples
% sample is a 3d matrix, with size: sample_size x dim x condim
sample=gensample(dim,condim,sample_size); % generate random vector
epsilon=Eps; % epsilon for approximation
stopepsilon=StopEps; % stopping criteria
maxiter=MaxIter; % maximum iteration for each optimization
maxdciter=MaxDCIter; % maximum iteration for dc loop
tolfun=TolFun; % tolerance function value in optimization
tolcon=TolCon; % tolerance constraint value in optimization
% set starting point
x0=zeros(dim,1);
% run cvar at the first time
[x_cvar fval_cvar runtime_cvar]=opt_cvar(x0,maxiter,tolfun,tolcon);
q_cvar=quantile(alpha,x_cvar);
% run epsilon var approximation at the first time
[x_eps fval_eps runtime_eps]=opt_eps(x0,maxiter,tolfun,tolcon);
q_eps=quantile(alpha,x_eps);
% run dc iterative run, fix epsilon right now
x_dc(:,1)=x_eps;
fval_dc(1)=fval_eps;
runtime_dc(1)=runtime_eps;
for i=2:maxdciter
x_star=x_dc(:,i-1);
[x_dc(:,i) fval_dc(i) runtime_dc(i)] = opt_dc(x_dc(:,i-1),maxiter,tolfun,tolcon);
if abs(fval_dc(i)-fval_dc(i-1)) < stopepsilon
break;
end
end
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]吕维. 可行性机会约束下两阶段随机优化问题研究[D].湖南师范大学,2021.DOI:10.27137/d.cnki.ghusu.2021.000835.
[2]王龙源,田易之,谭栋.基于机会约束规划的风-光-CSP-火联合发电系统优化调度[J].现代电子技术,2022,45(21):109-116.DOI:10.16652/j.issn.1004-373x.2022.21.019.
[3]@article{hong2011sequential,
title={Sequential convex approximations to joint chance constrained programs: A Monte Carlo approach},
author={Hong, L Jeff and Yang, Yi and Zhang, Liwei},
journal={Operations Research},
volume={59},
number={3},
pages={617--630},
year={2011},
publisher={INFORMS}
}