LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。
当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。
例1.1 如何在LINGO中求解如下的LP问题:
1
mins.t.2x1?3x2x1?x2?350x1?100
2x1?x2?600x1,x2?0在模型窗口中输入如下代码:
min=2*x1+3*x2; x1+x2>=350; x1>=100;
2*x1+x2<=600;
然后点击工具条上的按钮 即可。
例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。
销地 产地 A1 A2 A3 A4 A5 A6 销量 B1 6 4 5 7 2 5 35 B2 2 9 2 6 3 5 37 B3 6 5 1 7 9 2 22 B4 7 3 9 3 5 2 32 B5 4 8 7 9 7 8 41 B6 2 5 4 2 2 1 32 B7 5 8 3 7 6 4 43 B8 9 2 3 1 5 3 38 产量 60 55 51 43 41 52
2
使用LINGO软件,编制程序如下:
model:
!6发点8收点运输问题; sets:
warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand;
links(warehouses,vendors): cost, volume; endsets !目标函数;
min=@sum(links: cost*volume); !需求约束;
@for(vendors(J):
@sum(warehouses(I): volume(I,J))=demand(J)); !产量约束;
@for(warehouses(I): @sum(vendors(J):
volume(I,J))<=capacity(I)); !这里是数据; data:
capacity=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1
3