『实践』Yalmip建模+Cplex类求解
来源:互联网 发布:bilibili以前知乎 编辑:程序博客网 时间:2024/06/07 02:04
Yalmip建模+Cplex类求解
一、缘由
Yalmip只能设置部分Cplex的参数,所以需要调用Cplex类。而且optimize是Yalmip提供的常用函数,但此函数的返回结果参数有限。
图1 Yalmip网站对于Cplex求解器的说明
二、解决方法
为了能够既利用Yalmip来建模(方便),又能调用Cplex类(功能齐全)。我们可以使用Yalmip提供的export函数来输出model,再新建一个Cplex类实体,将model中整理好的诸如Aineq、bineq等赋值给新建的Cplex类实体。
图2 F为目标函数,h为约束,ops为options。
下面举个具体例子,model存储着Yalmip建立的模型,cplex_milp为Cplex类实体,可以对其设置各种参数属性。Cplex的参数列表地址。
1 %yalmip设置 2 options = sdpsettings('solver' ,'cplex'); 3 options.showprogress = 1;%1为设置显示yalmip现在在做什么 4 options.verbose = 2;%设置显示信息程度,1为适度显示,2为完全显示。 5 6 [model,recoverymodel,diagnostic,internalmodel] = export(Constraints,Objective,options);%输出Yalmip模型 7 %定义一个Cplex类实体 8 cplex_milp = Cplex('Milp for HTC'); 9 cplex_milp.Model.sense = 'minimize';10 cplex_milp.Model.obj = model.f;11 cplex_milp.Model.lb = model.lb;12 cplex_milp.Model.ub = model.ub;13 cplex_milp.Model.A = [model.Aineq;model.Aeq];14 cplex_milp.Model.lhs = [-Inf.*ones(size(model.bineq,1),1);model.beq];15 cplex_milp.Model.rhs = [model.bineq;model.beq];16 cplex_milp.Model.ctype = model.ctype';20 cplex_milp.Param.mip.tolerances.mipgap.Cur = zk.solver_error;%相对MIP间隔容差,(精度)21 cplex_milp.Param.threads.Cur = 1;%设置将由任何 CPLEX 并行优化器调用的并行线程的缺省数量。1为单线程22 cplex_milp.Param.mip.display = 1;%决定在混合整数优化期间cplex报告到屏幕的内容。默认为2.23 cplex_milp.Param.timelimit = 15;%设置对优化器的调用的最长时间(以秒为单位)24 cplex_milp.writeModel('hmilp.lp');%输出数学模型25 cplex_milp.solve();
图3 上面代码中的model变量中的参数列表
图 4 Cplex类实体
三、相关网站
https://www.ibm.com/support/knowledgecenter/zh/SSSA5P_12.7.0/ilog.odms.cplex.help/refmatlabcplex/html/classCplex.html
https://www.ibm.com/support/knowledgecenter/zh/SSSA5P_12.7.0/ilog.odms.cplex.help/CPLEX/Parameters/topics/introListAlpha.html
https://yalmip.github.io/command/export/
阅读全文
1 0
- 『实践』Yalmip建模+Cplex类求解
- 『实践』Yalmip+Ipopt+Cplex使用手册
- 『实践』Yalmip获取对偶函数乘子
- matlab中调用cplex 以及使用 Yalmip 工具箱
- CPLEX 求解过程详解,注释
- YalMip
- Cplex 关闭自动输出求解信息
- CPLEX 求解过程详解,精简版
- 求解SDP问题—使用SeDuMi和YALMIP
- 求解SDP问题—使用SeDuMi和YALMIP
- matlab Yalmip 求解电力系统鲁棒调度问题例子
- 数学建模求解
- matlab yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)
- yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)
- 【转载】yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)
- yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)
- yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)
- YALMIP Solvers
- 输入m和n两个正整数,求其最大公约数和最小公倍数
- Android中Activity触摸事件传递源码学习
- 『转载』Matlab中fmincon函数获取乘子
- KMD算法
- 『实践』Matlab实现Flyod求最短距离及存储最优路径
- 『实践』Yalmip建模+Cplex类求解
- Spring的搭建
- 星星 不知名的玄学看图题
- 算法实现
- js计算文件MD5值
- 机器学习入门学习笔记:(3.1)决策树算法
- Unity3D-VR、PC版本代码动态切换
- Spring MVC基础知识
- LaTeX新人教程,30分钟从完全陌生到基本入门