正在加载图片...
Week/1..2/ allowed(product, machine, week):xi LINGO生成了三个父集的所有组合共八组作为 allowed集的成员。列表如下: 成员 (A,M,1) 12345678 (A,M,2) (A,N,1) (A,N,2) (B,M,1) (B,M,2) (B,N,2) 成员列表被忽略时,派生集成员由父集成员所有的组合构成,这样的派生集成为稠 密集。如果限制派生集的成员,使它成为父集成员所有组合构成的集合的一个子集,这 样的派生集成为稀疏集。同原始集一样,派生集成员的声明也可以放在数据部分。一个 派生集的成员列表有两种方式生成:①显式罗列;②设置成员资格过滤器。当采用方式 ①时,必须显式罗列出所有要包含在派生集中的成员,并且罗列的每个成员必须属于稠 密集。使用前面的例子,显式罗列派生集的成员: allowed (product, machine, week)/A M l,A N 2,B N 1/ 如果需要生成一个大的、稀疏的集,那么显式罗列就很讨厌。幸运地是许多稀疏集的成 员都满足一些条件以和非成员相区分。我们可以把这些逻辑条件看作过滤器,在 LINGO 生成派生集的成员时把使逻辑条件为假的成员从稠密集中过滤掉。 例34 sets 学生集:性别属性sex,1表示男性,0表示女性:年龄属性age students/John, Jill, Rose, Mike/: sex, age 男学生和女学生的联系集:友好程度属性 friend,[0,1]之间的数。 linkmf(students, students)Sex(&1)#eq# 1 #and# sex(&2)#eg# 0 friend; !男学生和女学生的友好程度大于0.5的集; linkmf2(linkmf)I friend(&1,&2)#gt#0.5:x endsets sex, age =1 16 017 friend=0.30.50.6; enddata 用竖线(|)来标记一个成员资格过滤器的开始。#eq#是逻辑运算符,用来判断是 否“相等”,可参考§4。&1可看作派生集的第1个原始父集的索引,它取遍该原始 父集的所有成员;&2可看作派生集的第2个原始父集的索引,它取遍该原始父集的所 有成员:&3,&4,……,以此类推。注意如果派生集B的父集是另外的派生集A,那么 上面所说的原始父集是集A向前回溯到最终的原始集,其顺序保持不变,并且派生集A 的过滤器对派生集B仍然有效。因此,派生集的索引个数是最终原始父集的个数,索引 的取值是从原始父集到当前派生集所作限制的总和。 319-319- week/1..2/; allowed(product,machine,week):x; endsets LINGO 生成了三个父集的所有组合共八组作为 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) 成员列表被忽略时,派生集成员由父集成员所有的组合构成,这样的派生集成为稠 密集。如果限制派生集的成员,使它成为父集成员所有组合构成的集合的一个子集,这 样的派生集成为稀疏集。同原始集一样,派生集成员的声明也可以放在数据部分。一个 派生集的成员列表有两种方式生成:①显式罗列;②设置成员资格过滤器。当采用方式 ①时,必须显式罗列出所有要包含在派生集中的成员,并且罗列的每个成员必须属于稠 密集。使用前面的例子,显式罗列派生集的成员: allowed(product,machine,week)/A M 1,A N 2,B N 1/; 如果需要生成一个大的、稀疏的集,那么显式罗列就很讨厌。幸运地是许多稀疏集的成 员都满足一些条件以和非成员相区分。我们可以把这些逻辑条件看作过滤器,在 LINGO 生成派生集的成员时把使逻辑条件为假的成员从稠密集中过滤掉。 例 3.4 sets: !学生集:性别属性 sex,1 表示男性,0 表示女性;年龄属性 age. ; students/John,Jill,Rose,Mike/:sex,age; !男学生和女学生的联系集:友好程度属性 friend,[0,1]之间的数。 ; linkmf(students,students)|sex(&1) #eq# 1 #and# sex(&2) #eq# 0: friend; !男学生和女学生的友好程度大于 0.5 的集; linkmf2(linkmf) | friend(&1,&2) #gt# 0.5 : x; endsets data: sex,age = 1 16 0 14 0 17 0 13; friend = 0.3 0.5 0.6; enddata 用竖线(|)来标记一个成员资格过滤器的开始。#eq#是逻辑运算符,用来判断是 否“相等”,可参考§4。 &1 可看作派生集的第 1 个原始父集的索引,它取遍该原始 父集的所有成员;&2 可看作派生集的第 2 个原始父集的索引,它取遍该原始父集的所 有成员;&3,&4,……,以此类推。注意如果派生集 B 的父集是另外的派生集 A,那么 上面所说的原始父集是集 A 向前回溯到最终的原始集,其顺序保持不变,并且派生集 A 的过滤器对派生集 B 仍然有效。因此,派生集的索引个数是最终原始父集的个数,索引 的取值是从原始父集到当前派生集所作限制的总和
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有