Matlab使用yalmip与cplex12.10
本文同步发布于我的网站
软件版本
- MATLAB R2023b
- yalmip 2021-03-31
- CPLEX 12.10
不求新,但求适配。此版本组合经过我在两台电脑上成功安装
下载链接
链接:https://pan.baidu.com/s/1-FBktdRcaCjRw62u76SQGw?pwd=fkl5
提取码:fkl5
安装yalmip
解压 YALMIP-master.zip,并将解压出来的 YALMIP-master 文件夹移动到 MATLAB安装目录\R2023b\toolbox下。

启动MATLAB,在上方的主页中找到设置路径。

点击添加并包含子文件夹。

找到方才移动的 MATLAB安装目录\R2023b\toolbox\YALMIP-master 文件夹,选择文件夹。

点击保存然后点击关闭。

这时候去命令行测试一下是否正常工作,在MATLAB命令行中输入 yalmiptest。如果有结果,说明yalmip安装成功。
首先映入眼帘的应该是一份很长很长的清单,这是在搜索已安装的求解器。向上滑动,可以看到不同版本的 CPLEX,但是其状态都为 not found。
+++++++++++++++++++++++++++++++++++++++++++++++
| Searching for installed solvers |
+++++++++++++++++++++++++++++++++++++++++++++++
| Solver| Version/module| Status|
+++++++++++++++++++++++++++++++++++++++++++++++
| BARON| | not found|
| BINTPROG| | not found|
| BISECTION| | found|
| BMIBNB| | found|
| BNB| | found|
| BONMIN| | not found|
| BPMPD| | not found|
| CBC| | not found|
| CDCS| | not found|
| CDD| CDDMEX| not found|
| CLP| CLPMEX-LP| not found|
| CLP| CLPMEX-QP| not found|
| CLP| OPTI| not found|
| CONEPROG| | found|
| CPLEX| IBM 12.10.0| not found|
| CPLEX| IBM 12.10.0| not found|
| CPLEX| IBM 12.9.0| not found|
| CPLEX| IBM 12.9.0| not found|
| CPLEX| IBM 12.8.0| not found|
| CPLEX| IBM 12.8.0| not found|
| CPLEX| IBM 12.7.1| not found|
| CPLEX| IBM 12.7.1| not found|
| CPLEX| IBM 12.7.0| not found|
| CPLEX| IBM 12.7.0| not found|
| CPLEX| IBM 12.6.3| not found|
| CPLEX| IBM 12.6.3| not found|
| CPLEX| IBM 12.6.2| not found|
| CPLEX| IBM 12.6.2| not found|
| CPLEX| IBM 12.6.1| not found|
| CPLEX| IBM 12.6.1| not found|
| CPLEX| IBM 12.6.0| not found|
| CPLEX| IBM 12.6.0| not found|
| CPLEX| IBM 12.5.1| not found|
此时,你可以 Press any key to continue test 按下任意键以继续测试,也可以 Ctrl+C 以取消继续的测试。
安装CPLEX
双击 cplex_entserv1210.win-x86-64.exe 开始安装CPLEX。该过程中只有一个选择安装路径的选择,默认/安装到你想要安装的地方即可。

(这一步我更换安装路径为 D:\Software\CPLEX1210)
请记住安装路径,之后要用到。
如果您没有安装 Microsoft Visual C++ 2015 Redistributable Package (x64)的话,请点击下方链接以安装。安装的过程较为简单,在此不作赘述。

恭喜!CPLEX12.10.0已经成功安装至你指定的目录。

现在回到MATLAB,继续设置路径,添加并包含子文件夹,找到方才指定的CPLEX安装路径下的 CPLEX_Studio\cplex\matlab,选择文件夹。

点击保存然后点击关闭。

重新在MATLAB命令行窗口中输入 yalmiptest。
| CLP| CLPMEX-QP| not found|
| CLP| OPTI| not found|
| CONEPROG| | found|
| CPLEX| IBM 12.10.0| found| <------!!!
| CPLEX| IBM 12.10.0| found| <------!!!
| CPLEX| IBM 12.9.0| not found|
| CPLEX| IBM 12.9.0| not found|
| CPLEX| IBM 12.8.0| not found|
| CPLEX| IBM 12.8.0| not found|
| CPLEX| IBM 12.7.1| not found|
| CPLEX| IBM 12.7.1| not found|
| CPLEX| IBM 12.7.0| not found|
| CPLEX| IBM 12.7.0| not found|
可以注意到此时找到了CPLEX求解器。
实操测试
既然已经安装好了,那么就来用一道题目测试一下吧!
假设有一块原材料木板,长宽确定为 \(3000\times1500\),有两种切割形状(可是更多切割形状),切割形状 p1 为长宽 \((373,201)\),切割形状 p2 为长宽 \((406,229)\)。在保证原材料木板利用率最高的情况下,求两种切割数量以及最后的切割位置?
代码(解不出来的,这道题不能这样做……)
clear;
W = 3000;
H = 1500;
sizes = [373, 201; 406, 229];
% W = 15;
% H = 20;
% sizes = [3, 2; 4, 5];
numTypes = size(sizes, 1);
x=binvar(W,H,numTypes);
% cover=binvar(W,H);
C=[];
for t = 1:numTypes
w = sizes(t, 1);
h = sizes(t, 2);
for i = 1:W
fprintf("构建第%d行\n",i);
for j = 1:H
if i+w-1>W || j+h-1>H
C = [C, x(i,j,t)==0];
else
% 如果在 (i, j) 放置了形状 t
% 则 (i:i+w-1, j:j+h-1) 内的所有点都不能再放置其他形状
for ii=i:i+w-1
for jj=j:j+h-1
for tt=1:numTypes
if i==ii && j==jj && t==tt
continue
end
C=[C,x(i,j,t)~=x(ii,jj,tt)];
end
end
end
end
end
end
end
disp("约束条件构建完毕");
ops=sdpsettings('verbose',0,'solver','cplex');
area=sizes(:,1).*sizes(:,2);
z=(sum(x(:,:,1))*area(1)+sum(x(:,:,2))*area(2));
reuslt=optimize(C,z);
if result.problem == 0
% value(x)
value(z)
else
disp('求解过程中出错');
end
参考文献
一条龙教程:Matlab下使用yalmip(工具箱)+cplex(求解器)_matlab cplex一条龙-CSDN博客
从这篇博文中,我学习了基本的安装方法,但是基于MATLAB R2023b安装这位博主提供的安装包(yalmip+CPLEX12.8),运行时会出现报错,原因暂不详。
Matlab使用yalmip与cplex12.10的更多相关文章
- 《DSP using MATLAB》示例 Example 9.10
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- 《DSP using MATLAB》示例Example 8.10
这个例子的代码我不会写,只是放一张书的截图图片在这里.以后再改进吧.
- 《DSP using MATLAB》示例Example 6.10
上代码: % Pole-Zero IIR filter to Lattice-ladder structure filter b = [1, 2, 2, 1]; a = [1, 13/24, 5/8, ...
- Atitit MATLAB 图像处理 经典书籍attilax总结
Atitit MATLAB 图像处理 经典书籍attilax总结 1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读 ...
- 基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)
1 设计内容 本设计是基于FPGA的音频信号FIR低通滤波,根据要求,采用Matlab对WAV音频文件进行读取和添加噪声信号.FFT分析.FIR滤波处理,并分析滤波的效果.通过Matlab的分析验证滤 ...
- Machine Learning – 第2周(Linear Regression with Multiple Variables、Octave/Matlab Tutorial)
Machine Learning – Coursera Octave for Microsoft Windows GNU Octave官网 GNU Octave帮助文档 (有900页的pdf版本) O ...
- MATLAB介绍
MATLAB MATLAB[1] 是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink ...
- 【推荐】30个Matlab视频教程合集(含GUI视频教程)下载
自己收集别人网盘上存的资源,分享一下[点击文件名可得到下载地址] Matlab 7.8 基础视频教程 实例1 数据传递和多窗口编程_avi.zip 205.11 MB Matlab ...
- 史上最全的Matlab资源电子书教程和视频下载合集【超级推荐】
收藏吧,网上搜集的,费了老大劲了,推荐给有需要的人,^_^. MATLAB课件2007北京交通大学.zip 4.87 MB A Guide to MATLAB for Beginners an ...
- 描述性统计的matlab实现
理论讲的再多不会做也白弄 直接上手 一.针对接近正态分布的(均值,方差,标准差,极差,变异系数,偏度,峰度) 这里我必须提前说明一点就是,你在写好函数后,函数的名是dts,你保存的文件名也必须是dts ...
随机推荐
- xpath 定位单选框
分析页面结构: 整个页面只有一组radiogroup 一个group地下存在两个radio 思路定位到页面唯一元素->下面具体radio 代码: //div[@class='el-radio-g ...
- 稳定且高性价比的大模型存储:携程 10PB 级 JuiceFS 工程实践
在过去两年多的时间里,随着 AI 大模型的快速发展,JuiceFS 在携程内部得到了越来越多 AI 用户的关注.目前,携程通过 JuiceFS 管理着 10PB 数据规模,为 AI 训练等多个场景提供 ...
- 【记录】C/C++-关于I/O的坑与教训
吐槽 每每读取字符串时,倘若稍有灵活的操作,总会遇上诡异奇怪的事情.究其原因,就是没完全理解一些基本读写函数的机制.这次做Uva227就把I/O上的问题全暴露出来了.想来还是应该记录一些经验教训. 记 ...
- 解决Mac无法共享网络问题
前言 部分小伙伴在使用 Mac 共享网络会出现各种问题: 无法共享 共享后,手机无法连接网络 解决办法 重置网络即可. 三个步骤轻松解决 访达(Finder)前往文件夹:/Library/Prefer ...
- 卸载和重装docker的方式
查看已安装的版本 yum list installed|grep docker 卸载 [root@localhost ~]# yum -y remove containerd.io.x86_64 [r ...
- PLSQL自动登录,记住用户名密码&日常使用技巧
配置启动时的登录用户名和密码 这是个有争议的功能,因为记住密码会给带来数据安全的问题. 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Develope ...
- Redis 原理 - Set
Set数据结构 使用 intset 当同时满足下面两个条件时,使用 intset 存储数据 元素个数少于512个 (set-max-intset-entries: 512) 所有元素都是整数值 不满足 ...
- Momentum Contrast for Unsupervised Visual Representation Learning论文精读
目录 Birth of MoCo Supervised Learning Contrastive Learning MoCo Dictionary Limits of the early learni ...
- 【Windows】如何关闭Windows10、Windows11自动更新
如何关闭Windows10自动更新 零.问题 Windows10老是自动更新,有时候第二天起来又得重新打开软件,真麻烦,Win10自动更新的时候还有点卡. 如何关闭? 经过上网查询,发现完全关闭难度比 ...
- 请运行命令来卸载Oracle主目录
卸载Oracle数据库碰见的一个不一样的操作,留爪. 正常点的软件卸载直接点卸载即可, Oracle 卸载非要来点不一样警告, 如图: 注意:不要被图里的斜杠符号忽略了,准确的应该是: # 注意斜杠 ...