下面是LINGO代码,求解时老是显示出错,麻烦各位大虾帮忙改改,是不是因为约束太多了,超过LINGO的求解范围了呢?要是这样可否提供一下MATLAB的解决方案勒,偶MATLAB基础不好。。。谢谢~~~
sets:
plane/1..10/:x,fine,earliest,lastest,target;
link(plane,plane):wait,y;
endsets
data:
earliest=129 195 89 96 110 120 124 126 135 160;
lastest=559 744 510 521 555 576 577 573 591 657;
target=155 258 98 106 123 135 138 140 150 180;
fine=10 10 30 30 30 30 30 30 30 30;
wait=
0 3 15 15 15 15 15 15 15 15 !1;
3 0 15 15 15 15 15 15 15 15 !2;
15 15 0 8 8 8 8 8 8 8 !3;
15 15 8 0 8 8 8 8 8 8 !4;
15 15 8 8 0 8 8 8 8 8 !5;
15 15 8 8 8 0 8 8 8 8 !6;
15 15 8 8 8 8 0 8 8 8 !7;
15 15 8 8 8 8 8 0 8 8 !8;
15 15 8 8 8 8 8 8 0 8 !9;
15 15 8 8 8 8 8 8 8 0; !10;
enddata
min=@sum(plane:fine(i)*@abs(x(i)-target(i)));
@for(plane(i)bnd(earliest(i),x(i),lastest(i)));
@for(plane(i)for(plane(j)|i#ne#j:y(i,j)=@if(x(i)#le#x(j),1,0)));
@for(link(i,j)|i#ne#jy(i,j)+y(j,i))=1);
@for(plane(i)for(plane(j)|i#ne#j:x(i)+wait(i,j)<=x(j)));
@for(planegin(x));
@for(linkbin(y));
end



雷达卡


京公网安备 11010802022788号







