葛 艳,王爱民,叶介然
(北京理工大学 机械与车辆学院,北京 100081)
1 问题的提出
车间调度是在有限的设备资源上安排工件进行加工,车间调度问题在最近几十年已经成为工程领域的研究热点。作业车间调度问题(Job-shop Scheduling Problem, JSP)被证明是非确定性多项式(Non-deterministic Polynomial, NP)难问题[1]。针对JSP,VAN LAARHOVEN等[2]以最小化Cmax为目标,提出一种基于模拟退火的近似算法;GONÇALVES等[3]利用混合遗传算法对JSP进行了优化。更多研究致力于解决与实际生产更接近的柔性作业车间调度问题(Flexible Job-shop Scheduling Problem, FJSP),该问题是比JSP更为复杂的NP难问题[4],BRCUKER等[5]率先提出求解包括两个工件的FJSP多项式算法。随着全局优化算法的出现和普及,更多研究采用元启发式算法求解FJSP。LEE等[6]以最小化Cmax为目标,设计了一种改进遗传算法,实现了FJSP的优化求解;SAIDI-MEHRABAD等[7]针对具有工序准备时间的FJSP,提出一种基于禁忌搜索的层次逼近算法,并证明该算法在大规模问题和实际加工问题求解中表现突出;LI等[8]提出一种基于混合Pareto前沿的离散人工蜂群算法,实现了对多目标FJSP的求解。
在JSP和FJSP中,对于任意一道工序,只要其工艺路线约束下的前一道工序加工完成,且该工序的可加工设备存在空闲,便可开始加工。然而,随着企业对精益生产的贯彻执行,在生产过程中经常穿插质检环节,使得相邻工序之间不能直接衔接。根据生产实际,产品的质检结果一般分为合格、返修、报废3种。若工件的某一道工序质检结果为合格,则该工件可直接安排进入下一道工序;若工件的某一道工序质检结果为返修,则该工件需要重新安排当前加工工序,直至质检合格或报废,如图1所示;若某一道工序的质检结果为报废,则该工件不能进行后续工序加工,已经加工完成的工序也会作废,在原问题规模涉及的n个工件中应相应增加一个新的与报废工件相同的工件,重新从第一道工序开始安排,如图1所示。
传统调度问题不涉及工件质检,其排产方法更不涉及如何应对质检结果出现返修的情况;而对于质检出现工件报废的情况,通常根据预先估计的工件废品率,在工件加工开始就增加工件的排产数量,从而增加排产方案对报废件的容忍度。这种排产方式没有考虑加工过程中由质检返修带来的单道工序重入和由质检报废带来的工件重新投产的情况,使作业计划与生产实际脱节,无法持续指导实际生产。
因此,作业计划需要根据质检结果实时调整,确保调度方案对生产实际的持续指导,即动态调度[9]。另外,由于在实际生产中,车间会根据已生成的静态作业计划形成物料准备方案,调整作业计划可能导致已生成的物料准备方案不可行。为减少物料准备方案的频繁变更,本文动态调度所形成的排产方案不仅需要如传统FJSP一样保证工件最大完工时间(Cmax)最小化,还应保证排产计划与初始计划的差距最小化。
HOLLOWAY等[10]率先对作业车间动态调度问题进行研究,通过周期性地进行排产计算不断生成新的调度方案,并证明了这种周期策略对求解动态调度问题的有效性;HOLTHAUS[11]针对设备故障引发的工序加工时间延迟问题,提出一种基于仿真的调度规则分析方法;FANG等[12]将调度规则融入遗传算法,求解具有工序准备时间、工件交货期约束和设备故障的作业车间动态调度问题;XIONG等[13]以最小化Cmax和最小化排产方案的鲁棒性为目标,提出一种多目标进化算法,实现了具有随机设备故障的FJSP动态调度。
LIU等[14]针对具有模糊处理时间的柔性作业车间动态调度问题(Dynamic Flexible Job-shop Scheduling Problem, DFJSP),提出一种快速分布估计算法(fast Distribution Estimation Algorithm, fDEA),实现了快速寻优;SHEN等[15]提出一种多目标进化算法,解决了DFJSP,并通过实例验证了该算法具有较好的整体性能;WANG等[16]采用改进遗传算法求解了具有设备故障、紧急插单和工件损坏的DFJSP;ZHOU等[17]针对多目标DFJSP,提出一种基于协同进化机制的非支配遗传算法,并验证了该算法的有效性和竞争力。以上文献解决了DFJSP,但是均未考虑动态调度之后的方案对初始方案的继承性,新方案一味追求优化调度目标,而与初始方案相去甚远,使原来的物料准备计划变得不可行。
综上所述,本文针对工序质检结果造成的原作业计划不具备持续生产指导依据的现状,以及保持新旧排产计划一致性的需求,以最小化Cmax和最小化新旧计划方案差异性为目标,研究具有质检环节的DFJSP。针对问题特点和两个目标,本文结合遗传算法的全局搜索能力和模拟退火算法的局部寻优能力,提出一种基于局面评价的遗传退火算法。该算法通过基于局面评价的解码规则,提高每一个个体在新旧排产计划一致性方面的性能;同时,通过遗传退火算法的快速寻优机制,重点优化最小化Cmax的调度目标。
2 问题描述与数学建模
2.1 问题描述及内涵分析
本文研究的具有质检环节的FJSP是传统FJSP的扩展。传统FJSP涉及n个待加工工件Ji(i=1,2,…,n)和m台设备Mp(p=1,2,…,m);每个工件Ji包含一系列具有严格顺序的加工工序,每一道工序都可由一台或多台设备加工;当某一道工序完成加工后,后续工序即可开始加工。
与传统FJSP不同的是,在本文研究的动态调度问题中,工序分为质检工序和普通工序。对于质检工序,其加工完成后不能如普通工序一样直接转向下一道工序,而须进行质检,只有当质检结果为合格时,才能开始工件的下一道工序,否则需要重新在当前工序加工(质检结果为返修),或从第一道工序开始重新加工当前工件(质检结果为报废)。
由于无法事先预测每一道质检工序的质检结果,制定初始作业计划时只能假设所有质检工序的质检结果均为合格。在工件加工过程中,一旦出现某一道工序的质检结果为返修或报废,就意味着当前工件甚至其余工件均无法根据原作业计划继续生产,需要根据当前计划和当前工件的完成情况重新制定生产计划。本文研究的具有质检环节的DFJSP特征如下:
(1)问题同样涉及n个工件Ji(i=1,2,…,n)和m台设备Mp(p=1,2,…,m),每个工件Ji包含一系列有严格顺序的加工工序,每一道工序都可由一台或多台设备加工。
(2)有一个初始计划,初始计划中规定了每一道工序的原加工设备、原加工开始时间和原加工结束时间。
(3)有扰动节点,即质检结果为不合格或返修的工序的原加工结束时间。
(4)原计划中,在扰动节点前开始的工序已经开始加工或已经完成加工,无需参与重排,动态调度仅重新安排原计划中在扰动节点后开始的工序。
(5)在进行动态调度时,所有设备的可用时间由原先FJSP中的0时刻变为当前问题中的扰动节点。
(6)问题的调度目标为最小化Cmax的同时最小化新旧方案的差异,以减少对根据原方案所制定的物料准备方案的变更。
根据以上描述,具有质检环节的DFJSP的求解难点在于:
(1)新旧方案差异程度的量化 新旧方案的差异主要体现在所有工序的加工设备差异和加工开始时间差异两方面,如何建立合适的评价机制,量化两个方案的相似程度,是一大难点。
(2)调度目标之间的平衡 问题涉及的两个调度目标在一定程度上存在冲突,即获得最低Cmax的调度方案与其旧方案的差异未必最小;同样,与原排产计划最接近的方案未必能获得最低的Cmax。如何获得能够综合优化两个目标的方案是亟待解决的问题。
为了更好更严谨地解决该问题,提出以下假设:
(1)同一工序在不同设备上加工所需的处理时间相同。
(2)属于不同工件的工序之间没有顺序约束。
(3)一台设备在同一时刻只能加工一道工序。
(4)任意一道工序在加工时不能被打断,直到该工序加工结束。
(5)不考虑设备故障的情况。
(6)不考虑工序周转的时间。
2.2 数学建模
(1)参数
Ji表示工件i,i=1,2,…,n,n为工件的数量;
Mp表示设备p,p=1,2,…,m,m为设备的数量;
Oij表示Ji的第j道工序,j=1,2,…,Gi,Gi为Ji的工序数量;
Tij为工序Oij的加工工时;
OSij为原计划中工序Oij的加工开始时刻;
OEij为原计划中工序Oij的加工结束时刻;
RT为扰动节点;
L为一个足够大的常数;
α为工序加工设备变动影响系数,是一个常数;
β为工序加工开始时间变动影响系数,是一个常数。
(2)决策变量
STij为新计划中工序Oij的加工开始时间;
ETij为新计划中工序Oij的加工结束时间;
Cmax为新计划中所有工序的最大完工时间;
基于以上假设和符号,建立如下数学模型:
minCmax;
(1)
(2)
Cmax=max(ETij),∀i。
(3)
s.t.
STij+Tij=ETij,∀i,j;
(4)
OSij+Tij=OEij,∀i,j;
(5)
(6)
RT=max(Rij·OEij),∀i,j;
(7)
ifOSij