1.1 调度问题的研究背景
生产调度是指针对一项可分解的工作(如产品制造),在尽可能满足工艺路线、资源情况、交货期等约束条件的前提下,通过下达生产指令,安排其组成部分(操作)所使用的资源、加工时间及加工的先后顺序,以获得产品制造时间或成本最优化的一项工作。
一般研究车间调度问题时,都会以经典的作业车间调度问题(job shop scheduling problem,JSP)为基础进行研究,每个工件的每道工序只能在一台机器上加工,并且仅仅只能加工一次,加工时间是确定的,如图1.1所示。
随着柔性制造系统和数控加工中心等带有一定柔性的生产系统逐渐出现,以往经典作业车间调度的研究成果不能非常快速地直接应用于新的制造模式中,于是柔性作业车间调度问题(flexible jobshop scheduling problem,FJSP)也就成为研究重点,它是JSP的一种扩展,工件的每道工序可以在多台机器上进行加工,加工时间不一定相同。工件的每一道工序可以在多台相同或不同的机器上进行加工。实际生产中可以按照资源负荷情况,灵活地进行资源的选择,提高加工的灵活性。
1.2 调度问题描述和分类
1.2.1 调度问题的描述
调度问题的一般性定义为:在一定的约束条件下,把有限的资源在时间上分配给若干个任务,以满足或优化一个或多个性能指标。
在制造业中,车间调度问题可以描述为:n个工件在m台机器上加工;一个工件有多道工序,每道工序可以在若干台机器上加工,并且必须按一些可行的工艺次序进行加工;每台机器可以加工工件的若干工序,并且在不同的机器上加工的工序集可以不同。调度的目标是将工件合理地安排到各机器,并合理地安排工件的加工次序和加工开始时间,使约束条件被满足,同时优化一些性能指标。在实际制造系统中,还要考虑刀具、托盘和物料搬运系统的调度问题。
1.2.2 车间调度问题的分类
1.流水车间调度问题
在流水车间调度问题(flow shop scheduling problem,FSP)中,加工系统有一组功能不同的机床,待加工的工件包含多道工序,每道工序在一台机床上加工,所有工件的加工路线都是相同的。每个工件工序之间有先后顺序约束。
2.作业车间调度问题
在作业车间调度问题(job shop scheduling problem,JSP)中,加工系统有一组功能不同的机床,待加工的工件包含多道工序,每道工序在一台机床上加工,工件的加工路线互不相同,每个工件工序之间有先后顺序约束。
2.1 柔性作业车间调度问题的描述
2.1.1 柔性作业车间调度问题的描述与分类
柔性作业车间调度问题(flexible job shop scheduling problem,FJSP)的描述如下:n个工件(J1,J2,…,Jm)要在m台机器(M1,M2,…,Mm)上加工;每个工件包含一道或多道工序;工序顺序是预先确定的;每道工序可以在多台不同加工机器上进行加工;工序的加工时间随加工机器的不同而不同;调度目标是为每道工序选择最合适的机器,确定每台机器上各道工序的最佳加工顺序及开工时间,使整个系统的某些性能指标达到最优。因此,柔性作业车间调度问题包含两个子问题:确定各工件的加工机器(机器选择子问题)和确定各个机器上的加工先后顺序(工序排序子问题)。
此外,在加工过程中还需要满足下面的约束条件。
- 同一台机器在某一时刻只能加工一个工件。
- 同一工件的同一道工序在同一时刻只能被一台机器加工。
- 每个工件的每道工序一旦开始,加工便不能中断。
- 不同工件之间具有相同的优先级。
- 不同工件的工序之间没有先后约束,同一工件的工序之间有先后约束。
- 所有工件在零时刻都可以被加工。
柔性作业车间调度问题根据资源选择限制条件和柔性程度,可以分为完全柔性作业车间调度问题(total FJSP,T-FJSP)和部分柔性作业车间调度问题(partialFJSP,P-FJSP),分别如表2.1、表2.2所示。在T-FJSP中,所有工件的每一道工序都可以在可选择的机器中选择任何一台进行加工;而在P-FJSP中,至少存在一道工序的加工机器只能是可选择的机器中的部分机器,即机器集的真子集来进行加工。也可以说,T-FJSP只是P-FJSP的一个特例。P-FJSP更加符合实际生产系统中的调度问题,研究P-FJSP比T-FJSP更具有实际意义,P-FJSP要比T-FJSP更加复杂。
表2.2是一个包括2个工件、5台机器的P-FJSP的加工机器和加工时间表。其中,“一”表示此工序不能选择上面对应的机器进行加工。如果所有的“一”都有对应的加工时间,表明所有的机器都可以进行选择加工,就是T-FJSP,如表2.1所示。
2.1.2 FJSP的析取图模型
在FJSP中,存在循环排列的特性,即同一个工件的多道工序可以在同一台机器上连续或间隔加工。当FJSP中每道工序确定了加工机器之后,即转变为一般的作业车间调度问题。而析取图(disjunctive graph)模型是描述车间调度问题的一种重要形式。析取图模型G=(N,A,E)是由Balas提出的,其定义为:N是所有工序组成的节点集,其中0和*表示两个虚设的起始工序和终止工序,每个节点的权值等于此节点工序在对应机器上的加工时间;A是连接同一个工件的邻接工序间的有向弧集(实线),表示工序之间的先后加工顺序约束;E是连接在同一台机器上相邻加工工序间的析取弧集(虚线)。E上每个析取弧是双向的,可视为包含两个方向相反的弧,并且由每台机器i上的析取弧子集构成。以表2.3所示调度问题为例,其中包含三个工件、三台机器和九道工序。如图2.1(a)所示,节点集N={0,O11,O12,O13,O21,O22,O23,O31,O32,O33,*}。有向弧集A={(O11,O12),(O12,O13),(O21,O22),(O22,O23),(O31,O32),(O32,O33)}。
对由第i台机器(i∈Ω)所加工的工序而言,每一个加工方案等价于E中的一个选择,即在E2的每个双向弧中选择一个确定的方向,记为一个选择S。一个环就是从一个工序出发到此工序终止的路径。如果一个选择S,不包含任何有向环(directed cycle),则称为非循环(acyclic),对应着第i台机器上所有工序的一个调度。在i∈Ω中,对每个E,求得一个选择S1,所有机器选择的并集S称为完全选择;否则S为部分选择。无论S是一个部分选择还是一个完全选择,都有唯一的有向图Ds=(N,AUS)与之相对应。当有向图是非循环图时,表示一个可行调度,并且所有选择S,也必是非循环的;反之,由非循环选择S1组成的有向图不一定是非循环的。如图2.1(a)所示为表2.3中调度问题的一个可行调度的有向图,图2.1(b)所示为对应图2.1(a)的甘特图,其中机器1上的选择S1={O21,O11,O32},机器2上的选择S2={O31,O12,O23},机器3上的选择S3={O22,O13,O33}。
在非循环有向图Ds中,从起点0到终点*的最长路径称为关键路径(critical path),其长度等于该调度的最大完工时间。用析取图描述调度问题,就是为了找到此关键路径,并使之最小。属于关键路径上的每道工序称为关键工序。在同一台机器上紧邻的几个关键工序的组合称为关键块,同一个机器上可能有多个关键块,其中每个关键块的第一个工序为块首工序,每个关键块的最后工序称为块尾工序,其他称为内部工序。如图2.1(b)中画虚线的O21、O11、O12、O13、O33表示关键工序;有两个关键块,即{O21,O11}、{O13,O33};关键路径的长度等于16。
2.1.3 FJSP 评价指标
在FJSP的求解过程中,调度方案优劣的评价需要通过一定的目标函数来判断,目标函数也就是常用的评价指标。FJSP中不仅包括了经典JSP常用的评价指标,而且还有其他的评价指标。下面列出文献中较为常用的几个评价指标。
(1)最大完工时间最小 完工时间是每个工件最后一道工序完成的时间,其中最大的那个时间就是最大完工时间(makespan)。它是衡量调度方案的最根本指标,主要体现车间的生产效率,也是FJSP研究中应用最广泛的评价指标之一,可表示为(2.10)所示。
(2)机器最大负荷最小 在FJSP求解中,存在选择机器的过程,各台机器的负荷随着不同的调度方案而不同。负荷最大的机器就是瓶颈设备。要提高每台机器的利用率,必须使得各台机器的负荷尽量小且平衡,可表示为
(3)总机器负荷最小 工序在不同机器上的加工时间是不同的,那么总的机器负荷随着不同的调度方案而不同。尽量使最大完工时间一样的情况下,减少所有机器的总消耗,可表示为
2.3 柔性作业车间调度问题的研究方法