YALMIP建模+CPLEX求解,让优化问题更简单
利用matlab编程优化问题,常利用外部工具进行求解,本文主要讲述利用YALMIP简化模型建立,调用CPLEX求解,话不多说,直接上代码。
ops=sdpsettings('solver','cplex');%设置cplex求解器
[model,recoveryalmip,diagnostic,internalmodel]=export(co,-object,ops);%输出cplex模型。注意:ops值一定不能少
%model表示输出模型;recoveryalmip用于恢复各变量的对应关系获取求解结果。
milpt=Cplex('milp for htc');
milpt.Model.sense='minimize';%设置求解方式,最大值可通过在目标函数前面添加负号实现
milpt.Model.obj=model.f;%设置变量对应关系
milpt.Model.lb=model.lb;
milpt.Model.ub=model.ub;
milpt.Model.A=[model.Aineq;model.Aeq];
milpt.Model.lhs=[-inf*ones(size(model.bineq,1),1);model.beq];
milpt.Model.rhs=[model.bineq;model.beq];
milpt.Model.ctype=model.ctype;
milpt.param.mip.tolerances.absmipgap.Cur=0.2;%设置绝对误差值
milpt.param.mip.tolerances.mipgap.Cur=0.2;%设置相对误差
milpt.param.mip.tolerances.integral