CVX工具包(for matlab)

来源:互联网 发布:淘宝如何投诉卖家侵权 编辑:程序博客网 时间:2024/05/02 15:41

CVX工具包(for matlab)


CVX是斯坦福的教授Stephen P. Bold等人开发的一个基于Matlab的凸优化工具包,能够解决诸如线性规划,二次规划,整数规划(需要license)等等优化问题,且使用非常的人性化。比如,求解最小二乘法等问题。

Installation

支持32/64位的Linux, MAC OSX, Windows系统。
可戳官方下载链接 :http://cvxr.com/cvx/download/

Instructions for Mac

下载的压缩包解压到任意目录(不要在Matlab的toolbox路径就可以了,因为之后安装会在这里新建cvx目录)。
打开matlab程序。(我用的Matlab R2014b)

cd Your-DIR-to-cvx/cvxcvx_setup 

傻瓜式安装就一键搞定了!
其他需求详细戳用户手册安装教程:http://cvxr.com/cvx/doc/install.html

Basics

cvx_begin/cvx_end

cvx模块需要以cvx_begin起始,以cvx_end结束。其中cvx有一些需要了解的参数。

cvx_begin quiet   % 不输出cvx求解时的一大坨结果cvx_begin sdp     % 半正定编程模式cvx_begin gp      % 几何编程模式

variable

所有cvx中用于目标函数和约束的变量都要在使用前用variable声明。

variabel a        % 变量为标量variabel Y(4,5)   % 变量为矩阵variabel Q(6,6,6) % 变量为多维数组

variable声明也可以带有关键字,如complex,nonnegative,semidefinite,symmetric等等。

% 目前支持的关键字如下banded(lb,ub)      diagonal           hankel             hermitianskew_symmetric     symmetric          toeplitz           tridiagonallower_bidiagonal   lower_hessenberg   lower_triangularupper_bidiagonal   upper_hankel       upper_hessenberg   upper_triangular

optimization fuction

目标函数非常直接,直接用minimize()和maximize()来写即可。约束以subject to起始。

% Example 1:% minimize cTx% subject to Ax⪯bn = size(A,2);cvx_begin    variable x(n);    dual variable y;    minimize( c' * x );    subject to        y : A * x <= b;cvx_end

或者

% Example 2:% minimize y% subject to (Ax−b,y)∈Qmcvx_begin    variables x(n) y;    minimize( y );    subject to        { A*x-b, y } <In> lorentz(m);cvx_end

expression(vs. variable)

当进入cvx_begin后,所有的expression和variable都为cvx类型,一个variable控制一个优化变量,不可以被赋值,重写。但expression是可以接受matlab的一般变量或者variable的赋值,甚至可以用来被放入minimize或者maximize,相当于临时存储变量。

Recommendation

1、关于cvx工具箱使用,戳http://cvxr.com/cvx/doc/CVX.pdf 。
2、深入学习convex optimization理论算法,戳http://stanford.edu/~boyd/cvxbook/(Prof. Stephen P. Bold 的书《Covex Optimization》和教学slides available online)。

Contents

  • CVX工具包for matlab
    • Installation
    • Instructions for Mac
    • Basics
      • cvx_begincvx_end
      • variable
      • optimization fuction
      • expressionvs variable
    • Recommendation
    • Contents

1 0
原创粉丝点击