前言
在流水车间调度问题中,一般默认前后两台设备之间的缓冲大小是无限大的,设备总是处于可利用状态,如图 2.1 所示,在所有 m 台设备之间都有一个缓冲区,缓冲能力默认无限大,当工件 1 在设备 1 上加工完成后,不论设备 2 是否处于闲置状态,工件 1 都可以直接放置在缓冲区 1,同时设备 1 可以加工下一个工件。然而在实际生产过程中,设备之间的缓冲区能力不可能无限大,总是有限的或甚至为零,这就容易造成加工过程中工件出现阻塞,设备出现停滞,影响前后工序加工。由于在流水车间生产过程中没有缓冲区域或者受到生产过程中某种因素制约使得已加工好的工件被阻塞在当前设备上,这种情况就被定义为阻塞流水车间调度问题。
一、分类
1.无阻塞约束(without blocking,Wb)
在经典的流水车间调度中各类设备是无阻塞约束的,缓冲空间容量被定义为无限大,所以在生产过程中工件不存在阻塞情况,这类问题可称为 Wb(无阻塞)约束,即设备在完成当前工件加工后可立即用于执行下一个工件加工。
2.Rsb(Release when starting blocking)阻塞约束
一般情况下,工件i+1在上游设备 j 上保持阻塞,直到设备 j+1 开始处理工件i,设备 j 才能开始处理工件 i+1,出现这种情况时被定义为 RSb 阻塞。如下图 2.3给出了 4×4 的 RSb 阻塞流水车间调度问题的甘特图,当设备 M1 完成 J2 加工后保持阻塞,不能直接加工 J3,直到设备 M2 开始加工 J2 时,设备 M1 才能开始加工工件 J3。
在实际应用中,RSb 阻塞类型一般出现流程型生产中,比如建筑原材料制造、钢铁冶炼、电子制造、生物制药等行业生产过程中。
3.RCb(Release when Completing Blocking)阻塞约束
RCb 阻塞约束是阻塞流水车间的第三种阻塞类型,这种阻塞类型可以定义为:上游设备 j 在下游设备 j+1 完成工件 i 之前一直保持闲置状态,直到工件 i 在设备j+1 完成加工并且工件 i 完全离开设备 j+1 时,设备 j 才能开始处理可用的任务i+1,如下图 2.4 给出了 5×4 的 RCb 阻塞流水车间调度问题的甘特图,设备 M1 完成 J2 加工后保持闲置,只有当设备 M3 开始加工 J2,设备 M1 才能开始加工 J3。
RCb 阻塞约束一般出现在工艺要求较复杂或工艺程序较长的生产现场,比如航空零部件制造行业、设备制造和废物回收处理行业等。
4. RCb*(Release when Completing Blocking∗)阻塞约束
RCb阻塞约束可以定义:上游设备 j 在下游设备 j+1 完成工件 i 之前一直保持闲置状态,直到工件 i 在设备 j+1 完成加工,设备 j 才能开始处理可用的任务 i+1。该类阻塞约束与上述 RCb 阻塞比较类似,其中只有一个关键区别,即无论工件 i 是否完全离开设备 j+1,在 RCb阻塞约束下,设备 j 都可以处理可用的任务 i+1。如下图 2.5 给出了 5×4 的 RCb*阻塞流水车间调度问题的甘特图,设备 M1 完成 J2 加工后保持闲置状态,直到设备 M2 完成 J2 加工任务,设备 M1 才能开始加工 J3。
该类约束是阻塞流水车间的新研究方向,常常出现在苹果酒酿造行业。
二、计算
为了说明 Fm|blocking|Cmax 问题的特点,图 2.1 给出了 3 个工件、3 台机器的阻塞流水车间调度的甘特图。从图 2.1 可以看出,当工件 2 在机器 1 上加工完毕时,由于机器 2 正在加工工件 1,所以工件 2 将被阻塞在机器 1 上,这就造成了工件 3 的延迟开工。类似地,工件 3 在机器 2 上加工完毕时,由于机器 3 正在加工工件 2,所以工件 3 只能等到工件 2 加工完毕后才能运送到机器 2 上。此外,由于工件 2 在机器 2 上长时间加工,所以当工件 1 在机器 3 上完成加工时,没有工件可以运输到机器 3 上,这造成了机器 1 的空闲,在一定程度上也造成了资源的浪费。
设工件集合 N={1, 2, … , n}和机器集合 M={1, 2, … , m}。令 Pi, j表示工件 i 在第 j 台机器上的加工时间,Dk, j 表示第 k 个位置上的工件在第 j 台机器上的离开时间。基于上述约束条件及调度目标,Fm|blocking|Cmax 的数学模型定义如下:
总结
阻塞模型需要考虑与无阻塞模型的区别,在目标函数上,两者之间的转化相对简单。