本发明涉及一种缓冲工序提前迁移的二车间柔性综合调度方法。
背景技术:
针对以往的二车间综合调度方法中并没有考虑柔性加工设备的问题,从获得较优的调度结果出发,提出的解决方法:将二车间柔性综合调度问题分解为调度顺序子问题、调度路径子问题以及调度时间子问题,针对调度顺序子问题,采用父路径长优先策略、长用时策略以及可用设备少策略,确定工序的调度顺序;针对调度路径子问题,采用叶节点工序选择策略,为叶节点工序选择加工车间和加工设备,采用缓冲工序提前迁移策略,将符合条件并已加工完成的缓冲工序,提前迁移至其兄弟工序所在的车间,采用普通工序处理策略,为非叶节点工序选择相对结束时间早的车间设备加工;针对调度时间子问题,采用前沿贪心策略的思想,先结合产品工艺约束和迁移时间约束确定工序的最早可能开工时间,再结合机器占用约束确定工序的最终开工时间,目前并不存在解决两车间综合调度中存在柔性加工设备的调度方法,所提的解决方法,能够使叉点工序的开工时间提前,进而得到较优的产品调度结果。
在本发明方法使用过程中,用到了父路径长优先策略、长用时策略以及可用设备少策略,父路径长优先策略是按工序最小可加工用时计算路径长度,优先调度父节点路径长度长的工序;长用时策略是当父路径长优先策略无法确定工序调度顺序时,优先调度最小可加工用时大的工序;可用设备少策略是当长用时策略无法确定工序调度顺序时,优先调度可用设备数少的工序,若再无法确定时,任选其一调度。
技术实现要素:
本发明的目的是提供一种缓冲工序提前迁移的二车间柔性综合调度方法,针对现有二车间综合调度研究中并未考虑柔性加工设备的问题,提出缓冲工序提前迁移的二车间柔性综合调度方法,采用父路径长优先策略,长用时策略以及可用设备少策略确定工序的调度顺序;采用缓冲工序提前迁移策略,将符合条件的缓冲工序,提前迁移至其兄弟工序所在车间,使叉点工序的开工时间提前,采用叶节点工序选择策略和普通工序处理策略为工序选择加工车间设备;采用前沿贪心策略的思想,结合产品工艺约束、迁移时间约束以及机器占用约束确定工序的开工时间。
叶节点工序选择策略是为便于后续工序安排加工车间和加工设备,优先为叶节点工序安排加工车间和加工设备,优点分析:异地分布的二车间柔性综合调度中,工序迁移时间对产品的完工时间有较大的影响,作为产品加工初始点的叶节点工序对其加工车间和加工设备的选择,都将影响后续相关车间设备的确定,优先为叶节点选择合适的加工车间设备,可减小因叶节点车间设备的选择,导致迁移时间影响叶节点紧后工序的迁移时间,从而减小对产品总完工时间的影响。
缓冲工序提前迁移策略是针对缓冲工序必须都结束后才能加工其紧后工序的约束条件,在判定缓冲工序可以提前迁移时,将加工完成的缓冲工序提前迁移至其兄弟工序所在的加工车间,优点分析:采用缓冲工序提前迁移策略,将加工完成的缓冲工序提前迁移至其兄弟工序所在的车间,可以使其紧后工序,即叉点工序,在设备空闲驱动事件来临时,直接判断该叉点工序的加工车间,避免了在设备空闲驱动事件来临时,再判断加工车间,导致需要迁移某个缓冲工序,使该迁移时间影响叉点工序的开工时间,进而影响产品完工总时间。
普通工序处理策略是针对非叶节点工序的车间设备选择问题,在考虑工序迁移时间的基础上,计算可调度工序在其可用设备集上的相对结束时间,为工序选择相对结束时间早的加工车间和加工设备,优点分析:采用普通工序处理策略为工序选择相对结束时间早的加工车间设备,在量化工序迁移时间的基础上,使工序有较小的完工时间,进而得到较优的产品完工时间。
上述的目的通过以下的技术方案实现:
缓冲工序提前迁移的二车间柔性综合调度方法,该方法主要包括如下步骤:采用父路径长优先策略、长用时策略以及可用设备少策略,动态确定工序的调度顺序;将产品工艺加工树中入度为0的工序节点定义为叶节点工序,将出度为1但其紧后工序节点入度不为1的工序节点定义为缓冲工序,对叶节点工序,采用叶节点工序选择策略,为叶节点工序选择加工车间和加工设备,对缓冲工序,采用缓冲工序提前迁移策略,将加工完成的缓冲工序提前迁移至其兄弟工序所在的加工车间,等待其紧后工序选择加工车间设备,对非叶节点工序,采用普通工序处理策略,为工序选择相对结束时间较早的车间和设备加工;采用前沿贪心策略的思想,结合产品工艺约束、迁移时间约束以及机器占用约束,确定工序的最终开工时间。
所述的缓冲工序提前迁移的二车间柔性综合调度方法,所述的调度方法具体实施步骤如下:
步骤1:输入待加工产品工序信息,初始化产品加工树,并为工序各参数赋初值;
步骤2:判断是否为设备空闲事件驱动时刻,若是,则执行步骤3,否则,循环等待设备空闲事件驱动时刻来临;
步骤3:判断加工完成工序是否为缓冲工序,若是,执行缓冲工序提前迁移策略,并执行步骤4,否则,直接执行步骤4;
步骤4:判断是否存在新的可调度工序,若不存在,执行步骤6,否则,读取可调度工序加入可调度工序集,执行步骤5;
步骤5:采用父路径长优先策略、长用时策略以及可用设备少策略,处理可调度工序集,动态生成按序排列的可调度工序序列;
步骤6:判断可调度工序序列是否为空?若为空,则执行步骤11,否则,执行步骤7;
步骤7:读取首个可调度工序,并获取可调度工序的类型,若为叶节点工序,则采用叶节点工序选择策略,否则,采用普通工序处理策略,为该可调度工序选择加工车间和加工设备;
步骤8:判断工序所选择的加工设备是否空闲,若是,执行步骤9,否则,跳转到步骤2,等待下一个设备空闲事件驱动时刻;
步骤9:结合产品工艺约束、迁移时间约束以及机器占用约束,采用前沿贪心策略的思想,确定工序的最终开工时间;
步骤10:分派工序到指定车间设备加工,并判断该时刻是否还有其他空闲设备可加工工序,若是,跳转至步骤6,否则,跳转至步骤2,等待下一设备空闲事件驱动时刻来临;
步骤11:所有工序加工完毕,若是,执行步骤12,否则,跳转至步骤2,等待下一设备空闲事件驱动时刻来临;
步骤12:产品加工结束,输出产品调度结果甘特图。
所述的缓冲工序提前迁移的二车间柔性综合调度方法,所述的叶节点工序,采用叶节点工序选择策略,为工序选择加工车间设备,即将优先级最高的叶节点工序,按最小加工用时,依次均衡分布在两车间加工,对优先级非最高的叶节点工序,若其父节点(根节点除外)工序的子孙节点已安排车间,则选择在此车间加工;否则,选择已加工工序总用时少的车间加工,各车间选择完工时间较小的设备加工。
所述的缓冲工序提前迁移的二车间柔性综合调度方法,所述的缓冲工序,采用缓冲工序提前迁移策略,即工序加工完成时,若自身工序和兄弟工序不在同一个车间加工且自身的完工时间小于兄弟工序的完工时间,则将本缓冲工序提前迁移至其兄弟工序所在的车间,等待其紧后工序选择加工车间设备,缓冲工序提前迁移的确定在其最后兄弟工序开始加工或处于加工过程时进行。
所述的缓冲工序提前迁移的二车间柔性综合调度方法,所述的非叶节点工序,采用普通工序处理策略,定义可调度工序在某车间某台可加工设备上进行虚拟加工时相较于该设备空闲时刻的完工时间为工序的相对结束时间,在考虑迁移时间的基础上,为工序选择相对结束时间较小的加工车间和加工设备。
有益效果:
1. 本发明通过对产品工艺树结构的分析,采用叶节点工序选择策略为叶节点工序安排加工车间和加工设备,将叶节点工序依次相对均衡的分布在两车间,减小了迁移时间对产品总完工时间的影响,便于后续非叶节点工序对加工车间和加工设备的选择。
本发明对缓冲工序采用缓冲工序提前迁移策略,使其紧后工序能够在最后加工完成的缓冲工序结束时,直接判断所需要的加工车间,避免了在该设备空闲时刻来临时再判断,导致需迁移其某个紧前缓冲工序,从而使迁移时间影响了该叉点工序的开工时间,因而本策略能使叉点工序尽早开工,达到了优化产品完工时间的目的。
本发明对非叶结点工序采用普通工序处理策略,解决了非叶节点工序加工车间和加工设备的选择问题,使每个工序获得了较早的工序完工时间,从总体上缩短了产品完工时间。
附图说明:
附图1是本发明的工艺树图例;
附图2是本发明针对附图1所示工艺树的调度结果甘特图。
具体实施方式:
实施例1:
一种缓冲工序提前迁移的二车间柔性综合调度方法,其特征是:该方法主要包括如下步骤:采用父路径长优先策略、长用时策略以及可用设备少策略,动态确定工序的调度顺序;对叶节点工序,采用叶节点工序选择策略,为叶节点工序选择加工车间和加工设备,对缓冲工序,采用缓冲工序提前迁移策略,将加工完成的缓冲工序提前迁移至其兄弟工序所在的加工车间,等待其紧后工序选择加工车间设备,对非叶节点工序,采用普通工序处理策略,为工序选择相对结束时间较早的车间和设备加工;采用前沿贪心策略的思想,先结合产品工艺约束和迁移时间约束确定工序的最早可能开工时间,再结合机器占用约束,确定工序的最终开工时间。
实施例2:
上述的缓冲工序提前迁移的二车间柔性综合调度方法,所述的调度方法具体实施步骤如下:
步骤1:输入待加工产品工序信息,初始化产品加工树,并为工序各参数赋初值;
步骤2:判断是否为设备空闲事件驱动时刻,若是,则执行步骤3,否则,循环等待设备空闲事件驱动时刻来临;
步骤3:判断加工完成工序是否为缓冲工序,若是,执行缓冲工序提前迁移策略,并执行步骤4,否则,直接执行步骤4;
步骤4:判断是否存在新的可调度工序,若不存在,执行步骤6,否则,读取可调度工序加入可调度工序集,执行步骤5;
步骤5:采用父路径长优先策略、长用时策略以及可用设备少策略,处理可调度工序集,动态生成按序排列的可调度工序序列;
步骤6:判断可调度工序序列是否为空?若为空,则执行步骤11,否则,执行步骤7;
步骤7:读取首个可调度工序,并获取可调度工序的类型,若为叶节点工序,则采用叶节点工序选择策略,否则,采用普通工序处理策略,为该可调度工序选择加工车间和加工设备;
步骤8:判断工序所选择的加工设备是否空闲,若是,执行步骤9,否则,跳转到步骤2,等待下一个设备空闲事件驱动时刻再进行判断;
步骤9:结合产品工艺约束、迁移时间约束以及机器占用约束,采用前沿贪心策略的思想,确定工序的最终开工时间;
步骤10:分派工序到指定车间设备加工,并判断该时刻是否还有其他空闲设备可加工工序,若是,跳转至步骤6,否则,跳转至步骤2,等待下一设备空闲事件驱动时刻来临;
步骤11:所有工序加工完毕,若是,执行步骤12,否则,跳转至步骤2,等待下一设备空闲事件驱动时刻来临;
步骤12:产品加工结束,输出产品调度结果甘特图。
实施例3:
上述的缓冲工序提前迁移的二车间柔性综合调度方法,所述的叶节点工序,采用叶节点工序选择策略,为工序选择加工车间设备,即将优先级最高的叶节点工序,按最小加工用时,依次均衡分布在两车间加工,对优先级非最高的叶节点工序,若其父节点(根节点除外)工序的子孙节点已安排车间,则选择在此车间加工;否则,选择已加工工序总用时少的车间加工,各车间选择完工时间较小的设备加工。
上述的缓冲工序提前迁移的二车间柔性综合调度方法,所述的缓冲工序,采用缓冲工序提前迁移策略,即工序加工完成时,若自身工序和兄弟工序不在同一个车间加工且自身的完工时间小于兄弟工序的完工时间,则将本缓冲工序提前迁移至其兄弟工序所在的车间,等待其紧后工序选择加工车间设备,缓冲工序提前迁移的确定在其最后兄弟工序开始加工或处于加工过程时进行。
上述的缓冲工序提前迁移的二车间柔性综合调度方法,所述的非叶节点工序,采用普通工序处理策略,定义可调度工序在某车间某台可加工设备上进行虚拟加工时相较于该设备空闲时刻的完工时间为工序的相对结束时间,在考虑迁移时间的基础上,为工序选择相对结束时间较小的加工车间和加工设备。
实施例4:
上述的缓冲工序提前迁移的二车间柔性综合调度方法,确定工序加工顺序的调度顺序模块:
按工序最小可加工用时计算每个工序的路径长度,采用父路径长优先策略,优先调度父节点路径长度长的工序,当父路径长优先策略无法确定工序调度顺序时,采用长用时策略,优先调度最小可加工用时大的工序,当长用时策略无法确定工序调度顺序时,采用可用设备少策略,优先调度可用设备数少的工序,若再无法确定时,任选其一工序调度。
实施例5:
上述的缓冲工序提前迁移的二车间柔性综合调度方法,确定工序加工车间和加工设备的调度路径模块:
对于叶节点工序,采用叶节点选择策略,按照工序优先级以及工序间同父子节点车间设备的确定情况,为叶节点安排加工车间和加工设备;对缓冲工序,当缓冲工序加工完成,且其最后兄弟工序处于开始加工或加工状态时,若缓冲工序与其兄弟工序不在同一车间加工,且缓冲工序的完工时间小于其兄弟工序的完工时间,则将其在加工完成时,提前迁移至其兄弟工序所在的车间;对非叶节点工序,计算其相对结束时间,为工序选择相对结束时间早的车间设备。
实施例6:
上述的缓冲工序提前迁移的二车间柔性综合调度方法,确定工序开始加工时间的调度时间模块:
采用前沿贪心策略的思想,由产品工艺约束和工序迁移时间约束确定工序的最早可能开工时间,在结合机器占用约束,确定工序的最终开工时间。
实施例7:
上述的缓冲工序提前迁移的二车间柔性综合调度方法,如附图1所示,即为一个复杂产品G的工艺树图例,图中共有18道工序,4台可加工设备,每道工序可在不同设备上加工,每道工序属性信息不同,矩形框内符号含义为:产品工序名/可加工设备集/可加工设备对应的加工时间,产品需在异地分布的车间A和车间B上加工,车间A与车间B之间的迁移代价为15工时。
以下将结合附图1中的工艺树图例来对本方法的具体执行流程进行说明。
实施例8:
上述的缓冲工序提前迁移的二车间柔性综合调度方法,下面将用本调度方法对附图1中的工艺树图例执行调度,方法具体操作步骤如下:
首先输入待加工产品的工序信息,计算工序优先级、路径长度等参数,并为工序各参数赋初值。
产品初始加工时,即设备空闲驱动时刻T0时,叶节点工序为当前可调度工序,因此,可调度工序集为J={G1, G4, G10, G5, G2, G7, G13, G8},可调度工序集J不为空,因此调用调度顺序模块的父路径长优先策略、长用时策略以及可用设备少策略,处理可调度工序集,得到按序排列的可调度工序序列S=(G2,G1,G7,G5,G4,G8,G10,G13)。
由于可调度序列S非空,接着采用叶节点工序选择策略和普通工序处理策略为工序选择加工车间和加工设备,对于加工完成的缓冲工序,采用缓冲工序提前迁移策略,若缓冲工序满足条件,则将其提前迁移至其兄弟工序所在的车间,例如初始时,对工序G2、G1等叶节点工序,采用叶节点工序选择策略选择具体车间设备。
采用前沿贪心策略的思想,先结合产品工艺约束和工序迁移时间约束确定工序的最早可能开工时间,对于叶节点工序,最早可能开工时间为0;对于具有唯一紧前紧后约束关系的普通工序,最早可能开工时间等于其工序紧前工序的完工时间(考虑迁移时间);对于叉点工序,最早可能开工时间等于其所有紧前工序集合完工时间(考虑迁移时间)的最大值,再结合机器占用约束,确定工序的最终开工时间,若工序P为机器上的第一道工序,则P的实际开工时间等于其最早可能开工时间;否则,从前向后查找机器M上的空闲时间段,并判断该空闲时间段是否可用,若可用,则将工序放在该空闲时间段内加工,工序的实际开工时间为工序可能开工时间与空闲时间段开始时间的最大值;若该空闲时间段不足以加工工序,则将工序放到机器最后进行加工,工序的实际开工时间等于该机器最后一道工序的完工时间值。
当该设备空闲驱动时刻,没有可加工工序或工序不能获得较优的结束时间,则循环等待下一设备驱动时刻来临进行调度,产品调度完成后,输出甘特图,如附图2所示。
实施例9:
上述的缓冲工序提前迁移的二车间柔性综合调度方法,实例对比:
由于本发明提出的二车间柔性综合调度方法,之前并无研究,因此并没有找到合适的算例以供对比分析,但由附图1所示的产品G的调度甘特图附图2可以才看出,产品G的总加工用时为135,工序迁移4次,且在迁移过程中,充分利用了兄弟工序的加工时间,使其紧后的叉点工序加工时间可能提前,取得了较好的调度结果,本方法在一定程度上解决了二车间柔性综合调度问题。
因此,本发明提出的调度方法是解决二车间综合调度中存在柔性加工设备的问题。