数学建模社区-数学中国

标题: 为什么如下程序运行时总出现sunscript out of range [打印本页]

作者: slowlypig    时间: 2012-11-22 13:47
标题: 为什么如下程序运行时总出现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
各位大神帮帮忙,疯掉了
作者: slowlypig    时间: 2012-11-22 13:52
自己顶一下,大家帮我看一下~
作者: sorjor    时间: 2012-11-22 15:23
fact(version,requirement):snumber,fput;这一句有问题;

fact(requirement,version):snumber,fput;我的版本限制,不能运行你改过来试试看。

作者: sorjor    时间: 2012-11-22 15:27
fact(version,requirement):snumber,fput;改成fact(requirement,version):snumber,fput;你这样改完试试看,我的版本限制不能运行
作者: sorjor    时间: 2012-11-22 15:29
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

作者: madio    时间: 2012-11-22 16:53
楼上说的没错,这个是下标越界错误,应该就是下标所在的集不对应造成的
作者: slowlypig    时间: 2012-11-22 18:20
sorjor 发表于 2012-11-22 15:29
model:

sets:

非常感谢,我昨天才看的教程,直接按例子上的来,然后一直不行,我也不知道为啥。。。多谢你
作者: slowlypig    时间: 2012-11-22 18:22
madio 发表于 2012-11-22 16:53
楼上说的没错,这个是下标越界错误,应该就是下标所在的集不对应造成的

这个问题解决了非常感谢




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5