Gurobi + CVX + Matlab

那年仲夏 提交于 2020-12-18 19:14:55

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

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 中输入激活码即可。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!