Navigator

  • QP
  • Large-scale QP

QP

假设数据生成过程为
yt=atx+ety_t=a_tx+e_t yt​=at​x+et​
目标是估计出过程变量xxx

x = [1 2 3 4 5 6]';
t = (0:0.02:2*pi)';
A = [sin(t) sin(2*t) sin(3*t) sin(4*t) sin(5*t) sin(6*t)];
e = (-4+8*rand(length(t),1)); % add noise
e(100:115) = 30;
y = A*x+e;
plot(t,y);

为了求解1-norm回归问题,定义残差变量,设置目标函数为残差最小化,调用YALMIP求解

xhat = sdpvar(6, 1);
residuals = y-A*xhat;
bnd = sdpvar(length(residuals), 1);
% 残差约束
cons = [-bnd<= residuals<= bnd];optimize(cons, sum(bnd));
x_L1=value(xhat);

设置为2-norm回归问题,即QP求解

optimize([], residuals'*residuals);
x_L2=value(xhat);

设置为∞-norm问题(最小化向量中的绝对值最大的元素)

bnd = sdpvar(1, 1);
cons = [-bnd<=residuals<=bnd];
optimize(cons, bnd);
x_inf = value(xhat);

绘制不同目标函数下的拟合图像

%% plot
hold on;
h1=plot(t, y);
h2=plot(t, A*x_L1);
h3=plot(t, A*x_L2);
h4=plot(t, A*x_inf);
legend([h1 h2 h3 h4], {'y', 'L1-norm', 'L-norm', 'L-inf norm'});
hold off;

优化求解过程可以在YALMIP中简写表示

res_1=optimize([], norm(residuals, 1));
res_2=optimize([], norm(residuals, 2));
res_inf=optimize([], norm(residuals, inf));

Large-scale QP

The 2-norm solution is most easily stated in the described QP formulation, although it in some cases is more efficient in YALMIP to express the problem using a 2-norm, which will lead to SOCP.

aux = sdpvar(length(residuals),1);
optimize([aux == residuals],aux'*aux);

在求解大规模QP问题时,可以引入辅助变量和等式约束,这样会使得二次项变得稀疏,求解器可以更快求解. 设QP问题的目标函数为
{xTQxQ=RTR使用Cholesky分解矩阵,降低计算复杂度\begin{cases} x^TQx\\ Q=R^TR\quad\text{使用Cholesky分解矩阵,降低计算复杂度} \end{cases} {xTQxQ=RTR使用Cholesky分解矩阵,降低计算复杂度​

R = chol(Q);
z = sdpvar(length(x),1);
optimize([z == R*x],z'*z);

如果知道QQQ是一个低秩矩阵,可以进行如下矩阵分解优化

R = my_smart_factorization(Q);
z = sdpvar(size(R,2),1);
optimize([z == R*x],z'*z);

一种节省内存的方式

z = sdpvar(1);
optimize([z == sum(x)],z^2);

【OR】YALMIP 二次规划问题相关推荐

  1. YALMIP的简单说明

    最近在做论文时,涉及到最优化问题,而最优化里面很多时候涉及的是二次约束二次规划QCQP这样的非凸问题,一般地,这样的非凸问题是得不到全局精确的最优解的,需要另辟蹊径.常用的有半定松弛SDR.将非线性松 ...

  2. 基于MATLAB的Cplex、Yalmip环境安装

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.安装前准备 二.Cplex安装 三.Yalmip安装 四.算例 结果展示: 前言 MATLAB是一个强大的数值计算 ...

  3. 优化:YALMIP一般使用方法及例程

    文章目录 线性规划例子 二次规划例子 二阶锥规划 一般优化问题 全局优化问题 参考 可以说,yalmip是一位"集大成者",它不仅自己包含基本的线性规划求解算法,比如linprog ...

  4. matlab yalmip

    YALMIP 是一个用于模型构建和优化问题的 MATLAB 工具包.它支持各种数学优化问题,如线性规划.非线性规划.二次规划.项目管理等,并且可以与多种后端优化器(如 Gurobi 和 MOSEK)集 ...

  5. 使用Yalmip+matlab求解主从博弈(双层规划)问题 | 教程(二)

    yalmip官方学习网址: https://yalmip.github.io/command 作为yalmip小白,本文主要根据实际代码运用,进行yalmip学习. 学习以yalmip官方网站为主,其 ...

  6. yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)

    转自,原文: https://www.cnblogs.com/kane1990/p/3428129.html 最近建立了一个网络流模型,是一个混合整数线性规划问题(模型中既有连续变量,又有整型变量). ...

  7. matlab yalmip 例程,YALMIP工具箱使用范例.pdf

    YALMIP工具箱使用范例 YALMIP工具箱简介 东北大学数学系 王琪 wangqimath@126.com YALMIP工具箱简介 • 基于符号运算工具箱编写 • 一种定义和求解高级优化问题的模化 ...

  8. 路径调度问题(CVRP)后续之如何在MATLAB中安装YALMIP及CPLEX包

    订阅博主专栏的用户可私信博主获取安装包,不用额外再付费下载安装包. 安装包下载地址:https://download.csdn.net/download/wenyusuran/14954633 一.M ...

  9. MATLAB实战系列(十四)-如何通过YALMIP和CPLEX求解小规模(CVRP)路径调度问题(附MATLAB代码)

    前言 有约束条件的车辆路径问题(CVRP),可以看作是TSP(Traveling Salesman Problem,旅行商问题)的拓展.由于TSP已经被证明是NP难问题,所以CVRP也是NP难问题. ...

  10. MATLAB实战系列(二)- 如何使用YALMIP检验数学模型的正确性?

    参加数学建模竞赛的小伙伴们,为了能让大家在比赛的第一个步骤不出错,即在模型建立这个步骤不出错,因此,今天准备讲一讲如何检验自己构建的数学模型是否合理. 本次推文分为三部分: 1)YALMIP工具箱的安 ...

最新文章

  1. 关于c语言程序开发过程 下面说法错误的是,c语言笔试真题
  2. 11家车企联手高通、大唐,加速V2X在华商用部署
  3. js获取和设置属性的方法
  4. VTK:Points之PoissonExtractSurface
  5. python四舍五入round_四舍五入就用round( )?Python四舍五入的正确打开方式!
  6. 动漫的python语言代码大全_下载动漫壁纸-Python代码
  7. 真的没办法一心一意麽? php 文件操作
  8. java多线程批量读取文件(七)
  9. Flink学习笔记:搭建Flink on Yarn环境并运行Flink应用
  10. php js后端渲染,webpack后端渲染详解
  11. 使用sqoop导出mysql数据时错误处理【com.mysql.jdbc.RowDataDynami】
  12. 2018年python工作好找吗-2018年Python发展前景如何?Python就业有哪些方向?
  13. json_extract提取复杂json_Python中高效使用JSON的四个小窍门
  14. 数据中心常说的IDC,EDC,ODC,DC分别指什么类型机房?
  15. java 数组声明并初始化_Java数组的声明与初始化
  16. PCL学习笔记(十八)-- ConditionalRemoval和RadiusOutliersRemoval滤波器移除离群点
  17. 深圳财经生活频道--杨百万
  18. ADC 学习笔记(二)指标参数总结
  19. js获取n天后的日期
  20. 【自动化接口测试】FitNesse使用启蒙篇

热门文章

  1. Android Studio导入安卓源码
  2. 网络弱电工程办理签证注意九个方面
  3. 2021-09-18
  4. Discuz搜索模块解析
  5. 哈尔滨计算机工程黑icp备,关于组织我校青年教师及研究生参加2017年中、俄、蒙、德计算机科学、计算机工程及教育技术国际夏令营活动的通知...
  6. FileZillaServer创建FTP服务器
  7. Eclipse及其常用插件的下载地址
  8. SUN Solaris 问题小结
  9. linux扫描仪安装程序,给扫描仪在Linux系统里安个家
  10. Davinci Configurator之User Config File配置功能