数学建模社区-数学中国
标题:
lingo帮助函数处理
[打印本页]
作者:
longde
时间:
2015-7-22 15:19
标题:
lingo帮助函数处理
LINGO提供了几个函数帮助处理集。
1 F5 ?! {: W0 k8 Y9 e+ p# b
1.@in(set_name,primitive_index_1 [,primitive_index_2,…])
2 ?5 p3 f9 r/ n) k- V* i
如果元素在指定集中,返回1;否则返回0。
3 S+ h: H9 j" c. T5 ^
2.@wrap(index,limit)
5 N5 z4 q$ e8 J) `. p& Y: C( o
该函数返回j=index-k*limit,其中k是一个整数,取适当值保证j落在区间[1,limit]内。该函数相当于index模limit再加1。该函数在循环、多阶段计划编制中特别有用。
& m& u8 q! E: A d8 z
3.@size(set_name)
7 x' D& k+ S- W8 q2 S+ s7 {
该函数返回集set_name的成员个数。在模型中明确给出集大小时最好使用该函数。它的使用使模型更加数据中立,集大小改变时也更易维护。
* h ?3 [2 r2 S9 P' w# ~! r
集循环函数
! r: ^. b7 R: v, n( J
集循环函数遍历整个集进行操作。其语法为
2 y! M' }- y/ u S: t8 y
@function(setname[(set_index_list)[|conditional_qualifier]]:
( w' e! c' p* C0 J5 G
expression_list);
. R- D% E( }& {* N0 ]9 `) D$ ~
@function相应于下面罗列的四个集循环函数之一;setname是要遍历的集;set_ index_list是集索引列表;conditional_qualifier是用来限制集循环函数的范围,当集循环函数遍历集的每个成员时,LINGO都要对conditional_qualifier进行评价,若结果为真,则对该成员执行@function操作,否则跳过,继续执行下一次循环。expression_list是被应用到每个集成员的表达式列表,当用的是@for函数时,expression_list可以包含多个表达式,其间用逗号隔开。这些表达式将被作为约束加到模型中。当使用其余的三个集循环函数时,expression_list只能有一个表达式。如果省略set_index_list,那么在expression_list中引用的所有属性的类型都是setname集。
- b1 u) P2 d- a3 r% G/ w
6 O7 L6 _7 p2 _2 {' m. \. [) ]' ~
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5