数学建模社区-数学中国

标题: 为什么这里的@bin不能限制住x是0-1变量了?? [打印本页]

作者: reptile    时间: 2014-8-6 17:25
标题: 为什么这里的@bin不能限制住x是0-1变量了??
model:
sets:
course/1..9/:x;
endsets
min=@sum(course(i):x);
x1+x2+x3+x4+x5>=2;
x3+x5+x6+x8+x9>=3;
x4+x6+x7+x9>=2;
2*x3-x1-x2<=0;
x4-x7<=0;
2*x5-x1-x2<=0;
x6-x7<=0;
x8-x5<=0;
2*x9-x1-x2<=0;
@for(course(i):@bin(x));
end
下面是题目
题目第一问
求大神解救 这是姜启源数学模型4的选课策略问题我编的程序,新手求教啊!

我求解的结果如下:
  Global optimal solution found.
  Objective value:                              0.000000
  Objective bound:                              0.000000
  Infeasibilities:                             0.1110223E-15
  Extended solver steps:                               0
  Total solver iterations:                             1


                       Variable           Value        Reduced Cost
                             X1        0.000000            0.000000
                             X2        1.333333            0.000000
                             X3       0.6666667            0.000000
                             X4        0.000000            0.000000
                             X5        0.000000            0.000000
                             X6        2.333333            0.000000
                             X8        0.000000            0.000000
                             X9        0.000000            0.000000
                             X7        2.333333            0.000000
                          X( 1)        0.000000            1.000000
                          X( 2)        0.000000            1.000000
                          X( 3)        0.000000            1.000000
                          X( 4)        0.000000            1.000000
                          X( 5)        0.000000            1.000000
                          X( 6)        0.000000            1.000000
                          X( 7)        0.000000            1.000000
                          X( 8)        0.000000            1.000000
                          X( 9)        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        2.666667            0.000000
                              5        0.000000            0.000000
                              6        2.333333            0.000000
                              7        1.333333            0.000000
                              8        0.000000            0.000000
                              9        0.000000            0.000000
                             10        1.333333            0.000000


是什么情况呀??
作者: madio    时间: 2014-8-7 08:59
你这个代码写的有问题,x是定义了一个集,本身这个集就有x(1)-x(9)这几个变量,但是你在模型中用的却是x1,x2-x9的这样几个变量,注意这是不一样的变量名,@for(course(i):@bin(x));这个语句限定了x(1)-x(9)是0-1变量,并不是x1-x9,所以出现了非整数的结果。说明你对于集的使用还是不理解,建议看看我在今年5月份地区赛培训中讲的lingo课程。
作者: wujianjack2    时间: 2014-8-7 09:51
二楼madio说得对,你参考下。




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