这个是我的毕业设计,老师让用lingo做,我按例子一步步做下来可是怎末也不对,希望高手指点一下!
数学模型:Min z=∑∑∑cijxijk +∑∑∑(tsi-tai)xijk+∑∑∑(tsi+cij-tdi)xijk,
约束:∑j∑kxijk=1
∑ixijk<=1,
(tsi+cij)xij,k-1<=tskxijk,
xijk=1,泊位j上停靠着第k艘船i cij :泊位j上船i的操作时间 我设的:m每艘船上的箱数,a到达时间,l离开时间,r每个泊位的效率, 我设的:m每艘船上的箱数,a到达时间,l离开时间,r每个泊位的效率, c泊位上的工作时间,t开始工作的时间
MODEL:
=0其他
i:
船的号码
j:泊位号码
k: 停泊顺序
tai :船i到达的时间
tsi:船i开始工作的时间
tdi :船i离开的时间
sets:
ship/1..11/:m,a,l,x,i;
berth/1..4/:r,j;
link(ship,berth):c,t;
endsets
data:
m=428 45 259 172 684 356 435 350 150 250 333;
a=9 9 0.5 21 0.5 8.5 7 11.5 21.5 22 9;
l=20 21 13 23.83 23.83 21 20.5 23.83 23.83 23.83 23.83;
r=90 60 30 30;
enddata
!Objective function;
[OBJ]min=@sum(link(i,j,k):c(i,j)*x(i,j,k))+@sum(link(i,j,k):t(i)*x(i,j,k)-a(i)*x(i,j
,k));
@for(link(i,j):c(i,j)*r(j)=m(i));
@for(link(j,k)sum(link(j,k):x(i,j,k)=1));
@for(ship(i)sum(ship(i):x(i,j,k));
@for(link(i,j,k):t(i)*x(i,k-1)+c(i,j)*x(i,j,k-1)<t(k)*x(i,j,k);
@for(k<11,k>0);
end
cij :泊位j上船i的操作时间
tai :船i到达的时间
tsi:船i开始工作的时间
tdi :船i离开的时间
我设的:m每艘船上的箱数,a到达时间,l离开时间,r每个泊位的效率,
我设的:m每艘船上的箱数,a到达时间,l离开时间,r每个泊位的效率,
c泊位上的工作时间,t开始工作的时间
MODEL:
sets:
ship/1..11/:m,a,l,x,i;
berth/1..4/:r,j;
link(ship,berth):c,t;
endsets
data:
m=428 45 259 172 684 356 435 350 150 250 333;
a=9 9 0.5 21 0.5 8.5 7 11.5 21.5 22 9;
l=20 21 13 23.83 23.83 21 20.5 23.83 23.83 23.83 23.83;
r=90 60 30 30;
enddata
!Objective function;
[OBJ]min=@sum(link(i,j,k):c(i,j)*x(i,j,k))+@sum(link(i,j,k):t(i)*x(i,j,k)-a(i)*x(i,j
,k));
@for(link(i,j):c(i,j)*r(j)=m(i));
@for(link(j,k)sum(link(j,k):x(i,j,k)=1));
@for(ship(i)sum(ship(i):x(i,j,k));
@for(link(i,j,k):t(i)*x(i,k-1)+c(i,j)*x(i,j,k-1)<t(k)*x(i,j,k);
@for(k<11,k>0);
end
不知道贴上去后为什么那么乱...就是下面这个程序,一直有错,高手帮忙改下...
MODEL:
sets:
ship/1..11/:m,a,l,x,i,k;
berth/1..4/:r,j;
link(ship,berth):c,t;
endsets
data:
m=428 45 259 172 684 356 435 350 150 250 333;
a=9 9 0.5 21 0.5 8.5 7 11.5 21.5 22 9;
l=20 21 13 23.83 23.83 21 20.5 23.83 23.83 23.83 23.83;
r=90 60 30 30;
enddata
!Objective function;
[OBJ]min=@sum(link(i,j,k):c(i,j)*x(i,j,k))+@sum(link(i,j,k):t(i)*x(i,j,k)-a(i)*x(i,j
,k));
@for(link(i,j):c(i,j)*r(j)=m(i));
@for(link(j,k)sum(link(j,k):x(i,j,k)=1));
@for(ship(i)sum(ship(i):x(i,j,k));
@for(link(i,j,k):t(i)*x(i,k-1)+c(i,j)*x(i,j,k-1)<t(k)*x(i,j,k);
@for(k<11,k>0);
end
您好.
模型是老师给的,lingo的程序是我自己按例子写的,那个k是船停泊的顺序,我也不知道改怎末表述...
是要在sets里面多加个么?
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |