- 在线时间
- 25 小时
- 最后登录
- 2019-2-18
- 注册时间
- 2014-4-7
- 听众数
- 8
- 收听数
- 0
- 能力
- 0 分
- 体力
- 198 点
- 威望
- 0 点
- 阅读权限
- 60
- 积分
- 106
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 91
- 主题
- 30
- 精华
- 0
- 分享
- 0
- 好友
- 6
TA的每日心情 | 奋斗 2014-12-7 07:58 |
---|
签到天数: 22 天 [LV.4]偶尔看看III 宣传员
群组: 2014年网络挑战赛交流 群组: 国赛讨论 群组: 2014美赛讨论 群组: 第三届数模基础实训 |
LINGO提供了几个函数帮助处理集。; Z9 K# \/ `, X8 D$ g- j; |
1.@in(set_name,primitive_index_1 [,primitive_index_2,…])% E6 V m, I) a& k7 o6 Q, Q
如果元素在指定集中,返回1;否则返回0。1 v E) C- g, U9 G' Q1 T
2.@wrap(index,limit)0 k, K$ o6 t7 S$ n: _1 f
该函数返回j=index-k*limit,其中k是一个整数,取适当值保证j落在区间[1,limit]内。该函数相当于index模limit再加1。该函数在循环、多阶段计划编制中特别有用。4 o7 ?" ] b- w- k4 s
3.@size(set_name)
8 b9 C K2 h* u& ~8 M" v$ S- ~9 z+ H该函数返回集set_name的成员个数。在模型中明确给出集大小时最好使用该函数。它的使用使模型更加数据中立,集大小改变时也更易维护。0 r0 t# X( ^: O8 B, [1 u
集循环函数+ U8 T. g) z& Z& h3 D! k @
集循环函数遍历整个集进行操作。其语法为% j3 b/ L) i) W- i9 ^0 Q
@function(setname[(set_index_list)[|conditional_qualifier]]:5 g9 p% H( s2 n: q8 b* ?+ K; y
expression_list);
7 U' ^' M1 p) c- t+ B3 s4 ~@function相应于下面罗列的四个集循环函数之一;setname是要遍历的集;set_ index_list是集索引列表;conditional_qualifier是用来限制集循环函数的范围,当集循环函数遍历集的每个成员时,LINGO都要对conditional_qualifier进行评价,若结果为真,则对该成员执行@function操作,否则跳过,继续执行下一次循环。expression_list是被应用到每个集成员的表达式列表,当用的是@for函数时,expression_list可以包含多个表达式,其间用逗号隔开。这些表达式将被作为约束加到模型中。当使用其余的三个集循环函数时,expression_list只能有一个表达式。如果省略set_index_list,那么在expression_list中引用的所有属性的类型都是setname集。5 j* H5 v* ]% V- w& _
- u7 D' V+ p/ ?9 Y2 O6 h. h/ _ |
zan
|