前言

之前的几篇鲁棒优化的文章,大致介绍了鲁棒优化基本原理,本文对原理部分不再赘述。如果对鲁棒优化基本原理还不了解的同学,建议先补上基础。言归正传,鲁棒优化作为经典的处理不确定性方法,深受大家的喜爱,但是其重复繁琐的对偶转换步骤,同样让很多人望而却步。为此,本文将基于yalmip语言中的uncertain命令,介绍一种鲁棒优化的快速建模求解方法,方便大家在论文中作对比算例。


一、uncertain是什么?

uncertain(w,distribution) 是基于yalmip语言中处理不确定变量的工具,该工具是为了解决鲁棒优化、随机优化而创建的。其中w就是指不确定变量,distribution为改不确定变量的分布。这个分布可以是不确定集合,盒子不确定集合、多面体不确定集合、椭圆不确定集合等等,也可以是已知的分布,例如正态分布等。更详细介绍,建议直接看原文档。接下来,将以一个股票投资的例子向大家展示该命令的使用方法。股票投资问题如下:

二、uncertain怎么用?

代码

`n = 150; %150只股票
x = sdpvar(n, 1); %每只股票的投资比例
w = sdpvar(n, 1); %不确定变量
sigma = zeros(n, 1);
z = sdpvar(1, 1);
p = zeros(n, 1);
for i = 1 : n
sigma(i, 1) = (0.05 * sqrt(2 * i * n * (n + 1))) / 450; %股票回报的标准差
end
for i = 1 : n
p(i, 1) = 1.15 + i * 0.05 / 150; %股票回报的均值
end
%约束条件
st = [];
for i = 1 : n
st = [st, 0 <= x(i)]; %每只股票的投资比例大于0
end
st = [st, sum(x) == 1]; %投资总比例为1

% U = [norm(w,inf)<=1,uncertain(w)];%指明变量w为不确定变量,并指出范围,norm为范数,盒子不确定集合
% U = [norm(w,inf)<=1,norm(w,1)<=5,uncertain(w)];%多面体不确定集合
U = [norm(w,2)<=1,uncertain(w)];%椭圆不确定集合

%目标函数
obj = p’ * x + (w .* sigma)’ * x; %收益最大化

ops = sdpsettings(‘solver’, ‘gurobi’); %参数指定程序用cplex求解器
optimize([st, U], -obj, ops)%带上不确定约束U
plot(value(x));


总结

盒子不确定集合下,x投资比例

多面体不确定集合下,x投资比例

椭球不确定集合下,x投资比例

鲁棒优化(5):通过yalmip中uncertain命令快速各类不确定集合下的鲁棒优化相关推荐

  1. java中解释命令_闲来无事可来了解下Java中Javadoc命令的用法

    [javadoc命令的用法] 1.java源文件里,注释以/**开始 并以*/结束,里面可以包含普通文件,HTML标记和javaDoc标记.这些将构成javaDoc文档. 2.javadoc命令只能处 ...

  2. java中的命令怎么上移_web系统中上下移动功能的实现

    其实上移下移的思想分几步: 核心思想:交换两个记录的位置字段的值. 问题:如何根据当前记录,找到前一个或者后一个的记录的位置. 第一:在java类属性定义一个position位置字段,不同的位置pos ...

  3. linux中touch命令如何使用方法,Linux系统下touch命令的使用方法

    你还在为不知道linux系统下touch命令的使用方法而不知所措么?下面来是答-案-网 Z Qnf.Com小编为大家收集的linux系统下touch命令的使用方法,欢迎大家阅读: linux系统下to ...

  4. 在linux中ping命令的功能和用法,linux下ping命令使用介绍

    一.ping命令的原理和工作机制 ·ping命令一般用于检测网络通与不通,也叫时延,其值越大,速度越慢PING(PacketInternetGrope),因特网包探索器,用于测试网络连接量的程序. · ...

  5. 浅谈搜狗下拉词框优化推广的优势有哪些

    今天来说说搜狗下拉词框优化推广的优势有哪些?关于上期的抖音下拉词框优化推广优势看上期文章:抖音下拉词框 那么在了解搜狗下拉词框优化推广的优势前,我们先了解其用户数量及群体. 相信大家电脑或者手机上,都 ...

  6. linux中comm命令用法

    linux系统中comm命令用法详解 linux系统下的comm命令是一个非常实用的文件对比命令. comm命令功能:   选择或拒绝两个已排序的文件的公共的行. comm命令语法:comm [-12 ...

  7. linux中comm的用法,linux中comm命令用法

    linux系统中comm命令用法详解 linux系统下的comm命令是一个非常实用的文件对比命令. comm命令功能:   选择或拒绝两个已排序的文件的公共的行. comm命令语法:comm [-12 ...

  8. 矩阵乘法的优化及其在卷积中的应用

    公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 作者:黎明灰烬 来源:https://zhuanlan.zhihu.com/p/6695839 ...

  9. mysql数据库优化课程---15、mysql优化步骤(mysql中最常用最立竿见影的优化是什么)...

    mysql数据库优化课程---15.mysql优化步骤(mysql中最常用最立竿见影的优化是什么) 一.总结 一句话总结:索引优化最立竿见影 索引优化:不然有多少行要扫描多少次,1亿行大概是5到10分 ...

最新文章

  1. match_parent和fill_parent的区别
  2. 什么是百度竞价创意断句符
  3. 164. Leetcode 435. 无重叠区间 (贪心算法-贪心区间)
  4. 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL
  5. 2021的第一封拒信来自2021年年度青年活动家本科生奖!
  6. 动作基类 CCAction
  7. 如何在Outlook中的电子邮件上显示快速操作按钮
  8. oracle12 扩充表空间,oracle查询及扩充表空间
  9. et文件怎么转成excel_10秒就能将任意格式的文件转成PDF,简单易操作,不学可别后悔...
  10. java自行车e2_摩托罗拉E2 JAVA应用程序安装指南
  11. 下沉市场不需要巨头,但很需要社区团购
  12. 给自己的IntelliJ IDEA 设置签名
  13. 微信小程序设置页面全局背景色
  14. QT程序退出后托盘图标不消失问题
  15. 【Vue】解决 Vue 视图不刷新和组件循环引用不加载问题
  16. 第十一章 认识与学习BASH【鸟哥linux私房菜学习笔记】
  17. 【公告 | 阿布扎比全球市场为中东和北非地区推出加密资产框架】
  18. Linux入门学习日志(三)
  19. c语言盐水的故事代码大全,盐水的故事 (Java代码)
  20. php教师试讲,教师面试试讲禁忌

热门文章

  1. 城阳三中2021高考成绩查询入口,2021年城阳区高中学 普通高中计划招生5250人,公办普通高...
  2. 一加3t刷机后还卡_一加OnePlus 3T官方固件刷机教程_线刷|救砖教程图解
  3. Virgo软件的介绍
  4. QPSO---收缩扩张系数的选择方案(未完待续)
  5. 整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了...
  6. 机电一体化计算机接口一般分为,[工学]4机电一体化计算机接口设计上.ppt
  7. Freemodbus 移植过程记录
  8. 相机基础知识和佳能相机DPP
  9. 后台数据库取值 轮播图
  10. js进入页面后自动触发点击事件