当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《LINGO8.0forwindows软件及应用》 第二章 LINGO中的集

资源类别:文库,文档格式:PPT,文档页数:14,文件大小:80KB,团购合买
2 LINGO中的集 说明:实际问题建模时,总会遇到一群或多群相互联系的对象, 如工厂、消费者群体、交通工具和雇工等等。 LINGO允许把这些相联系的对象聚合成集sets)一旦把对象聚 合成集,就可利用集来最大限度的发挥LINGO建模语言的优势。 现深入介绍如何创建集,并用数据初始化集的属性。 学完本节后,对集如何引入模型会有一个基本的理解。
点击下载完整版文档(PPT)

§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 ① 显式罗列成员时,必须为每个成员输入一个不同名字,中 间用空格或逗号搁开,允许混合使用

②隐式罗列成员时,不必罗列出每个集成员 语法格式: setname/ member1. member/[: attribute listI member1是集的第一个成员名, member是集的最末一个成员名。 自动产生中间的所有成员名。 也接受一些特定的首成员名和末成员名,以创建一些特殊的集, 列表如下: 匚隐式成员列表格式示例 所产生集成员 n 1,2,3,4, StringM. String Car2. car14 Car2, Car3, Car4,., Car14 DayM. dayN Mon.. fri Mon, tue Wed. Thu Fri Month. Month Oct. Jan Oct, Nov, Dec, jan MonthYearM. MonthY Oct2001.Jan2Oct2001, Nov 2001, Dec2001 ear N 002 Jan2002

② 隐式罗列成员时,不必罗列出每个集成员。 语法格式: setname/member1..memberN/[: attribute_list]; member1是集的第一个成员名,memberN是集的最末一个成员名。 自动产生中间的所有成员名。 也接受一些特定的首成员名和末成员名,以创建一些特殊的集。 列表如下: 隐式成员列表格式 示 例 所产生集成员 1..n 1..5 1,2,3,4,5 StringM..StringN Car2..car14 Car2,Car3,Car4,…,Car14 DayM..DayN Mon..Fri Mon,Tue,Wed,Thu,Fri MonthM..MonthN Oct..Jan Oct,Nov,Dec,Jan MonthYearM..MonthY earN Oct2001..Jan2 002 Oct2001,Nov2001,Dec2001, Jan2002

③集成员不放在集定义中,在随后的数据部分来定义 例2.2 !集部分; sets students: sex, age endsets !数据部分; data students sex age= John 1 16 Ji11014 rose o 17 Mike 113: enddata 注意:开头用感叹号(!),未尾用分号(;)表示注释,可跨多行 说明: 集部分只定义了一个集 students,并未指定成员 数据部分罗列了集成员John、Ji11、Rose、Mike,并对属性sex、 age分别给出了值。 集成员无论用何种字符标记,其索引都是从1开始连续计数

例2.2 !集部分; sets: students:sex,age; endsets !数据部分; data: students,sex,age= John 1 16 Jill 0 14 Rose 0 17 Mike 1 13; enddata 注意:开头用感叹号(!),末尾用分号(;)表示注释,可跨多行 说明: 集部分只定义了一个集students,并未指定成员。 数据部分罗列了集成员John、Jill、Rose、Mike,并对属性sex、 age分别给出了值。 集成员无论用何种字符标记,其索引都是从1开始连续计数。 ③ 集成员不放在集定义中,在随后的数据部分来定义

attribute_list:指定一个或多个集成员属性, 之间必须用逗号隔开 可以把集、集成员和集属性同C语言中的结构体作类比。 如下图: 集 结构体 集成员 结构体的域 集属性 结构体实例 LINGO内置的建模语言是一种描述性语言,用它可以描述现实世 界中的一些问题,然后再借助于 LINGO求解器求解 因此,集属性的值一日在模型中被确定,就不可能再更改 只有在初始部分中给出的集属性值在以后的求解中可更改。 这与前面并不矛盾,初始部分是 LINGO求解器的需要,并不是描 述问题所必须的

可以把集、集成员和集属性同C语言中的结构体作类比。 如下图: 集 ←→ 结构体 集成员 ←→ 结构体的域 集属性 ←→ 结构体实例 LINGO内置的建模语言是一种描述性语言,用它可以描述现实世 界中的一些问题,然后再借助于LINGO求解器求解。 因此,集属性的值一旦在模型中被确定,就不可能再更改。 只有在初始部分中给出的集属性值在以后的求解中可更改。 这与前面并不矛盾,初始部分是LINGO求解器的需要,并不是描 述问题所必须的。 attribute_ list:指定一个或多个集成员属性, 之间必须用逗号隔开

2.3.2定义派生集 为定义派生集,必须详细声明 集的名字 父集的名字 可选,集成员 可选,集成员的属性 语法格式: setname (parent set list)[/member list/[: attribute list Setname:集的名字 parent set list:已定义的集的列表,多个时必须用逗号隔开。 若没指定成员列表,则自动创建父集成员所有组合为派生集成员。 派生集的父集既可以是原始集,也可以是其它的派生集

为定义派生集,必须详细声明: ·集的名字 ·父集的名字 ·可选,集成员 ·可选,集成员的属性 语法格式: setname(parent_set_list)[/member_list/][:attribute_list]; Setname:集的名字。 parent_set_list:已定义的集的列表,多个时必须用逗号隔开。 若没指定成员列表,则自动创建父集成员所有组合为派生集成员。 派生集的父集既可以是原始集,也可以是其它的派生集。 2.3.2 定义派生集

例2.3 sets product/A B/i machine/m N/ week/1..2/; allowed(product, machine, week):i endsets 生成三个父集的所有组合共八组作为 allowed集的成员。列表如下: 编号 成员 (A,M,1 (A,M,2 2345678 (A,N,1 (A,N,2) (B,M,1) (B,M,2) (B,N,1) (B,N,2) 稠密集ε成员由父集成员所有组合构成的派生集(如成员列表被忽略)。 稀疏集:限制派生集的成员,使它成为父集成员所有组合构成的集合的 个子集的派生集。 同原始集一样,派生集成员的声明也可放在数据部分

生成三个父集的所有组合共八组作为allowed集的成员。列表如下: 编号 成员 • 1 (A,M,1) • 2 (A,M,2) • 3 (A,N,1) • 4 (A,N,2) • 5 (B,M,1) • 6 (B,M,2) • 7 (B,N,1) • 8 (B,N,2) 稠密集:成员由父集成员所有组合构成的派生集(如成员列表被忽略)。 稀疏集:限制派生集的成员,使它成为父集成员所有组合构成的集合的一 个子集的派生集。 同原始集一样,派生集成员的声明也可放在数据部分。 例2.3 sets: product/A B/; machine/M N/; week/1..2/; allowed(product,machine,week):x; endsets

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共14页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有