2.3 模型的集部分
在LINGO中集必须先定义后使用.集部分以关键字“sets:”开始,以“endsets”结束.
2.3.1 定义原始集
定义一个原始集,用下面的语法声明:setname[/member_list/][:attribute_list]
Setname表集的名字,必需的.
Member_list是集成员列表,可以没有.有三种方式:显式罗列、隐式罗列(在定义中)和数据部分来定义.
:attribute_list是属性列表,可以没有.
①显式罗列成员时举例.
【例1】 可以定义一个名为students的原始集,它具有成员John、Jill、Rose和Mike,属性有sex和age:
②隐式罗列成员时举例setname/member1..memberN/[:attribute_list];
这里的member1是集的第一个成员名,memberN是集的最末一个成员名.LINGO将自动产生中间的所有成员名.LINGO也接受一些特定的首成员名和末成员名,用于创建一些特殊的集.列表如下:
③集成员不放在集定义中,而在随后的数据部分来定义.
【例2】
在集部分只定义了一个集students,并未指定成员.在数据部分罗列了集成员John、Jill、Rose和Mike,并对属性sex和age分别给出了值.
2.3.2 定义派生集
可用下面的语法定义一个派生集:
【例3】
LINGO生成了三个父集的所有组合,共八组作为allowed集的成员.列表如下:(A,M,1)、(B,M,1)、(A,M,2)、(B,M,2)、(A,N,1)、(B,N,1)、(A,N,2)、(B,N,2)
3 数据部分
数据部分以关键字“data:”开始,以关键字“enddata”结束
【例1】
在集set1中定义了两个属性X和Y.A,B,C的X属性值分别是1、2和3,A,B,C的Y属性值分别是4、5和6.
【例2】
A的X属性值,Y属性值分别是1、4,B的X属性值,Y属性值分别是2、5,C的X属性值,Y属性值分别是3、6.
4 LINGO函数
LINGO有9种类型运算或函数:
1.基本运算符:包括算术运算符、逻辑运算符和关系运算符;
2.数学函数:三角函数和常规的数学函数;
3.金融函数:LINGO提供了两种金融函数;
4.概率函数:LINGO提供了大量概率相关的函数;
5.变量界定函数:这类函数用来定义变量的取值范围;
6.集操作函数:这类函数为对集的操作提供帮助;
7.集循环函数:遍历集的元素,执行一定的操作的函数;
8.数据输入输出函数:这类函数和外部数据源相联系,进行数据的输入输出;
9.辅助函数:各种杂类函数.