LINGO 使用教程LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
§1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min212112121≥≤+≥≥++x x x x x x x t s x x 在模型窗口中输入如下代码:min =2*x1+3*x2;x1+x2>=350;x1>=100;2*x1+x2<=600;然后点击工具条上的按钮 即可。
例1.2 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。
产销单位运价如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 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮 即可。
Global optimal solution found.Objective value: 664.0000Total solver iterations: 20Variable Value Reduced Cost CAPACITY( WH1) 60.00000 0.000000 CAPACITY( WH2) 55.00000 0.000000 CAPACITY( WH3) 51.00000 0.000000 CAPACITY( WH4) 43.00000 0.000000 CAPACITY( WH5) 41.00000 0.000000 CAPACITY( WH6) 52.00000 0.000000 DEMAND( V1) 35.00000 0.000000 DEMAND( V2) 37.00000 0.000000 DEMAND( V3) 22.00000 0.000000 DEMAND( V4) 32.00000 0.000000 DEMAND( V5) 41.00000 0.000000 DEMAND( V6) 32.00000 0.000000 DEMAND( V7) 43.00000 0.000000 DEMAND( V8) 38.00000 0.000000 COST( WH1, V1) 6.000000 0.000000 COST( WH1, V2) 2.000000 0.000000 COST( WH1, V3) 6.000000 0.000000 COST( WH1, V4) 7.000000 0.000000 COST( WH1, V5) 4.000000 0.000000 COST( WH1, V6) 2.000000 0.000000 COST( WH1, V7) 9.000000 0.000000 COST( WH1, V8) 5.000000 0.000000 COST( WH2, V1) 4.000000 0.000000 COST( WH2, V2) 9.000000 0.000000 COST( WH2, V3) 5.000000 0.000000 COST( WH2, V4) 3.000000 0.000000 COST( WH2, V5) 8.000000 0.000000 COST( WH2, V6) 5.000000 0.000000 COST( WH2, V7) 8.000000 0.000000 COST( WH2, V8) 2.000000 0.000000 COST( WH3, V1) 5.000000 0.000000 COST( WH3, V2) 2.000000 0.000000 COST( WH3, V3) 1.000000 0.000000 COST( WH3, V4) 9.000000 0.000000 COST( WH3, V5) 7.000000 0.000000 COST( WH3, V6) 4.000000 0.000000 COST( WH3, V7) 3.000000 0.000000 COST( WH3, V8) 3.000000 0.000000 COST( WH4, V1) 7.000000 0.000000 COST( WH4, V2) 6.000000 0.000000 COST( WH4, V3) 7.000000 0.000000COST( WH4, V5) 9.000000 0.000000 COST( WH4, V6) 2.000000 0.000000 COST( WH4, V7) 7.000000 0.000000 COST( WH4, V8) 1.000000 0.000000 COST( WH5, V1) 2.000000 0.000000 COST( WH5, V2) 3.000000 0.000000 COST( WH5, V3) 9.000000 0.000000 COST( WH5, V4) 5.000000 0.000000 COST( WH5, V5) 7.000000 0.000000 COST( WH5, V6) 2.000000 0.000000 COST( WH5, V7) 6.000000 0.000000 COST( WH5, V8) 5.000000 0.000000 COST( WH6, V1) 5.000000 0.000000 COST( WH6, V2) 5.000000 0.000000 COST( WH6, V3) 2.000000 0.000000 COST( WH6, V4) 2.000000 0.000000 COST( WH6, V5) 8.000000 0.000000 COST( WH6, V6) 1.000000 0.000000 COST( WH6, V7) 4.000000 0.000000 COST( WH6, V8) 3.000000 0.000000 VOLUME( WH1, V1) 0.000000 5.000000 VOLUME( WH1, V2) 19.00000 0.000000 VOLUME( WH1, V3) 0.000000 5.000000 VOLUME( WH1, V4) 0.000000 7.000000 VOLUME( WH1, V5) 41.00000 0.000000 VOLUME( WH1, V6) 0.000000 2.000000 VOLUME( WH1, V7) 0.000000 6.000000 VOLUME( WH1, V8) 0.000000 6.000000 VOLUME( WH2, V1) 1.000000 0.000000 VOLUME( WH2, V2) 0.000000 4.000000 VOLUME( WH2, V3) 0.000000 1.000000 VOLUME( WH2, V4) 32.00000 0.000000 VOLUME( WH2, V5) 0.000000 1.000000 VOLUME( WH2, V6) 0.000000 2.000000 VOLUME( WH2, V7) 0.000000 2.000000 VOLUME( WH2, V8) 0.000000 0.000000 VOLUME( WH3, V1) 0.000000 4.000000 VOLUME( WH3, V2) 11.00000 0.000000 VOLUME( WH3, V3) 0.000000 0.000000 VOLUME( WH3, V4) 0.000000 9.000000 VOLUME( WH3, V5) 0.000000 3.000000 VOLUME( WH3, V6) 0.000000 4.000000 VOLUME( WH3, V7) 40.00000 0.000000VOLUME( WH4, V1) 0.000000 4.000000 VOLUME( WH4, V2) 0.000000 2.000000 VOLUME( WH4, V3) 0.000000 4.000000 VOLUME( WH4, V4) 0.000000 1.000000 VOLUME( WH4, V5) 0.000000 3.000000 VOLUME( WH4, V6) 5.000000 0.000000 VOLUME( WH4, V7) 0.000000 2.000000 VOLUME( WH4, V8) 38.00000 0.000000 VOLUME( WH5, V1) 34.00000 0.000000 VOLUME( WH5, V2) 7.000000 0.000000 VOLUME( WH5, V3) 0.000000 7.000000 VOLUME( WH5, V4) 0.000000 4.000000 VOLUME( WH5, V5) 0.000000 2.000000 VOLUME( WH5, V6) 0.000000 1.000000 VOLUME( WH5, V7) 0.000000 2.000000 VOLUME( WH5, V8) 0.000000 5.000000 VOLUME( WH6, V1) 0.000000 3.000000 VOLUME( WH6, V2) 0.000000 2.000000 VOLUME( WH6, V3) 22.00000 0.000000 VOLUME( WH6, V4) 0.000000 1.000000 VOLUME( WH6, V5) 0.000000 3.000000 VOLUME( WH6, V6) 27.00000 0.000000 VOLUME( WH6, V7) 3.000000 0.000000 VOLUME( WH6, V8) 0.000000 3.000000Row Slack or Surplus Dual Price1 664.0000 -1.0000002 0.000000 -4.0000003 0.000000 -5.0000004 0.000000 -4.0000005 0.000000 -3.0000006 0.000000 -7.0000007 0.000000 -3.0000008 0.000000 -6.0000009 0.000000 -2.00000010 0.000000 3.00000011 22.00000 0.00000012 0.000000 3.00000013 0.000000 1.00000014 0.000000 2.00000015 0.000000 2.000000为了能够使用LINGO的强大功能,接着第二节的学习吧。