mck123 发表于 2016-1-1 09:59

lingo程序编译出错,求修改!


model:
sets:
  chamber/1..5/: capacity;
  cargo/1..14/:weight;
  link(chamber,cargo):X;
endsets

data:
  @for(chamber(i):capacity(i)=480);  系统提示这句有语法错误
  weight=239.55 294.525 85.8375 379.2 397.912 398.475 34.05 42.75 143.55 12.1125 17.7 428.7375 130.725 147.675;

enddata

min=@sum(chamber(i):sum(cargo(j):X(i,j)));
@for(chamber(ii):
          @sum(cargo(j):X(ii,j)*weight(j))<=capacity(ii)
          );
@for(link(i,j):
            @bin(X(i,j)));
end

槛间人 发表于 2016-1-1 15:40

数据里 不能用函数吧

liwenhui 发表于 2016-1-1 22:30

本帖最后由 liwenhui 于 2016-1-1 22:32 编辑

略作修改,把capacity作为约束的形式放进去,可以求解。你也可以用数据向量的形式输入,但不能用@for来输入。model:
sets:
  chamber/1..5/: capacity;
  cargo/1..14/:weight;
  link(chamber,cargo):X;
endsets

data:
  weight=239.55 294.525 85.8375 379.2 397.912 398.475 34.05 42.75 143.55 12.1125 17.7 428.7375 130.725 147.675;
enddata

min=@sum(chamber(i):@sum(cargo(j):X(i,j)));
        @for(chamber(i):capacity(i)=480);
        @for(chamber(ii):@sum(cargo(j):X(ii,j)*weight(j))<=capacity(ii));
        @for(link(i,j):@bin(X(i,j)));
end运行结果:
Global optimal solution found.
  Objective value:                              0.000000
  Objective bound:                              0.000000
  Infeasibilities:                              0.000000
  Extended solver steps:                               0
  Total solver iterations:                             0

  Model Class:                                      PILP

  Total variables:                     70
  Nonlinear variables:                  0
  Integer variables:                   70

  Total constraints:                    6
  Nonlinear constraints:                0

  Total nonzeros:                     140
  Nonlinear nonzeros:                   0

                                Variable           Value        Reduced Cost
                            CAPACITY( 1)        480.0000            0.000000
                            CAPACITY( 2)        480.0000            0.000000
                            CAPACITY( 3)        480.0000            0.000000
                            CAPACITY( 4)        480.0000            0.000000
                            CAPACITY( 5)        480.0000            0.000000
                              WEIGHT( 1)        239.5500            0.000000
                              WEIGHT( 2)        294.5250            0.000000
                              WEIGHT( 3)        85.83750            0.000000
                              WEIGHT( 4)        379.2000            0.000000
                              WEIGHT( 5)        397.9120            0.000000
                              WEIGHT( 6)        398.4750            0.000000
                              WEIGHT( 7)        34.05000            0.000000
                              WEIGHT( 8)        42.75000            0.000000
                              WEIGHT( 9)        143.5500            0.000000
                             WEIGHT( 10)        12.11250            0.000000
                             WEIGHT( 11)        17.70000            0.000000
                             WEIGHT( 12)        428.7375            0.000000
                             WEIGHT( 13)        130.7250            0.000000
                             WEIGHT( 14)        147.6750            0.000000
                                X( 1, 1)        0.000000            1.000000
                                X( 1, 2)        0.000000            1.000000
                                X( 1, 3)        0.000000            1.000000
                                X( 1, 4)        0.000000            1.000000
                                X( 1, 5)        0.000000            1.000000
                                X( 1, 6)        0.000000            1.000000
                                X( 1, 7)        0.000000            1.000000
                                X( 1, 8)        0.000000            1.000000
                                X( 1, 9)        0.000000            1.000000
                               X( 1, 10)        0.000000            1.000000
                               X( 1, 11)        0.000000            1.000000
                               X( 1, 12)        0.000000            1.000000
                               X( 1, 13)        0.000000            1.000000
                               X( 1, 14)        0.000000            1.000000
                                X( 2, 1)        0.000000            1.000000
                                X( 2, 2)        0.000000            1.000000
                                X( 2, 3)        0.000000            1.000000
                                X( 2, 4)        0.000000            1.000000
                                X( 2, 5)        0.000000            1.000000
                                X( 2, 6)        0.000000            1.000000
                                X( 2, 7)        0.000000            1.000000
                                X( 2, 8)        0.000000            1.000000
                                X( 2, 9)        0.000000            1.000000
                               X( 2, 10)        0.000000            1.000000
                               X( 2, 11)        0.000000            1.000000
                               X( 2, 12)        0.000000            1.000000
                               X( 2, 13)        0.000000            1.000000
                               X( 2, 14)        0.000000            1.000000
                                X( 3, 1)        0.000000            1.000000
                                X( 3, 2)        0.000000            1.000000
                                X( 3, 3)        0.000000            1.000000
                                X( 3, 4)        0.000000            1.000000
                                X( 3, 5)        0.000000            1.000000
                                X( 3, 6)        0.000000            1.000000
                                X( 3, 7)        0.000000            1.000000
                                X( 3, 8)        0.000000            1.000000
                                X( 3, 9)        0.000000            1.000000
                               X( 3, 10)        0.000000            1.000000
                               X( 3, 11)        0.000000            1.000000
                               X( 3, 12)        0.000000            1.000000
                               X( 3, 13)        0.000000            1.000000
                               X( 3, 14)        0.000000            1.000000
                                X( 4, 1)        0.000000            1.000000
                                X( 4, 2)        0.000000            1.000000
                                X( 4, 3)        0.000000            1.000000
                                X( 4, 4)        0.000000            1.000000
                                X( 4, 5)        0.000000            1.000000
                                X( 4, 6)        0.000000            1.000000
                                X( 4, 7)        0.000000            1.000000
                                X( 4, 8)        0.000000            1.000000
                                X( 4, 9)        0.000000            1.000000
                               X( 4, 10)        0.000000            1.000000
                               X( 4, 11)        0.000000            1.000000
                               X( 4, 12)        0.000000            1.000000
                               X( 4, 13)        0.000000            1.000000
                               X( 4, 14)        0.000000            1.000000
                                X( 5, 1)        0.000000            1.000000
                                X( 5, 2)        0.000000            1.000000
                                X( 5, 3)        0.000000            1.000000
                                X( 5, 4)        0.000000            1.000000
                                X( 5, 5)        0.000000            1.000000
                                X( 5, 6)        0.000000            1.000000
                                X( 5, 7)        0.000000            1.000000
                                X( 5, 8)        0.000000            1.000000
                                X( 5, 9)        0.000000            1.000000
                               X( 5, 10)        0.000000            1.000000
                               X( 5, 11)        0.000000            1.000000
                               X( 5, 12)        0.000000            1.000000
                               X( 5, 13)        0.000000            1.000000
                               X( 5, 14)        0.000000            1.000000

                                     Row    Slack or Surplus      Dual Price
                                       1        0.000000           -1.000000
                                       2        0.000000            0.000000
                                       3        0.000000            0.000000
                                       4        0.000000            0.000000
                                       5        0.000000            0.000000
                                       6        0.000000            0.000000
                                       7        480.0000            0.000000
                                       8        480.0000            0.000000
                                       9        480.0000            0.000000
                                      10        480.0000            0.000000
                                      11        480.0000            0.000000



页: [1]
查看完整版本: lingo程序编译出错,求修改!