上一篇介绍了分布式置换流水车间的基本模型,该模型以最大完工时间为优化目标,对工厂排产进行建模,影响机器上工件完工时间的主要因素是同一工件在前一机器上的加工状态(离开时间)以及同一机器上前一工件的加工状态(离开时间)。然而,现实生产环境面临着很多加工约束,接下来的几篇将对具有加工约束的分布式流水车间调度问题的建模进行介绍。
阻塞(零缓冲)流水车间
在阻塞车间中,机器之间没有缓冲区(缓冲区大小为0),因此当工件在当前机器上处理完后,必须等待下一机器可用(机器上的前一工件离开该机器)才能转移至该机器进行加工。在等待过程中该工件在转移至下一机器的操作“被阻塞”,同时该工件也阻塞了所在机器上下一工件的转移(若前一工件在前一机器完成加工),阻塞约束阻止在阻塞机器上处理其他作业。
如上图所示,作业J1在工厂1的机器M1上完成,但由于机器M1和机器M2之间没有中间缓冲区,作业J1不能立即离开机器M1。作业J1在机器M1上被阻塞,直到机器M2可用为止。类似地,作业J2阻塞工厂2的机器M1上的作业J3,作业J4阻塞工厂1的机器M2上的作业J4。
阻塞流水车间还应满足经典流水车间的其他假设:
- 所有作业都是独立的,一开始就可以处理
- 每台机器上每个作业的处理时间是预先确定的非负的
- 机器的设置时间和操作之间的运输时间可以忽略不计
- 每台机器一次只能处理一项工作,每个作业一次只由一台机器处理
- 一旦机器开始处理,每个作业必须不间断地完成,不允许抢占
DBFSP的数学模型
一般来说,DBFSP解可表示为,其中表示工厂的Job序列,为工厂加工Job数量。用表示工厂的机器上加工Job 的处理时间,表示工厂的Job 离开机器的时间。那么,在最简单的没有其他加工约束的DFSP中对拥有台机器的工厂 的makespan计算如下:
虚拟0号机器上第一个工件离开时间
每个机器上的第一个工件(不会被阻塞)的离开时间
0号机器上的工件离开时间等于第一个机器上的前一个工件的离开时间
阻塞处理,工件在本机器上处理完成后与上一工件在下一机器上离开时间的大值(工件在本机器上处理完且下一机器空闲,工件才能离开)
阻塞流水车间调度问题是有限缓冲区流水车间调度的一种简单的特例(缓冲区大小为0),考虑缓冲区大小的流水车间调度问题将会更加复杂。