在求解整数线性规划问题是,Matlab下yalmip+cplex的组合会让如虎添翼。本人是在研究早晚班排班过程中才发现的这一工具。其能够求解各种整数规划模型。在matlab中使用cplex求解时,还可以使用yalmip工具进行建模,比直接使用cplex建模方便很多。
在正式开始使用前需要先安装好环境。第一步是下载相关的工具包。百度网盘链接 提取码:garx
yalmip安装
yalmip工具箱的安装比较简单,从链接下载后,将YALMIP-master文件夹拷贝到matlab>toolbox,如下图
是放在matlab安装目录的\toolbox文件夹下。
然后打开matlab,点击设置路径
点击添加并包含子文件夹,添加之后点击保存、关闭
这样下来,路径就设置好了,yalmip作为工具箱已经被添加到matlab中去了,接下来在命令行窗口输入中检查一下,输出yalmiptest,然后回车!你会发现你的yalmip已经可以作为matlab的工具箱而使用了,但是cplex没有被yalmip识别到,如下图所示,所以需要求解器cplex的安装
Cplex安装
Cplex的安装较yalmip复杂一些,不过复杂之处主要在版本对不对,能不能正常安装,是不是能够和yalmip匹配的上,以及最后求解的时候受不受到变量、约束个数的限制。
Cplex官网可以申请试用版,如果是在校学生或者老师,可以使用学校的教育邮箱去申请,理论上应该可以申请到。博主使用学校邮箱账号申请,奈何学校邮箱的问题迟迟收不到验证邮件消息,到第二天才收到了消息,所以并没有采用此种方法。而实直接在网上找了一个下载。原本想直接用一个简化版的Cplex的文件,但是添加到matlab路径后发现运行代码时找不到,照着网上的一些文章说是版本的问题,yalmip没有把对应的cplex版本包含进来,但是我查看了一下其实yalmip已经包含了很多版本的cplex。无奈之下我只好去下载CplexStudio.
按照博主链接,便可以下载到12.8版本的Cplex,解压后运行,一直点击下一步,改变安装路径和生成文件的路径,期间需要安装VS studio的环境,由于电脑早已有VS环境,可以忽略一些内容安装,总之,一般情况下,点击安装程序,一路点击下一步即可安装成功!
安装成功后,需要再次打开matlab,继续设置添加路径,这里需要注意的是,你需要将cpclex文件下matlab的文件夹添加进去。
接着进行测试,在命令行窗口输入yalmiptest,检查Cplex的安装情况,你会发现,yalmip检测到了求解器Cplex
到这里安装部分就都成功了,可以开始漫长的科研道路了。
一些示例
yalmip基本格式
1.创建决策变量
2.目标函数Z
3.约束条件设置C
4.参数设置
1 | ops = sdpsetting('solver','Cplex','verbose',0); verbose:显示冗余度 0为只显示结果 |
5.求解
1 | result = solvesdp(C,z,ops) |
示例一
一个可视化公式编辑器的神器,它可以让我们可视化地编辑公式,然后自动得到它的LaTeX文本:
1 | clear;clc;close all; |
1 | 警告: 文件: C:\Program Files\IBM\ILOG\CPLEX_Studio_Community128\cplex\matlab\x64_win64\@Cplex\Cplex.p 行: 965 列: 0 |
示例二 运输问题
1 | clear;clc;close all; |
1 | x_star = |
示例三 背包问题
1 | clear;clc;close all; |
1 | x_star = |
示例四 最短路径问题
1 | % 利用yamlip求解最短路问题 |
1 | x_star = |
示例五 指派问题
1 | clear;clc;close all; |
1 | c = |
本文链接: https://linbei.top/Cplex%E6%B1%82%E8%A7%A3%E5%99%A8/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!