数学建模社区-数学中国
标题:
lingo如何定义单个变量?
[打印本页]
作者:
WonderForYou
时间:
2009-8-18 16:08
标题:
lingo如何定义单个变量?
lingo如何定义单个变量?在
sets:
endsets
中应该如何定义?
作者:
firstboy0513
时间:
2009-8-18 16:38
lingo如何定义单个变量不在sets段里设置,只要在约束条件中写就可以了。
作者:
WonderForYou
时间:
2009-8-18 17:31
sets:
week/1..4/:x,s,s1,c,t,r;
endsets
data:
x=15 40 75 100;
s1=30 40 45 20;
c=5.0 5.1 5.4 5.5;
enddata
min=@sum(week(i):t(i)*c(i))+@sum(week(i):r(i)*0.2);
p<=4;
p>=1;
@gin(p);
s(p)=s1(p)-15;
@for(week(i)|i#gt#p:s(i)=s1(i)+5);
@for(week(i):t(i)<=s(i));
@for(week(i)|i#gt#1:r(i)=t(i)+r(i-1)-(x(i)-x(i-1)));
r(1)=t(1)-x(1);
end
上面那个程序我把p改成一个常数就可以运行了,为什么不对?
作者:
minedoc
时间:
2009-8-18 18:35
学习..........
作者:
lyg1234
时间:
2009-8-21 23:42
本帖最后由 lyg1234 于 2009-8-21 23:43 编辑
(1)单个变量无需在集中定义。
(2)你所补上的那个程序中p不是索引变量,从而
s(p)=s1(p)-15;
@for(week(i)|i#gt#p:s(i)=s1(i)+5);
这两句都是错误的。
可将你整个程序改正如下:
model:
sets:
week/1..4/:x,s,s1,c,t,r,
w
;
endsets
data:
x=15 40 75 100;
s1=30 40 45 20;
c=5.0 5.1 5.4 5.5;
enddata
min=@sum(week(i):t(i)*c(i))+@sum(week(i):r(i)*0.2);
s(1)=S1(1)-15*w(1);
@for(week(i)|i#GT#1:s(i)=s1(i)-15*w(i)+5*@sum(week(j)|j#LT#i:w(j)));
@sum(week:w)<1;
@for(week:bin(w));
@for(week(i):t(i)<=s(i));
@for(week(i)|i#gt#1:r(i)=t(i)+r(i-1)-(x(i)-x(i-1)));
r(1)=t(1)-x(1);
end
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5