第7章LINGO软入门.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 LINGO软件入门 7.1 LINGO 软件基本用法 7.1.1 LINGO软件简介: LINGO软件是一套专门用于求解最优化问题的软件包. LINGO可用于求解线性规划(LP),二次规划(QP),非线性规划(NLP),整数规划(IP),动态规划,多目标规划等,特别是对于变量或约束条件较复杂的大规模模型,提供了较好的选择.LINGO还是最优化问题的一种建模语言,包括许多常用的数学函数可以调用,并可以接受其他数据文件(如文本文件、Excel电子表格文件、数据库文件等),同时LINGO提供了与电子表格软件(如Excel等)的接口,能够直接集成到电子表格中使用.即使对优化方面知识了解不多的用户,也能够方便地建模和输入、有效地求解. 7.1.2 LINGO基本用法: 启动LINGO后,在主窗口上弹出标题为LINGO Model – LINGO1 的窗口,称为LINGO 的模型窗口,建立的模型都要在该窗口内编码实现. 例1.求解下列二次规划. 输入模型窗口LINGO1后的形式见下图. 请注意以下几点: (1)LINGO总是根据“MAX=”或“MIN=”语句寻找目标函数,而其他语句都是约束条件(除注释语句和TITLE语句),所以语句顺序不重要. (2)LINGO中模型以“MODEL:”开始,以“END”结束.对简单的模型,这俩个语句也可以省略. (3)LINGO模型是由一系列语句组成,每个语句都以分号“;”结尾. (4)LINGO中不分大小写字母;其变量和行名由不超过32个字符(数字和字母)组成,且以字母开头; (5)乘号不能省略,即系数与变量之间要加运算符“*”. (6)“!”开头的是注释行(注释语句),可以省略. (7)“[]”为用户自定义的行号或行名,放在每行之前,可以省略. (8)LINGO中以“@”都是函数调用,@GIN表示变量取正整数.默认情况下,LINGO规定变量是非负的.(我们将在后面详细介绍函数) (9)“TITLE”后加名字,可对此模型命名,可以省略. 现在我们用LINGO来解这个模型.点击工具条上的按钮,或从菜单中选择LINGO|Sovle即可.(若模型编译有错,会有提示)求解时会显示下图: 关闭窗口,得到运行结果: Local optimal solution found at iteration:找到最优解时迭代的次数. Objective value:表示所求的最优目标值(11077.50). Variable:变量名 Value:最优解中各变量( Variable)的值. Row:约束条件行名. Reduced Cost:当该非基变量增加一个单位时(其他非基变量保持不变)目标函数减少的量(对max型问题) Slack or Surplus:约束对应得松弛变量的值.(第三行取0,对于最优解来讲,第三个约束取等号,为紧约束) Dual Price:对偶价格的值.表示当对应约束有微小变动时,目标函数的变化率,若其数值为X,表示对应约束中不等式右端项若增加一个单位,目标函数将增加X个单位(max 型问题). 7.1.3 在LINGO中使用集合: 1、LINGO模型的基本组成 LINGO也是一种建模语言,称为矩阵生成器,通过集合的引入,它可使输入较大规模问题的过程得到简化. LINGO模型由5段组成: (1)、集合段:是用于定义变量.以“SETS:”开始,以“ENDSETS”结束.定义集合变量,元素,和属性. 集合名/元素/:属性 元素:类似于数组的下标. 属性:定义集合的变量,类似于数组.属性之间必须用逗号或空格隔开. (2)、目标与约束段:定义目标函数,约束条件. (3)、数据段:用于给变量赋值.以“DATA:”开始,以“ENDDATA”结束.对集合的属性(数组)输入必要的常数数据. attribute list(属性) = value_list;(常数列表) (value_list)中数据用逗号或空格隔开. ﹡在此段也可引入参数,“变量名=?”,在运行时才对参数赋值.但这仅用于单个变量赋值,而不能用于属性变量(数组). (4)、初始段:以“init:”开始,以“endinit”结束.对集合的属性(数组)定义初值. (5)、计算段:以“CALC:”开始,以“ENDCALA”结束.对一些原始数据进行“预处理”. ﹡计算段中语句是顺序执行,不能交换位置. ﹡计算段中只能直接使用赋值语句. 2、集合的定义: 变量使用之前需先定义,而LINGO中的变量是通过集合来定义的,变量皆为向量或由向量生成的二维数组.如: Demand/1..6/:a,b,d :集合名为Demand,共6个元素,a,b,d 为属于此集合的变量,其为含6个元素的向量.

文档评论(0)

dengyuan674 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档