博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
『实践』Yalmip建模+Cplex类求解
阅读量:5319 次
发布时间:2019-06-14

本文共 1442 字,大约阅读时间需要 4 分钟。

Yalmip建模+Cplex类求解

一、缘由

    Yalmip只能设置部分Cplex的参数,所以需要调用Cplex类。而且是Yalmip提供的常用函数,但此函数的返回结果参数有限。

图1  

 

二、解决方法

  为了能够既利用Yalmip来建模(方便),又能调用Cplex类(功能齐全)。我们可以使用Yalmip提供的函数来输出model,再新建一个Cplex类实体,将model中整理好的诸如Aineq、bineq等赋值给新建的Cplex类实体。

图2  F为目标函数,h为约束,ops为options。

  下面举个具体例子,model存储着Yalmip建立的模型,cplex_milp为,可以对其设置各种参数属性。。

  ps:model中的矩阵中的变量排序无法知道。

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.cnblogs.com/landiljy/p/7750178.html

你可能感兴趣的文章
cz_xuyixuan
查看>>
坚持的力量 第十篇
查看>>
Minimum Inversion Number 1394(线段树法)
查看>>
注册asp.net 4.0 到iis
查看>>
find type d 命令批量删除禁用
查看>>
复习下C 链表操作(双向循环链表,查找循环节点)
查看>>
自动化测试 using System.Windows.Automation;
查看>>
11.数据库操作
查看>>
小学生之Java中的异常
查看>>
【云计算】开源装机自动化系统 CloudBoot OSInstall 介绍
查看>>
idea2018.2.5版本使用之背景色
查看>>
hibernate 集合查询
查看>>
利用VS自带的dotfuscator混淆代码的学习
查看>>
安装VS.net2003时 microsoft Frontpage 2000 web 扩展客户端安装失败的解决办法
查看>>
GIT历史:Why Bitkeeper Isn't Right For Free Software
查看>>
android O 蓝牙设备默认名称更改
查看>>
mysql查询今天,昨天,近7天,近30天,本月,上一月数据方法
查看>>
malloc free[zz]
查看>>
Django基础,Day9 - 静态文件目录与路径设置说明(eg. images, JavaScript, CSS)
查看>>
summernote 上传图片到图片服务器的解决方案(springboot 成功)
查看>>