跪求大神帮忙编个lingo程序,约束条件如图,其中yzt都是只取(0,1)

2025-05-07 20:22:10
推荐回答(1个)
回答1:

按照你的约束,求解代码如下:

model:

sets:
set1/1..92/: z;
set2(set1, set1): t, y;
endsets


min = @sum(set1(I): z(I));

@for(set1(I): @for(set1(J): y(I, J) <= t(I, J)));

@for(set1(J): @sum(set1(I): y(I, J)) = 1);

@for(set1(I): @for(set1(J): y(I, J) <= z(I)));

@for(set1(I) | I #le# 20: z(I) = 1);

@for(set1(I): @for(set1(J): @bin(y(I, J))));

@for(set1(I): @bin(z(I)));

end

求解有结果,但是约束是不是太松了。 因为 z_21 到 z_92 的取值都是 0.


报告: