lingo MODEL:sets:banci/1..12/:a1,a2,a3,a4,a5,b;endsetsmin=z;z=@smax(a1(1)+a2(1)+a3(1)+a4(1)+a5(1),a1(2)+a2(2)+a3(2)+a4(2)+a5(2),a1(2)+a2(2)+a3(2)+a4(2)+a5(2),a1(3)+a2(3)+a3(3)+a4(3)+a5(3),a1(4)+a2(4)+a3(4)+a4(4)+a5(4),a1(5)+a2(5)+a3(5)+a4(5)+a5(5),a1

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 18:27:14

lingo MODEL:sets:banci/1..12/:a1,a2,a3,a4,a5,b;endsetsmin=z;z=@smax(a1(1)+a2(1)+a3(1)+a4(1)+a5(1),a1(2)+a2(2)+a3(2)+a4(2)+a5(2),a1(2)+a2(2)+a3(2)+a4(2)+a5(2),a1(3)+a2(3)+a3(3)+a4(3)+a5(3),a1(4)+a2(4)+a3(4)+a4(4)+a5(4),a1(5)+a2(5)+a3(5)+a4(5)+a5(5),a1
lingo
MODEL:
sets:
banci/1..12/:a1,a2,a3,a4,a5,b;
endsets
min=z;
z=@smax(a1(1)+a2(1)+a3(1)+a4(1)+a5(1),a1(2)+a2(2)+a3(2)+a4(2)+a5(2),a1(2)+a2(2)+a3(2)+a4(2)+a5(2),a1(3)+a2(3)+a3(3)+a4(3)+a5(3),a1(4)+a2(4)+a3(4)+a4(4)+a5(4),a1(5)+a2(5)+a3(5)+a4(5)+a5(5),a1(6)+a2(6)+a3(6)+a4(6)+a5(6),a1(7)+a2(7)+a3(7)+a4(7)+a5(7),a1(8)+a2(8)+a3(8)+a4(8)+a5(8),a1(9)+a2(9)+a3(9)+a4(9)+a5(9),a1(10)+a2(10)+a3(10)+a4(10)+a5(10),a1(11)+a2(11)+a3(11)+a4(11)+a5(11),a1(12)+a2(12)+a3(12)+a4(12)+a5(12));
@for(banci(I):a1(I)=1;
b(1)=@if(a1(1)+a2(1)+a3(1)+a4(1)+a5(1) #ge#1,1,0);
b(2)=@if(a1(2)+a2(2)+a3(2)+a4(2)+a5(2) #ge#1,1,0);
b(3)=@if(a1(3)+a2(3)+a3(3)+a4(3)+a5(3) #ge#1,1,0);
b(4)=@if(a1(4)+a2(4)+a3(4)+a4(4)+a5(4) #ge#1,1,0);
b(5)=@if(a1(5)+a2(5)+a3(5)+a4(5)+a5(5) #ge#1,1,0);
b(6)=@if(a1(6)+a2(6)+a3(6)+a4(6)+a5(6) #ge#1,1,0);
b(7)=@if(a1(7)+a2(7)+a3(7)+a4(7)+a5(7) #ge#1,1,0);
b(8)=@if(a1(8)+a2(8)+a3(8)+a4(8)+a5(8) #ge#1,1,0);
b(9)=@if(a1(9)+a2(9)+a3(9)+a4(9)+a5(9) #ge#1,1,0);
b(10)=@if(a1(10)+a2(10)+a3(10)+a4(10)+a5(10) #ge#1,1,0);
b(11)=@if(a1(11)+a2(11)+a3(11)+a4(11)+a5(11) #ge#1,1,0);
b(12)=@if(a1(12)+a2(12)+a3(12)+a4(12)+a5(12) #ge#1,1,0);
b(6)+b(7)+b(8)+b(9)+b(10)+b(11)+b(12)

lingo MODEL:sets:banci/1..12/:a1,a2,a3,a4,a5,b;endsetsmin=z;z=@smax(a1(1)+a2(1)+a3(1)+a4(1)+a5(1),a1(2)+a2(2)+a3(2)+a4(2)+a5(2),a1(2)+a2(2)+a3(2)+a4(2)+a5(2),a1(3)+a2(3)+a3(3)+a4(3)+a5(3),a1(4)+a2(4)+a3(4)+a4(4)+a5(4),a1(5)+a2(5)+a3(5)+a4(5)+a5(5),a1
我试了 没问题 注意要用global solver
加上这个试试@for(banci:@gin(a1);@gin(a2);@gin(a3);@gin(a4);@gin(a5);@bin(b));

@for(banci(I):a1(I)<=1); @sum(banci:a1)=5;
这两行代码是不是应该把1改成5或者把5改成1?
如果保持原样不修改的话,我算的都是没有可行解。如果把5改成1再加上@gin();@bin();可以求出结果是4;
你的代码可以化简:
MODEL:
sets:
banci/1..12/:b;
c/1..5/:d...

全部展开

@for(banci(I):a1(I)<=1); @sum(banci:a1)=5;
这两行代码是不是应该把1改成5或者把5改成1?
如果保持原样不修改的话,我算的都是没有可行解。如果把5改成1再加上@gin();@bin();可以求出结果是4;
你的代码可以化简:
MODEL:
sets:
banci/1..12/:b;
c/1..5/:d1,d2;
Set_a(c,banci):a;
endsets
data:
d1=1 7 10 5 8;
enddata
min=z;
z=@max(banci(i):@sum(c(j):a(j,i)));
@for(c(i):@for(banci(j):a(i,j)<=d1(i)));
@for(c(i):@sum(banci(j):a(i,j))=d1(i));
@for(banci(j)|j#le#5:@sum(c(i):a(i,j))>=1);
@for(banci(j):b(j)=@if(@sum(c(i):a(i,j))#ge#1,1,0));
@sum(banci(j)|j#ge#6:b(j))<=3;
@for(set_a:@gin(a));
@for(banci:@bin(b));
end
我用以上代码求出这个结果的。

收起