CVX的免费版本并不支持整形规划,所以需要安装其他的优化工具,如,Gurobi,Mosek,Cplex等。好在CVX支持调用Gurobi,Mosek等工具,在matlab中,不改变原先的CVX算法,只需要改变优化工具就行,默认SDPT3Toy 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,Mosek有一个就行了,够用
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.测试
参考
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
Matlab下的整数规划(CVX)
最新推荐文章于 2024-04-23 11:06:04 发布