sets:legs/1..4/:t;modes/1,2,3/;link1(modes,legs):ctrans,use;

midaswu2022-10-04 11:39:541条回答

sets:
legs/1..4/:t;
modes/1,2,3/;
link1(modes,legs):ctrans,use;
link3(modes,modes,legs):y;
link2(modes,modes):cchg;
endsets
data:
ctrans=30 25 40 60
25 40 45 50
40 20 50 45;
cchg=0 5 12
8 0 10
15 10 0;
enddata
@for(legs(i):
@sum(modes(j):use(i,j))=1);
@for(legs(i):
@sum(link2(j,k)|j#ne#k #and# i#le#3:
y(i,j,k))=1);
@for(legs(i)| i#le#3 :
@for(link2(j,k)|j#ne#k :
use(j,i)+use(k,i+1)>=2*y(j,k,i)););
min=@sum(link1:ctrans*use)+@sum(link3(i,j,k)|k#le#3:cchg(j,k)*y(i,j,k));
定义X为01变量;
@for( link1(i,j):@bin( use(i,j)));
定义X为01变量;
@for( link3(i,j,k)|k#le#3:@bin(y(i,j,k)));
end

已提交,审核后显示!提交回复

共1条回复
only小芸 共回答了17个问题 | 采纳率88.2%
改了一下,@for(legs(i):
@sum(modes(j):use(i,j))=1);
将use(i,j)改成use(j,i)与集合的定义匹配
但是没有可行性解
这是模型的问题
1年前

相关推荐