LINGO软件使用简介与技巧.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINGO软件使用简介与技巧 LINGO是一种专门用于求解数学规划问题的软件包.由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用. LINGO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等. 一.LINGO使用介绍 LINGO模型以MODEL开始,以END结束.中间为语句,分为四大部(SECTION): 1.1 LINGO编写格式 (1)集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束.这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样.在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(ATTRIBUTE,类似于数组). LINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为: SETNAME/member list(or 1..n)/: attribute,attribute,etc. 另一类是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为: SETNAME(set1,set2,etc.):attribute,attribute,etc. 如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分. (2)目标与约束:这部分定义了目标函数、约束条件等.一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法.求解优化问题时,该部分是必须的. (3)数据部分(DATA):这部分以“DATA:”开始,以“END DATA”结束.其作用在于对集合的属性(数组)输入必要的数值.格式为:attribut=value_list.该部分主要是方便数据的输入. (4)初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束.作用在于对集合的属性(数组)定义初值.格式为:attribute=value_list.由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响.通常可改变初值来得到不同的解,从而发现更好的解. 编写LINGO程序要注意的几点: (1) 所有的语句除SETS、ENDSETS、DATA、ENDDATA、INIT、ENDINIT和MODEL,END之外必须以一个分号“;”结尾. (2) LINGO求解非线性规划时已约定各变量非负. 1.2 LINGO内部函数使用详解. LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头 (1)常用数学函数 @ABS(X) 返回变量X的绝对数值. @COS( X)返回X的余弦值,X的单位为弧度 @EXP( X)返回ex的值,其中e为自然对数的底,即2.71828… @FLOOR( X)向0靠近返回X的整数部分.如@FLOOR(3.7),则返回3;@FLOOR(-3.7),则返回-3 二、LINGO求解优化模型实验 1.某昼夜服务的公交路线每天各时间区段内需司机和乘务人员如下: 设司机和乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线路至少配备多少名司机和乘务人员?从第一班开始排,试建立线性模型. 分析与求解 按所需人数最少的要求,可得到线性模型如下: LINGO程序如下: MODEL: min=x1+x2+x3+x4+x5+x6; x1+x6=60; x1+x2=70; x2+x3=60; x3+x4=50; x4+x5=20; x5+x6=30; END 得到的解为: x1=60,x2=10,x3=50,x4=0,x5=30,x6=0; 配备的司机和乘务人员最少为150人. 2. 公司在各地有4项业务,选定了4位业务员去处理.由于业务能力、经验和其它情况不同,4业务员去处理4项业务的费用(单位:元)各不相同,见下表: 应当怎样分派任务,才能使总的费用最小? 解:这是一个最优指派问题.引入如下变量: 则可以建立如下模型: LINGO程序如下: MODEL: SETS: person/1..4/; task/1..4/; assign(person,task):a,x; ENDSETS DATA: a=1100,800,1000,700, 600,500,300,800, 400,800,1000,900, 1100,1000,500,700; ENDDATA min=@sum(assign:a*x); @for(person(i):@sum(task(j):x(i,j))=1); @for(task(j):@sum(person(i

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档