LINGO的集循环函数

Set Looping Functions
We have mentionedthe power of set-based modeling comes from the ability to apply an operation to
all members of a set using a single statement. The functions in LINGO thatallow you to do this are
called set looping functions. If your models don’t make use of one ormore set looping function, then
you are missing out on the power of set-based modeling and, even worse, you’reprobably working too
hard!

集循环函数

我们提到过集建模的效率来自于能够操作单个语句集的所有成员。LINGO中的函数,使你可以使用集循环函数。如果你的模型没有使用一个或多个集循环函数,那么你就失去了集建模的效率,更糟糕的是,你可能会为此做更多效率低下的工作!



Set looping functions allow you to iterate through all the members of a set toperform some operation.
There are currently four set looping functions in LINGO.

集循环函数遍历整个集进行操作。LINGO 目前有四个集循环函数。


Thesyntax for a set looping function is:
@function(setname [ (set_index_list) [|conditional_qualifier]]: expression_list);

其语法为:

         @function(setname[(set_index_list)[|conditional_qualifier]]:expression_list);



where @function corresponds to one of the four set looping functionslisted in the table above. setname
is the name of the set you want to loop over.

@function相应于上面罗列的四个集循环函数之一(@FOR,@SUM,@MIN或@MAX,@PROD)。setname是要遍历的集。


set_index_list is optional. It is used to create a list of indices. Eachindex corresponds to one of the
parent, primitive sets that form the set specified by setname. As LINGOloops through the members of
the set setname, it will set the values of the indices in the set_index_listto correspond to the current
member of the set setname.

set_index_list是可选的。它用于创建索引列表。每个索引对应于形成集合名称的指定集的父集、原始集之一。随着LINGO遍历该集的成员,它将对应集合当前成员在set_index_list中设定值。


The conditional_qualifier is optional, and may be used to limit thescope of the set looping function.
When LINGO is looping over each member of setname, it evaluates the conditional_qualifier.If the
conditional_qualifier evaluates to true, then the @function isperformed for the set member.
Otherwise, it is skipped.

conditional_qualifier是可选的,并且可用于限制集循环函数的范围。当集循环函数遍历集的每个成员时,LINGO都要对conditional_qualifier进行评价。如果结果为真,则对该成员执行@function操作。否则跳过。


The expression_listis a list of expressions that are to be applied to each member of the set setname.
When using the @FOR function, the expression list may contain multipleexpressions, separated by
semicolons. These expressions will be added as constraints to the model. Whenusing the remaining set
looping functions (@SUM, @MAX, @MIN and @PROD), theexpression list must contain one
expression only. If the set_index_list is omitted, all attributes referencedin the expression_list must be
defined on the set setname.


expression_list是应用到每个集成员的表达式列表。当使用@FOR函数时,expression_list可能包含多个表达式,其间用分号分隔。这些表达式将作为约束添加到模型。当使用其余集循环函数时 (@SUM、 @MAX、 @MIN和@PROD),表达式列表必须只包含一个表达式。如果省略了set_index_list,那么在expression_list中引用的所有属性的类型都是setname集。

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值