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


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

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

要使用命令行界面,首先需要打开一个Console窗口。如果您不熟悉在Windows系统上运行命令行命令,您可以了解更多信息在这里.(请注意,Gurobi Interactive Shell(之前用于测试您的许可证)可以做到这一点直接接受命令行程序输入)。

Gurobi命令行工具的名称为gurobi_cl.要调用它,请键入gurobi_cl,后面是模型文件的名称。例如,如果我们的模型存储在文件中c: \ gurobi811 \ win64 \ \ data \例子coins.lp,你可以在你的命令行窗口中输入以下命令…

> gurobi_clc: \ gurobi811 \ win64 \ \ data \例子coins.lp

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

Gurobi优化器8.1.1版本构建v8.1.1rc0 (linux64)
版权所有(c) 2019,古罗比优化有限狗万app足彩责任公司

从文件中读取LP格式模型c: / gurobi811 / win64/ /数据/ coins.lp例子

阅读时间= 0.01秒:4行9列,16个非零优化模型有4行,9和16个非零列变量类型:4连续5个整数(0二进制)系数统计:矩阵范围(6 e-02 7 e + 00)目标范围(1 e-02, 1 e + 00)界限范围[5 e + 01, 1 e + 03] RHS区间[0 e + 00 0 e + 00]发现启发式解决方案:预解: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 - 0 H 0 0 113.4500000 113.46154 0.01% - 0年代探索1节点(2单纯形迭代)在0.01秒内线程数是8(8可用处理器)解决方案数2:113.45 -0找到最优解(公差1.00e-04)最佳目标1.134500000000e+02,最佳界1.134600000000e+02,差距0.0088%
有关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,它提供了一个用于创建、修改和试验优化模型的环境。