Matlab下的整数规划(CVX)

CVX的免费版本并不支持整形规划,所以需要安装其他的优化工具,如,Gurobi,Mosek,Cplex等。好在CVX支持调用Gurobi,Mosek等工具,在matlab中,不改变原先的CVX算法,只需要改变优化工具就行,默认SDPT3

Toy Example

从data里面找出10个数字,使之求和最小

data = 1:1:n;
cvx_begin
     variable pp(n) binary
     minimize (data*pp)
     subject to
     sum(pp)==10
 cvx_end

直接运行得到错误

Error using cvx_sdpt3>solve (line 131)
SDTP3 does not support integer variables.

安装Gurobi,Mosek

安装Gurobi,Mosek比较简单,首先到CVX官网下载带有Gurobi,Mosek的CVX版本。
如果要使用Gurobi,Mosek,需要申请三个许可证(CVX,Gurobi,Mosek)分别到相应的官网申请就可以。如果是学校里的人员,只要有教育网的邮箱可以很快就申请到,本人用了一两个小时就全部申请完了。具体可以看参考中的网址,很详细。
安装中遇到一个小问题,Gurobi安装完后就是识别不到。以下是cvx_setup中看到的信息

Gurobi unknown {cvx}\gurobi\w64
A valid CVX Professional license key was found, but not a Gurobi license key. *Both* keys are needed to use Gurobi.Saving updated preferences...done.

许可已经注册过而且提示成功。解决办法到cvx-w64\gurobi\w64目录下执行grbgetkey.exe,输入申请到的gurobi序列号,重新运行cvx_setup +CVX license文件,终于正常了

4 solvers initialized (* = default):
Gurobi 7.52 {cvx}\gurobi\w64
Mosek 8.0.0.60 {cvx}\mosek\w64
* SDPT3 4.0 {cvx}\sdpt3
SeDuMi 1.34 {cvx}\sedumi
1 solver skipped:
GLPK
Could not find a GLPK installation.
个人觉得Gurobi,Mosek有一个就行了,够用

测试

在这里插入图片描述

参考

https://blog.csdn.net/u012705410/article/details/78196927?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值