为什么如下程序运行时总出现sunscript out of range
model:sets:
requirement/1..7/:time,need;
version/1..4/:number,minmw,maxmw,fcost,mcost,scost;
fact(version,requirement):snumber,fput;
endsets
data:
need=12000 32000 25000 36000 25000 30000 18000;
time=6 3 3 2 4 4 2;
minmw=750 1000 1200 1800;
maxmw=1750 1500 2000 3500;
number=10 4 8 3;
fcost=2250 1800 3750 4800;
mcost=2.7 2.2 1.8 3.8;
scost=5000 1600 2400 1200;
enddata
@for(requirement(I):
@sum(version(J):snumber(I,J)*fput(I,J))>=need(I));
end
各位大神帮帮忙,疯掉了 自己顶一下,大家帮我看一下~ fact(version,requirement):snumber,fput;这一句有问题;
fact(requirement,version):snumber,fput;我的版本限制,不能运行你改过来试试看。
fact(version,requirement):snumber,fput;改成fact(requirement,version):snumber,fput;你这样改完试试看,我的版本限制不能运行 model:
sets:
requirement/1..7/:time,need;
version/1..4/:number,minmw,maxmw,fcost,mcost,scost;
fact(requirement,version):snumber,fput;
endsets
data:
need=12000 32000 25000 36000 25000 30000 18000;
time=6 3 3 2 4 4 2;
minmw=750 1000 1200 1800;
maxmw=1750 1500 2000 3500;
number=10 4 8 3;
fcost=2250 1800 3750 4800;
mcost=2.7 2.2 1.8 3.8;
scost=5000 1600 2400 1200;
enddata
@for(requirement(I):
@sum(version(J):snumber(I,J)*fput(I,J))>=need(I));
end
Feasible solution found.
Infeasibilities: 0.000000
Total solver iterations: 4
Variable Value
TIME( 1) 6.000000
TIME( 2) 3.000000
TIME( 3) 3.000000
TIME( 4) 2.000000
TIME( 5) 4.000000
TIME( 6) 4.000000
TIME( 7) 2.000000
NEED( 1) 12000.00
NEED( 2) 32000.00
NEED( 3) 25000.00
NEED( 4) 36000.00
NEED( 5) 25000.00
NEED( 6) 30000.00
NEED( 7) 18000.00
NUMBER( 1) 10.00000
NUMBER( 2) 4.000000
NUMBER( 3) 8.000000
NUMBER( 4) 3.000000
MINMW( 1) 750.0000
MINMW( 2) 1000.000
MINMW( 3) 1200.000
MINMW( 4) 1800.000
MAXMW( 1) 1750.000
MAXMW( 2) 1500.000
MAXMW( 3) 2000.000
MAXMW( 4) 3500.000
FCOST( 1) 2250.000
FCOST( 2) 1800.000
FCOST( 3) 3750.000
FCOST( 4) 4800.000
MCOST( 1) 2.700000
MCOST( 2) 2.200000
MCOST( 3) 1.800000
MCOST( 4) 3.800000
SCOST( 1) 5000.000
SCOST( 2) 1600.000
SCOST( 3) 2400.000
SCOST( 4) 1200.000
SNUMBER( 1, 1) 1.234568
SNUMBER( 1, 2) 0.1000000E+08
SNUMBER( 1, 3) 1.234568
SNUMBER( 1, 4) 1.234568
SNUMBER( 2, 1) 0.1000001E+08
SNUMBER( 2, 2) 1.234568
SNUMBER( 2, 3) 1.234568
SNUMBER( 2, 4) 1.234568
SNUMBER( 3, 1) 0.1000001E+08
SNUMBER( 3, 2) 1.234568
SNUMBER( 3, 3) 1.234568
SNUMBER( 3, 4) 1.234568
SNUMBER( 4, 1) 0.1000001E+08
SNUMBER( 4, 2) 1.234568
SNUMBER( 4, 3) 1.234568
SNUMBER( 4, 4) 1.234568
SNUMBER( 5, 1) 0.1000003E+08
SNUMBER( 5, 2) 1.234568
SNUMBER( 5, 3) 1.234568
SNUMBER( 5, 4) 1.234568
SNUMBER( 6, 1) 0.1000003E+08
SNUMBER( 6, 2) 1.234568
SNUMBER( 6, 3) 1.234568
SNUMBER( 6, 4) 1.234568
SNUMBER( 7, 1) 0.1000003E+08
SNUMBER( 7, 2) 1.234568
SNUMBER( 7, 3) 1.234568
SNUMBER( 7, 4) 1.234568
FPUT( 1, 1) 1.234568
FPUT( 1, 2) 1.234568
FPUT( 1, 3) 1.234568
FPUT( 1, 4) 1.234568
FPUT( 2, 1) 1.234568
FPUT( 2, 2) 1.234568
FPUT( 2, 3) 1.234568
FPUT( 2, 4) 1.234568
FPUT( 3, 1) 1.234568
FPUT( 3, 2) 1.234568
FPUT( 3, 3) 1.234568
FPUT( 3, 4) 1.234568
FPUT( 4, 1) 1.234568
FPUT( 4, 2) 1.234568
FPUT( 4, 3) 1.234568
FPUT( 4, 4) 1.234568
FPUT( 5, 1) 1.234568
FPUT( 5, 2) 1.234568
FPUT( 5, 3) 1.234568
FPUT( 5, 4) 1.234568
FPUT( 6, 1) 1.234568
FPUT( 6, 2) 1.234568
FPUT( 6, 3) 1.234568
FPUT( 6, 4) 1.234568
FPUT( 7, 1) 1.234568
FPUT( 7, 2) 1.234568
FPUT( 7, 3) 1.234568
FPUT( 7, 4) 1.234568
Row Slack or Surplus
1 0.1233368E+08
2 0.1231369E+08
3 0.1232069E+08
4 0.1230969E+08
5 0.1232071E+08
6 0.1231571E+08
7 0.1232771E+08
楼上说的没错,这个是下标越界错误,应该就是下标所在的集不对应造成的 sorjor 发表于 2012-11-22 15:29 static/image/common/back.gif
model:
sets:
非常感谢,我昨天才看的教程,直接按例子上的来,然后一直不行,我也不知道为啥。。。多谢你 madio 发表于 2012-11-22 16:53 static/image/common/back.gif
楼上说的没错,这个是下标越界错误,应该就是下标所在的集不对应造成的
这个问题解决了非常感谢
页:
[1]