LINGO软件入门
一、二次线性规划问题
LINGO的 代码:
- LINGO总是根据“MAX=”或“MIN=”寻找目标函数,语句顺序不重要。
- 限定变量取整数值的语句为“@GIN(X1)”和“@GIN(X2)”,不可以写成“@GIN(2)”,否则LINGO将把这个模型看成没有整数变量。
- LINGO中函数一律需要以“@”开头,其中整型变量函数(@BIN、@GIN)和上下界限定函数(@FREE、@SUB、@SLB)与LINDO中的命令类似。而且0/1变量函数是@BIN函数。
二、集合的基本用法和LINGO模型的基本要素
例:SAILCO公司需要决定下四个季度的帆船生产量。下四个季度的帆船需求量分别是40条,60条,75条,25条,这些需求必须按时满足。每个季度正常的生产能力是40条帆船,每条船的生产费用为400美元。如果加班生产,每条船的生产费用为450美元。每个季度末,每条船的库存费用为20美元。假定生产提前期为0,初始库存为10条船。如何安排生产可使总费用最小/p>
用DEM,RP,OP,INV分别表示需求量、正常生产的产量、加班生产的产量、库存量,则DEM,RP,OP,INV对每个季度都应该有一个对应的值,也就说他们都应该是一个由4个元素组成的数组,其中DEM是已知的,而RP,OP,INV是未知数。
- 这里S和ENDSETS用来定义集合。
-
这里DATA以上,ENDSETS以下用来定义约束条件和目标函数。
其中@SUM(集合(下标):关于集合的属性的表达式),
本例中目标函数也可以等价地写成
@SUM(QUARTERS(i): 400*RP(i) +450*OP(i) +20*INV(i) )。 -
I#GT#1 表示I>1时,GT=Greater Than。
- DATA来设置数据。
- 比如不知道初始库存的话,可以将初始库存设为A,在数据段使用“A=,这时运行的话将会提示输入A。
运行结果截图:
三、基本集合与派生集合
例:建筑工地的位置(用平面坐标a, b表示,距离单位:公里)及水泥日用量d(吨)下表给出。有两个临时料场位于P (5,1), Q (2, 7),日储量各有20吨。从A, B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。两个新的料场应建在何处,节省的吨公里数有多少
模型简称 | 模型名 |
---|---|
LP | 线性规划 |
ILP | 整数线性规划 |
BILP | 两层的线性整数规划 |
NLP | 非线性规划 |
INLP | 非线性整数规划 |
QP | 二次规划 |
IQP | 二次整数规划 |
PIP | 带参数整数规划 |
ZOP | 零一规划 |
这里解出来的是新料场的位置,如果想继续使用原料场,将初始化里面的数据放到 DATA中即可。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!