正在加载图片...
总的来说, LINGO可识别的集只有两种类型:原始集和派生集。 在一个模型中,原始集是基本的对象,不能再被拆分成更小的组分。原始集可以由 显式罗列和隐式罗列两种方式来定义。当用显式罗列方式时,需在集成员列表中逐个输 入每个成员。当用隐式罗列方式时,只需在集成员列表中输入首成员和末成员,而中间 的成员由 LINGO产生。 另一方面,派生集是由其它的集来创建。这些集被称为该派生集的父集(原始集或 其它的派生集)。一个派生集既可以是稀疏的,也可以是稠密的。稠密集包含了父集成 员的所有组合(有时也称为父集的笛卡尔乘积)。稀疏集仅包含了父集的笛卡尔乘积的 个子集,可通过显式罗列和成员资格过滤器这两种方式来定义。显式罗列方法就是逐 个罗列稀疏集的成员成员资格过滤器方法通过使用稀疏集成员必须满足的逻辑条件从 稠密集成员中过滤出稀疏集的成员。 §4模型的数据部分和初始部分 在处理模型的数据时,需要为集指派一些成员并且在 LINGO求解模型之前为集的某 些属性指定值。为此, LINGO为用户提供了两个可选部分:输入集成员和数据的数据部 分( Data section)和为决策变量设置初始值的初始部分( Init section) 4.1模型的数据部分 4.1.1数据部分入门 数据部分以关键字“data:”开始,以关键字“ enddata”结東。在这里,可以指定 集成员、集的属性。其语法如下 object list value list 对象列( object_list)包含要指定值的属性名、要设置集成员的集名,用逗号或 空格隔开。一个对象列中至多有一个集名,而属性名可以有任意多。如果对象列中有多 个属性名,那么它们的类型必须一致。如果对象列中有一个集名,那么对象列中所有的 属性的类型就是这个集 数值列( value_list)包含要分配给对象列中的对象的值,用逗号或空格隔开。注 意属性值的个数必须等于集成员的个数。看下面的例子。 例4.1 set1/A,b,c/:x,Y data X=1,2,3 Y=4,5,6 enddata 在集set1中定义了两个属性X和Y。X的三个值是1、2和3,Y的三个值是4、5 和6。也可采用如下例子中的复合数据声明( data statement)实现同样的功能 例4.2 setl/A, B, c/:x,Y; endsets x,Y=14 enddata 看到这个例子,可能会认为X被指定了1、4和2三个值,因为它们是数值列中前-320- 总的来说,LINGO 可识别的集只有两种类型:原始集和派生集。 在一个模型中,原始集是基本的对象,不能再被拆分成更小的组分。原始集可以由 显式罗列和隐式罗列两种方式来定义。当用显式罗列方式时,需在集成员列表中逐个输 入每个成员。当用隐式罗列方式时,只需在集成员列表中输入首成员和末成员,而中间 的成员由 LINGO 产生。 另一方面,派生集是由其它的集来创建。这些集被称为该派生集的父集(原始集或 其它的派生集)。一个派生集既可以是稀疏的,也可以是稠密的。稠密集包含了父集成 员的所有组合(有时也称为父集的笛卡尔乘积)。稀疏集仅包含了父集的笛卡尔乘积的 一个子集,可通过显式罗列和成员资格过滤器这两种方式来定义。显式罗列方法就是逐 个罗列稀疏集的成员。成员资格过滤器方法通过使用稀疏集成员必须满足的逻辑条件从 稠密集成员中过滤出稀疏集的成员。 §4 模型的数据部分和初始部分 在处理模型的数据时,需要为集指派一些成员并且在 LINGO 求解模型之前为集的某 些属性指定值。为此,LINGO 为用户提供了两个可选部分:输入集成员和数据的数据部 分(Data Section)和为决策变量设置初始值的初始部分(Init Section)。 4.1 模型的数据部分 4.1.1 数据部分入门 数据部分以关键字“data:”开始,以关键字“enddata”结束。在这里,可以指定 集成员、集的属性。其语法如下: object_list = value_list; 对象列(object_list)包含要指定值的属性名、要设置集成员的集名,用逗号或 空格隔开。一个对象列中至多有一个集名,而属性名可以有任意多。如果对象列中有多 个属性名,那么它们的类型必须一致。如果对象列中有一个集名,那么对象列中所有的 属性的类型就是这个集。 数值列(value_list)包含要分配给对象列中的对象的值,用逗号或空格隔开。注 意属性值的个数必须等于集成员的个数。看下面的例子。 例 4.1 sets: set1/A,B,C/: X,Y; endsets data: X=1,2,3; Y=4,5,6; enddata 在集 set1 中定义了两个属性 X 和 Y。X 的三个值是 1、2 和 3,Y 的三个值是 4、5 和 6。也可采用如下例子中的复合数据声明(data statement)实现同样的功能。 例 4.2 sets: set1/A,B,C/: X,Y; endsets data: X,Y=1 4 2 5 3 6; enddata 看到这个例子,可能会认为 X 被指定了 1、4 和 2 三个值,因为它们是数值列中前
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有