lingo 出现error70 问题,subscript out of range求解决

lingo 出现error70 问题,subscript out of range求解决,第1张

下标索引没有用对,link是a和b衍生出来的集,其中a是第一个指标 ,b是第二个指标,所以后面在引用e的时候,注意i和j的顺序。修改后的程序见附件,如下是运行结果:

Global optimal solution found.

Objective value:                              36.00000

Objective bound:                              36.00000

Infeasibilities:                              0.000000

Extended solver steps:                               0

Total solver iterations:                        芹握    47

Model Class:                                      PILP

Total variables:          档伏          300

Nonlinear variables:                  0

Integer variables:                  300

Total constraints:                   51

Nonlinear constraints:      行首携          0

Total nonzeros:                    1200

Nonlinear nonzeros:                   0

                              Variable           Value        Reduced Cost

                                 C( 1)        1.000000            0.000000

                                 C( 2)        2.000000            0.000000

                                 C( 3)        3.000000            0.000000

                                 C( 4)        4.000000            0.000000

                                 C( 5)        5.000000            0.000000

                                 C( 6)        6.000000            0.000000

                                 C( 7)        7.000000            0.000000

                                 C( 8)        8.000000            0.000000

                                 C( 9)        9.000000            0.000000

                                C( 10)        10.00000            0.000000

                                C( 11)        11.00000            0.000000

                                C( 12)        12.00000            0.000000

                                C( 13)        13.00000            0.000000

                                C( 14)        14.00000            0.000000

                                C( 15)        15.00000            0.000000

                                C( 16)        16.00000            0.000000

                                C( 17)        17.00000            0.000000

                                C( 18)        18.00000            0.000000

                                C( 19)        19.00000            0.000000

                                C( 20)        20.00000            0.000000

                              E( 1, 1)        0.000000            1.000000

                              E( 1, 2)        1.000000            2.000000

                              E( 1, 3)        0.000000            3.000000

                              E( 1, 4)        0.000000            4.000000

                              E( 1, 5)        0.000000            5.000000

                              E( 1, 6)        0.000000            6.000000

                              E( 1, 7)        0.000000            7.000000

                              E( 1, 8)        0.000000            8.000000

                              E( 1, 9)        0.000000            9.000000

                             E( 1, 10)        0.000000            10.00000

                             E( 1, 11)        0.000000            11.00000

                             E( 1, 12)        0.000000            12.00000

                             E( 1, 13)        0.000000            13.00000

                             E( 1, 14)        0.000000            14.00000

                             E( 1, 15)        0.000000            15.00000

                              E( 2, 1)        1.000000            1.000000

                              E( 2, 2)        0.000000            2.000000

                              E( 2, 3)        0.000000            3.000000

                              E( 2, 4)        0.000000            4.000000

                              E( 2, 5)        0.000000            5.000000

                              E( 2, 6)        0.000000            6.000000

                              E( 2, 7)        0.000000            7.000000

                              E( 2, 8)        0.000000            8.000000

                              E( 2, 9)        0.000000            9.000000

                             E( 2, 10)        0.000000            10.00000

                             E( 2, 11)        0.000000            11.00000

                             E( 2, 12)        0.000000            12.00000

                             E( 2, 13)        0.000000            13.00000

                             E( 2, 14)        0.000000            14.00000

                             E( 2, 15)        0.000000            15.00000

第二个循环错了,正确的应该是:@for(set2(i):@sum(link(j,i):A(j,i)*x(j))<=y(i))

error code 70 表示你在程序中使用的变量熟超过了你定义的变量数手袜,如上,你的x(i)最多只能有6个,但是你错把j的数目给了他,就产生历薯桐了x(0)到x(6)共7个变量,没有办法就报错了。

我简单改肢坦了一点,你看是否满足你的需求:

model:

sets:

set1/1..6/:x

set2/1..7/:y

link(set1,set2):A

endsets

x2=1

max=@sum(set1(j):x(j))

@for(set1(j):@bin(x(j)))

@for(set2(i):@sum(link(j,i):A(j,i)*x(j))<=y(i))

data:

y=1 1 1 1 1 1 1

A=

1 1 0 1 0 0

0 1 0 0 1 0

1 0 0 0 0 1

0 0 1 1 0 1

1 1 0 1 0 0

1 0 0 1 0 1

0 1 1 0 1 0

enddata


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8231898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存