会lingo的朋友,戳进来
0.40.60.80.20.40.5第一行选两个数第二行选一个数每一竖只能有一个数目标:三个数相乘乘积最小,用lingo怎么写呢?(用到循环什么的吗?)焦急等待中,求指导...
0.4 0.6 0.8
0.2 0.4 0.5
第一行选两个数
第二行选一个数
每一竖只能有一个数
目标:三个数相乘乘积最小,用lingo怎么写呢?(用到循环什么的吗?)
焦急等待中,求指导,感激不尽!! 展开
0.2 0.4 0.5
第一行选两个数
第二行选一个数
每一竖只能有一个数
目标:三个数相乘乘积最小,用lingo怎么写呢?(用到循环什么的吗?)
焦急等待中,求指导,感激不尽!! 展开
2个回答
展开全部
model:
sets:
aa/1..3/;
bb/1..2/;
ccc(bb,aa):cc,dd,ee,ff;
endsets
data:
dd=0.4 0.6 0.8
0.2 0.4 0.5;
enddata
!constrant;
@for(bb(i)|i#eq#1:@sum(aa(j):cc(i,j))=2);
@for(bb(i)|i#eq#2:@sum(aa(j):cc(i,j))=1);
@for(aa(j):@sum(bb(i):cc(i,j))=1);
@for(ccc:@bin(cc));
@for(ccc:ee=dd*cc);
@for(ccc(i,j):ff(i,j)=@if(ee(i,j)#gt#0,ee(i,j),1));
min=@prod(ccc:ff);
end
答案是0.2 0.6 0.8 乘积为0.096
sets:
aa/1..3/;
bb/1..2/;
ccc(bb,aa):cc,dd,ee,ff;
endsets
data:
dd=0.4 0.6 0.8
0.2 0.4 0.5;
enddata
!constrant;
@for(bb(i)|i#eq#1:@sum(aa(j):cc(i,j))=2);
@for(bb(i)|i#eq#2:@sum(aa(j):cc(i,j))=1);
@for(aa(j):@sum(bb(i):cc(i,j))=1);
@for(ccc:@bin(cc));
@for(ccc:ee=dd*cc);
@for(ccc(i,j):ff(i,j)=@if(ee(i,j)#gt#0,ee(i,j),1));
min=@prod(ccc:ff);
end
答案是0.2 0.6 0.8 乘积为0.096
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询