5.2模型的集合域 5.2.3小结 LNGO可以识别两种集合—基本集合和 派生集合。基本集合是模型的基本对象,它的元 素不可以再进一步分解。另一方面,派生集合是 由其它集合生成。而这些其它集合就称为派生集 合的老子集合,它们既可以是基本集合也可以是 派生集合。一个派生集合可以是密集也可以是疏 集 28
28 5.2.3 小结 LINGO可以识别两种集合——基本集合和 派生集合。基本集合是模型的基本对象,它的元 素不可以再进一步分解。另一方面,派生集合是 由其它集合生成。而这些其它集合就称为派生集 合的老子集合,它们既可以是基本集合也可以是 派生集合。一个派生集合可以是密集也可以是疏 集。 5.2 模型的集合域
5.2模型的集合域 密集包含所有老子集合元素的配对(有时称 为笛卡尔乘积),疏集仅含有部分老子集合元素 的配对,是密集的一个子集。有两种方法可以定 义疏集一元素列表法和元素过滤法。元素列表 法是直接列出疏集的所有元素,而元素过滤法则 是利用元素过滤器(满足某个逻辑条件的元素才 被选中)来指定疏集的元素。各类集合之间的关 系可以用下面的图形来说明 29
29 密集包含所有老子集合元素的配对(有时称 为笛卡尔乘积),疏集仅含有部分老子集合元素 的配对,是密集的一个子集。有两种方法可以定 义疏集——元素列表法和元素过滤法。元素列表 法是直接列出疏集的所有元素,而元素过滤法则 是利用元素过滤器(满足某个逻辑条件的元素才 被选中)来指定疏集的元素。各类集合之间的关 系可以用下面的图形来说明: 5.2 模型的集合域
5.2模型的集合域 集合 派生集合 基本集合 疏集 密集 元素列表 元素过滤器 图5-1各类集合 30
30 图5-1 各类集合 5.2 模型的集合域
53数据域 5.3数据域 为集合属性赋值是建模的一个必要环节。在 用LNGO建立的模型中,我们可以用数据域为属 性赋值。我们还可以利用数据域将模型中经常变 动的部分与其它部分分开。这对于模型的维护和 扩充非常有用。 通常,可以将一个大型的LNGO模型分成3 个独立的模块:1)集合域,2)数据域,3)方程模块。 31
31 5.3 数据域 5.3 数据域 为集合属性赋值是建模的一个必要环节。在 用LINGO建立的模型中,我们可以用数据域为属 性赋值。我们还可以利用数据域将模型中经常变 动的部分与其它部分分开。这对于模型的维护和 扩充非常有用。 通常,可以将一个大型的LINGO模型分成3 个独立的模块: 1)集合域,2)数据域,3)方程模块
5.3数据域 模型开发者必须对这三个模块都非常精通 如果模型开发者已经将整个模型分割成集合域、 数据域和方程模块,而对于天天使用模型的人来 说,只要熟悉模型的数据域就可以了 与集合域类似,数据域是用关键字 “DATA:” (包括冒号)开始,用关键字“ENDDATA”结束。 在数据域里,既可以用语句为集合属性赋值,也 可以为集合元素赋值。这些语句要满足下面的语 法 32
32 5.3 数据域 模型开发者必须对这三个模块都非常精通。 如果模型开发者已经将整个模型分割成集合域、 数据域和方程模块,而对于天天使用模型的人来 说,只要熟悉模型的数据域就可以了。 与集合域类似,数据域是用关键字“DATA:” (包括冒号)开始,用关键字“ENDDATA”结束。 在数据域里,既可以用语句为集合属性赋值,也 可以为集合元素赋值。这些语句要满足下面的语 法: