Lingo软件在最优化问题中的应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Lingo软件在最优化问题中的应用•一、Lingo的快速入门。•二、如何在lingo中求解如下的LP问题;•例:如下就是求最优解的问题。•min2*x1+3*x2•s.tx1+x2=350•x1=100•2*x1+x2=600•x1,x2=0•则须在模型窗口输入如下代码:•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/MikePeter,Rose,Carl/:sex,age;•endsets•(2)若不必列出每个集成员,常采用省略形式:即用隐式罗列成员,语法如下:•setname/member1..memberN/[:attribute_list];•例如:隐式成员列表格式示例所产生的集成员1..n1..51,2,3,,4,5StringM..StringNCar2..car14Car2,Car3,Car4,.....Car14DayM..DayNMon..FriMon,Tue,Wed,Thu,Fri•(3)集成员不放在集定义中,而在随后的数据部分来定义•例:数据部分定义集成员示例。•!集部分;•sets:•students:sex,age;•endsets•!数据部分;•data:•students,sex,age=John116•Jill014•Rose017•Mike113;•enddata•2、派生集的定义•定义一个派生集,用如下语法:•setname(parent_set_list)[/member_list/][:attribute_list];•其中parent_set_list是已定义集的列表,多个时必须用逗号隔开。如:•set:product/AB/;machine/MN/;•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中对象的值,中间用逗号或空格隔开。看如下实例:•例1•sets:•set1/A,B,C/:X,Y;•endsets•data•X=1,2,3;•Y=4,5,6;•enddata•四、Lingo软件使用的注意事项。•(1)LINGO中不区分大小写字母,变量(和行名)可以使用不超过32个字符表示,且必须以字母开头。•(2)在命令方式下(CommandWindow中),必须先输入MODEL:表示开始输入模型。LINGO中模型以“MODEL:”开始,以“END”结束。对简单的模型,这两个语句也可以省略。•(3)LINGO中的语句的顺序是不重要的,因为LINGO总是根据“MAX=”或“MIN=”语句寻找目标函数,而其它语句都是约束条件(当然注释语句和TITLE除外)。(4)LINGO模型是由一系列语句组成,每个语句以分号“;”结。(5)LINGO中以感叹号“!”开始的是说明语句(说明语句也需要以分号“;”结束)。

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功