- 1
- 0
- 约1.59千字
- 约 17页
- 2017-08-20 发布于浙江
- 举报
Lingo软件在最优化蔚氖题中的应用
Lingo软件在最优化问题中的应用;则须在模型窗口输入如下代码:
MODEL:
min=2*x1+3*x2;
x1+x2=350;
x1=100;
2*x1+x2=600;
END;三、Lingo中集的使用;
集是Lingo建模语言的基础,是程序设计最强有力的基本构件。借助与集,能够将 一系列相似的约束用一个单一的、简明的 复合公式表示,从而快速方便地表达较大规模的模型。
Lingo有两种类型的集:原始集和派生集。
;在Lingo模型中使用集之前,必须事先定义。
集以关键字“sets:”开始,以“endsets”结束。
;1、原始集的定义
用下面的语法定义一个原始集:
setname[/member_list][:attribute_list];
(1)若要一列出集成员:则用显式罗列成员,中间用空格或逗号隔开,也可混合使用。如:
set:
students/Mike Peter,Rose,Carl/:sex,age;
;endsets
(2)若不必列出每个集成员,常采用省略形式:即用隐式罗列成员,语法如下:
setname/member1..memberN/[:attribute_list];
例如:
;
(3)集成员不放在集定义中,而在随后的数据部分来定义
例:数据部分定义集成员示例。
!集部分;
sets:
students:sex,age;
endsets
;!数据部分;
data:
students,sex,age=John 1 16
Jill 0 14
Rose 0 17
Mike 1 13;
enddata;2、派生集的定义
定义一个派生集,用如下语法:
setname(parent_set_list)[/member_list/][:attribute_list];
其中parent_set_list是已定义集的列表,多个时必须用逗号隔开。如:
set:
; product/A B/;
machine/M N/;
week/1..2/;
allowed(product,machine,week):x;
endsets
这里allowed定义为product,machine,week的派生集,其组成成员如下:
;
(A,M,1),(A,M,2),(A,N,1),(A,N,2)
(B,M,1),(B,M,2),(B,N,1),(B,N,2)
三、模型的数据部分;
数据部分以关键字“data:”开始,以关键字enddata结束。在这里,可以指定集成员、集的属性。其语法如下:
;data:
object_list=value_list;
enddata
object_list通常为集名、属性名,它们用逗号或空格隔开。
value_list是对应于object_list中对象的值,中间用逗号或空格隔开。看如下实例:;;X=1,2,3;
Y=4,5,6;
enddata
;四、Lingo软件使用的注意事项。
(1)LINGO中不区分大小写字母,变量(和行名)可以使用不超过32个字符???示,且必须以字母开头。
(2)在命令方式下(Command Window中),必须先输入MODEL:表示开始输入模型。LINGO中模型以“MODEL:”开始,以“END”结束。对简单的模型,这两个语句也可以省略。
;(3)LINGO中的语句的顺序是不重要的,因为LINGO总是根据“MAX=”或
“MIN=”语句寻找目标函数,而其它语句都是约束条件(当然注释语句和
TITLE除外)。
(4)LINGO模型是由一系列语句组成,每个语句以分号“;”结。
(5)LINGO中以感叹号“!”开始的是说明语句(说明语句也需要以分号
“;”结束)。
;谢谢!
原创力文档

文档评论(0)