数学建模社区-数学中国

标题: 设定集合以后为什么不出结果? [打印本页]

作者: WonderForYou    时间: 2009-8-16 17:24
标题: 设定集合以后为什么不出结果?
直接用变量出结果
  MODEL:
   [_1] MAX= 4800 * T1 + 5600 * T2 - 10000 * X1 - 8000 * X2 - 6000 * X3 ;
   [_2] ( X1 - 500 ) * X2 = 0 ;
   [_3] ( X2 - 500 ) * X3 = 0 ;
   [_4] X1 <= 500 ;
   [_5] X2 <= 500 ;
   [_6] X3 <= 500 ;
   [_7] - X1 - X2 - X3 + A1 + A2 <= 500 ;
   [_8] - T1 - T2 + X1 + X2 + X3 >= - 1500 ;
   [_9] A1 - 0.5 * T1 >= 0 ;
   [_10] A2 - 0.6 * T2 >= 0 ;
  END

用集合不出结果
  MODEL:
   [_1] MAX= - 10000 * X_1 - 8000 * X_2 - 6000 * X_3 + 4800 * T_1 + 5600 *
   T_2 ;
   [_2] ( X_1 - 500 ) * X_2 = 0 ;
   [_3] ( X_2 - 500 ) * X_3 = 0 ;
   [_4] X_1 <= 500 ;
   [_5] X_2 <= 500 ;
   [_6] X_3 <= 500 ;
   [_7] - X_1 - X_2 - X_3 + A_1 + A_2 <= 500 ;
   [_8] X_1 + X_2 + X_3 - T_1 - T_2 >= - 1500 ;
   [_9] A_1 - 0.5 * T_1 >= 0 ;
   [_10] A_2 - 0.6 * T_2 >= 0 ;
  END

源程序1:
max=4800*t1+5600*t2-10000*x1-8000*x2-6000*x3;
(x1-500)*x2=0;
(x2-500)*x3=0;
x1<=500;
x2<=500;
x3<=500;
a1+a2<=x1+x2+x3+500;
x1+x2+x3+1500>=t1+t2;
2*a1>=t1;
5*a2>=3*t2;
end

源程序2:
sets:
o/1..2/:p,a,t,r;
q/1..3/:p1,x;
endsets

data:
r=0.5 0.6;
p=4800 5600;
p1=10000 8000 6000;
enddata

max=@sum(o(i):p(i)*t(i))-@sum(q(i):x(i)*p1(i));
(x(1)-500)*x(2)=0;
(x(2)-500)*x(3)=0;
@for(q(i):x(i)<=500);
@sum(o(i):a(i))<=@sum(q(i):x(i))+500;
@sum(q(i):x(i))+1500>=@sum(o(i):t(i));
@for(o(i):a(i)>=t(i)*r(i));
end

为什么?
作者: firstboy0513    时间: 2009-8-17 11:57
可以运行的啊,我把你的两个程序运行如下结果:
   Local optimal solution found.
   Objective value:                              4800000.
   Total solver iterations:                            24


                       Variable           Value        Reduced Cost
                             T1        1000.000            0.000000
                             T2        0.000000            160.0000
                             X1        0.000000            400.0000
                             X2        0.000000            0.000000
                             X3        0.000000            0.000000
                             A1        500.0000            0.000000
                             A2        0.000000            0.000000

                            Row    Slack or Surplus      Dual Price
                              1        4800000.            1.000000
                              2        0.000000           -3.200000
                              3        0.000000           -7.200000
                              4        500.0000            0.000000
                              5        500.0000            0.000000
                              6        500.0000            0.000000
                              7      -0.5273080E-08        9600.000
                              8        500.0000            0.000000
                              9        0.000000           -4800.000
                             10        0.000000           -1920.000
-----------------------------------------------------------------------------------
   Local optimal solution found.
   Objective value:                              4800000.
   Total solver iterations:                            24


                       Variable           Value        Reduced Cost
                          P( 1)        4800.000            0.000000
                          P( 2)        5600.000            0.000000
                          A( 1)        500.0000            0.000000
                          A( 2)       0.1180979E-08        0.000000
                          T( 1)        1000.000            0.000000
                          T( 2)        0.000000            160.0000
                          R( 1)       0.5000000            0.000000
                          R( 2)       0.6000000            0.000000
                         P1( 1)        10000.00            0.000000
                         P1( 2)        8000.000            0.000000
                         P1( 3)        6000.000            0.000000
                          X( 1)        0.000000            400.0000
                          X( 2)        0.000000            0.000000
                          X( 3)        0.000000            0.000000

                            Row    Slack or Surplus      Dual Price
                              1        4800000.            1.000000
                              2        0.000000           -3.200000
                              3        0.000000           -7.200000
                              4        500.0000            0.000000
                              5        500.0000            0.000000
                              6        500.0000            0.000000
                              7        0.000000            9600.000
                              8        500.0000            0.000000
                              9        0.000000           -9600.000
                             10       0.1180979E-08       -9600.000
作者: WonderForYou    时间: 2009-8-17 18:10
我第二个程序是Error Code 201:the model is locally infeasible. however, feasible solutions may or may not exist in other regions. Consider invoking the global solver  or the  multistart feature

  Solution is locally infeasible
  Infeasibilities:                             0.2707537E-03
  Total solver iterations:                            45


                       Variable           Value        Reduced Cost
                          P( 1)        4800.000            0.000000
                          P( 2)        5600.000            0.000000
                          A( 1)        0.000000            0.000000
                          A( 2)        1500.000            0.000000
                          T( 1)        0.000000            200.0000
                          T( 2)        2500.000            0.000000
                          R( 1)       0.5000000            0.000000
                          R( 2)       0.6000000            0.000000
                         P1( 1)        10000.00            0.000000
                         P1( 2)        8000.000            0.000000
                         P1( 3)        6000.000            0.000000
                          X( 1)        500.0000            0.000000
                          X( 2)        500.0000            0.000000
                          X( 3)        0.000000            0.000000

                            Row    Slack or Surplus      Dual Price
                              1        5000000.            1.000000
                              2      -0.2707537E-03       -4.000000
                              3        0.000000           0.3693396E+10
                              4       0.5415075E-06        0.000000
                              5      -0.5415071E-06        0.000000
                              6        500.0000            0.000000
                              7        0.000000            6000.000
                              8        0.000000           -2000.000
                              9        0.000000           -6000.000
                             10        0.000000           -6000.000

PS:我用的是Lingo11




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