想测试自己Gurobi在matlab中是否可以正常使用,在一篇公众号里看到一个在matlab中使用Gurobi--来解决LP问题的文章,运用了它里面的代码来跑这个程序,但我运行结果出错了,不知道是什么原因。求会的人教教我。谢谢!
问题描述
%===============================================================
%函数:Gurobi_LP.m
%功能:本程序仅作为MATLAB配置Gurobi测试使用
%修改时间:2020-07-25
%作者:W. Yin, and Z. Yang
%===============================================================
function [x,y]=Gurobi_LP
%% 定义变量
cons=[];
%% 决策变量
x=sdpvar(1,3);
%% 目标函数
y=2*x(1)+3*x(2)+x(3);
%% 约束条件
cons=[cons,x(1)+4*x(2)+2*x(3)>=8];
cons=[cons,3*x(1)+2*x(2)>=6];
cons=[cons,x(1)>=0];
cons=[cons,x(2)>=0];
cons=[cons,x(3)>=0];
%% 求解
ops = sdpsettings('solver','gurobi','showprogress',1);
optimize(cons,y,ops);
%% 结果
x=double(x);
y=double(y);
end
运行结果
>> Gurobi_LP
+ Solver chosen : GUROBI-GUROBI
+ Processing objective function
+ Processing constraints
+ Calling GUROBI
Set parameter IntFeasTol to value 1e-06
Set parameter ScaleFlag to value 1
Set parameter BarIterLimit to value 2000000000
Set parameter CrossoverBasis to value 0
Set parameter MinRelNodes to value 0
Set parameter NodeMethod to value 1
Set parameter PumpPasses to value 0
Set parameter ZeroObjNodes to value 0
Set parameter AggFill to value 10
Set parameter PreSparsify to value 0
Set parameter TuneTrials to value 2
ans =
NaN NaN NaN
正确运行结果应该是
» Gurobi_ LP
+ Solver chosen : GUROBI -GUROBI
+ Processing objective function .
+ Processing constraints
+ Calling GUROBI
Academic license - for non- commercial use only
Gurobi Optimizer version 9.0.2 build v9. 0.2rc0 (win64)Optimize a model with 5 rows, 3 columns and 8 nonzerosModel f ingerprint: 0x2525fbe3
Coefficient statistics:
Matrix range [1e+00, 4e+00]
Objective range [1e+00, 3e+00]
Bounds range [0e+00, 0e+00]
RHS range[6e+00, 8e+00]
Presolve removed 3 rows and 0 columns
Presolve time: 0. 03s
Presolved: 2 rows, 3 columns, 5 nonzeros
Iteration Objective Primal Inf. Dual Inf. Time
0.000000e+00 3.500000e+00 0.00000e+00 0s
7.000000e+00 0.000000e+00 0.00000e+00 0s
Solved in 2 iterations and 0. 06 seconds
Optimal objective 7. 00000000e+00
ans =
2 0 3
我自己也不知道我用matalab运行出来的和推文作者运行结果为什么不一样,我的matlab版本是2020,Gurobi下载版本是9.5.2