模型文件

模型文件

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

LP格式基本上是不言自明的。下面是我们的模型:

最大化. 01便士+ 0。尼克尔斯+ 1。角+二十五分季度+ 1美元受铜:06便士5.2 + 2.1 + 3.8镍币角+季度镍-铜= 0 + 7.2美元:1.2镍币+ 2角+ 5季度+锌-镍= 0。2美元:2.4便士+ 5元-子= 0锰:.3 dollar - Mn = 0 Bounds Cu <= 1000 Ni <= 50 Zi <= 50 Mn <= 50 Integers Pennies nickel Pennies dime Quarters Dollars End .3美元- Mn = 0 Bounds Cu <= 1000 Ni <= 50 Zi <= 50 Mn <= 50 Integers

你可以在文件中找到这个模型coins.lp< installdir > / /数据示例您的Gurobi发行版的目录。具体地说,假设您在推荐的位置安装了Gurobi 9.1.0,您将在/ opt / gurobi910 linux64 / /数据/例子coins.lp

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

编辑LP文件

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

1.章节排序

我们的例子包含一个目标部分(最大化…),约束段(主题……),变量绑定部分(范围……),以及完整性部分(整数…).各部分必须按此顺序排列。的文件格式节中可以找到节类型和相关排序规则的完整列表Gurobi参考手册

2.分离的令牌

标记必须用空格或换行符分隔。因此,例如,术语:

+ 1角。
中间必须包含空格或换行符+.1,和另一个之间.1

3.安排变量

变量必须总是出现在约束的左侧。右边总是常数。因此,我们的约束:

铜= 0.06便士+ 3.8个镍币+ 2.1个一角币+ 5.2个25美分+ 7.2美元
…就…
0.06便士+ 3.8个镍币+ 2.1个一角币+ 5.2个25美分硬币+ 7.2美元-铜= 0

4.变量默认范围

除非另有说明,一个变量的下界为零,上界为无限。因此,铜< = 1000的真正含义0 <= Cu <= 1000.类中没有提到的任何变量界限Section可以取任何非负值。

的文件格式部分提供了LP文件格式的详细信息Gurobi参考手册