§2LNGo中的集 说明:实际问题建模时,总会遇到一群或多群相互联系的对象, 如工厂、消费者群体、交通工具和雇工等等。 L|NGO允许把这些相联系的对象聚合成集(sets)。一旦把对象聚 合成集,就可利用集来最大限度的发挥LNGO建模语言的优势 现深入介绍如何创建集,并用数据初始化集的属性 学完本节后,对集如何引入模型会有一个基本的理解。 2.1为什么使用集 集是LNG○建模语言基础,是程序设计最强有力的基本构件 借助集,能够用一个单一的、长的、简明的复合公式表示一系列相 似的约束,快速方便地表达规模较大的模型
§2 LINGO中的集 说明:实际问题建模时,总会遇到一群或多群相互联系的对象, 如工厂、消费者群体、交通工具和雇工等等。 LINGO允许把这些相联系的对象聚合成集(sets)。一旦把对象聚 合成集,就可利用集来最大限度的发挥LINGO建模语言的优势。 现深入介绍如何创建集,并用数据初始化集的属性。 学完本节后,对集如何引入模型会有一个基本的理解。 2.1 为什么使用集 集是LINGO建模语言基础,是程序设计最强有力的基本构件。 借助集,能够用一个单一的、长的、简明的复合公式表示一系列相 似的约束,快速方便地表达规模较大的模型
2.2什么是集 集:一群相联系的对象 集的成员:相联系的对象 说明:一个集可能是一系列产品、卡车或雇员。 属性:每个集成员可能有的一个或多个与之有关联的特征。 属性值可以预先给定,也可以是未知的,有待于 LINGO求解。 举例: 产品集中的每个产品可以有一个价格属性; 卡车集中的每辆卡车可以有一个牵引力属性; 雇员集中的每位雇员可有一个薪水属性,也可有一个生日属性 集的类型:原始集( primitive set)、派生集( derived set) 原始集:由一些最基本的对象组成 派生集:由一个或多个其它集定义,即其成员来自其它已存在的集
集:一群相联系的对象 集的成员:相联系的对象。 说明:一个集可能是一系列产品、卡车或雇员。 属性:每个集成员可能有的一个或多个与之有关联的特征。 属性值可以预先给定,也可以是未知的,有待于LINGO求解。 举例: 产品集中的每个产品可以有一个价格属性; 卡车集中的每辆卡车可以有一个牵引力属性; 雇员集中的每位雇员可有一个薪水属性,也可有一个生日属性 集的类型:原始集(primitive set)、派生集(derived set)。 原始集:由一些最基本的对象组成 派生集:由一个或多个其它集定义,即其成员来自其它已存在的集 2.2 什么是集
2.3模型的集部分 集部分:可选部分,使用前,必须在集部分事先定义。 以关键字“sets:"开始,“ endsets”结束 个模型可以没有集部分,或有一个简单集部分,或有多个集部分 个集部分可以放置于模型的任何地方,但是一个集及其属性在模 型约束中被引用之前必须是已经定义 2.3.1定义原始集 定义一个原始集,必须作如下详细声明: 集的名字 可选,集的成员 可选,集成员的属性
集部分:可选部分,使用前,必须在集部分事先定义。 以关键字“sets:”开始,“endsets”结束。 一个模型可以没有集部分,或有一个简单集部分,或有多个集部分 一个集部分可以放置于模型的任何地方,但是一个集及其属性在模 型约束中被引用之前必须是已经定义。 2.3.1 定义原始集 定义一个原始集,必须作如下详细声明: ·集的名字 ·可选,集的成员 ·可选,集成员的属性 2.3 模型的集部分
定义原始集语法格式: setname[/member list/[:attribute list] 注意:“表示该部分内容可选。 Setname:集的名字,可读性要强,必须严格符合标准命名规则: 以字母或下划线()为首字符,其后是字母(AZ)、下划线、 数字(0,1,…,9)组成的总长度不超过32个字符的字符串,不 区分大小写 注意:该命名规则同样适用于集成员名和属性名等的命名 Member1ist:集成员列表 说明: 若集成员放在集定义中,则可采取显式罗列或隐式罗列方式定义 若集成员不放在集定义中,则可在随后的数据部分定义它们
定义原始集语法格式: setname[/member_list/][:attribute_list]; 注意:“[]”表示该部分内容可选。 Setname:集的名字,可读性要强,必须严格符合标准命名规则: 以字母或下划线(_)为首字符,其后是字母(A—Z)、下划线、 数字(0,1,…,9)组成的总长度不超过32个字符的字符串,不 区分大小写。 注意:该命名规则同样适用于集成员名和属性名等的命名。 Member_list:集成员列表。 说明: 若集成员放在集定义中,则可采取显式罗列或隐式罗列方式定义。 若集成员不放在集定义中,则可在随后的数据部分定义它们
①显式罗列成员时,必须为每个成员输入一个不同名字,中 间用空格或逗号搁开,允许混合使用 例2.1定义一个名为 students的原始集,有成员John、Ji11、 Rose、Mike,属性有sex、age: sets students/John Jill, Rose Mike/: sex, agei endsets
例2.1 定义一个名为students的原始集,有成员John、Jill、 Rose、Mike,属性有sex、age: sets: students/John Jill, Rose Mike/: sex, age; endsets ① 显式罗列成员时,必须为每个成员输入一个不同名字,中 间用空格或逗号搁开,允许混合使用