ljwabc115 发表于 2009-7-17 10:02

一个简单的lingo程序,帮忙理解一下

model :
sets:
xx/1..1/:x,y; !集合名称为xx;
endsets
max=@sum(xx:2*x+3*y);
@for(xx(i):4*x(i)+3*y(i)<=10);
@for(xx(i):3*x(i)+5*y(i)<=12);end xx(i)是什么意思?为什么不是xx(i,j)?后面为什么又多了y(i)?

lyyy 发表于 2009-7-17 12:22

这是一个简单的集运算,把它理解为数组就可以了。

rock_yang 发表于 2009-7-18 13:32

运算用的是属性值,前面的xx是集名,是用来界定属性范围的
for函数的命令语法是:@FOR(SETNAME[(SET_INDEX_LIST)]:EXPRESION_LIST);
例如@for(xx(i):4*x(i)+3*y(i)<=10);xx(i)为SETNAME,i为变量,4*x(i)+3*y(i)<=10为操作,其中的变量用的都是属性值.

oppo603 发表于 2012-7-17 23:17

xx(i, j)是派生集合。xx(i)是基本集合。
页: [1]
查看完整版本: 一个简单的lingo程序,帮忙理解一下