Lingo编程基础:派生集合定义与算术运算解析

需积分: 42 13 下载量 197 浏览量 更新于2024-08-21 收藏 2.03MB PPT 举报
本文档介绍了Lingo编程中派生集合的定义语法,并提供了Lingo软件的基本概念、功能以及常用运算符和函数的详细说明。 在Lingo中,派生集合是基于基本集合的概念,通过定义父集合列表来创建。派生集合的定义格式如下: ```lingo setname(parent_set_list) [/member_list/] [: attribute_list]; ``` 这里的`setname`是派生集合的名称,`parent_set_list`是其父集合的列表,`member_list`是可选的成员列表,用于指定集合的具体元素,`attribute_list`则是集合的属性列表。例如,如果集合`WAREHOUSE`包含6个货栈,集合`VENDERS`包含8个销售商,那么通过两者之间的联系定义的`LINKS(WAREHOUSE, VENDERS)`就是一个派生集合。 Lingo是由Lindo System Inc开发的一款专门解决优化问题的软件,它支持线性、非线性和整数规划等类型的优化模型。软件界面包括模型窗口、状态行和其他工具栏,用户可以在模型窗口输入Lingo程序。 Lingo的算术运算符包括乘方(^)、乘(﹡)、除(/)、加(﹢)和减(﹣),其中一元运算符是取反(﹣)。此外,Lingo还提供了丰富的数学函数,如绝对值函数`@abs(x)`、正弦函数`@sin(x)`、指数函数`@exp(x)`等。 在变量的处理上,Lingo提供了一些边界定义函数,如`@BND(L, X, U)`限制变量`X`在`L`和`U`之间,`@BIN(X)`使`X`成为0或1的二进制变量,`@FREE(X)`取消符号限制,`@GIN(X)`将`X`限定为整数。需要注意的是,Lingo默认假设所有变量是非负的。 编写Lingo程序时,语句是模型的基本组成部分,每个语句以分号结尾,应保持良好的代码风格,提高可读性。例如,每行只写一个语句,并根据嵌套关系适当缩进。感叹号开始的语句被视为注释。 举例来说,如果我们有一个奶制品的例子,可能涉及到不同的生产设施和产品类型,我们可以通过定义派生集合来表示这些关系,然后利用Lingo的运算符和函数建立优化模型,以最小化成本或最大化利润。