Gurobi + CVX + Matlab

Posted lemonq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gurobi + CVX + Matlab相关的知识,希望对你有一定的参考价值。

当前内容只是我的理解和经验,若有错误请斧正。

CVX 是Matlab 中的凸优化安装包,通过安装 CVX包,要优化的问题(变量、约束、目标函数)可用matlab语句来表达。

CVX 安装: 原文参见  https://blog.csdn.net/lipengcn/article/details/51442005

* Note: CVX 安装的版本要和你的MATLAB一样,要兼容,64位就是64位,安装32位会报错

技术分享图片

 

简单来说是:1、下载 http://cvxr.com/cvx/download/

      2、解压

      3、打开 MATLAB,并cd至 CVX解压所在文件夹,输入 cvx_setup

      4、初次用户需要申请一个免费的 academic license, 其中的邮箱要是学校的邮箱   http://cvxr.com/cvx/academic/

      5、等待  技术分享图片,接收邮件中的 cvx_license. dat, 存至某目录

      6、在 MATLAB中输入命令    cvx_setup D:/Download/cvx_license.dat  即可完成安装和注册

 

Gurobi 安装:

CVX 的包在下载时是会包含一些求解器的,其中就包括Gurobi,但是因为现在Gurobi的中国事务都应该是外包给了一家中国的公司,在申请 academic license的时候没有以前那么简单了,它安装以后极有可能无法检测出你的IP是高校IP,需要给这个公司写邮件传一个申请表和一些身份证明文件,等待他发给你 license。

技术分享图片

 

 

 原文参见    https://blog.csdn.net/u012705410/article/details/78196927

在 matlab 输入

cvx_setup /Users/lxy444/Documents/MATLAB/cvx_license.dat

就可以安装上 mosek 求解器了。但是我们不用着急,因为我们也想把 gurobi 一块装上。所以我们先按照官网要求(http://cvxr.com/cvx/doc/gurobi.html#gurobi)去获取一个 gurobi 的 license,在 gurobi 官网用教育邮箱注册后在这里:https://user.gurobi.com/download/licenses/free-academic 就可以直接获得一个 license 了。

获得 gurobi 的 license 之后,在 matlab 里面输入

cvx_grbgetkey ********-****-****-****-***********

后面是你的 license,然后就会验证成功了,不过这个验证过程貌似要连上学校的 wifi。

最后还是在 matlab 里面输入

cvx_setup /Users/lxy444/Documents/MATLAB/cvx_license.dat

一切成功后,显示如下

---------------------------------------------------------------------------
CVX: Software for Disciplined Convex Programming       (c)2014 CVX Research
Version 2.1, Build 1116 (d4cc5c5)                  Thu Mar 30 21:54:11 2017
---------------------------------------------------------------------------
Installation info:
    Path: /Users/lxy444/Documents/MATLAB/cvx
    MATLAB version: 9.1 (R2016b)
    OS: Mac OS X x86_64 version 10.13
    Java version: 1.7.0_75
Verfying CVX directory contents:
    No missing files.
Preferences: 
    Path: /Users/lxy444/Library/Application Support/MathWorks/MATLAB/cvx_prefs.mat
License host:
    Username: lxy444
    Host ID: acbc327e4ff5 (en0)
Installed license:
    No license installed.
Installing license:
    File: /Users/lxy444/Documents/MATLAB/cvx_license.dat
    Organization: Peking University
    Contact: LiXiangyang ([email protected])
    License type: academic
    Named user: lxy444
    Host ID: acbc327e4ff5
    Expiration: 2018-10-10 (365 days remaining)
    Status: verified
---------------------------------------------------------------------------
Setting CVX paths...already set!
Searching for solvers...5 shims found.
4 solvers initialized (* = default):
    Gurobi   6.00        {cvx}/gurobi/maci64
    Mosek    8.0.0.60    {cvx}/mosek/maci64
 *  SDPT3    4.0         {cvx}/sdpt3
    SeDuMi   1.34        {cvx}/sedumi
1 solver skipped:
    GLPK                 
        Could not find a GLPK installation.
Saving updated preferences...done.
Testing with a simple model...done!
---------------------------------------------------------------------------
To change the default solver, type "cvx_solver <solver_name>".
To save this change for future sessions, type "cvx_save_prefs".
Please consult the users‘ guide for more information.
---------------------------------------------------------------------------

可以看到,此时求解器中已经包含 mosek 和 gurobi 了,安装成功!

Gurobi 的安装也可以直接安装技术分享图片,安装以后启动它,在 cmd 中输入激活码即可。

 

以上是关于Gurobi + CVX + Matlab的主要内容,如果未能解决你的问题,请参考以下文章

求帮忙,2012b的matlab怎么安装CVX

MATLAB 安装 cvx 工具箱

Matlab 7.0如何加载cvx??

matlab cvx安装出错,请问怎么解决

matlab中安装好了cvx好了工具箱 还是报错 未定义函数或变量 'cvx_begin'

如何利用matlab cvx求解0-1整数规划