- 25
- 0
- 约3.54万字
- 约 38页
- 2017-12-07 发布于浙江
- 举报
附录三 运筹学的LINGO软件
§ 1 简介
LINGO软件有多种版本,如LINDO,GINO和LINGO(包括LINGO NL)软件。
LINDO是一种专门用于求解数学规划问题的优化计算软件包,版权现在由美国LINDO系统公司(Lindo System Inc.)所拥有。LINDO软件包的特点是程序执行速度快,易于方便地输入、修改、求解和分析一个数学规划(优化问题),因此LINDO在教学,科研和工业界得到广泛应用。有关该软件的发行版本,发行价格和其它最新信息都可以从LINDO系统公司的INTERNET网络站点 获取,该站点还提供部分LINDO软件的演示版本或测试版本。
LINDO 由美国芝加哥大学的 Linus Schrage教授首先开发,随后又推出了GINO, LINGO, LINGO NL (又称LINGO2) 和“what’s best!”等优化软件,现在一般仍用 LINDO作为这些软件的统称。各组件的功能各有侧重,分别简要介绍如下:
(i)LINDO是Linear Interactive and Discrete Optimizer字首的缩写形式,可以用来求解线性规划(LP—Linear Programming),整数规划(IP—Integer Programming)和二次规划(QP—Quadratic Programming)问题。
(ii)GINO是 General Interactive Optimizer字首的缩写形式,可以用来求解非线性规划(NLPNon-Linear Programming)问题,也可用于求解一些线性和非线性方程(组)以及代数方程求根等。GINO中包含了各种一般的数学函数(包括大量的概率函数),可供使用者建立问题模型时调用。
(iii)LINGO 可以用来求解线性,非线性和整数规划问题。
(iv)LINGO NL (LINGO2) 可以用来求解线性,非线性和整数规划问题。
与LINDO和GINO不同的是,LINGO和LINGO NL (LINGO2) 包含了內置的建模语言,允许以简练,直观的方式描述较大规模的优化问题,模型中所需的数据可以以一定格式保存在独立的文件中。
(v)“what’s best!” 组件主要用于数据文件是由电子表格软件(如 LUTOS1-2-3和MS OFFICE 等)生成的情形。
LINDO软件包有多种版本,但其软件內核和使用方法基本上是类似的。下面介绍LINGO组件的基本使用方法。
§2 LINGO快速入门
当你在windows下开始运行LINGO系统时,会得到一个窗口:LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都要在该窗口内编码实现。下面举两个例子。.1 如何在LINGO中求解如下的LP问题:
s.t.
由于LINGO中已假设所有的变量是非负的,所以非负约束不必再输入到计算机中,LINGO也不区分变量中的大小写字符(任何小写字符将被转换为大写字符);约束条件中的”=”及”=”可用””及””代替。在模型窗口中输入如下代码:
min=2*x1+3*x2;
x1+x2350;
x1100;
2*x1+x2600;
然后点击工具条上的按钮 即可。
例2.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 ?
解 设表示产地运到销地的量,表示产地到销地的单位运价,表示销地的需求量,表示产地的产量,建立如下线性规划模型
s.t.
使用LINGO软件,编制程序如下:
model:
!68收点运输问题;
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))
原创力文档

文档评论(0)