X12345B 发表于 2015-7-17 23:52

今天开始,每天学点Lingo吧(Lingo一)

LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。

§1  LINGO快速入门

当你在windows下开始运行LINGO系统时,会得到一个窗口:
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。
例1.1 如何在LINGO中求解如下的LP问题:

在模型窗口中输入如下代码:
min=2*x1+3*x2;
x1+x2>=350;
x1>=100;
2*x1+x2<=600;
然后点击工具条上的按钮    即可。

例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。

位    销地


产地        B1        B2        B3        B4        B5        B6        B7        B8        产量
A1        6        2        6        7        4        2        5        9        60
A2        4        9        5        3        8        5        8        2        55
A3        5        2        1        9        7        4        3        3        51
A4        7        6        7        3        9        2        7        1        43
A5        2        3        9        5        7        2        6        5        41
A6        5        5        2        2        8        1        4        3        52
销量        35        37        22        32        41        32        43        38         
使用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
       2 3 9 5 7 2 6 5
       5 5 2 2 8 1 4 3;
enddata
end
然后点击工具条上的按钮    即可。
为了能够使用LINGO的强大功能,接着第二节的学习吧。
(明天见哦)

wujianjack2 发表于 2015-7-18 20:06

   占个沙发,哈哈!
   坐等更新........................... :-)
页: [1]
查看完整版本: 今天开始,每天学点Lingo吧(Lingo一)