文档库

最新最全的文档下载
当前位置:文档库 > 有关教材中的lingo软件简介

有关教材中的lingo软件简介

6.5 Lingo软件简介

线性规划的求解方法非常复杂,用手工计算几乎是不可能的,只能求助于计算机。Lingo、WinQSB等软件是比较著名的求解数学规划的工具软件。WinQSB软件使用方法比较简单,只适用于规模比较小的问题,Lingo软件适用范围较广,本节主要介绍Lingo软件的使用。

Lingo软件是美国Lindo system公司开发的求解线性规划、整数规划和非线性规划的通用软件。可在http://www.wendangku.net/doc/f8c8a34324c52cc58bd63186bceb19e8b8f6ec8e.html 网站下载学习版。对形式简单的模型,可直接输入模型求解;对复杂的模型可采用该软件提供的简单的语言进行描述后求解,现简要介绍该软件所提供的语言并举例说明其用法。

6.5.1 Lingo语言简述

Lingo语言是数学模型描述语言,用Lingo语言对模型进行描述的过程类似于建立模型的过程,其最大特点是将模型与数据分开。用Lingo所提供的语言对模型进行描述时,以“Model:”开始,以“End”结束,中间由五段组成。第一段为设置段或集合段,由“Sets:”开始至“Endsets”为止,该段的功能等同于建立模型时设置参数和变量;第二段为数据段,由“Data:”开始至“Enddata”为止,该段的功能是将模型中所设置的参数赋值;第三段为目标和约束段,是对模型约束条件和目标函数的描述,是模型描述的核心;第四段为计算段,由“Calc:”开始至“EndCalc”为止;第五段为初始段,由“Init:”开始至“EndInit”为止,最后由End结束。一般情况下,第四段、第五段不常用,本节仅介绍第一段~第三段。

Lingo语言采用英文字母(不分大小写),每条语句由算术运算符、关系运算符、逻辑运算符及其组成的表达式描述。每条语句均需以“;”结束,可不分行。为增强模型的易读性,Lingo语言用“!”作为注释语句的开始,以“;”为结束。

算术运算符有:+(加)、-(减)、×(乘)、÷(除)、∧(乘方)等;

关系运算符有:<(即≤,小于等于)、=(等于)、>(即≥,大于等于)等;

逻辑运算符有:#AND#(与)、#OR#(或)、#NOT#(非)、#EQ#(等于)、#NE#(不等于)、#GT#(大于)、#GE#(大于等于)、#LT#(小于)、#LE#(小于等于)。

算术运算符、关系运算符、逻辑运算符和各种函数组成表达式的描述形式和使用方法与其他计算机语音基本相同。但需注意的是,该软件是英文软件,上述符号与关键字均应在英文状态下输入,中文状态无效,汉字也只能出现在注释语句之中。

6.5.1.1 设置段

Lingo语言是按建立模型的思路进行的,建立模型的第一步是设变量与参数,因此设置段就是设置变量与参数。

模型中向量、矩阵的名称及阶次均是由设置段完成的。该段由Sets:开始,至Endsets 结束,中间为设置语句,设置语句的语法格式为

Setsname / 清单 | 条件 / :[属性1],[属性2],…, [属性N];

Setsname 为向量名;清单为表示向量阶次的指示数或向量元素的名称,可用数字、字母表示;条件是选择清单的依据;属性是具有向量特性的变量和参量。如语句“Cangky/1, 2, 3, 4 /: a ;”中Cangky表示仓库向量,1,2,3,4表示共有四个仓库, 1,2,3,4为仓库名;a为四个仓库的物资拥有量,它与Cangky是同阶的向量。a(1)为第1仓库的拥有量,a(i)为第i个仓库的拥有量。向量的设置相当于一个二维表的表头,而属性相当于一条记录。

向量、变量、常量名必须以字母开始,不能用汉字。清单的描述方法有多种,如“Cangky / jia, yi, bing, ding/:”、“Cangky / 1 .. 4 /”与“Cangky/1, 2, 3, 4 / :”是等价的。

两个以上的向量可以组成矩阵,其语句形式为

Setsname(Setsmame1, Setsname2, …) : [属性1],… [属性N];