基于加工时间等级的柔性作业车间调度机器选择方法

文档序号:9921608阅读:460来源:国知局
基于加工时间等级的柔性作业车间调度机器选择方法
【技术领域】
[0001] 本发明涉及柔性作业车间调度技术领域,具体为一种基于加工时间等级的柔性作 业车间调度机器选择方法。
【背景技术】
[0002] 柔性作业车间调度问题是传统作业车间调度问题的延伸,每道工序有多台不同的 机器可供选择,更加符合以数控机床或加工中心为基础的实际车间生产情况,其研究具有 重要的理论意义和应用价值。柔性作业车间调度包括机器选择和工序排序两个子问题,其 中,机器选择的合理性对于工序调度的最终结果有重要的影响,机器选择是实现高质量工 序排序优化的前提和基础。目前,文献中大部分FJSP求解算法一般采用的是随机的机器选 择方式,不能够保证初始解的质量,因而导致算法的寻优效率和搜索能力低。针对机器选择 问题,文南犬 "Approach by localization and multiobjective evolutionary optimization for flexible job-shop scheduling problems,IEEE Transactions on Systems,Man and Cybernetics,Part C:Applications and Reviews,2002,vol32(l) ,pl-13"在考虑机器负荷均衡性的条件下,公开了一种有效的机器选择方法,在为工序选择机器 时,选择累加负荷小的机器。但是,该方法基于对所有剩余工序的加工时间表进行操作,增 加了机器选择过程的复杂性,对于不同类型的柔性作业车间调度问题,需设置额外参数,进 行车专化。文南犬"An effective genetic algorithm for the flexible job-shop scheduling problem,Expert Systems with Applications,2011,vol38(4),p3563_3573" 公开了一种全局选择与局部选择相结合的机器选择方法,全局选择机器负荷的均衡性较 好,局部选择所选择的机器具有更短的加工时间;与上述机器选择方法相比,该方法定义了 专门的机器负荷累加数组,减小了机器选择过程的复杂性,同时,对于不同类型的柔性作业 车间调度问题,无需设置额外参数进行转化。在此基础上,文献"基于极限调度完工时间最 小化的机器选择及FJSP求解,计算机集成制造系统,2014,vol20(4),p854-865"进一步提出 一种基于极限调度完工时间最小化的机器选择初始化方法,一方面通过在工件的工序集合 中随机选择工序扩大了机器选择空间,另一方面通过改进工序选择机器的具体方法步骤, 在比较机器负荷的基础上,再比较机器加工时间,进一步提高了机器选择质量。然而,该方 法在满足机器负荷均衡的条件下,仍然不能最大限度的为工序选择加工时间短的机器,从 而导致机器负荷和工件总工时增加,进而制约着工序排序最终的调度结果。

【发明内容】

[0003] 要解决的技术问题 为解决现有技术存在的问题,在满足机器负荷均衡的条件下,能够最大限度的为工序 选择加工时间短的机器,本发明提出了一种基于加工时间等级的柔性作业车间调度机器选 择方法。
[0004] 技术方案 本发明对每道工序的可选机器,根据加工时间大小进行等级划分,加工时间越小的机 器具有的优先等级越高。为某道工序选择机器时,初置优先选择的机器等级为最高。在可选 机器集中,选择加工时间等级为设定等级的机器组成优先等级机器集合,选择临时负荷最 小的机器组成最小负荷机器集合,计算该两个集合的交集。如果交集不为空,在交集中任选 一台机器,否则对下一工序查找机器。如果遍历完所有剩余工序的机器交集仍为空,则将优 先选择的机器等级降低一级,直到交集不为空。通过对所有工序的随机排列,可以求得多种 不同的机器选择方案。
[0005] 本发明的技术方案为: 所述一种基于加工时间等级的柔性作业车间调度机器选择方法,其特征在于:采用以 下步骤: 步骤1:读取问题数据,初始化机器数目MachNum、机器集合Machine {}、所有工序组成的 工序集合A1 lOperation{}、所有的工序数目Length、加工时间数组ProcTime(),设置一个机 器负荷数组MachLoad(MachNum); 步骤2:根据加工时间数组ProcTime 〇每道工序可选机器加工时间的大小,给加工时间 等级数组ProcTimeRank()赋值; 步骤3:初始化机器负荷数组MachLoadO,每一个元素值为0; 步骤4:对工序集合AllOperationU的元素进行随机排列,目的在于求得多种不同的机 器选择方案; 步骤5:设置已选择机器的工序数目为i,并赋初值i=0; 步骤6:设置优先选择的机器等级rank初值,rank=l; 步骤7:设置工序集合AllOperationU中,工序的顺序索引变量为j,从工序集合 AllOperationU的第1个元素开始,查找尚未选择机器的工序,直到找到未选择机器的工 序,将该工序基于1的顺序索引赋值给j ; 步骤8:从该工序的可选机器集中,选取加工时间等级为rank的机器,组成优先等级机 器集合PreRankMach{}; 步骤9:将该工序可选机器的加工时间,与机器负荷数组MachLoad()对应机器的已有负 荷相加,组成机器临时负荷数组MachLoadTempO,从该数组中选择临时负荷最小的机器,组 成最小负荷机器集合LoadMinMachU ; 步骤10:对优先等级机器集合PreRankMach {}和最小负荷机器集合LoadMinMach {}求交 集,记为4,4=?代1^1111^&1〇11{}门1^(11;[111&1011{},如果4关4),执行步骤12;否则,执行步骤11; 步骤11: j=j+Ι,如果j〈=Length,从工序集合A1 lOperation{}的第j个元素开始,继续查 找尚未选择机器的工序,直到找到未选择机器的工序,将该工序基于1的索引赋值给j,转至 执行步骤8;如果j>Length,rank=rank+l,转至执行步骤7; 步骤12:从交集A中,任选一台机器,作为当前工序的加工机器,将该机器的加工时间累 加到机器负荷数组MachLoad()的对应元素上,更新机器负荷数组MachLoad(),i=i+l; 步骤13:重复执行步骤6~12,直到i=Length,工序集合A1 lOperation {}的所有工序都选 择完机器。
[0006] 有益效果 本发明采用基于加工时间等级的机器选择方法,既能够保证各台机器负荷的均衡性, 又能够为工序选择到加工时间尽可能短的机器,为柔性作业车间调度更进一步的工序排序 优化提供了基础保障。同时,该方法可以广泛应用于各种智能算法,如遗传算法、蚁群算法、 粒子群算法、人工蜂群算法等求解柔性作业车间调度的初始种群环节,进而提高初始种群 的质量,改善算法的搜索能力和效率。对于以数控机床或加工中心为基础的实际柔性作业 车间生产环境,实现良好的生产调度优化,提高车间生产效率,具有重要的应用价值。
【附图说明】
[0007] 图1:本发明【具体实施方式】的流程图; 图2:本发明实施例的详细过程; 图3:本发明实施例的工序选择顺序及其对应机器优先等级设置。
【具体实施方式】
[0008] 下面结合具体实施例描述本发明: 本发明基于加工时间等级的柔性作业车间调度机器选择方法流程图见附图1。本实施 例以表1所示的2 X 6柔性作业车间调度问题实例为例,其中包含2个工件和6台机器,工序总 数目为7。
[0009] 表1,2X6柔性作业车间调度问题实例
本发明实施例的详细过程如图2所示,本发明实施例的工序选择顺序及其对应机器优 先等级设置如图3所示。所述一种基于加工时间等级的柔性作业车间调度机器选择方法,其 特征在于:采用以下步骤: 步骤1:读取如表1所示的2X6柔性作业车间调度问题实例数据,初始化机器数目 MachNum=6、机器集合Machine {Mi,M2,M3,M4,Μδ,M6}、所有工序组成的工序集合Al 1 Operat ion {On,0i2,0i3,〇2i,〇22,〇23,Ο24}、所有的工序数目Length=7、加工时间数组ProcTime(),设置一 个机器负荷数组MachLoad(MachNum)。
[0010] 步骤2:根据加工时间数组ProcTime 〇每道工序可选机器加工时间的大小,给加工 时间等级数组ProcTimeRank()赋值,机器对工序的加工时间越小,机器的优先等级越高,相 同加工时间的机器,具有相同的优先等级,表2所示为2X6柔性作业车间调度问题实例的机 器优先等级设置。
[0011] 表2,2X6柔性作业车间调度问题实例的机器优先等级设置
步骤3:初始化机器负荷数组MachLoad(),每一个元素值为0,即为MachLoad(0,0,0,0, 0,0)〇
[0012] 步骤4:对工序集合六11(^抑1:;[011{011,012,013,021,022,023,024}的元素进行随机排 列,得到A1 lOperation{0i3,022,024,0i2,023,Oil,02i},则工序选择机器的顺序为:013-022- 024-0l2-023-Oil-021,目的在于求得多种不同的机器选择方案。
[0013]步骤5:设置已选择机器的工序数目为i,并赋初值i=0。
[0014] 步骤6:设置优先选择的机器等级rank初值,rank=l。
[0015]步骤7:设置工序集合A1 lOperation {013,022,024,0i2,〇23,On,〇2i}中,工序的顺序索 引变量为j,从工序集合六11(^瓜1:;[011{013,022,024,012,023,011,021}的第1个兀素开始,查找 尚未选择机器的工序,直到找到未选择机器的工序,将该工序基于1的顺序索引赋值给j,此 时,013尚未选择机器,j = l。
[0016] 步骤8:从该工序013的可选机器集{11,13,14,1 5,16}中,选取加工时间等级为^1^ 的机器,组成优先等级机器集合PreRankMach{Mi,M5,]\fe}。
[0017] 步骤9:将该工序可选机器的加工时间,与机器负荷数组MachLoad(0,0,0,0,0,0) 对应机器的已有负荷相加,组成机器临时负荷数组MachLoadTemp( 5,0,7,6,5,5),从该数组 中选择临时负荷最小的机器,组成最小负荷机器集合LoadMinMacMMiUs}。
[0018] 步骤10:对优先等级机器集合PreRankMachiM^M^Md和最小负荷机器集合 1^0已(1]\1;[11]\&〇11{]\11,]\15,]\ /[6}求交集,记为厶,厶=?代1^111<:]\&〇11{]\11,]\15,]/[6}|"11^0&(1]\1;[11]\^(311{]\11,]\15,]\ /[6} = {Μι,Μ5,Μ6},如果A矣Φ,执行步骤12;否则,执行步骤11。
[0019] 步骤11: j=j+l,如果 j〈=Length,从工序集合A110peration{0i3,〇22,〇24,〇12,〇23, 〇n,〇21}的第j个元素开始,继续查找尚未选择机器的工序,直到找到未选择机器的工序,将 该工序基于1的索引赋值给」,转至执行步骤8 ;如果」>1^]^1:11,抑111^3111^+1,转至执行步骤 7〇
[0020] 步骤12:从交集A= {Mi,M5,M6}中,任选一台机器此,作为当前工序的加工机器,将该 机器M 5的加工时间5累加到机器负荷数组MachLoad (0,0,0,0,0,0)的对应元素上,更新机器 负荷数组MachLoad(0,0,0,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1