模型文件
模型文件
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
,另一个之间.1
和dim
。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参考手册。