本文同步发布于我的网站

软件版本

  • 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的更多相关文章

  1. 《DSP using MATLAB》示例 Example 9.10

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  2. 《DSP using MATLAB》示例Example 8.10

    这个例子的代码我不会写,只是放一张书的截图图片在这里.以后再改进吧.

  3. 《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, ...

  4. Atitit MATLAB 图像处理 经典书籍attilax总结

    Atitit MATLAB 图像处理 经典书籍attilax总结 1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读 ...

  5. 基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)

    1 设计内容 本设计是基于FPGA的音频信号FIR低通滤波,根据要求,采用Matlab对WAV音频文件进行读取和添加噪声信号.FFT分析.FIR滤波处理,并分析滤波的效果.通过Matlab的分析验证滤 ...

  6. 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 ...

  7. MATLAB介绍

    MATLAB MATLAB[1]  是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink ...

  8. 【推荐】30个Matlab视频教程合集(含GUI视频教程)下载

    自己收集别人网盘上存的资源,分享一下[点击文件名可得到下载地址]        Matlab 7.8 基础视频教程 实例1 数据传递和多窗口编程_avi.zip 205.11 MB   Matlab ...

  9. 史上最全的Matlab资源电子书教程和视频下载合集【超级推荐】

    收藏吧,网上搜集的,费了老大劲了,推荐给有需要的人,^_^.   MATLAB课件2007北京交通大学.zip 4.87 MB   A Guide to MATLAB for Beginners an ...

  10. 描述性统计的matlab实现

    理论讲的再多不会做也白弄 直接上手 一.针对接近正态分布的(均值,方差,标准差,极差,变异系数,偏度,峰度) 这里我必须提前说明一点就是,你在写好函数后,函数的名是dts,你保存的文件名也必须是dts ...

随机推荐

  1. xpath 定位单选框

    分析页面结构: 整个页面只有一组radiogroup 一个group地下存在两个radio 思路定位到页面唯一元素->下面具体radio 代码: //div[@class='el-radio-g ...

  2. 稳定且高性价比的大模型存储:携程 10PB 级 JuiceFS 工程实践

    在过去两年多的时间里,随着 AI 大模型的快速发展,JuiceFS 在携程内部得到了越来越多 AI 用户的关注.目前,携程通过 JuiceFS 管理着 10PB 数据规模,为 AI 训练等多个场景提供 ...

  3. 【记录】C/C++-关于I/O的坑与教训

    吐槽 每每读取字符串时,倘若稍有灵活的操作,总会遇上诡异奇怪的事情.究其原因,就是没完全理解一些基本读写函数的机制.这次做Uva227就把I/O上的问题全暴露出来了.想来还是应该记录一些经验教训. 记 ...

  4. 解决Mac无法共享网络问题

    前言 部分小伙伴在使用 Mac 共享网络会出现各种问题: 无法共享 共享后,手机无法连接网络 解决办法 重置网络即可. 三个步骤轻松解决 访达(Finder)前往文件夹:/Library/Prefer ...

  5. 卸载和重装docker的方式

    查看已安装的版本 yum list installed|grep docker 卸载 [root@localhost ~]# yum -y remove containerd.io.x86_64 [r ...

  6. PLSQL自动登录,记住用户名密码&日常使用技巧

    配置启动时的登录用户名和密码 这是个有争议的功能,因为记住密码会给带来数据安全的问题. 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Develope ...

  7. Redis 原理 - Set

    Set数据结构 使用 intset 当同时满足下面两个条件时,使用 intset 存储数据 元素个数少于512个 (set-max-intset-entries: 512) 所有元素都是整数值 不满足 ...

  8. Momentum Contrast for Unsupervised Visual Representation Learning论文精读

    目录 Birth of MoCo Supervised Learning Contrastive Learning MoCo Dictionary Limits of the early learni ...

  9. 【Windows】如何关闭Windows10、Windows11自动更新

    如何关闭Windows10自动更新 零.问题 Windows10老是自动更新,有时候第二天起来又得重新打开软件,真麻烦,Win10自动更新的时候还有点卡. 如何关闭? 经过上网查询,发现完全关闭难度比 ...

  10. 请运行命令来卸载Oracle主目录

    卸载Oracle数据库碰见的一个不一样的操作,留爪. 正常点的软件卸载直接点卸载即可, Oracle 卸载非要来点不一样警告, 如图: 注意:不要被图里的斜杠符号忽略了,准确的应该是: # 注意斜杠 ...