matlab,YAMLP,CPLEX调用与安装
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
具体代码如下: x=intvar(1,3); f=[4 6 2]*x'; F=set(x>0)+set([-1 3 0]*x'<=8)+set([0 -1 3]*x'<=10)+set([5 0 -1]*x'<=8); solvesdp(F,-f); double(f) double(x)
1
来自百度文库
其中,double(f)为查看最优结果即目标 函数z的值;double(x)为查看各个x的取 值 solvesdp(F,-f)是在约束条件F下,求解目 标函数f的最大值 运行结果如图:
程序结果
算例2
目标函数: Max z=x1^2+x2^2+3*x3^2+4*x4^2+2*x5^2-8*x1-2*x2-3*x3-x4-2*x5 约束条件: 0<=xi<=99(i=1,2,...,5) x1+x2+x3+x4+x5<=400 x1+2*x2+2*x3+x4+6*x5<=800 2*x1+x2+6*x3<=800 x3+x4+5*x5<=200 在matlab中输入 x=intvar(1,5); f=[1 1 3 4 2]*(x'.^2)-[8 2 3 1 2]*x';F=set(0<=x<=99); F=F+set([1 1 1 1 1]*x'<=400)+set([1 2 2 1 6]*x'<=800)+set(2*x(1)+x(2)+6*x(3)<=800); F=F+set(x(3)+x(4)+5*x(5)<=200);solvesdp(F,-f) double(f) 80199 double(x) 53 99 99 99 0
接受许可协议,单击下一步
选择安装密钥,此时打开最初 的iso压缩文件
选择打开文件夹以查看文件
在文件夹中找到serial文件夹, 打开其中的ReadMe文件
如图,蓝色字体为安装密钥, 然后单击下一步
第一次安装,选择典型,单击 下一步
选择安装地址并单击下一步 (注:安装路径必须为英文名)
单击安装,待安装完成后进行 配置
Matlab安装演示及算例
系统安装
首先,需要下载虚拟光驱对 matlab 的iso 文件进行解压缩。推荐几个比较好用的 如:DaemonTools,VirtualCloneDrive等。 打开iso文件如下图: 选择运行setup.exe
安装程序如图所示,选择不使 用Internet安装,单击下一步
在进行具体的操作之前,建议大家先浏 览一下Matlab的编程标准以及符号特点。 尤其是对矩阵的定义和转换,在求解不 同问题时,可能存在一定难度,希望大 家多多交流!
Thank you!
用同样的方法添加cplex文件夹中 的matlab文件夹
整个添加完成后在matlab中进 行测试,输入如图
若提示如图则添加cplex等文件成 功
算法分析——整数规划
1.定义变量:
sdpvar()表示实型; intvar()表示整型; binvar()表示0-1型;
2.确定目标函数f; 3.利用set设定约束条件(当有多个约束条件时, 可将各个约束条件用“+”连接) 4.求解目标函数solvesdp(F,-f)
最大值是-f,最小值是f。
5.利用double()查看相应结果。如double(f)等
算例1分析
目标函数: max z=4x1+6x2+2x3 约束条件为: -x1+3x2<=8 -x2+3x3<=10 5x1-x3<=8 x1,x2,x3>=0且x1,x2x3为整数
安装完成后,在文件中找到bin文 件夹并打开其中的matlab.exe
matlab.exe为执行文件,运 行后系统如图所示
找到YALMIP.zip文件复制
打开Matlab文件夹,找到其中的 Toolbox文件并将YALMIP解压到文 件夹中
在Matlab中找到Set path按钮
选择Add with Subfolders添加 Toolbox中的yalmip文件夹