在求解整数线性规划问题是,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.参数设置
ops = sdpsetting('solver','Cplex','verbose',0); verbose:显示冗余度 0为只显示结果
5.求解
result = solvesdp(C,z,ops)
示例一
一个可视化公式编辑器的神器,它可以让我们可视化地编辑公式,然后自动得到它的LaTeX文本:
m i n Z = 12 x 1 + 5 x 2 + 8 x 3 s . t . { 2 x 1 + 3 x 2 + x 3 ≥ 30 4 x 1 + x 2 + x 3 ≥ 15 x 1 , x 2 , x 3 ≥ 0 min\;Z=12x_1+5x_2+8x_3\\s.t.\left\{\begin{array}{l}2x_1+3x_2+x_3\geq30\\4x_1+x_2+x_3\geq15\\x_1,x_2,x_3\geq0\end{array}\right. minZ=12x1+5x2+8x3s.t.⎩⎨⎧2x1+3x2+x3≥304x1+x2+x3≥15x