Lingo软件入门.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lingo软件入门

第3 讲 Lingo 软件入门 司守奎 烟台市,海军航空工程学院数学教研室 Email :sishoukui@163.com 1 Lingo 软件的基本语法 1.1 集合 集合部分的语法为 sets: 集合名称 1/成员列表1/:属性1_1,属性1_2,…,属性1_n1; 集合名称2/成员列表2/ :属性2_1,属性2_2,…,属性2_n2 ; 派生集合名称(集合名称 1,集合名称2 ):属性3_1 ,…,属性3_n3; endsets 例26 sets: product/A B/; machine/M N/; week/1..2/; allowed(product,machine,week):x; endsets 1.2 数据 数据部分的语法为 data: 属性1=数据列表; 属性2=数据列表; enddata 1.3 计算 计算段部分不能含有变量,必须是已知数据的运算。 calc: b=0; a=a+1; endcalc 1.4 模型的目标函数和约束条件 这里就不具体给出了,下面通过具体例子给出。 1.5 子模型 在 LINGO 9.0 及更早的版本中,在每个LINGO 模型窗口中只允许有一个优化模型, 可以称为主模型(MAIN MODEL )。在LINGO 10.0 中,每个LINGO 模型窗口中除了主模 型外,用户还可以定义子模型(SUBMODEL) 。子模型可以在主模型的计算段中被调用,这 就进一步增强了LINGO 的编程能力。 子模型必须包含在主模型之内,即必须位于以“MODEL: ”开头、以“END ”结束的模 块内。同一个主模型中,允许定义多个子模型,所以每个子模型本身必须命名,其基本语法 是: SUBMODEL mymodel: 可执行语句(约束+ 目标函数); ENDSUBMODEL 其中 mymodel 是该子模型的名字,可执行语句一般是一些约束语句,也可能包含目标函数, 但不可以有自身单独的集合段、数据段、初始段和计算段。也就是说,同一个主模型内的变 量都是全局变量,这些变量对主模型和所有子模型同样有效。 如果已经定义了子模型 mymodel ,则在计算段中可以用语句“@SOLVE( mymodel); ” 求解这个子模型。 2 Lingo 函数 2.1 算术运算符 1 ^ 乘方 ﹡ 乘 / 除 ﹢ 加 ﹣ 减 2.2 逻辑运算符 在Lingo 中,逻辑运算符主要用于集循环函数的条件表达式中,来控制在函数中哪些集 成员被包含,哪些被排斥。在创建稀疏集时用在成员资格过滤器中。 Lingo 具有9种逻辑运算符 #not# 否定该操作数的逻辑值,#not #是一个一元运算符。 #eq# 若两个运算数相等,则为true ;否则为false 。 #ne# 若两个运算符不相等,则为true ;否则为false 。 #gt# 若左边的运算符严格大于右边的运算符,则为true ;否则为false 。 #ge# 若左边的运算符大于或等于右边的运算符,则为true ;否则为false 。 #lt# 若左边的运算符严格小于右边的运算符,则为true ;否则为false 。 #le# 若左边的运算符小于或等于右边的运算符,则为true ;否则为false 。 #and# 仅当两个参数都为true 时,结果为true ;否则为false 。 #or# 仅当两个参数都为false 时,结果为false ;否则为true 。 2.3 关系运算符 在Lingo 中,关系运算符主要是被用在模型中来指定一个表达式的左边是否等于、小于 等于、或者大于等于右边,形成模型的一个约束条件。关系运算

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档