CN113406941B - 基于仿真的双目标并行机开放车间自适应动态调度方法 - Google Patents
基于仿真的双目标并行机开放车间自适应动态调度方法 Download PDFInfo
- Publication number
- CN113406941B CN113406941B CN202110952373.9A CN202110952373A CN113406941B CN 113406941 B CN113406941 B CN 113406941B CN 202110952373 A CN202110952373 A CN 202110952373A CN 113406941 B CN113406941 B CN 113406941B
- Authority
- CN
- China
- Prior art keywords
- workpiece
- machine
- workpieces
- chromosome
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 166
- 238000004088 simulation Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 69
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 39
- 238000004519 manufacturing process Methods 0.000 claims abstract description 18
- 230000000737 periodic effect Effects 0.000 claims abstract description 12
- 210000000349 chromosome Anatomy 0.000 claims description 106
- 108090000623 proteins and genes Proteins 0.000 claims description 39
- 238000003860 storage Methods 0.000 claims description 27
- 239000011159 matrix material Substances 0.000 claims description 19
- 238000003754 machining Methods 0.000 claims description 18
- 238000005457 optimization Methods 0.000 claims description 8
- 230000035772 mutation Effects 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000013461 design Methods 0.000 claims description 6
- 238000007514 turning Methods 0.000 claims description 6
- 238000009826 distribution Methods 0.000 claims description 4
- 230000002068 genetic effect Effects 0.000 claims description 3
- 230000036961 partial effect Effects 0.000 claims description 3
- 230000010076 replication Effects 0.000 claims description 3
- 230000003362 replicative effect Effects 0.000 claims description 3
- 230000002441 reversible effect Effects 0.000 claims description 3
- 238000002474 experimental method Methods 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 2
- 101000779583 Limulus polyphemus Anti-lipopolysaccharide factor Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32252—Scheduling production, machining, job shop
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Factory Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于仿真的双目标并行机开放车间自适应动态调度方法,按下述步骤进行:S1:通过FlexSim构建双目标并行机开放车间模型;S2:通过MATLAB运行NSGA‑Ⅱ算法得到多个调度方案;S3:通过层次分析法AHP确定最优调度方案;S4:FlexSim仿真执行调度方案;S5:到达动态调度时刻进行自适应周期动态调度,出现紧急工件进行右移重调度;S6:判断工件是否全部加工完成,加工完成结束调度,加工未完成转S4。本发明具有满足动态生产环境下的调度方案生成、提高车间机器利用率和改进生产稳定性的特点。
Description
技术领域
本发明涉及计算机集成制造技术领域,特别涉及一种基于仿真的双目标并行机开放车间自适应动态调度方法。
背景技术
开放车间调度问题(Open Shop Scheduling Problem,OSSP)是一类常见的调度问题,其特点是任务在车间不同阶段资源上的加工没有先后顺序约束。机械零件的质量检测、晶圆制造的晶粒拣选、汽车售后的检测与保养等调度问题均属于OSSP。与经典的OSSP问题区别的是,并行机OSSP至少有一个阶段的机器是并行机。并行机OSSP是NP-hard问题,解决方法主要有数学规划法、启发式算法与各类智能算法。数学规划、启发式算法以及静态智能算法适用于求解确定性稳态问题,无法解决现实生产过程中的存在的工件随机到达、加工时间不确定、紧急工件等动态与随机性问题。
随着系统仿真技术的发展,提出了基于仿真方法的动态调度方法,但相关研究偏少,考虑的动态事件相对单一,而且优化目标以单目标为主,因此存在不匹配现实需求,无法满足动态生产环境下企业的调度方案快速生成,车间机器利用率低和生产不稳定等问题。
发明内容
本发明的目的在于,提供一种基于仿真的双目标并行机开放车间自适应动态调度方法。本发明具有解决多种动态事件影响下的快速调度决策生成,提高车间机器利用率和改进生产稳定性的特点。
本发明的技术方案:
一种基于仿真的双目标并行机开放车间自适应动态调度方法,其特征在于,按下述步骤进行:
S1:通过FlexSim构建双目标并行机开放车间模型;
S2:通过MATLAB运行NSGA-Ⅱ算法得到多个调度方案;
S3:通过层次分析法AHP(Analytic Hierarchy Process)确定最优调度方案;
S4:FlexSim仿真执行调度方案;
S5:到达重调度时刻进行周期重调度,出现紧急工件进行右移重调度;
S6:判断工件是否全部加工完成,加工完成结束调度,加工未完成转S4。
前述的基于仿真的双目标并行机开放车间自适应动态调度方法中,所述步骤S1中的FlexSim构建双目标并行机开放车间模型按下述步骤进行:
步骤2.1:确认模型要素:并行机开放车间调度问题可以描述为将工件集中的n个工件安排在机器集S={s1,...,sj,...sm}中的m个阶段或工序的机器上加工,工件Ji在每个阶段的加工顺序不受限制;其中,m≥2,且至少存在一个或多个阶段sj的机器数量Nj>1,机器为同类等效机;
步骤2.2:设置优化目标为双目标为最小化总加权完工时间TWC(Total WeightedCompletion Time)和最小化总加权拖期时间TWT(Total Weighted Tardiness);
步骤2.3:建模逻辑;包括如下步骤:
步骤2.3.1:普通工件与紧急工件由工件发生器生成并随机赋予到达时间、各工序加工时间等标签信息;
步骤2.3.2:生成后的工件进入工件选机器暂存区后按照工件选择机器的分派规则进行指派;若该时刻工件没有工序可以分配的下游,则判断工件是否已经完成全部加工工序,若是则进入产库,否则进入工件选机器暂存区中等待下一时刻的分配;
步骤2.3.3:可分配的工件完成后进入指定下游机器选工件暂存区,等到该时刻工件选机器暂存区内所有工件全部分配完成后,机器选工件暂存区内的工件按照权重/工序加工时间的值进行降序排序,所有排序等级层级为1的工件进入各工序等待加工暂存区,其余层次会重新回到工件选机器暂存区等待再次分配;
步骤2.3.4:进入各工序等待加工暂存区的工件会根据指定排序规则进行再次排序,最优者进入机器进行加工,剩余工件进入工件选机器暂存区;
步骤2.3.5:判断所有工件是否加工完成,加工完成结束模型运行,加工未完成转步骤2.3.2。
前述的基于仿真的双目标并行机开放车间自适应动态调度方法中,所述步骤S2中的NSGA-Ⅱ算法的设计方法按下述步骤进行:
步骤3.1:随机初始化种群,按照如下编码方式对种群个体进行编码,对初始状态的基因位进行随机乱序操作得到初始解和初始种群;
编码方式:用自然数编码方式,染色体上每位基因由工件编号(1~n)和工序编号(1~m)两部分组成;一条染色体的总基因位数为n*m个;按照这种编码方式,初始状态为11,12,…,1m,…,n1,n2,…,nm,其中nm表示第n个工件在工序m上进行加工;
步骤3.2:对种群中染色体q进行解码操作,包括如下步骤:
步骤3.2.1:生成m行n列全0矩阵Q,记录每道工序下一个需要加工的工件编号,令i=1;
步骤3.2.2:判断i≤n*m是否成立;若是,转步骤3.2.3;若否,输出矩阵Q;
步骤3.2.3:将染色体q第i位上的基因拆分为工件编号a和工序编号b;
步骤3.2.4:将矩阵Q中b行的第一个零元素改写为工件编号a,令i=i+1,返回步骤3.2.2;
步骤3.3:通过工件加工顺序矩阵Q,计算染色体q的目标值,包括如下步骤:
步骤3.3.1:确定在t时刻可用的机器与可加工的工件;
步骤3.3.2:对于可加工的工件,按照机器优先规则选择机器;
步骤3.3.3:更新机器状态与时刻t,循环上述过程,直到矩阵Q中每道工序上的工件按照预定的顺序选择机器;根据工件在每道工序上的加工顺序和加工时间等信息,计算目标值总加权完工时间TWC和总加权拖期时间TWT;
步骤3.4:遗传操作设计,具体过程包括:
步骤3.4.1:进行复制操作:选择复制N条父代染色体,将N条父代染色体与N条子代染色体组合成的2N条染色体中选择复制N条染色体形成新种群;根据快速非支配排序后染色体所在的排序等级,优先选择复制等级低的染色体;若染色体的排序等级相同,优先选择拥挤度大的染色体;
步骤3.4.2:进行交叉操作,包括如下步骤:
步骤3.4.2.1:从种群P中选择了染色体q1、q2和q3,将染色体q3基因位的工件编号和工序编号相加,和为偶数转步骤3.4.2.2,和为奇数转3.4.2.3;
步骤3.4.2.2:从左向右依次选择q2的第1个可用基因,将其复制给子代c1,同时删除染色体q1和q2中的相同基因;
步骤3.4.2.3.从左向右依次选择q1的第1个可用基因,并将其复制给c1,同时删除染色体q1和q2中的相同基因;
步骤3.4.3:进行变异操作:将染色体还原成每道工序上工件加工顺序矩阵,再将任意两道工序加工顺序互换;
步骤3.5:基于独立解的密度的NSGA-Ⅱ算法,包括如下步骤:
若d(q1c,q2c)的值越大,表示染色体q1和q2的差异越大;若d(q1,q2)的值为0,则表示染色体q1和q2相同;
若染色体qm与种群内其他染色体的差异值均大于0,则染色体qm对应的解称为独立解;若Nd表示种群内的独立解数量,则独立解密度dw=Nd/N,表示独立解在种群规模中的占比;
步骤3.5.2:多样性提升,设定预期的独立解密度为dw*,假设dw为算法某一次迭代后的独立解密度值,若dw<dw*,则表示种群内存在冗余染色体,需要将部分冗余染色体剔除,产生新染色体,提升种群多样性,保证算法质量,包括如下步骤:
步骤3.5.2.1:随机选择一条冗余染色体qr;
步骤3.5.2.2:随机产生一个1~nm的数,将染色体qr分为qrL与qrR两段;
步骤3.5.2.3:随机保留一段基因不变,另一段基因随机乱序,形成新染色体qf;
步骤3.5.2.4:染色体qf替换染色体qr,循环上述过程,直到满足预期的独立解密度dw*;
步骤3.5.3:设置独立解密度随着进化代数的增加而变小:在每一代随机生成自然数1或0,若为0,则独立解密度保持不变;若为1,则独立解密度值减0.01;
步骤3.6:基于动态环境的NSGA-Ⅱ算法参数调整:对于未完工工件集合中已经完成部分工序的未完工工件,将其已完工工序的基因设置为0;对于集合中正在加工工件,其到达时间为剩余工序加工时间;对于集合中的待加工工件,其到达时间为0;根据机器的加工或空闲状态更新其可用时间,若机器正在加工工件,则其可用时间为完成该工件加工所需的剩余时间,否则为0;采用随机确定的部分基因位倒序操作进行变异。
前述的基于仿真的双目标并行机开放车间自适应动态调度方法中,所述S5包括如下步骤:
步骤4.1:自适应周期动态调度:根据车间负荷计算动态调度周期ΔT得到动态调度时刻;
车间负荷计算动态调度周期ΔT的计算方法:根据公式
得到动态调度时刻,其中m表示阶段或工序数量,mj表示第j阶段机器数,p′ij表示工件Ji在sj阶段工序上的加工时间;对于等待加工的工件,p′ij=pij;对于正在机器上加工的工件,P′ij指该工序剩余的加工时间,若ΔT值非整数,进行取小取整操作;
步骤4.2:右移重调度:紧急工件出现时进行右移重调度操作,包括如下步骤:
步骤4.2.1.紧急工件到达时,有空闲可用机器,则紧急工件可以在第一台可用机器上加工的工序进行安排,并将该工序从候选工序集中删除;
步骤4.2.2.假设原调度方案中工序d中机器e上未完工的工件数为nde,紧急工件各工序的完成时间为tg(g=1,...,m),分别计算每台机器上各个工件的工序完工时间tdef(f=1,2,...,nde),若存在tdef=tg,表示紧急工件某道工序加工完成后,未加工工序d的机器e处于空闲,转步骤4.2.3,若不存在tdef=tg,表示紧急工件某道工序加工完成后,未加工工序中不存在机器空闲,转步骤4.2.4;
步骤4.2.3.将紧急工件安排在工序d的机器e上,将该工序从候选工序集中删除;
步骤4.2.4.令t′=|tdef-tg|,找到每道未完工工序中使t′最小的位置,分别计算每道未完工工序中将紧急工件放置在该位置以及前后两个位置上的目标值,选择TWT最小的方案,进行紧急工件加工,将该工序从候选工序集中删除;
4.2.5.更新t,循环执行步骤4.2.1与步骤4.2.2,直至紧急工件所有工序加工完成;如果存在多个紧急工件,则交期小的紧急工件优先进行安排。
与现有技术相比,本发明具有以下有益效果:
本发明能实现多种动态事件影响下的近优生产调度方案生成,提高车间机器利用率和改进生产稳定性。
由于动态调度期间工件和机器状态的不确定性,本发明进行了基于动态环境的NSGA-Ⅱ算法参数的调整以及多样性调整,避免NSGA-Ⅱ算法陷入局部收敛,生成近优的生产调度方案;本发明还对调度周期ΔT进行了特定的改进,根据车间负荷计算自适应调度周期ΔT,均衡了系统能力与车间负荷,实现车间机器的利用率提高和资源浪费减少,且生产调度方案稳定,运算负担和物流成本减少。
附图说明
图1是基于仿真的双目标并行机开放车间自适应动态调度方法总体流程图;
图2是模型整体逻辑框架;
图3是基础NSGA-Ⅱ算法流程图;
图4是染色体解码顺序矩阵生成示意图;
图5是目标值计算流程图;
图6是交叉方法示意图;
图7是基于独立解密度的改进NSGA-Ⅱ算法流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
实施例:一种基于仿真的双目标并行机开放车间自适应动态调度方法,如图1所示,按下述步骤进行:
S1:通过FlexSim构建双目标并行机开放车间模型;
S2:通过MATLAB运行NSGA-Ⅱ算法得到多个调度方案;
S3:通过层次分析法AHP确定最优调度方案;
S4:FlexSim仿真执行调度方案;
S5:到达动态调度时刻进行自适应周期动态调度,出现紧急工件进行右移重调度;
S6:判断工件是否全部加工完成,加工完成结束调度,加工未完成转S4。
如图2所示,FlexSim模型构建基本要素图包括优化目标、工序数与并行机存在工序。优化目标本发明选择双目标最小化总加权完工时间TWC与最小化总加权拖期时间TWT。
所述步骤S1中的FlexSim构建双目标并行机开放车间模型按下述步骤进行:
步骤2.1:确认模型要素:并行机开放车间调度问题可以描述为将工件集中的n个工件安排在机器集S={s1,...,sj,...sm}中的m个阶段或工序的机器上加工,工件Ji在每个阶段的加工顺序不受限制;其中,m≥2,且至少存在一个或多个阶段sj的机器数量Nj>1,机器为同类等效机;
步骤2.2:设置优化目标为双目标为最小化总加权完工时间TWC(Total WeightedCompletion Time)和最小化总加权拖期时间TWT(Total Weighted Tardiness);
步骤2.3:建模逻辑;包括如下步骤:
步骤2.3.1:普通工件与紧急工件由工件发生器生成并随机赋予到达时间、各工序加工时间等标签信息;
步骤2.3.2:生成后的工件进入工件选机器暂存区后按照工件选择机器的分派规则进行指派;若该时刻工件没有工序可以分配的下游,则判断工件是否已经完成全部加工工序,若是则进入产库,否则进入工件选机器暂存区中等待下一时刻的分配;
步骤2.3.3:可分配的工件完成后进入指定下游机器选工件暂存区,等到该时刻工件选机器暂存区内所有工件全部分配完成后,机器选工件暂存区内的工件按照权重/工序加工时间的值进行降序排序,所有排序等级层级为1的工件进入各工序等待加工暂存区,其余层次会重新回到工件选机器暂存区等待再次分配;
步骤2.3.4:进入各工序等待加工暂存区的工件会根据指定排序规则进行再次排序,最优者进入机器进行加工,剩余工件进入工件选机器暂存区;
步骤2.3.5:判断所有工件是否加工完成,加工完成结束模型运行,加工未完成转步骤2.3.2。
如图3所示,所述步骤S2中的NSGA-Ⅱ算法的设计方法按下述步骤进行:
步骤3.1:随机初始化种群,按照如下编码方式对种群个体进行编码,对初始状态的基因位进行随机乱序操作得到初始解和初始种群;
编码方式:用自然数编码方式,染色体上每位基因由工件编号(1~n)和工序编号(1~m)两部分组成;一条染色体的总基因位数为n*m个;按照这种编码方式,初始状态为11,12,…,1m,…,n1,n2,…,nm,其中nm表示第n个工件在工序m上进行加工;
如图4所示,步骤3.2:对种群中染色体q进行解码操作,包括如下步骤:
步骤3.2.1:生成m行n列全0矩阵Q,记录每道工序下一个需要加工的工件编号,令i=1;
步骤3.2.2:判断i≤n*m是否成立;若是,转步骤3.2.3;若否,输出矩阵Q;
步骤3.2.3:将染色体q第i位上的基因拆分为工件编号a和工序编号b;
步骤3.2.4:将矩阵Q中b行的第一个零元素改写为工件编号a,令i=i+1,返回步骤3.2.2;
如图5所示,步骤3.3:通过工件加工顺序矩阵Q,计算染色体q的目标值,包括如下步骤:
步骤3.3.1:确定在t时刻可用的机器与可加工的工件;
步骤3.3.2:对于可加工的工件,按照机器优先规则选择机器;
步骤3.3.3:更新机器状态与时刻t,循环上述过程,直到矩阵Q中每道工序上的工件按照预定的顺序选择机器;根据工件在每道工序上的加工顺序和加工时间等信息,计算目标值总加权完工时间TWC和总加权拖期时间TWT;
步骤3.4:遗传操作设计,具体过程包括:
步骤3.4.1:进行复制操作:选择复制N条父代染色体,将N条父代染色体与N条子代染色体组合成的2N条染色体中选择复制N条染色体形成新种群;根据快速非支配排序后染色体所在的排序等级,优先选择复制等级低的染色体;若染色体的排序等级相同,优先选择拥挤度大的染色体;
如图6所示,步骤3.4.2:进行交叉操作,包括如下步骤:
步骤3.4.2.1:从种群P中选择了染色体q1,q2,q3,将染色体q3基因位的工件编号和工序编号相加,和为偶数转步骤3.4.2.2,和为奇数转3.4.2.3;
步骤3.4.2.2:从左向右依次选择q2的第1个可用基因,将其复制给子代c1,同时删除染色体q1和q2中的相同基因;
步骤3.4.2.3.从左向右依次选择q1的第1个可用基因,并将其复制给c1,同时删除染色体q1和q2中的相同基因;
步骤3.4.3:进行变异操作:将染色体还原成每道工序上工件加工顺序矩阵,再将任意两道工序加工顺序互换;
如图7所示,步骤3.5:基于独立解的密度的NSGA-Ⅱ算法,包括如下步骤:
若d(q1c,q2c)的值越大,表示染色体q1和q2的差异越大;若d(q1,q2)的值为0,则表示染色体q1和q2相同;
若染色体qm与种群内其他染色体的差异值均大于0,则染色体qm对应的解称为独立解;若Nd表示种群内的独立解数量,则独立解密度dw=Nd/N,表示独立解在种群规模中的占比;
步骤3.5.2:多样性提升,设定预期的独立解密度为dw*,假设dw为算法某一次迭代后的独立解密度值,若dw<dw*,则表示种群内存在冗余染色体,需要将部分冗余染色体剔除,产生新染色体,提升种群多样性,保证算法质量,包括如下步骤:
步骤3.5.2.1:随机选择一条冗余染色体qr;
步骤3.5.2.2:随机产生一个1~nm的数,将染色体qr分为qrL与qrR两段;
步骤3.5.2.3:随机保留一段基因不变,另一段基因随机乱序,形成新染色体qf;
步骤3.5.2.4:染色体qf替换染色体qr,循环上述过程,直到满足预期的独立解密度dw*;
步骤3.5.3:设置独立解密度随着进化代数的增加而变小:在每一代随机生成自然数1或0,若为0,则独立解密度保持不变;若为1,则独立解密度值减0.01。
步骤3.6:基于动态环境的NSGA-Ⅱ算法参数调整:对于未完工工件集合中已经完成部分工序的未完工工件,将其已完工工序的基因设置为0;对于集合中正在加工工件,其到达时间为剩余工序加工时间;对于集合中的待加工工件,其到达时间为0;根据机器的加工或空闲状态更新其可用时间,若机器正在加工工件,则其可用时间为完成该工件加工所需的剩余时间,否则为0;采用随机确定的部分基因位倒序操作进行变异。
所述S5包括如下步骤:
步骤4.1:自适应周期动态调度:根据车间负荷计算动态调度周期ΔT得到动态调度时刻;
车间负荷计算动态调度周期ΔT的方法:根据公式
得到动态调度时刻,其中m表示阶段或工序数量,mj表示第j阶段机器数,p′ij表示工件Ji在sj阶段工序上的加工时间;对于等待加工的工件,p′ij=pij;对于正在机器上加工的工件,p′ij指该工序剩余的加工时间,若ΔT值非整数,进行取小取整操作;
步骤4.2:右移重调度:紧急工件出现时进行右移重调度操作,包括如下步骤:
步骤4.2.1.紧急工件到达时,有空闲可用机器,则紧急工件可以在第一台可用机器上加工的工序进行安排,并将该工序从候选工序集中删除;
步骤4.2.2.假设原调度方案中工序d中机器e上未完工的工件数为nde,紧急工件各工序的完成时间为tg(g=1,...,m),分别计算每台机器上各个工件的工序完工时间tdef(f=1,2,...,nde),若存在tdef=tg,表示紧急工件某道工序加工完成后,未加工工序d的机器e处于空闲,转步骤4.2.3,若不存在tdef=tg,表示紧急工件某道工序加工完成后,未加工工序中不存在机器空闲,转步骤4.2.4;
步骤4.2.3.将紧急工件安排在工序d的机器e上,将该工序从候选工序集中删除;
步骤4.2.4.令t′=|tdef-tg|,找到每道未完工工序中使t'最小的位置,分别计算每道未完工工序中将紧急工件放置在该位置以及前后两个位置上的目标值,选择TWT最小的方案,进行紧急工件加工,将该工序从候选工序集中删除;
4.2.5.更新t,循环执行步骤4.2.1与步骤4.2.2,直至紧急工件所有工序加工完成;如果存在多个紧急工件,则交期小的紧急工件优先进行安排。
为了验证本申请提出的自适应动态调度方法的有效性,结合某典型晶粒拣选企业的生产实际,针对具有4道工序,且工序1和工序3具有等效并行机的开放车间,设计了如下的实验环境。工件数量n={10,20},工件到达时间间隔服从整数均匀分布U[0,5],权重服从U[1,4],工件在4道工序的加工时间分别服从U[6,9],U[2,4],U[7,9],U[2,6],交期服从整数均匀分布若非整数,向上取整。通过预实验确定f1=1.7,f2=2.1。对于紧急工件,到达时间服从整数均匀分布U[0,51],权重服从U[4,6],交期服从若非整数,向上取整。
根据实验环境和实验目的设计如表1所示的实验方案。动态调度方案分为两种:一是基于规则的实时动态调度;二是周期和紧急工件驱动的混合动态调度。共有14种((4+3)*2=14)参数组合。对于每组参数组合,随机生成10次实验,选择中间值作为该组实验的结果。
调度的终止条件设置为没有新工件到达。
表1
基于规则的实时动态调度是指基于FlexSim仿真模型,在时刻t按照可用机器选择工件,或者可加工工件选择机器的双向方式,将工件安排到机器上加工。本发明运用了最短加权加工时间优先(Weighted Shortest Processing Time,WSPT)与最早工期优先(Earliest Due Date,EDD)两种工件选择规则,以及首台可用优先(First Available,FA)与未来剩余平均负荷最大的机器优先(Largest Average Load First,LALF)两种机器选择规则。
对于周期和紧急工件驱动的混合动态调度,周期调度包括本发明提出的自适应周期与固定周期10与30的动态调度;紧急工件驱动的调度均采用右移重调度方式。无论是周期或是紧急工件驱动的动态调度,调度方案的生成均运用了NSGA-Ⅱ算法。
NSGA-Ⅱ算法的参数为:初始种群规模N=400,最大迭代次数gen=100,交叉概率为0.9,变异概率为0.1。紧急工件用占正常工件的比率表示,根据企业实际情况设置为5%。
仿真实验分析:NSGA-Ⅱ算法由Matlab2020a编程实现,仿真模型由FlexSim2019实现,并基于戴尔7920工作站以及Windows 10Intel(R)Xeon(R)Gold 6142 CPU 2.60GHz平台进行算法运行与仿真实验。根据所示参数设计,本实例实验数据见表2;
工件序号 | 到达时间 | 权重 | 工序1 | 工序2 | 工序3 | 工序4 | 交期 |
1 | 0 | 2 | 8 | 3 | 9 | 6 | 49 |
2 | 0 | 1 | 9 | 3 | 7 | 6 | 43 |
3 | 0 | 3 | 8 | 2 | 9 | 4 | 42 |
4 | 0 | 4 | 7 | 4 | 7 | 3 | 38 |
5 | 0 | 2 | 8 | 2 | 7 | 5 | 40 |
6 | 4 | 3 | 8 | 3 | 7 | 6 | 48 |
7 | 6 | 1 | 6 | 2 | 8 | 5 | 42 |
8 | 7 | 4 | 9 | 3 | 9 | 6 | 56 |
9 | 10 | 2 | 6 | 3 | 9 | 5 | 53 |
10 | 14 | 1 | 9 | 4 | 7 | 2 | 55 |
11 | 19 | 3 | 7 | 2 | 7 | 3 | 53 |
12 | 21 | 2 | 7 | 3 | 9 | 3 | 59 |
13 | 26 | 4 | 7 | 4 | 8 | 4 | 68 |
14 | 31 | 2 | 7 | 4 | 7 | 3 | 68 |
15 | 34 | 3 | 9 | 2 | 8 | 2 | 73 |
16 | 39 | 2 | 6 | 3 | 7 | 2 | 71 |
17 | 43 | 1 | 8 | 2 | 8 | 4 | 83 |
18 | 45 | 3 | 6 | 4 | 7 | 3 | 81 |
19 | 48 | 4 | 8 | 4 | 8 | 2 | 89 |
20 | 51 | 3 | 7 | 3 | 9 | 6 | 98 |
表2
独立解密度对算法效绩的影响分析:对于工件数量n=10和n=20两种情况,设置独立解密度分别为0.45,0.5,0.55,0.6等4个水平值进行实验,结果如表3所示。
表3
从表3可知,无论工件数量为10还是20,算法的运行时间与迭代次数都随着独立解密度dw*值变大而增加,而目标值的变化呈现V型变化,先变小再变大。原因是独立解密度值越大,尽管可以改进种群的多样性,但是会影响种群的收敛性,导致得到的Pareto解集不一定更优。根据不同独立解密度值之下的目标值、迭代次数与运行时间,本发明将工件数量为10与20时的独立解密度设置为0.55。为了验证独立解密度对算法绩效的影响,针对10个工件的并行机开放车间调度问题,分别进行了采用和不采用独立解密度模块的5次独立实验。结果显示,不采用独立解密度模块,算法收敛快,平均收敛代数为35;采用独立解密度判断和多样性提升,收敛代数会明显增加,平均为51代。由于进行了基于独立解密度判断的多样性提升,算法可以获得更好的解质量。
不同动态调度方案的效绩比较分析:由于本申请的并行机开放车间调度问题为双目标,因此利用NSGA-Ⅱ算法求解调度方案时,会出现多个非支配解,在企业实际生产中,由决策者进行方案的筛选和选择。在本申请中,对于NSGA-Ⅱ算法得到的多个Pareto解,利用AHP方法选择最优解,作为FlexSim仿真模型的输入进行生产仿真,最终得到唯一解。
根据表1所示的实验方案进行实验,记录每组参数组合之下的目标值、动态调度次数、运行时间,以及混合动态调度的偏离值aO与aM。
工序偏离度dO与机器偏离度dM计算公式分别为:式中,stij为原调度方案工序Oij的开始加工时间,表示重调度方案工序Oij的开始加工时间;yk为机器k上相对于原调度工序偏差的总数量,pk为原调度方案中工序发生变化机器的惩罚系数,取值为1。
结果如表4所示。不同混合动态调度方案的动态调度期间与偏离度计算数据见表5-7。
表4
表5
表6
表7表4的结果显示,工件数量为10与20的参数组合下,混合动态调度的目标值优于表3独立解密度实验中的目标值。
从表4-7可知,无论工件数量是10还是20的参数组合下,基于规则的实时动态调度的运行时间最短,其次是自适应周期混合动态调度,运行时间最长的是固定周期为30的混合动态调度。
对于目标值,自适应周期混合动态调度最佳,基于规则的实时动态调度次之,固定周期重调度相对较差。
对于重调度的次数、工序偏离度do和机器偏离度dM,自适应动态调度在三种周期调度方案中最好。相比较而言,固定周期10的动态调度方案,尽管目标值优于固定周期30的动态调度方案,但动态调度次数过多,对原调度方案冲击最大,且每次动态调度时均存在剩余负荷,稳定性最差;周期30的动态调度方案动态调度次数最小,偏离度小于周期10的动态调度方案,稳定性好,但会出现周期内工件全部加工完成的情况,造成机器空闲,资源浪费。
本发明提出的自适应周期混合动态调度方案,根据车间的实时负荷确定动态调度周期,可在响应动态变化的同时,保证系统资源的稳定性与利用率,不仅均衡了动态调度次数的同时,也可以获得更佳的目标值。
综上所述,针对工件随机到达和处理时间不确定,且存在紧急工件的并行机开放车间动态调度问题,本发明提出了利用FlexSim模型仿真工件生成与加工运行情况,根据车间实时负荷或紧急工件到达触发动态调度问题,运用NSGA-Ⅱ算法对单期间的动态调度问题进行双目标优化求解的动态自适应调度优化方法。某晶粒拣选车间的实验结果表明,相较于利用规则的实时动态调度与固定周期动态调度方法,本发明提出的方法能够在最小化调度偏离度的同时获得满意解。
Claims (3)
1.一种基于仿真的双目标并行机开放车间自适应动态调度方法,其特征在于,按下述步骤进行:
S1:通过FlexSim构建双目标并行机开放车间模型;
S2:通过MATLAB运行NSGA-II算法得到多个调度方案;
S3:通过层次分析法AHP确定最优调度方案;
S4:FlexSim仿真执行调度方案;
S5:到达动态调度时刻进行自适应周期动态调度,出现紧急工件进行右移重调度;
S6:判断工件是否全部加工完成,加工完成结束调度,加工未完成转S4;
所述S5包括如下步骤:
步骤4.1:自适应周期动态调度:根据车间负荷计算动态调度周期ΔT得到动态调度时刻;
车间负荷计算动态调度周期ΔT的方法:根据公式
得到动态调度时刻,其中m表示阶段或工序数量,mj表示第j阶段机器数,p′ij表示工件Ji在sj阶段工序上的加工时间;对于等待加工的工件,p′ij=pij;对于正在机器上加工的工件,pij指该工序剩余的加工时间,若ΔT值非整数,进行取小取整操作;
步骤4.2:右移重调度:紧急工件出现时进行右移重调度操作,包括如下步骤:
步骤4.2.1.紧急工件到达时,有空闲可用机器,则紧急工件可以在第一台可用机器上加工的工序进行安排,并将该工序从候选工序集中删除;
步骤4.2.2.假设原调度方案中工序d中机器e上未完工的工件数为nde,紧急工件各工序的完成时间为tg(g=1,...,m),分别计算每台机器上各个工件的工序完工时间tdef(f=1,2,...,nde),若存在tdef=tg,表示紧急工件某道工序加工完成后,未加工工序d的机器e处于空闲,转步骤4.2.3,若不存在tdef-tg,表示紧急工件某道工序加工完成后,未加工工序中不存在机器空闲,转步骤4.2.4;
步骤4.2.3.将紧急工件安排在工序d的机器e上,将该工序从候选工序集中删除;
步骤4.2.4.令t′=|tdef-tg|,找到每道未完工工序中使t′最小的位置,分别计算每道未完工工序中将紧急工件放置在该位置以及前后两个位置上的目标值,选择TWT最小的方案,进行紧急工件加工,将该工序从候选工序集中删除;
4.2.5.更新t,循环执行步骤4.2.1与步骤4.2.2,直至紧急工件所有工序加工完成;如果存在多个紧急工件,则交期小的紧急工件优先进行安排。
2.根据权利要求1所述的基于仿真的双目标并行机开放车间自适应动态调度方法,其特征在于,所述步骤S1中的FlexSim构建双目标并行机开放车间模型按下述步骤进行:
步骤2.1:确认模型要素:并行机开放车间调度问题可以描述为将工件集中的n个工件安排在机器集S={s1,...,sj,...sm}中的m个阶段或工序的机器上加工,工件Ji在每个阶段的加工顺序不受限制;其中,m≥2,且至少存在一个或多个阶段sj的机器数量Nj>1,机器为同类等效机;
步骤2.2:设置优化目标为双目标为最小化总加权完工时间TWC和最小化总加权拖期时间TWT;
步骤2.3:建模逻辑;包括如下步骤:
步骤2.3.1:普通工件与紧急工件由工件发生器生成并随机赋予到达时间、各工序加工时间的标签信息;
步骤2.3.2:被赋予标签信息的工件进入工件选机器暂存区后按照工件选择机器的分派规则进行指派;若该时刻工件没有工序可以分配的下游,则判断工件是否已经完成全部加工工序,若是则进入产库,否则进入工件选机器暂存区中等待下一时刻的分配;
步骤2.3.3:可分配的工件完成后进入指定下游机器选工件暂存区,等到工件选机器暂存区内所有工件全部分配完成后,机器选工件暂存区内的工件按照权重/工序加工时间的值进行降序排序,所有排序等级层级为1的工件进入各工序等待加工暂存区,排序层级为其余层级的工件重新回到工件选机器暂存区等待再次分配;
步骤2.3.4:进入各工序等待加工暂存区的工件会根据指定排序规则进行再次排序,最优者进入机器进行加工,剩余工件进入工件选机器暂存区;
步骤2.3.5:判断所有工件是否加工完成,加工完成结束模型运行,加工未完成转步骤2.3.2。
3.根据权利要求1所述的基于仿真的双目标并行机开放车间自适应动态调度方法,其特征在于,所述步骤S2中的NSGA-II算法的设计方法按下述步骤进行:
步骤3.1:随机初始化种群,按照如下编码方式对种群个体进行编码,对初始状态的基因位进行随机乱序操作得到初始解和初始种群;
编码方式:用自然数编码方式,染色体上每位基因由工件编号1~n和工序编号1~m两部分组成;一条染色体的总基因位数为n*m个;按照这种编码方式,初始状态为11,12,…,1m,…,n1,n2,…,nm,其中nm表示第n个工件在工序m上进行加工;
步骤3.2:对种群中染色体q进行解码操作,包括如下步骤:
步骤3.2.1:生成m行n列全0矩阵Q,记录每道工序下一个需要加工的工件编号,令i=1;
步骤3.2.2:判断i≤n*m是否成立;若是,转步骤3.2.3;若否,输出矩阵Q;
步骤3.2.3:将染色体q第i位上的基因拆分为工件编号a和工序编号b;
步骤3.2.4:将矩阵Q中b行的第一个零元素改写为工件编号a,令i=i+1,返回步骤3.2.2;
步骤3.3:通过工件加工顺序矩阵Q,计算染色体q的目标值,包括如下步骤:
步骤3.3.1:确定在t时刻可用的机器与可加工的工件;
步骤3.3.2:对于可加工的工件,按照机器优先规则选择机器;
步骤3.3.3:更新机器状态与时刻t,循环上述过程,直到矩阵Q中每道工序上的工件按照预定的顺序选择机器;根据工件在每道工序上的加工顺序和加工时间信息,计算目标值总加权完工时间TWC和总加权拖期时间TWT;
步骤3.4:遗传操作设计,具体过程包括:
步骤3.4.1:进行复制操作:选择复制N条父代染色体,将N条父代染色体与N条子代染色体组合成的2N条染色体中选择复制N条染色体形成新种群;根据快速非支配排序后染色体所在的排序等级,优先选择复制等级低的染色体;若染色体的排序等级相同,优先选择拥挤度大的染色体;
步骤3.4.2:进行交叉操作,包括如下步骤:
步骤3.4.2.1:从种群P中选择染色体q1、q2和q3,将染色体q3:基因位的工件编号和工序编号相加,和为偶数转步骤3.4.2.2,和为奇数转3.4.2.3;
步骤3.4.2.2:从左向右依次选择q2的第1个可用基因,将其复制给子代c1,同时删除染色体q1和q2中的相同基因;
步骤3.4.2.3.从左向右依次选择q1的第1个可用基因,并将其复制给c1,同时删除染色体q1和q2中的相同基因;
步骤3.4.3:进行变异操作:将染色体还原成每道工序上工件加工顺序矩阵,再将任意两道工序加工顺序互换;
步骤3.5:基于独立解密度的NSGA-II算法,包括如下步骤:
若d(q1c,q2c)的值越大,表示染色体q1和q2的差异越大;若d(q1,q2)的值为0,则表示染色体q1和q2相同;
若染色体qm与种群内其他染色体的差异值均大于0,则染色体qm对应的解称为独立解;若Nd表示种群内的独立解数量,则独立解密度dw=Nd/N,表示独立解在种群规模中的占比;
步骤3.5.2:多样性提升,设定预期的独立解密度为dw*,假设dw为算法某一次迭代后的独立解密度值,若dw<dw*,则表示种群内存在冗余染色体,需要将部分冗余染色体剔除,产生新染色体,提升种群多样性,保证算法质量,包括如下步骤:
步骤3.5.2.1:随机选择一条冗余染色体qr;
步骤3.5.2.2:随机产生一个1~nm的数,将染色体qr分为qrL与qrR两段;
步骤3.5.2.3:随机保留一段基因不变,另一段基因随机乱序,形成新染色体qf;
步骤3.5.2.4:染色体qf替换染色体qr,循环上述过程,直到满足预期的独立解密度dw*;
步骤3.5.3:设置独立解密度随着进化代数的增加而变小:在每一代随机生成自然数1或0,若为0,则独立解密度保持不变;若为1,则独立解密度值减0.01;
步骤3.6:基于动态环境的NSGA-II算法参数调整:对于未完工工件集合中已经完成部分工序的未完工工件,将其已完工工序的基因设置为0;对于集合中正在加工工件,其到达时间为剩余工序加工时间;对于集合中的待加工工件,其到达时间为0;根据机器的加工或空闲状态更新其可用时间,若机器正在加工工件,则其可用时间为完成该工件加工所需的剩余时间,否则为0;采用随机确定的部分基因位倒序操作进行变异。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110952373.9A CN113406941B (zh) | 2021-08-19 | 2021-08-19 | 基于仿真的双目标并行机开放车间自适应动态调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110952373.9A CN113406941B (zh) | 2021-08-19 | 2021-08-19 | 基于仿真的双目标并行机开放车间自适应动态调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113406941A CN113406941A (zh) | 2021-09-17 |
CN113406941B true CN113406941B (zh) | 2021-11-16 |
Family
ID=77688780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110952373.9A Active CN113406941B (zh) | 2021-08-19 | 2021-08-19 | 基于仿真的双目标并行机开放车间自适应动态调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113406941B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929263A (zh) * | 2012-11-16 | 2013-02-13 | 北京理工大学 | 一种混合流水车间调度方法 |
CN109085804A (zh) * | 2018-07-17 | 2018-12-25 | 昆明理工大学 | 一种用于电子产品在多工厂车间生产过程的优化调度方法 |
CN111260144B (zh) * | 2020-01-20 | 2022-03-29 | 合肥工业大学 | 一种差异工件随机到达情况下单机批调度问题的求解方法 |
CN111461459B (zh) * | 2020-04-24 | 2023-06-30 | 温州大学乐清工业研究院 | 断路器数字制造孪生车间的动态重调度预测方法及系统 |
CN112257296B (zh) * | 2020-11-27 | 2021-06-25 | 西南交通大学 | 基于改进遗传算法的带有缓存约束的作业车间调度方法 |
-
2021
- 2021-08-19 CN CN202110952373.9A patent/CN113406941B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113406941A (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104268722B (zh) | 基于多目标进化算法的动态柔性作业车间调度方法 | |
Chen et al. | An approximate nondominated sorting genetic algorithm to integrate optimization of production scheduling and accurate maintenance based on reliability intervals | |
Lei et al. | Memetic algorithm for solving flexible flow-shop scheduling problems with dynamic transport waiting times | |
CN101788819B (zh) | 大规模生产过程一种基于迭代式分解和流松弛的调度方法 | |
CN111985672B (zh) | 一种多Agent深度强化学习的单件作业车间调度方法 | |
CN113610233B (zh) | 一种基于改进遗传算法的柔性作业车间调度方法 | |
CN113867295A (zh) | 一种基于数字孪生的制造车间agv动态调度方法、系统、设备及存储介质 | |
CN114926033A (zh) | 基于改进nsgaii的柔性作业车间动态事件调度方法 | |
CN115471133A (zh) | 一种基于订单管理和滚动优化排产的车间综合调度系统 | |
CN116700176A (zh) | 一种基于强化学习的分布式阻塞流水车间调度优化系统 | |
CN113960971B (zh) | 一种基于行为决策网络粒子群优化的柔性车间调度方法 | |
JPH09114797A (ja) | 最適解探索方法及び装置 | |
Nidhiry et al. | Scheduling optimization of a flexible manufacturing system using a modified NSGA-II algorithm | |
CN113406941B (zh) | 基于仿真的双目标并行机开放车间自适应动态调度方法 | |
CN113705978A (zh) | 一种多机任务刀具静态与动态集成决策方法及系统 | |
Hamada et al. | Optimizing the product-based availability of a buffered industrial process | |
CN110570134A (zh) | 一种改进的文化基因算法解决柔性车间带运输时间的调度方法 | |
CN114676987B (zh) | 一种基于超启发式算法的智能柔性作业车间主动调度方法 | |
CN114415615B (zh) | 不确定需求下混流装配线平衡分配方法及装置 | |
CN110598943A (zh) | 改良文化基因算法求解带运输时间柔性作业车间调度方法 | |
Akbar et al. | A social-conscious scheduling model of dual resources constrained identical parallel machine to minimize makespan and operator workload balance | |
Wang et al. | A high performance search algorithm for job-shop scheduling problem | |
CN111461911B (zh) | 一种基于混合nsga-ii的加工工件虚拟单元构建方法 | |
CN117114370B (zh) | 一种适配设备故障的小产品生产车间调度方法 | |
CN112734286B (zh) | 一种基于多策略深度强化学习的车间调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |