||
以上模型引入了0-1变量,程序解算如下,
问题1
model:
sets:
task/1..7/:G,ts,tp,tc,C;!集合/成员(属性下标示)/属性;
var01/1..21/:u;
endsets
data:
G=2 5 4 0 0 8 9;
tp=5 6 8 4 2 4 2;
C=10 21 15 10 5 15 22;
enddata
min=@smax(tc(1),tc(2),tc(3),tc(4),tc(5),tc(6),tc(7));!目标函数一;
@for(task(i):ts(i)>=G(i));
@for(task(i):tc(i)=ts(i)+tp(i));
@for(task(i):@for(task(j)|j #gt# i:u*(ts(j)-tc(i))+(1-u)*(ts(i)-tc(j))>0));
@for(var01:@bin(u));
End
问题2
model:
sets:
task/1..7/:G,ts,tp,tc,C;!集合/成员(属性下标示)/属性;
var01/1..21/:u;
endsets
data:
G=2 5 4 0 0 8 9;
tp=5 6 8 4 2 4 2;
C=10 21 15 10 5 15 22;
enddata
min=@sum(task(i):(tc(i)-G(i))/7);!目标函数二;
@for(task(i):ts(i)>=G(i));
@for(task(i):tc(i)=ts(i)+tp(i));
@for(task(i):@for(task(j)|j #gt# i:u*(ts(j)-tc(i))+(1-u)*(ts(i)-tc(j))>0));
@for(var01:@bin(u));
End
问题3
model:
sets:
task/1..7/:G,ts,tp,tc,C;!集合/成员(属性下标示)/属性;
var01/1..21/:u;
endsets
data:
G=2 5 4 0 0 8 9;
tp=5 6 8 4 2 4 2;
C=10 21 15 10 5 15 22;
enddata
min=1/2*@sum(task(i):@abs(tc(i)-C(i))+tc(i)-C(i));!目标函数三;
@for(task(i):ts(i)>=G(i));
@for(task(i):tc(i)=ts(i)+tp(i));
@for(task(i):@for(task(j)|j #gt# i:u*(ts(j)-tc(i))+(1-u)*(ts(i)-tc(j))>0));
@for(var01:@bin(u));
!for中嵌套for,
End
结果和上次一模一样,不再多写。(注意,最后一个结果先前的是32,这次是34,本人也在分析原因)
原因:
Lingo软件不可靠,对于一些复杂的嵌套和变量的限定支持的力度不够,由此,也可以看到美国教授研发的力度还不够智能,所以,在计算方面不能仅依靠国外的软件,尤其是复杂性分析方面。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-20 02:10
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社