Cplex求解器

博主分享了如何在Matlab中利用YALMIP+Cplex解决整数线性规划问题,包括YALMIP和Cplex的安装步骤,以及几个实际问题的建模和求解示例,如运输问题、背包问题等。
摘要由CSDN通过智能技术生成

博主个人博客

在求解整数线性规划问题是,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+x3304x1+x2+x315x

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值