使用Gurobi命令行界面求解模型


使用Gurobi命令行界面求解模型

解决优化问题的最后一步是将模型传递给Gurobi优化器。我们将使用Gurobi命令行界面,因为在解决存储在文件中的模型时,它通常是最简单的界面。

要使用命令行界面,首先需要弹出一个窗口,允许您运行命令行程序。在Mac系统上,您可以使用终端窗口。(请注意,Gurobi Interactive Shell(之前用于测试您的许可证)可以做到这一点直接接受命令行程序输入)。

Gurobi命令行工具的名称为gurobi_cl.要调用它,请键入gurobi_cl,后面是模型文件的名称。例如,如果我们的模型存储在文件中/图书馆/ gurobi901 / mac64 / /数据/例子coins.lp,你可以在你的命令行窗口中输入以下命令…

> gurobi_cl/图书馆/ gurobi901 / mac64 / /数据/例子coins.lp

该命令应该产生以下输出:

使用license文件/Library/gurobi/gurobi.lic
将参数“LogFile”设置为“gu罗比.log”

Gurobi优化器版本9.0.1构建v9.0.1rc0 (linux64)
版权所有(c) 2020,古罗比优化有限狗万app足彩责任公司

从文件中读取LP格式模型/图书馆/ gurobi901 / mac64/ /数据/ coins.lp例子

读取时间= 0.00 seconds: 4行,9列,16非零优化4行,9列,16非零模型指纹:0xa0c5449c变量类型:4连续,5整数(0二进制)系数统计:矩阵范围[6e-02, 7e+00]目标范围[1e-02, 1e+00]边界范围[5e+01, 1e+03] RHS范围[0e+00, 0e+00]发现启发式解决方案:Objective -0.0000000预解删除1行和5列预解时间:0.00s预解:3行,4列,9非零变量类型:0连续,4整数(0二进制)根松弛:1.134615e+02, 2次迭代,0.00秒节点当前节点| |客观界限|工作Expl Unexpl | Obj深度IntInf | |现任BestBd差距/节点时间0 0 0 1 -0.00000 113.46154 113.46154 - 113.4500000 - 0 s H 0 0 - 0 0 0 113.46154 113.46154 - 0.01% 0 1 113.45000 113.46154 0.01% - 0年代探索1节点(2单纯形迭代)在0.00秒内的线程数是8 (8最佳目标1.134500000000e+02,最佳界1.134500000000e+02,差距0.0000%
有关Gurobi日志文件格式的详细信息,可在Gurobi参考手册.现在,您可以简单地注意到最优的目标值是113.45。回想一下,目标是用美元表示的。因此,我们可以得出这样的结论,通过正确选择生产计划,造币厂可以生产使用可用的矿物价值113.45的硬币。而且,由于这个值是最优的,我们知道不可能产生大于的硬币113.45 !

知道这个最佳计划产生的每个硬币的确切数量显然是有用的。的gurobi_cl命令可以通过命令行参数设置Gurobi参数。对于本例来说,一个特别有用的参数是ResultFile,它指示Gurobi优化器写一个文件,一旦优化完成。文件的类型编码在后缀中。请求一个.sol文件:

> gurobi_cl ResultFile =硬币。索尔coins.lp
该命令将生成一个文件,其中包含模型中变量的解决方案值:
#客观价值= 113.45便士0镍币0 dime 2 Quarters 53美元100 Cu 999.8 Ni 46.9 Zi 50 Mn 30
在最优解中,我们将产生100美元硬币,53个25美分硬币和2个10美分硬币。

如果我们想要研究模型的参数(例如,考虑最佳解决方案如何随着可用矿物的不同数量而变化),我们可以使用一个文本编辑器来修改输入文件。但是,通常最好在功能更强大的系统中进行这样的测试。现在我们将描述Gurobi Interactive Shell,它提供了一个用于创建、修改和试验优化模型的环境。