LINGO编程简介与实例
一.LINGO使用介绍
LINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执 行速度快,易于方便地输入、求解和分析数学规划问题,因此在 教学、科研和工业界得到广泛应用。 LINGO主要用于求解线性规划 、非线性规划、二次规划和整数规划等问题,也可以用于求解一 些线性和非线性方程组及代数方程求根等。
1. LINGO编写格式
LINGO模型以MODEL开始,以END结束.中间为语句,分为四大部分。
(1)集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结 束. 这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计 算,在LINGO中称为集合(SET)及其元素和属性。
LINGO中的集合有两类:一类是原始集合,其定义的格式为:
SETNAME/member list(or 1…n)/:attribute,attribute,etc.
另一类是导出集合,即引用其它集合定义的集合,其定义的格式为:
SETNAME(set1,set2,etc.):attribute,attribute,etc.
如果要在程序中使用数组,就必须在该部分定义,否则可不需要. 如
Person/1…10/:A;
Task/1…12/:B;
Link(Person,Task):X;
(2) 目标与约束:这部分定义了目标函数、约束条件等。 一般要用到 LINGO的内部函数。求解优化问题时,该部分是必须的.
(3)数据部分(DATA):这部分以“DATA:”开始,以“END DATA” 结束。其作用在于对集合的属性(数组)输入必要的数值. 格式为:attribute=value_list。该部分主要是方便数据的输入.
(4)初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结 束。作用在于对集合的属性(数组)定义初值.格式为: attribute=value_list.
编写LINGO程序要注意的几点:
(1) 所有的语句除SETS、END