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 (lxy444@pku.edu.cn)
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 中输入激活码即可。