libra13 发表于 2011-8-23 18:39

lingo优化程序求正解,各位大虾帮帮忙吧~谢谢啦~

本帖最后由 libra13 于 2011-8-23 18:39 编辑

小弟的程序如下:


!求教室最省用电量;
model:
sets:
!select为0-1变量,1代表选择该教室,num为各个教室的学生数,seats为各个教室的座位数,lights为各个教室的电灯数,power为每个电灯每小时的用电量;
class/1..45/:select,num,seats,lights,power;
endsets
data:
seats=64        88        193        193        128        120        120        120        110        120        64        247        190        210        70        85        192        195        128        120        120        120        110        160        70        256        190        210        190        205        110        160        70        256        190        210        190        190        210        200        150        150        180        70        120;
power=40        40        50        48        45        45        48        45        40        45        40        45        48        50        40        40        50        48        45        45        48        45        40        45        40        45        48        50        48        50        40        45        40        45        48        50        48        48        50        48        50        48        48        50        48;
lights=42        42        48        50        36        36        36        36        36        36        27        75        48        50        42        42        48        50        36        36        36        36        36        36        27        75        48        50        48        50        36        36        27        75        48        50        48        48        50        48        50        48        48        25        45;
enddata
!开放的教室,电灯每天工作3小时;
min=@sum(class(i):3*power(i)*lights(i)*select(i));
!每个教室有80%-90%的座位是满的;
@for(class(i):   
        num(i)=select(i)*num(i);         
        select(i)*(num(i)-0.9*seats(i))<=0;
        select(i)*(0.8*seats(i)-num(i))<=0;
     );
!教室内的学生数要大于8000*0.95*0.75;
@sum(class(i):num(i))>=0.95*0.7*8000;
@for(class(i):@bin(select(i)));
end


总是报无解,很郁闷啊!
原题给出如附件,我的程序是解决第一小问的。

筱筱无泪 发表于 2011-8-24 08:44

你用的是哪个版本的?

libra13 发表于 2011-8-24 09:22

筱筱无泪 发表于 2011-8-24 08:44 static/image/common/back.gif
你用的是哪个版本的?

我用的是lingo11.0额~

筱筱无泪 发表于 2011-8-24 09:52

libra13 发表于 2011-8-24 09:22 static/image/common/back.gif
我用的是lingo11.0额~

我用lingo11.0也出现这个问题,程序是对的,答案也出不来,你试试lingo8.0的吧,首先说一下哦,我是新手,来这也是来学习的

libra13 发表于 2011-8-24 10:04

筱筱无泪 发表于 2011-8-24 09:52 static/image/common/back.gif
我用lingo11.0也出现这个问题,程序是对的,答案也出不来,你试试lingo8.0的吧,首先说一下哦,我是新手, ...

不过我的程序问题好像不是这个,有人说是因为变量设得太多,而题目中能提炼出来的约束条件有限,lingo找不到可行解哦。

anyifree 发表于 2011-8-24 13:07

本帖最后由 anyifree 于 2011-8-24 13:07 编辑

@for(class(i):@bin(slect(i)));
有可能是版本问题。
页: [1]
查看完整版本: lingo优化程序求正解,各位大虾帮帮忙吧~谢谢啦~