一、快速上手
- LP模型在Lingo中的一个典型输入方式:
1.以“MODEL:”开。
2.集合定义部分从(“SETS:”到”ENDSETS”)定义集合及其属性。
3.给出优化目标和约束。
4.数据定义部分从(“DATA:”到”ENDDATA”)。
5.以”END”结束。
- 要求:
- 每条语句后必须使用分号“;”结束。
- 用MODEL命令来作为输入问题模型的开始,格式为Model:statement (语句)end
- 目标函数必须由“min =”或“max =”开头。
- 简单例子:
# 线性规划
min=2*x1+3*x2;
x1+x2>=350;
x1>=100;
2*x1+x2<=600;
#非线性规划
Model: //正规形式 Model.... end
max=98*x1+277*x2-x1*x1-0.3*x1*x2-2*x2*x2;
x1+x2<100;
x1<=2*x2;
@gin(x1); //变量是整数
@gin(x2);
end
#0 1规划
Min=8*x11+13*x12+18*x13+23*x14+10*x21+14*x22+16*x23+27*x24+2*x31+10*x32+21*x33+26*x34+14*x41+22*x42+26*x43+28*x44;
x11+x12+x13+x14=1;
x21+x22+x23+x24=1;
x31+x32+x33+x34=1;
x41+x42+x43+x44=1;
x11+x21+x31+x41=1;
x12+x22+x32+x42=1;
x13+x23+x33+x43=1;
x14+x24+x34+x44=1;
end
int16
二、概念介绍
model:
!集合
sets:
warehouses/wh1..wh6/: capacity;
vendors/v1..v8/: demand;
links(warehouses,vendors): cost, volume;
endsets
!目标函数;
min=@sum(links: cost*volume);
!需求约束;
@for(vendor