您的位置:首页 > 编程语言 > Go语言

LINGO的集循环函数

2015-10-05 15:06 501 查看
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集。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lingo 集循环函数