- 在线时间
- 1 小时
- 最后登录
- 2011-6-11
- 注册时间
- 2008-12-12
- 听众数
- 2
- 收听数
- 0
- 能力
- 0 分
- 体力
- 342 点
- 威望
- 7 点
- 阅读权限
- 30
- 积分
- 181
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 15
- 主题
- 2
- 精华
- 0
- 分享
- 0
- 好友
- 4
升级   40.5% 该用户从未签到
|
一条装配线含有一系列的工作站,在最终产品的加工过程中每个工作站执行一种或几种特定的任务。装配线周期是指所有工作站完成分配给它们各自的任务所化费时间中的最大值。平衡装配线的目标是为每个工作站分配加工任务,尽可能使每个工作站执行相同数量的任务,其最终标准是装配线周期最短。不适当的平衡装配线将会产生瓶颈——有较少任务的工作站将被迫等待其前面分配了较多任务的工作站。
问题会因为众多任务间存在优先关系而变得更复杂,任务的分配必须服从这种优先关系。
这个模型的目标是最小化装配线周期。有2类约束:
① 要保证每件任务只能也必须分配至一个工作站来加工;
② 要保证满足任务间的所有优先关系。
例 有11件任务(A—K)分配到4个工作站(1—4),任务的优先次序如下图。每件任务所花费的时间如下表。
(A)
(B)
(C)
(F)
(G)
(K)
(J)
(I)
(H)
(E)
(D)
(A)
(B)
(C)
(F)
(G)
(K)
(J)
(I)
(H)
(E)
(D)
(A)
(B)
(C)
(F)
(G)
(K)
(J)
(I)
(H)
(E)
(D)
(A)
(B)
(C)
(F)
(G)
(K)
(J)
(I)
(H)
(E)
(D)
(A)
(B)
(C)
(F)
(G)
(K)
(J)
(I)
(H)
(E)
(D)
(A)
(B)
(C)
(F)
(G)
(K)
(J)
(I)
(H)
(E)
(D)
(A)
(B)
(C)
(F)
(G)
(K)
(J)
(I)
(H)
(E)
(D)
任务
A
B
C
D
E
F
G
H
I
J
K
时间
45
11
9
50
15
12
12
12
12
8
9
用lingo建模如下:
model:
sets:
task/a,b,c,d,e,f,g,h,i,j,k/:t;
station/1..4/;
pred(task,task)/a,b b,c c,f c,g d,e e,h e,i f,j g,j h,j i,j j,k/;
txs(task,station):x;
endsets
data:
t=45 11 9 50 15 12 12 12 12 8 9;
enddata
min=time;
@for(task(j) sum(station(i):x(j,i))=1);
@for(pred(i,j) sum(station(k):k*x(j,k)-k*x(i,k))>0);
@for(station(k) sum(txs(i,k):t(i)*x(i,k))<time);
@for(txs bin(x));
end
但用红色标出来的语句总显得有错误,怎么设定x的值总为1或0呢? |
|