机会约束程序的凸近似(学习用)(Matlab代码实现)

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

我们考虑一个机会约束问题,其中寻求在满足随机扰动凸约束系统的概率接近一的解上最小化凸目标。这个问题可能碰巧在计算上很难解决;我们的目标是建立其可计算处理的近似,即在机会约束问题中包含可行集的有效可解确定性优化程序。我们构造了相应的机会约束问题的一类一般的凸保守近似。

此外,在假设扰动中的约束是仿射的,并且扰动向量中的条目彼此独立于其他随机变量的情况下,本文通过建立机会约束问题的大偏差型近似,称为“Bernstein近似”。这种近似是凸的并且是有效可解的。本文提出了一种基于模拟的方案来界定机会约束问题中的最优值,并报告了旨在比较Bernstein和众所周知的情景近似方法的数值实验。最后,将构造扩展到模糊机会约束问题的情况,其中随机扰动与已知属于给定凸紧集而不是确切已知的分布的集合无关,而机会约束应该满足该集给定的每个分布。

📚2 运行结果

主函数部分代码:

%% Portfolio Problem
​
% Problem Value at Risk Minimation Problem
%  min J(x)=t
%  s.t. Prob{Sum(r_j x_j) < t} <= epsilon
%       Sum(x_j) = 1, x_j > 0 
clear all; close all;
​
d = 20;  % Number of assets
​
scenario  = 1;  % Conduct Scenario Appoach
bernstein = 0;  % Conduct Bernstein Approx
​
%% 1. Nonlinear Optimization with Scenario Approach
% Sample N samples and solve
% %  min J(x)=t
%  s.t. Prob{Sum(r_j x_j) < t} <= epsilon
%       Sum(x_j) = 1, x_j > 0 
​
if scenario
    eps_array  = 0.01:0.005:0.05;
​
    ncase      = length(eps_array);
    var_array  = zeros(1,ncase);
    vr_array   = zeros(1,ncase);
​
    rng(1);
​
    for ii = 1:ncase
        epsilon = eps_array(ii);
        beta    = 1 -epsilon;
​
        % Number of required samples
        eps_N = 0.01;
        N = ceil(2/(1-beta)*log(1/eps_N) + 2*d + 2*d/(1-beta)*log(2/(1-beta)));
​
        % create random variables
        % r = (ones(d,N) + 0.06*jvec) + 0.04*(jvec.*xi);  % d X N  non-affine
        r = weight(d,N);  % d X N affine
​
        % Test
        x0 = 1/d * ones(d,1);
        y0 = [x0; 2];
​
        % Linear Programming
        fobj = [zeros(1,d),-1];
        A   = [-r', ones(N,1)];  %N x (d+1) t - rx <= 0  
        b   = zeros(N,1);
        Aeq = [ones(1,d),0];
        beq = 1;
        lb  = zeros(d+1,1);
        ub  = [ones(d,1);2];
​
        % Solutions
        ysol = linprog(fobj,A,b,Aeq,beq,lb,ub);
        xsol = ysol(1:end-1);
        varsol = ysol(end);
​
        % calculate violation rate
        Nv = 10^6;
        vr = Vrate(xsol,varsol,Nv);
​
        % Print Results
    %     disp(['eps:',num2str(epsilon)]);
    %     disp(['    VaR:',num2str(tsol)]);
    %     disp(['    Violation Rate:',num2str(vr)]);
​
        var_array(ii) = varsol;
        vr_array(ii) = vr;
    end
​
    figure(1);
    hold on; grid on;
    title('Sampling Method');
    xlabel('eps')
    ylabel('VaR')
    plot(eps_array,var_array,'LineWidth',4);
    set(gca,'FontSize',14);
​
    figure(2);
    hold on; grid on;
    title('Sampling Method');
    xlabel('eps')
    ylabel('Violation Rate')
    plot(eps_array,vr_array,'LineWidth',4);
    set(gca,'FontSize',14);
​
end

🎉3 参考文献

​[1]丁可伟,王磊,方诗虹.一类最小二乘的机会约束问题的凸逼近[J].四川师范大学学报(自然科学版),2014,37(01):54-57.

部分理论引用网络文献,若有侵权联系博主删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值