LINGO简明.pptVIP

  • 11
  • 0
  • 约9.95千字
  • 约 64页
  • 2018-02-21 发布于河南
  • 举报
LINGO简明

Lingo软件包由美国芝加哥大学的Linus Scharge教授于1980年前后开发,专门用于求解最优化问题,后经不断完善和扩充,并成立LINDO公司进行商业化运作,取得了巨大的成功。全球《财富》杂志500强的企业中,一半以上使用该公司产品,其中前25强企业中有23家使用该产品。 集是一群相联系的对象,这些对象也称为集的成员。每个集成员可能有一个或多个与之有关联的特征,我们把这些特征称为属性。 2.1 定义原始集 为了定义一个原始集,必须详细声明: ① 当显式罗列成员时,必须为每个成员输入一个不同的名字,中间用空格或逗号搁开,允许混合使用。如前例 例2.2 !集部分; sets: students:sex,age; endsets !数据部分; data: students, sex, age= John 1 16 Jill 0 1 4 Rose 0 17 Mike 1 13; enddata 2.2 定义派生集 可用下面的语法定义一个派生集: Setname (parent_set_list) [/member_list/] [:attribute_list]; 使用LINGO软件,编制程序如下: model: !6发点8收点运输问题; 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))=capacity(I)); !产量约束; ?!这里是数据; data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata End LINGO中还能用“”表示小于等于关系,“”表示大于等于关系。 LINGO并不支持严格小于和严格大于关系运算符。然而,如果需要严格小于和严格大于关系,比如让A严格小于B:AB, 那么可以把它变成如下的小于等于表达式:A+ε=B, 这里ε是一个小的正数,它的值依赖于模型中A小于B多少才算不等。 ? 4.1.3 关系运算符 在LINGO中,关系运算符主要是被用在模型中,来指定一个表达式的左边是否等于、小于等于、或者大于等于右边,形成模型的一个约束条件。 LINGO有三种关系运算符:“=”、“=”和“=”。 运算符的优先级 = #AND# #OR# #EQ# #NE# #GT# #GE# #LT# #LE# + —(减法) * / ^ #NOT# —(负号) 运算符 最高 最低 优先级 LINGO提供了大量的标准数学函数: @abs(x) 返回x的绝对值 @sin(x) 返回x的正弦值,x采用弧度制 @cos(x)

文档评论(0)

1亿VIP精品文档

相关文档