nightmare啊 发表于 2012-8-6 13:21

用lingo求解下面程序捞出现error code50(for函数用错),但检查没错误啊,求指点啊!

model:
sets:
wh/wh1 wh2 wh3 wh4 wh5 wh6/:capacity;
ven/v1 v2 v3 v4 v5 v6/:demand;
links(wh,ven):cost,volume;
endsets
min=@sum(links(i,j):
cost(i,j)*volume(i,j);

@for(ven(j):
@sum(wh(i):volume(i,j))=demand(j));
@for(wh(i):
@sum(ven(j):volume(i,j))<=capacity(i));
data:
capacity=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38;
cost=6 2 6 7 4 2 5 9
     4 9 5 3 8 5 8 2
     5 2 1 9 7 4 3 3
     7 6 7 3 9 2 7 1
     2 3 9 5 7 2 6 5
     5 5 2 2 8 1 4 3
enddata
end

head_@_WOLF 发表于 2012-8-6 15:26

min=@sum(links(i,j):cost(i,j)*volume(i,j));

head_@_WOLF 发表于 2012-8-6 15:30

model:
sets:
wh/1..6/:capacity;
ven/1..8/:demand;
links(wh,ven):cost,volume;
endsets
min=@sum(links(i,j):cost(i,j)*volume(i,j));
@for(ven(j):@sum(wh(i):volume(i,j))=demand(j));
@for(wh(i):@sum(ven(j):volume(i,j))<=capacity(i));
data:
capacity=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38;
cost=6 2 6 7 4 2 5 9
     4 9 5 3 8 5 8 2
     5 2 1 9 7 4 3 3
     7 6 7 3 9 2 7 1
     2 3 9 5 7 2 6 5
     5 5 2 2 8 1 4 3;
enddata
end

head_@_WOLF 发表于 2012-8-6 15:30

Global optimal solution found.
  Objective value:                              664.0000
  Total solver iterations:                            15


                       Variable           Value        Reduced Cost
                   CAPACITY( 1)        60.00000            0.000000
                   CAPACITY( 2)        55.00000            0.000000
                   CAPACITY( 3)        51.00000            0.000000
                   CAPACITY( 4)        43.00000            0.000000
                   CAPACITY( 5)        41.00000            0.000000
                   CAPACITY( 6)        52.00000            0.000000
                     DEMAND( 1)        35.00000            0.000000
                     DEMAND( 2)        37.00000            0.000000
                     DEMAND( 3)        22.00000            0.000000
                     DEMAND( 4)        32.00000            0.000000
                     DEMAND( 5)        41.00000            0.000000
                     DEMAND( 6)        32.00000            0.000000
                     DEMAND( 7)        43.00000            0.000000
                     DEMAND( 8)        38.00000            0.000000
                    COST( 1, 1)        6.000000            0.000000
                    COST( 1, 2)        2.000000            0.000000
                    COST( 1, 3)        6.000000            0.000000
                    COST( 1, 4)        7.000000            0.000000
                    COST( 1, 5)        4.000000            0.000000
                    COST( 1, 6)        2.000000            0.000000
                    COST( 1, 7)        5.000000            0.000000
                    COST( 1, 8)        9.000000            0.000000
                    COST( 2, 1)        4.000000            0.000000
                    COST( 2, 2)        9.000000            0.000000
                    COST( 2, 3)        5.000000            0.000000
                    COST( 2, 4)        3.000000            0.000000
                    COST( 2, 5)        8.000000            0.000000
                    COST( 2, 6)        5.000000            0.000000
                    COST( 2, 7)        8.000000            0.000000
                    COST( 2, 8)        2.000000            0.000000
                    COST( 3, 1)        5.000000            0.000000
                    COST( 3, 2)        2.000000            0.000000
                    COST( 3, 3)        1.000000            0.000000
                    COST( 3, 4)        9.000000            0.000000
                    COST( 3, 5)        7.000000            0.000000
                    COST( 3, 6)        4.000000            0.000000
                    COST( 3, 7)        3.000000            0.000000
                    COST( 3, 8)        3.000000            0.000000
                    COST( 4, 1)        7.000000            0.000000
                    COST( 4, 2)        6.000000            0.000000
                    COST( 4, 3)        7.000000            0.000000
                    COST( 4, 4)        3.000000            0.000000
                    COST( 4, 5)        9.000000            0.000000
                    COST( 4, 6)        2.000000            0.000000
                    COST( 4, 7)        7.000000            0.000000
                    COST( 4, 8)        1.000000            0.000000
                    COST( 5, 1)        2.000000            0.000000
                    COST( 5, 2)        3.000000            0.000000
                    COST( 5, 3)        9.000000            0.000000
                    COST( 5, 4)        5.000000            0.000000
                    COST( 5, 5)        7.000000            0.000000
                    COST( 5, 6)        2.000000            0.000000
                    COST( 5, 7)        6.000000            0.000000
                    COST( 5, 8)        5.000000            0.000000
                    COST( 6, 1)        5.000000            0.000000
                    COST( 6, 2)        5.000000            0.000000
                    COST( 6, 3)        2.000000            0.000000
                    COST( 6, 4)        2.000000            0.000000
                    COST( 6, 5)        8.000000            0.000000
                    COST( 6, 6)        1.000000            0.000000
                    COST( 6, 7)        4.000000            0.000000
                    COST( 6, 8)        3.000000            0.000000
                  VOLUME( 1, 1)        0.000000            5.000000
                  VOLUME( 1, 2)        19.00000            0.000000
                  VOLUME( 1, 3)        0.000000            5.000000
                  VOLUME( 1, 4)        0.000000            7.000000
                  VOLUME( 1, 5)        41.00000            0.000000
                  VOLUME( 1, 6)        0.000000            2.000000
                  VOLUME( 1, 7)        0.000000            2.000000
                  VOLUME( 1, 8)        0.000000            10.00000
                  VOLUME( 2, 1)        1.000000            0.000000
                  VOLUME( 2, 2)        0.000000            4.000000
                  VOLUME( 2, 3)        0.000000            1.000000
                  VOLUME( 2, 4)        32.00000            0.000000
                  VOLUME( 2, 5)        0.000000            1.000000
                  VOLUME( 2, 6)        0.000000            2.000000
                  VOLUME( 2, 7)        0.000000            2.000000
                  VOLUME( 2, 8)        0.000000            0.000000
                  VOLUME( 3, 1)        0.000000            4.000000
                  VOLUME( 3, 2)        11.00000            0.000000
                  VOLUME( 3, 3)        0.000000            0.000000
                  VOLUME( 3, 4)        0.000000            9.000000
                  VOLUME( 3, 5)        0.000000            3.000000
                  VOLUME( 3, 6)        0.000000            4.000000
                  VOLUME( 3, 7)        40.00000            0.000000
                  VOLUME( 3, 8)        0.000000            4.000000
                  VOLUME( 4, 1)        0.000000            4.000000
                  VOLUME( 4, 2)        0.000000            2.000000
                  VOLUME( 4, 3)        0.000000            4.000000
                  VOLUME( 4, 4)        0.000000            1.000000
                  VOLUME( 4, 5)        0.000000            3.000000
                  VOLUME( 4, 6)        5.000000            0.000000
                  VOLUME( 4, 7)        0.000000            2.000000
                  VOLUME( 4, 8)        38.00000            0.000000
                  VOLUME( 5, 1)        34.00000            0.000000
                  VOLUME( 5, 2)        7.000000            0.000000
                  VOLUME( 5, 3)        0.000000            7.000000
                  VOLUME( 5, 4)        0.000000            4.000000
                  VOLUME( 5, 5)        0.000000            2.000000
                  VOLUME( 5, 6)        0.000000            1.000000
                  VOLUME( 5, 7)        0.000000            2.000000
                  VOLUME( 5, 8)        0.000000            5.000000
                  VOLUME( 6, 1)        0.000000            3.000000
                  VOLUME( 6, 2)        0.000000            2.000000
                  VOLUME( 6, 3)        22.00000            0.000000
                  VOLUME( 6, 4)        0.000000            1.000000
                  VOLUME( 6, 5)        0.000000            3.000000
                  VOLUME( 6, 6)        27.00000            0.000000
                  VOLUME( 6, 7)        3.000000            0.000000
                  VOLUME( 6, 8)        0.000000            3.000000

                            Row    Slack or Surplus      Dual Price
                              1        664.0000           -1.000000
                              2        0.000000           -4.000000
                              3        0.000000           -5.000000
                              4        0.000000           -4.000000
                              5        0.000000           -3.000000
                              6        0.000000           -7.000000
                              7        0.000000           -3.000000
                              8        0.000000           -6.000000
                              9        0.000000           -2.000000
                             10        0.000000            3.000000
                             11        22.00000            0.000000
                             12        0.000000            3.000000
                             13        0.000000            1.000000
                             14        0.000000            2.000000
                             15        0.000000            2.000000

model:
sets:
wh/1..6/:capacity;
ven/1..8/:demand;
links(wh,ven):cost,volume;
endsets
min=@sum(links(i,j):cost(i,j)*volume(i,j));
@for(ven(j):@sum(wh(i):volume(i,j))=demand(j));
@for(wh(i):@sum(ven(j):volume(i,j))<=capacity(i));
data:
capacity=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38;
cost=6 2 6 7 4 2 5 9
     4 9 5 3 8 5 8 2
     5 2 1 9 7 4 3 3
     7 6 7 3 9 2 7 1
     2 3 9 5 7 2 6 5
     5 5 2 2 8 1 4 3;
enddata
end

zhangc_ningbo 发表于 2012-8-6 15:44

目标函数后面少了个括号!

nightmare啊 发表于 2012-8-7 18:51

head_@_WOLF 发表于 2012-8-6 15:26 static/image/common/back.gif
min=@sum(links(i,j):cost(i,j)*volume(i,j));

谢啦,改过来啦
页: [1]
查看完整版本: 用lingo求解下面程序捞出现error code50(for函数用错),但检查没错误啊,求指点啊!