模型文件

模型文件

Gurobi Optimizer提供了一种用于表达优化模型的各种选项。通常,您将使用与编程语言(C,C ++,C#,Java等)的接口构建模型或使用更高级别的应用程序环境(笔记本,电子表格,建模系统,Matlab,R等。)。但是,要使我们的示例保持尽可能简单,我们将从LP格式文件中读取模型。LP格式被设计为人类可读,因此它非常适合我们的需求。

LP格式主要是不言自明的。这是我们的型号:

最大化.01 Pennies + .05镍+ .1级+ .25季度+ 1美元受到铜的+ 1美元:.06 Pennies + 3.8镍+ 2.1爵士+ 5.2季度+ 7.2美元 -  Cu = 0镍:1.2镍+ .2镍镍+ .5季度+ .2美元 -  Ni = 0锌:2.4便士+ .5美元 -  Zi = 0锰:.3美元 -  Mn = 0界限Cu <= 1000 ni <= 50 zi <= 50 mn <= 50整数便士镍级Ques Quarters美元结束

您将在文件中找到此模型Coins.lp.在里面 /示例/数据您的Gurobi分发目录。具体来说,假设您已在推荐位置安装Gurobi 9.0.1,您将找到该文件/ library / gurobi901 / Mac64 /示例/数据/Coins.lp.

要修改此文件,请在文本编辑器中打开它(如vim.)。

编辑LP文件

在考虑对此文件的任何修改或创建自己的内容之前,我们应该指出一些关于LP格式文件的规则。

1.排序部分

我们的示例包含一个目标部分(最大化...),约束部分(受...),可变绑定部分(界限......)和一个完整性部分(整数......)。这些部分必须按此顺序进行。可以在文件格式部分中找到部分类型和关联的订购规则的完整列表Gurobi参考手册

2.分离令牌

令牌必须通过空格或换行符分隔。因此,例如,术语:

+ .1迪斯
必须包括空间或换行符+.1,另一个之间.1dim

3.安排变量

变量必须始终出现在约束的左侧。右侧总是一个常数。因此,我们的制约因素:

CU = .06 Pennies + 3.8镍+ 2.1迪斯+ 5.2季度+ 7.2美元
......变成......
.06 Pennies + 3.8镍+ 2.1迪斯+ 5.2季度+ 7.2美元 -  Cu = 0

4.可变默认界限

除非另有说明,否则变量具有零下限和无限的上限。因此,Cu <= 1000真正意思0 <= CU <= 1000。同样地,任何未提及的变量界限部分可能采取任何非负值。

有关LP文件格式的完整详细信息,请以“文件格式”部分提供Gurobi参考手册