CN116360355A - 基于nsga-iii算法求解车间调度问题的方法 - Google Patents

基于nsga-iii算法求解车间调度问题的方法 Download PDF

Info

Publication number
CN116360355A
CN116360355A CN202310142327.1A CN202310142327A CN116360355A CN 116360355 A CN116360355 A CN 116360355A CN 202310142327 A CN202310142327 A CN 202310142327A CN 116360355 A CN116360355 A CN 116360355A
Authority
CN
China
Prior art keywords
machine
operator
crossover
time
workpiece
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.)
Pending
Application number
CN202310142327.1A
Other languages
English (en)
Inventor
魏引焕
汤彪
祖思雨
孙炫炫
黄宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shaanxi University of Science and Technology
Original Assignee
Shaanxi University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shaanxi University of Science and Technology filed Critical Shaanxi University of Science and Technology
Priority to CN202310142327.1A priority Critical patent/CN116360355A/zh
Publication of CN116360355A publication Critical patent/CN116360355A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total 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/41865Total 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32252Scheduling production, machining, job shop
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于NSGA‑III算法求解车间调度问题的方法,首先构建多目标柔性作业车间调度问题模型:包括多目标柔性作业车间调度问题描述、模型构建;产生一组分布均匀的参考点;采用等长三段式编码方式进行编码,对父代种群Pt中的个体进行基于自适应算子的交叉、变异操作,对临时种群Rt进行基于参考点的近似支配排序,判断是否满足终止条件,最后,利用加权法,从最优解集中选出一个解作为最优妥协解,并输出,本发明解决了现有技术中存在的不同转速对于机器加工效果具有影响的问题。

Description

基于NSGA-III算法求解车间调度问题的方法
技术领域
本发明属于作业调度技术领域,具体涉及一种基于NSGA-III算法求解车间调度问题的方法。
背景技术
在以往的车间生产调度研究中,主要针对机器转速恒定的车间节能调度问题进行研究,但随着科技的发展,出现了不少多功能机床设备,可以根据实际需要以不同速度来对不同零件进行加工。因此,考虑不同转速对于机器加工效果的影响,研究机器多转速条件下的多目标柔性作业车间节能调度问题,更加符合目前制造车间的生产实际和调度理论未来的发展。
发明内容
本发明的目的是提供一种基于NSGA-III算法求解车间调度问题的方法,解决了现有技术中存在的不同转速对于机器加工效果具有影响的问题。
本发明所采用的技术方案是,基于NSGA-III算法求解车间调度问题的方法,具体按照以下步骤实施:
步骤1、构建多目标柔性作业车间调度问题模型:包括多目标柔性作业车间调度问题描述、模型构建;
步骤2、产生一组分布均匀的参考点;
步骤3、采用等长三段式编码方式进行编码,三段式编码分别为工序码、设备码和速度码;采用随机方式生成初始种群Pt,规模为N;设置算法参数:当前迭代次数t,最大迭代次数tmax,交叉概率PN,变异概率PM,每个目标的等分数H;
步骤4、对父代种群Pt中的个体进行基于自适应算子的交叉、变异操作,生成子代种群Qt,将Pt和Qt合并生成临时种群Rt,规模为2N;
步骤5、对临时种群Rt进行基于参考点的近似支配排序,并将排序后的临时种群Rt分成多个支配等级的小种群,由高到低依次加入下一代父代种群Pt+1中,对临界层种群通过小生境技术进行选择加入Pt+1,使生成第二代父代种群Pt+1的规模为N;
步骤6、判断是否满足终止条件,若不满足,则返回执行步骤4;若满足,则执行步骤7;
步骤7、利用加权法,从最优解集中选出一个解作为最优妥协解,并输出。
本发明的特点还在于,
步骤1中多目标柔性作业车间调度问题描述如下:
假设车间有m台机器,机器的集合为M={Mk,1≤k≤m},有n个工件需要加工,工件的集合为J={Ji,1≤i≤n},每个工件Ji包含ni道工序,Oij则表示工件Ji的第j道工序,工件Ji的工序的集合为Ii={Oij,1≤j≤ni},机器Mk的加工速度集合表示为Vk={vl,1≤l≤d},Oij在某时刻可以在某台机器Mk以速度vl加工,则表示为xijkl(t)=1,因此,一个工序在一台机器上以速度vl加工的时间是Pijkl,柔性作业车间调度的目的是分配n类加工工件的所有工序Oij的加工方案;
模型假设具体如下:
所有工件在初始时刻均处于可加工状态;
工序在加工过程中不可被打断;
一道工序被限制在同一台机器上加工完成;
一台机器同时只能加工一道工序;
同一工件的各工序间的加工次序是不能改变的,各工序间的加工次序也不会相互影响;
工件没有优劣等级之分;
在所有任务的最后一道工序完成前,空闲的设备不停机;
不计设备的预处理时间和工件的装卸、搬运时间;
设备故障或加急任务均不考虑;
步骤1中多目标柔性作业车间调度问题模型构建具体如下:
Ji表示工件i的总工序数;
Figure BDA0004087966860000031
表示工件i的完工时间;n表示工件总数;m表示机器总数;STijk表示工序Oij在机器Mk上开始加工时刻;ETijk表示工序Oij在机器Mk上的结束加工时刻;Pijkl表示工序Oij以速度l在机器Mk上加工的时间;同理,STi(j-1)k'和ETi(j-1)k'分别为工件Ji的第j-1道工序Oi(j-1)在机器Mk'上的开始加工时刻和结束时刻;EThgk为机器Mk在加工工序Oij之前的紧前工序Ohg的结束时刻;MIk表示机器Mk的释放时间;Si表示工件i的释放时间;Di表示工件i的交货期;Y表示车间单位时间的固定能耗率;Ekl表示机器对应加工状态下的能耗率,且/>
Figure BDA0004087966860000032
xijkl(t)为0-1变量,如果机器Mk以速度vl在t时刻加工工序Oij,则xijkl(t)=1,否则xijkl(t)=0;SEk表示机器处于待机状态下的能耗率,且SEk=1,zk(t)为0-1变量,如果在t时刻,机器Mk处于待机状态,则zk(t)=1,否则zk(t)=0;α表示车间内工件的转移能耗率;Z表示车间工件的转移次数;Pijkl表示工序Oij以速度l在机器Mk上加工的时间,Ekl与Pijkl两者的关系,如果工序Oij在机器Mk上的加工速度增加,则相应加工时间会变小,但与之相反,相应加工的能量消耗则会增大,具体如下:
Figure BDA0004087966860000041
所有机器在加工过程中始终保持开机状态,当其上没有工件加工时,对应机器处于待机状态,直到所有工件加工完成,机器才能关闭;
目标函数构建如下:
Figure BDA0004087966860000042
Figure BDA0004087966860000043
Figure BDA0004087966860000044
Figure BDA0004087966860000045
Figure BDA0004087966860000046
Figure BDA0004087966860000047
s.t.
Figure BDA0004087966860000048
Figure BDA0004087966860000049
Figure BDA00040879668600000410
Figure BDA00040879668600000411
Figure BDA00040879668600000412
Figure BDA00040879668600000413
Figure BDA0004087966860000051
Figure BDA0004087966860000052
Figure BDA0004087966860000053
Figure BDA0004087966860000054
Figure BDA0004087966860000055
Figure BDA0004087966860000056
其中,公式(1-2)表示最大完工时间;公式(1-3)表示平均流程时间;公式(1-4)表示总延期时长;公式(1-5)表示机器总负荷;公式(1-6)表示瓶颈机器负荷;公式(1-7)***总能耗,公式(1-8)代表每个工件的加工顺序约束;公式(1-9)表示同一工件的当前工序Oij的开始时刻与上一道工序Oi(j-1)的结束时刻、当前加工机器开始空闲时刻MIk及工件释放时间Si的约束关系;公式(1-10)为最后一道工序的结束时刻;公式(1-11)定义了机器开始处于空闲的时刻应等于该机器上的工序结束时刻;公式(1-12)表示一道工序只能被一台机器进行加工;公式(1-13)表示一台机器同时只能加工一道工序;公式(1-14)~(1-15)为0-1变量;公式(1-16)~(1-19)为非负约束。
步骤2中参考点分布在G-1维的超平面上,G是目标空间的维度,假设将每个目标进行H等分,则步骤2中生成参考点的个数L通过式(2-1)确定:
Figure BDA0004087966860000057
步骤2.1、定义X为集合
Figure BDA0004087966860000058
中所有元素的G-1种组合;
步骤2.2、对X中的每一个元素xij,有
Figure BDA0004087966860000059
其中,xij表示X中第i种组合里的第j个元素;
步骤2.3、令S表示参考点集合,则对于S中的每一个元素sij和X中的每一个元素xij,满足式(2-2):
Figure BDA0004087966860000061
G是目标空间的维度,既优化目标的个数;xij表示X中第i种组合里的第j个元素;sij表示S中第i种组合里的第j个元素;
步骤4具体如下:
(1)提前定义好交叉和变异算子策略池中分别各有Q个交叉和变异算子,每个交叉或变异算子都有一个概率区间,1/Q根据选择算子概率SOP,使用轮盘赌随机选择策略池中的一个算子Cnow
(2)交叉操作:使用交叉方法Cnow得到两个新的后代个体Pc1和Pc2,通过比较亲本和后代评估交叉算子Cnow的优劣,以获取变量vic和def,其中,vic记录后代Pc优于亲本Pp的数量,def记录亲本Pp优于后代Pc的数量。将后代Pc加入新种群Qt;变异操作同理;
(3)重复前述步骤以获得N个后代个体,将种群Qt和Pt合成临时种群Kt,Kt规模为2N,并更新交叉和变异各自的vic def成功矩阵Vq和失败矩阵Dq中,每隔五代更新一次选择算子概率集合SOP;
步骤4.1、四种交叉算子、四种变异算子:
将四种交叉算子及四种变异算子分别放入各自的自适应策略池,根据选择算子概率SOP分别自适应选择各自交叉算子和变异算子;
步骤4.1.1、交叉算子:
交叉方式为工序编码层交叉,染色体在执行工序的交叉操作时,只改变工序的加工顺序,不改变每个工序加工使用机器和加工速度;
1)基于随机顺序的交叉:
工序编码层交叉使用基于随机顺序的交叉ROX,其具体步骤如下:
(1)随机生成两个整数q1,q2∈[1,k],k为工件个数;
(2)将父代个体P1中等于q1的基因保持原位置不变,复制到子代个体C1中,将父代个体P2中等于q2的基因保持原位置不变复制到子代个体C2中;
(3)将父代个体P2中除q1之外的基因复制到C1中,依然保留原来的顺序不变,将P1中除q2之外的基因复制到C2中,依然保留原来的顺序不变,
2)基于工件顺序的交叉:
工序编码层交叉使用基于工件顺序的交叉方法,基于工件顺序的交叉方法为交换两个父代染色体中交叉工件在染色体中位置,具体步骤如下:
(1)随机生成一个整数q1∈[1,k],k为工件个数;
(2)将父代个体P1中等于q1的基因保持原位置不变,复制到子代个体C1中,将父代个体P2中等于q1的基因保持原位置不变复制到子代个体C2中;
(3)将父代个体P2中的剩余基因复制到C1中,依然保留原来的顺序不变,将父代个体P1中的剩余基因复制到C2中,依然保留原来的顺序不变;
3)基于工件优先顺序的交叉:
工序编码层交叉使用基于工件优先顺序的交叉方法,基于工件优先顺序的交叉的具体步骤如下:
(1)将工件集J={J1,J2,...,JN}随机分成两个非空子集J1和J2
(2)将父代P1属于J1的所有基因位置对应的复制到子代C1中;将父代P2属于J2的所有基因位置对应的复制到子代C2中;
(3)将父代P2属于J1的基因去掉,然后将剩下的基因依次放入子代C1中;将父代P1属于J2的基因去掉,然后将剩下的基因依次放入子代C2中;
4)工序层编码洗牌交叉:
工序层编码交叉使用洗牌交叉,洗牌交叉的具体执行步骤如下:
(1)随机选取一个交叉位置K点,将父代P1、P2划分为两个部分;
(2)对K点前半部分基因进行随机打乱,使两个父代P1、P2分别自己交叉;
步骤4.1.2、变异算子:
变异操作包括工序编码层变异、机器编码层变异和速度编码层变异,工序编码层的变异操作有互换、***、倒序和随机重排变异四种方式;机器编码层变异:随机从机器集选择合适机器更新机器编码;速度编码层变异:随机从速度集选择合适速度更新速度编码
步骤4.2、选择算子概率集合SOP:
将交叉算子和变异算子都选择Q个算子分别放入各自的策略池中,每个算子初始被选中的概率是相同的,即1/Q,交叉算子和变异算子的选择概率分别进行,用向量vic和def记录每一代的结果,vic和def的具体形式如下:
vic=(00...0)1×Q (4-1)
def=(00...0)1×Q (4-2)
vic和def向量根据父代与子代的非支配关系进行更新,其中vic、def向量中qth列记录策略池中第q个算子(q=1,2,...,Q)的值,第q个算子在vic和def中的值分别用vicq和defq表示,交叉算子情况如下:
情况一:若父代P1完全支配P2,则每个子代分别与P1进行Pareto支配关系比较,如果没有子代被父代P1支配,则vicq+2;
情况二:若父代两两之间互不支配,则比较每个父代和每个子代的Pareto支配关系,如果两个子代不同时被两个父代支配,则vicq+1,defq+1;
情况三:如果子代不被父代支配,则defq+2。
变异算子情况如下:
若父代P1完全支配P2,则子代与P1进行Pareto支配关系比较,如果子代不被父代P1支配,则vicq+1,否则defq+1;
本改进点设置算法经过每五代就要更新一次选择算子概率集合SOP,需要两个矩阵:成功矩阵V和失败矩阵D来储存每五代的vic和def向量,V和D的具体形式如下:
Figure BDA0004087966860000091
其中V和D矩阵中qth列记录策略池中第q个算子(q=1,2,…,Q)的值,并依据V和D矩阵更新SOP。更新方法如下:为计算第q个算子的概率,算法对V和D两个矩阵的qth列分别求和:
Figure BDA0004087966860000092
Figure BDA0004087966860000093
其中,S1q表示第q个算子叠加五代得到的vicq值;S2q表示第q个算子叠加五代得到的defq值,对于第q个交叉算子的SOP值计算方式如下:
Figure BDA0004087966860000094
Figure BDA0004087966860000095
Figure BDA0004087966860000096
S3q设置最小值ε为0.0001;S4q是qth个交叉算子在五代内产生的后代成功的比率;SOPq表示选择算子概率集合SOP中第q个算子的概率。
步骤5具体如下:
步骤5.1、对目标函数进行归一化处理:
按照式(5-1)对每一维目标函数进行规范化处理:
Figure BDA0004087966860000101
Figure BDA0004087966860000102
为求出的Pt+1中所有个体的第j个子目标函数的最小值;fj(x)为Pt+1中个体的第j个子目标函数值;/>
Figure BDA0004087966860000103
为Pt+1中个体规范化之后的第j个子目标函数值;bj为超平面在第j维目标函数方向截距;
步骤5.2、基于参考点的近似支配排序:
目标函数规范化完成后,个体X的g个目标值记为
Figure BDA0004087966860000104
利用个体到参考线的垂直距离,对个体与参考点的关联关系进行评估,将个体关联到首个垂直距离最小的参考点上,并定义参考点r被关联的次数为小生境数ρr,若个体X与参考点r关联,则个体X在第r条参考线上的投影距离dr1(X)和垂直距离dr2(X)的计算式如下:
dr1(X)=||[fnor(X)]Tλr||/||λr||, (5-2)
dr2(X)=||[fnor(X)]-dr1(X)λr/||λr||||, (5-3)
其中λr=[λr1r2,...,λrg]T为参考点r的方向向量,且满足
Figure BDA0004087966860000105
为了尽快地使目标函数收敛,将个体标准化目标值与原点之间的距离F(X)和Pareto准则相结合,F(X)的计算式如下:
Figure BDA0004087966860000111
首先利用Pareto原则进行个体间支配关系的准确判断,若两个体是Pareto互不支配关系,则利用F(X)进行判断,利用近似支配原则对个体间支配关系进行判断时,需满足以下准则之一:
(a)当且仅当对任意z∈{1,2,...,g}有
Figure BDA0004087966860000112
且至少存在一个下标z'∈{1,2,...,g},使/>
Figure BDA0004087966860000113
成立,则认为X支配S;
(b)当任意两个体都处于Pareto互不支配状态时,则利用F(X)进行判断;其中准则(a)利用Pareto非支配原则进行支配关系的准确判断,保证非支配个体保留至下一代种群中,保证算法的收敛性,准则(b)规定了两个体的近似支配策略,当两个体处于Pareto互不支配支配状态时,利用F(X)进行支配关系的近似判断,以减少各层级的个体数量;
本发明的有益效果是,基于NSGA-III算法求解车间调度问题的方法,NSGA-Ⅲ算法是一种专门求解高维多目标问题的算法,由于采用基于参考点的小生境选择机制不会随算法迭代次数的增加而导致种群退化,克服了传统NSGA-Ⅱ随着迭代次数的增加种群多样性下降的不足,同时,通过对机器选择,工序排序,速度选择三部分采用有效的交叉与变异进化操作,有效提高了算法的求解精度。
附图说明
图1是等长三段式染色体编码示意图;
图2是ROX交叉操作示意图;
图3是基于工件顺序的交叉操作示意图;
图4是基于工件优先顺序的交叉操作示意图;
图5是洗牌交叉示意图;
图6是机器编码层变异操作示意图;
图7是二维目标空间中d21(X),d22(X)和F(X)的计算示意图;
图8是三种算法求解MK01所得各目标函数收敛曲线;
图9是三种算法求解MK01所得HV收敛曲线;
图10是三种算法求解MK01所得IGD收敛曲线;
图11是传统NSGA-II求解MK01所得调度结果甘特图;
图12是传统NSGA-III求解MK01所得调度结果甘特图;
图13是改进NSGA-III求解MK01所得调度结果甘特图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明基于NSGA-III算法求解车间调度问题的方法,其特征在于,具体按照以下步骤实施:
步骤1、构建多目标柔性作业车间调度问题模型:包括多目标柔性作业车间调度问题描述、模型构建;
步骤1中多目标柔性作业车间调度问题描述如下:
假设车间有m台机器,机器的集合为M={Mk,1≤k≤m},有n个工件需要加工,工件的集合为J={Ji,1≤i≤n},每个工件Ji包含ni道工序,Oij则表示工件Ji的第j道工序,工件Ji的工序的集合为Ii={Oij,1≤j≤ni},机器Mk的加工速度集合表示为Vk={vl,1≤l≤d},Oij在某时刻可以在某台机器Mk以速度vl加工,则表示为xijkl(t)=1,因此,一个工序在一台机器上以速度vl加工的时间是Pijkl,柔性作业车间调度的目的是分配n类加工工件的所有工序Oij的加工方案;
模型假设具体如下:
所有工件在初始时刻均处于可加工状态;
工序在加工过程中不可被打断;
一道工序被限制在同一台机器上加工完成;
一台机器同时只能加工一道工序;
同一工件的各工序间的加工次序是不能改变的,各工序间的加工次序也不会相互影响;
工件没有优劣等级之分;
在所有任务的最后一道工序完成前,空闲的设备不停机;
不计设备的预处理时间和工件的装卸、搬运时间;
设备故障或加急任务均不考虑;
步骤1中多目标柔性作业车间调度问题模型构建具体如下:
Ji表示工件i的总工序数;
Figure BDA0004087966860000131
表示工件i的完工时间;n表示工件总数;m表示机器总数;STijk表示工序Oij在机器Mk上开始加工时刻;ETijk表示工序Oij在机器Mk上的结束加工时刻;Pijkl表示工序Oij以速度l在机器Mk上加工的时间;同理,STi(j-1)k'和ETi(j-1)k'分别为工件Ji的第j-1道工序Oi(j-1)在机器Mk'上的开始加工时刻和结束时刻;EThgk为机器Mk在加工工序Oij之前的紧前工序Ohg的结束时刻;MIk表示机器Mk的释放时间;Si表示工件i的释放时间;Di表示工件i的交货期;Y表示车间单位时间的固定能耗率;Ekl表示机器对应加工状态下的能耗率,且/>
Figure BDA0004087966860000132
xijkl(t)为0-1变量,如果机器Mk以速度vl在t时刻加工工序Oij,则xijkl(t)=1,否则xijkl(t)=0;SEk表示机器处于待机状态下的能耗率,且SEk=1,zk(t)为0-1变量,如果在t时刻,机器Mk处于待机状态,则zk(t)=1,否则zk(t)=0;α表示车间内工件的转移能耗率;Z表示车间工件的转移次数;Pijkl表示工序Oij以速度l在机器Mk上加工的时间,Ekl与Pijkl两者的关系,如果工序Oij在机器Mk上的加工速度增加,则相应加工时间会变小,但与之相反,相应加工的能量消耗则会增大,具体如下:
Figure BDA0004087966860000141
所有机器在加工过程中始终保持开机状态,当其上没有工件加工时,对应机器处于待机状态,直到所有工件加工完成,机器才能关闭;
目标函数构建如下:
f1=max(CiJi) (1-2)
Figure BDA0004087966860000142
Figure BDA0004087966860000143
Figure BDA0004087966860000144
Figure BDA0004087966860000145
Figure BDA0004087966860000146
s.t.
Figure BDA0004087966860000147
Figure BDA0004087966860000148
Figure BDA0004087966860000149
Figure BDA00040879668600001410
Figure BDA00040879668600001411
Figure BDA0004087966860000151
Figure BDA0004087966860000152
Figure BDA0004087966860000153
Figure BDA0004087966860000154
Figure BDA0004087966860000155
Figure BDA0004087966860000156
Figure BDA0004087966860000157
其中,公式(1-2)表示最大完工时间;公式(1-3)表示平均流程时间;公式(1-4)表示总延期时长;公式(1-5)表示机器总负荷;公式(1-6)表示瓶颈机器负荷;公式(1-7)***总能耗,公式(1-8)代表每个工件的加工顺序约束;公式(1-9)表示同一工件的当前工序Oij的开始时刻与上一道工序Oi(j-1)的结束时刻、当前加工机器开始空闲时刻MIk及工件释放时间Si的约束关系;公式(1-10)为最后一道工序的结束时刻;公式(1-11)定义了机器开始处于空闲的时刻应等于该机器上的工序结束时刻;公式(1-12)表示一道工序只能被一台机器进行加工;公式(1-13)表示一台机器同时只能加工一道工序;公式(1-14)~(1-15)为0-1变量;公式(1-16)~(1-19)为非负约束。
步骤2、产生一组分布均匀的参考点;
步骤2中参考点分布在G-1维的超平面上,G是目标空间的维度,假设将每个目标进行H等分,则步骤2中生成参考点的个数L通过式(2-1)确定:
Figure BDA0004087966860000158
步骤2.1、定义X为集合
Figure BDA0004087966860000161
中所有元素的G-1种组合;
步骤2.2、对X中的每一个元素xij,有
Figure BDA0004087966860000162
其中,xij表示X中第i种组合里的第j个元素;
步骤2.3、令S表示参考点集合,则对于S中的每一个元素sij和X中的每一个元素xij,满足式(2-2):
Figure BDA0004087966860000163
G是目标空间的维度,既优化目标的个数;xij表示X中第i种组合里的第j个元素;sij表示S中第i种组合里的第j个元素;
步骤3、采用等长三段式编码方式进行编码,三段式编码分别为工序码、设备码和速度码;采用随机方式生成初始种群Pt,规模为N;设置算法参数:当前迭代次数t,最大迭代次数tmax,交叉概率PN,变异概率PM,每个目标的等分数H;
步骤4具体如下:
(1)提前定义好交叉和变异算子策略池中分别各有Q个交叉和变异算子,每个交叉或变异算子都有一个概率区间,1/Q根据选择算子概率SOP,使用轮盘赌随机选择策略池中的一个算子Cnow
(2)交叉操作:使用交叉方法Cnow得到两个新的后代个体Pc1和Pc2,通过比较亲本和后代评估交叉算子Cnow的优劣,以获取变量vic和def,其中,vic记录后代Pc优于亲本Pp的数量,def记录亲本Pp优于后代Pc的数量。将后代Pc加入新种群Qt;变异操作同理;
(3)重复前述步骤以获得N个后代个体,将种群Qt和Pt合成临时种群Kt,Kt规模为2N,并更新交叉和变异各自的vic def成功矩阵Vq和失败矩阵Dq中,每隔五代更新一次选择算子概率集合SOP;
步骤4.1、四种交叉算子、四种变异算子:
将四种交叉算子及四种变异算子分别放入各自的自适应策略池,根据选择算子概率SOP分别自适应选择各自交叉算子和变异算子;
步骤4.1.1、交叉算子:
交叉方式为工序编码层交叉,染色体在执行工序的交叉操作时,只改变工序的加工顺序,不改变每个工序加工使用机器和加工速度;
1)基于随机顺序的交叉:
工序编码层交叉使用基于随机顺序的交叉ROX,其具体步骤如下:
(1)随机生成两个整数q1,q2∈[1,k],k为工件个数;
(2)将父代个体P1中等于q1的基因保持原位置不变,复制到子代个体C1中,将父代个体P2中等于q2的基因保持原位置不变复制到子代个体C2中;
(3)将父代个体P2中除q1之外的基因复制到C1中,依然保留原来的顺序不变,将P1中除q2之外的基因复制到C2中,依然保留原来的顺序不变,
2)基于工件顺序的交叉:
工序编码层交叉使用基于工件顺序的交叉方法,基于工件顺序的交叉方法为交换两个父代染色体中交叉工件在染色体中位置,具体步骤如下:
(1)随机生成一个整数q1∈[1,k],k为工件个数;
(2)将父代个体P1中等于q1的基因保持原位置不变,复制到子代个体C1中,将父代个体P2中等于q1的基因保持原位置不变复制到子代个体C2中;
(3)将父代个体P2中的剩余基因复制到C1中,依然保留原来的顺序不变,将父代个体P1中的剩余基因复制到C2中,依然保留原来的顺序不变;
3)基于工件优先顺序的交叉:
工序编码层交叉使用基于工件优先顺序的交叉方法,基于工件优先顺序的交叉的具体步骤如下:
(1)将工件集J={J1,J2,...,JN}随机分成两个非空子集J1和J2
(2)将父代P1属于J1的所有基因位置对应的复制到子代C1中;将父代P2属于J2的所有基因位置对应的复制到子代C2中;
(3)将父代P2属于J1的基因去掉,然后将剩下的基因依次放入子代C1中;将父代P1属于J2的基因去掉,然后将剩下的基因依次放入子代C2中;
4)工序层编码洗牌交叉:
工序层编码交叉使用洗牌交叉,洗牌交叉的具体执行步骤如下:
(1)随机选取一个交叉位置K点,将父代P1、P2划分为两个部分;
(2)对K点前半部分基因进行随机打乱,使两个父代P1、P2分别自己交叉;
步骤4.1.2、变异算子:
变异操作包括工序编码层变异、机器编码层变异和速度编码层变异,工序编码层的变异操作有互换、***、倒序和随机重排变异四种方式;机器编码层变异:随机从机器集选择合适机器更新机器编码;速度编码层变异:随机从速度集选择合适速度更新速度编码
步骤4.2、选择算子概率集合SOP:
将交叉算子和变异算子都选择Q个算子分别放入各自的策略池中,每个算子初始被选中的概率是相同的,即1/Q,交叉算子和变异算子的选择概率分别进行,用向量vic和def记录每一代的结果,vic和def的具体形式如下:
vic=(00...0)1×Q (4-1)
def=(00...0)1×Q (4-2)
vic和def向量根据父代与子代的非支配关系进行更新,其中vic、def向量中qth列记录策略池中第q个算子(q=1,2,...,Q)的值,第q个算子在vic和def中的值分别用vicq和defq表示,交叉算子情况如下:
情况一:若父代P1完全支配P2,则每个子代分别与P1进行Pareto支配关系比较,如果没有子代被父代P1支配,则vicq+2;
情况二:若父代两两之间互不支配,则比较每个父代和每个子代的Pareto支配关系,如果两个子代不同时被两个父代支配,则vicq+1,defq+1;
情况三:如果子代不被父代支配,则defq+2。
变异算子情况如下:
若父代P1完全支配P2,则子代与P1进行Pareto支配关系比较,如果子代不被父代P1支配,则vicq+1,否则defq+1;
本改进点设置算法经过每五代就要更新一次选择算子概率集合SOP,需要两个矩阵:成功矩阵V和失败矩阵D来储存每五代的vic和def向量,V和D的具体形式如下:
Figure BDA0004087966860000191
其中V和D矩阵中qth列记录策略池中第q个算子(q=1,2,…,Q)的值,并依据V和D矩阵更新SOP。更新方法如下:为计算第q个算子的概率,算法对V和D两个矩阵的qth列分别求和:
Figure BDA0004087966860000192
Figure BDA0004087966860000193
其中,S1q表示第q个算子叠加五代得到的vicq值;S2q表示第q个算子叠加五代得到的defq值,对于第q个交叉算子的SOP值计算方式如下:
Figure BDA0004087966860000201
Figure BDA0004087966860000202
Figure BDA0004087966860000203
S3q设置最小值ε为0.0001;S4q是qth个交叉算子在五代内产生的后代成功的比率;SOPq表示选择算子概率集合SOP中第q个算子的概率。
步骤5、对临时种群Rt进行基于参考点的近似支配排序,并将排序后的临时种群Rt分成多个支配等级的小种群,由高到低依次加入下一代父代种群Pt+1中,对临界层种群通过小生境技术进行选择加入Pt+1,使生成第二代父代种群Pt+1的规模为N;
步骤5具体如下:
步骤5.1、对目标函数进行归一化处理:
按照式(5-1)对每一维目标函数进行规范化处理:
Figure BDA0004087966860000204
Figure BDA0004087966860000205
为求出的Pt+1中所有个体的第j个子目标函数的最小值;fj(x)为Pt+1中个体的第j个子目标函数值;/>
Figure BDA0004087966860000206
为Pt+1中个体规范化之后的第j个子目标函数值;bj为超平面在第j维目标函数方向截距;
步骤5.2、基于参考点的近似支配排序:
目标函数规范化完成后,个体X的g个目标值记为
Figure BDA0004087966860000211
利用个体到参考线的垂直距离,对个体与参考点的关联关系进行评估,将个体关联到首个垂直距离最小的参考点上,并定义参考点r被关联的次数为小生境数ρr,若个体X与参考点r关联,则个体X在第r条参考线上的投影距离dr1(X)和垂直距离dr2(X)的计算式如下:
dr1(X)=||[fnor(X)]Tλr||/||λr||, (5-2)
dr2(X)=||[fnor(X)]-dr1(X)λr/||λr||||, (5-3)
其中λr=[λr1r2,...,λrg]T为参考点r的方向向量,且满足
Figure BDA0004087966860000212
为了尽快地使目标函数收敛,将个体标准化目标值与原点之间的距离F(X)和Pareto准则相结合,F(X)的计算式如下:
Figure BDA0004087966860000213
首先利用Pareto原则进行个体间支配关系的准确判断,若两个体是Pareto互不支配关系,则利用F(X)进行判断,利用近似支配原则对个体间支配关系进行判断时,需满足以下准则之一:
(a)当且仅当对任意z∈{1,2,...,g}有
Figure BDA0004087966860000214
且至少存在一个下标z'∈{1,2,...,g},使/>
Figure BDA0004087966860000215
成立,则认为X支配S;
(b)当任意两个体都处于Pareto互不支配状态时,则利用F(X)进行判断;其中准则(a)利用Pareto非支配原则进行支配关系的准确判断,保证非支配个体保留至下一代种群中,保证算法的收敛性,准则(b)规定了两个体的近似支配策略,当两个体处于Pareto互不支配支配状态时,利用F(X)进行支配关系的近似判断,以减少各层级的个体数量;
步骤6、判断是否满足终止条件,若不满足,则返回执行步骤4;若满足,则执行步骤7;
步骤7、利用加权法,从最优解集中选出一个解作为最优妥协解,并输出。
仿真验证
本节对标准算例MK01-MK10进行仿真实验,将分别采用NSGA-III算法与传统NSGA-II算法、传统NSGA-III算法三种算法用Matlab2017b编程,在配置为内存8G,R5 3.2GHz的计算机上,在win10操作***下进行仿真求解。其中标准算例中原有的加工时间为基本加工时间,所有设备的加工速度都包括v={1.0,1.2,1.5}三个档位,加工能耗
Figure BDA0004087966860000221
空载能耗SEk=1。
参数设置对算法性能有很大的影响,其中包括五个参数:种群规模N,交叉概率pc,变异概率pm,最大迭代次数tmax,以及采用均匀方式产生参考点时目标向量的等分数H。
改进NSGA-III算法参数设置:N=240;pc=0.8;pm=0.1;tmax=500;H=5。采用传统的均匀分布生成方式,经过计算得参考点数目为252,采用加权法来从Pareto解集中选择最优妥协解,加权法中,六个目标函数的权重之和为1,其中,f1,f2,f3,f4,f5,f6的权重分别为0.2,0.3,0.1,0.15,0.2,0.05。
传统NSGA-II算法参数设置:N=200,pc=0.8,pm=0.1,tmax=500;
传统NSGA-III算法的参数设置:N=100,pc=0.8,pm=0.1,tmax=500,H=4。采用传统的均匀分布生成方式,经过计算得参考点数目为126。
为验证改进NSGA-III算法的有效性,本发明将运用改进NSGA-III算法与传统NSGA-II算法、传统NSGA-III算法进行结果对比,对三种算法均进行求解十次取值,所得结果如下表1所示。
表1与已有算法的仿真结果对比
Figure BDA0004087966860000231
分析表1可知,在***总能耗指标上,改进NSGA-III算法取得了MK01-MK10,共10个算例的最优值,取得了MK01-MK10,共10个算例的最好平均值。
在最大完工时间指标上,改进NSGA-III算法取得了MK01-MK10,共10个算例的最优值,取得了MK01-MK10,共10个算例的最好平均值。
在流经时间指标上,改进NSGA-III算法取得了MK01-MK10,共10个算例的最优值,取得了MK01-MK10,10个算例的最好平均值。
在总延期时长指标上,改进NSGA-III算法取得了MK01-MK10,共10个算例的最优值,取得了MK01-MK10,共10个算例的最好平均值。传统NSGA-II取得了MK01,MK02,MK03,MK06共4个算例的最优值,取得了MK02,MK06共2个算例的较好的平均值。传统NSGA-III取得了MK02,MK06共2个算例的最优值,取得了MK02,MK06共2个算例的较好的平均值。
在总负荷指标上,改进NSGA-III算法取得了MK01-MK10,共10个算例的最优值,取得了MK01-MK10,共10个算例的最好平均值。
在瓶颈机器负荷指标上,改进NSGA-III算法取得了MK01-MK10,共10个算例的最优值,取得了MK01-MK10,共10个算例的最好平均值。
为了进一步分析算法的优化性能,将四种算法求解所得IGD和HV结果对比如下表2所示。分析表2可知改进NSGA-III算法取得了MK01-MK10共10个算例的最优IGD值,取得了MK01,MK03-MK10共9个算例的最优HV值。
综上所述,改进NSGA-III算法在求解多目标柔性作业车间调度问题上,较传统NSGA-II算法和传统NSGA-III算法拥有更好的综合性能。如图8至图10为三种算法求解标准算例MK01运行一次所得到的各个目标的收敛图以及IGD和HV曲线图,图11至13为三种算法运行算例MK01所对应的甘特图。从图中可以看出,三种算法在求解高维多目标柔性作业车间调度问题时,六项优化指标在整体上均呈现收敛趋势,与其他两个算法比较,改进NSGA-III算法在算例MK01的各个优化目标上均取得了更优的值;在IGD和HV两项多目标进化算法的性能评价指标的收敛图中,三种算法收敛趋势均较为明显,与其他两个算法比较,改进NSGA-III算法取得了更优的值。
分析实验结果可知,改进NSGA-III算法在MK01-MK10十个包括小规模、中规模和大规模的算例上均取得比传统NSGA-II算法和传统NSGA-III算法更优的值,故改进NSGA-III算法比传统NSGA-II算法和传统NSGA-III算法更适用于高维多目标优化算法的求解。
表2改进NSGA-Ⅲ与两种传统算法在所有算例上所得HV和IGD的比较结果
Figure BDA0004087966860000251
/>

Claims (5)

1.基于NSGA-III算法求解车间调度问题的方法,其特征在于,具体按照以下步骤实施:
步骤1、构建多目标柔性作业车间调度问题模型:包括多目标柔性作业车间调度问题描述、模型构建;
步骤2、产生一组分布均匀的参考点;
步骤3、采用等长三段式编码方式进行编码,三段式编码分别为工序码、设备码和速度码;采用随机方式生成初始种群Pt,规模为N;设置算法参数:当前迭代次数t,最大迭代次数tmax,交叉概率PN,变异概率PM,每个目标的等分数H;
步骤4、对父代种群Pt中的个体进行基于自适应算子的交叉、变异操作,生成子代种群Qt,将Pt和Qt合并生成临时种群Rt,规模为2N;
步骤5、对临时种群Rt进行基于参考点的近似支配排序,并将排序后的临时种群Rt分成多个支配等级的小种群,由高到低依次加入下一代父代种群Pt+1中,对临界层种群通过小生境技术进行选择加入Pt+1,使生成第二代父代种群Pt+1的规模为N;
步骤6、判断是否满足终止条件,若不满足,则返回执行步骤4;若满足,则执行步骤7;
步骤7、利用加权法,从最优解集中选出一个解作为最优妥协解,并输出。
2.根据权利要求1所述的基于NSGA-III算法求解车间调度问题的方法,其特征在于,所述步骤1中多目标柔性作业车间调度问题描述如下:
假设车间有m台机器,机器的集合为M={Mk,1≤k≤m},有n个工件需要加工,工件的集合为J={Ji,1≤i≤n},每个工件Ji包含ni道工序,Oij则表示工件Ji的第j道工序,工件Ji的工序的集合为Ii={Oij,1≤j≤ni},机器Mk的加工速度集合表示为Vk={vl,1≤l≤d},Oij在某时刻可以在某台机器Mk以速度vl加工,则表示为xijkl(t)=1,因此,一个工序在一台机器上以速度vl加工的时间是Pijkl,柔性作业车间调度的目的是分配n类加工工件的所有工序Oij的加工方案;
模型假设具体如下:
所有工件在初始时刻均处于可加工状态;
工序在加工过程中不可被打断;
一道工序被限制在同一台机器上加工完成;
一台机器同时只能加工一道工序;
同一工件的各工序间的加工次序是不能改变的,各工序间的加工次序也不会相互影响;
工件没有优劣等级之分;
在所有任务的最后一道工序完成前,空闲的设备不停机;
不计设备的预处理时间和工件的装卸、搬运时间;
设备故障或加急任务均不考虑;
步骤1中多目标柔性作业车间调度问题模型构建具体如下:
Ji表示工件i的总工序数;
Figure FDA0004087966850000021
表示工件i的完工时间;n表示工件总数;m表示机器总数;STijk表示工序Oij在机器Mk上开始加工时刻;ETijk表示工序Oij在机器Mk上的结束加工时刻;Pijkl表示工序Oij以速度l在机器Mk上加工的时间;同理,STi(j-1)k'和ETi(j-1)k'分别为工件Ji的第j-1道工序Oi(j-1)在机器Mk'上的开始加工时刻和结束时刻;EThgk为机器Mk在加工工序Oij之前的紧前工序Ohg的结束时刻;MIk表示机器Mk的释放时间;Si表示工件i的释放时间;Di表示工件i的交货期;Y表示车间单位时间的固定能耗率;Ekl表示机器对应加工状态下的能耗率,且/>
Figure FDA0004087966850000031
xijkl(t)为0-1变量,如果机器Mk以速度vl在t时刻加工工序Oij,则xijkl(t)=1,否则xijkl(t)=0;SEk表示机器处于待机状态下的能耗率,且SEk=1,zk(t)为0-1变量,如果在t时刻,机器Mk处于待机状态,则zk(t)=1,否则zk(t)=0;α表示车间内工件的转移能耗率;Z表示车间工件的转移次数;Pijkl表示工序Oij以速度l在机器Mk上加工的时间,Ekl与Pijkl两者的关系,如果工序Oij在机器Mk上的加工速度增加,则相应加工时间会变小,但与之相反,相应加工的能量消耗则会增大,具体如下:
Figure FDA0004087966850000032
所有机器在加工过程中始终保持开机状态,当其上没有工件加工时,对应机器处于待机状态,直到所有工件加工完成,机器才能关闭;
目标函数构建如下:
Figure FDA0004087966850000033
Figure FDA0004087966850000034
Figure FDA0004087966850000035
Figure FDA0004087966850000036
Figure FDA0004087966850000037
Figure FDA0004087966850000038
s.t.
Figure FDA0004087966850000041
Figure FDA0004087966850000042
Figure FDA0004087966850000043
Figure FDA0004087966850000044
Figure FDA0004087966850000045
Figure FDA0004087966850000046
Figure FDA0004087966850000047
Figure FDA0004087966850000048
Figure FDA0004087966850000049
Figure FDA00040879668500000410
Figure FDA00040879668500000411
Figure FDA00040879668500000412
其中,公式(1-2)表示最大完工时间;公式(1-3)表示平均流程时间;公式(1-4)表示总延期时长;公式(1-5)表示机器总负荷;公式(1-6)表示瓶颈机器负荷;公式(1-7)***总能耗,公式(1-8)代表每个工件的加工顺序约束;公式(1-9)表示同一工件的当前工序Oij的开始时刻与上一道工序Oi(j-1)的结束时刻、当前加工机器开始空闲时刻MIk及工件释放时间Si的约束关系;公式(1-10)为最后一道工序的结束时刻;公式(1-11)定义了机器开始处于空闲的时刻应等于该机器上的工序结束时刻;公式(1-12)表示一道工序只能被一台机器进行加工;公式(1-13)表示一台机器同时只能加工一道工序;公式(1-14)~(1-15)为0-1变量;公式(1-16)~(1-19)为非负约束。
3.根据权利要求2所述的基于NSGA-III算法求解车间调度问题的方法,其特征在于,所述步骤2中参考点分布在G-1维的超平面上,G是目标空间的维度,假设将每个目标进行H等分,则步骤2中生成参考点的个数L通过式(2-1)确定:
Figure FDA0004087966850000051
步骤2.1、定义X为集合
Figure FDA0004087966850000052
中所有元素的G-1种组合;
步骤2.2、对X中的每一个元素xij,有
Figure FDA0004087966850000053
其中,xij表示X中第i种组合里的第j个元素;
步骤2.3、令S表示参考点集合,则对于S中的每一个元素sij和X中的每一个元素xij,满足式(2-2):
Figure FDA0004087966850000054
G是目标空间的维度,也就是要优化目标的个数;xij表示X中第i种组合里的第j个元素;sij表示S中第i种组合里的第j个元素。
4.根据权利要求3所述的基于NSGA-III算法求解车间调度问题的方法,其特征在于,所述步骤4具体如下:
(1)提前定义好交叉和变异算子策略池中分别各有Q个交叉和变异算子,每个交叉或变异算子都有一个概率区间,1/Q根据选择算子概率SOP,使用轮盘赌随机选择策略池中的一个算子Cnow
(2)交叉操作:使用交叉方法Cnow得到两个新的后代个体Pc1和Pc2,通过比较亲本和后代评估交叉算子Cnow的优劣,以获取变量vic和def,其中,vic记录后代Pc优于亲本Pp的数量,def记录亲本Pp优于后代Pc的数量,将后代Pc加入新种群Qt;变异操作同理;
(3)重复前述步骤以获得N个后代个体,将种群Qt和Pt合成临时种群Kt,Kt规模为2N,并更新交叉和变异各自的vic def成功矩阵Vq和失败矩阵Dq中,每隔五代更新一次选择算子概率集合SOP;
步骤4.1、四种交叉算子、四种变异算子:
采用四种高效的交叉算子及四种高效的变异算子分别放入各自的自适应策略池,根据选择算子概率SOP分别自适应选择各自四种算子中的一种;
步骤4.1.1、交叉算子:
交叉方式为工序编码层交叉,染色体在执行工序的交叉操作时,只改变工序的加工顺序,不改变每个工序加工使用机器和加工速度;
1)基于随机顺序的交叉:
工序编码层交叉使用基于随机顺序的交叉ROX,基于随机顺序的交叉的具体步骤如下:
(1)随机生成两个整数q1,q2∈[1,k],k为工件个数;
(2)将父代个体P1中等于q1的基因保持原位置不变,复制到子代个体C1中,将父代个体P2中等于q2的基因保持原位置不变复制到子代个体C2中;
(3)将父代个体P2中除q1之外的基因复制到C1中,依然保留原来的顺序不变,将P1中除q2之外的基因复制到C2中,依然保留原来的顺序不变,
2)基于工件顺序的交叉:
工序编码层交叉使用基于工件顺序的交叉方法,基于工件顺序的交叉方法为交换两个父代染色体中交叉工件在染色体中位置,具体步骤如下:
(1)随机生成一个整数q1∈[1,k],k为工件个数;
(2)将父代个体P1中等于q1的基因保持原位置不变,复制到子代个体C1中,将父代个体P2中等于q1的基因保持原位置不变复制到子代个体C2中;
(3)将父代个体P2中的剩余基因复制到C1中,依然保留原来的顺序不变,将父代个体P1中的剩余基因复制到C2中,依然保留原来的顺序不变;
3)基于工件优先顺序的交叉:
工序编码层交叉使用基于工件优先顺序的交叉方法,基于工件优先顺序的交叉的具体步骤如下:
(1)将工件集J={J1,J2,...,JN}随机分成两个非空子集J1和J2
(2)将父代P1属于J1的所有基因位置对应的复制到子代C1中;将父代P2属于J2的所有基因位置对应的复制到子代C2中;
(3)将父代P2属于J1的基因去掉,然后将剩下的基因依次放入子代C1中;将父代P1属于J2的基因去掉,然后将剩下的基因依次放入子代C2中;
4)工序层编码洗牌交叉:
工序层编码交叉使用洗牌交叉,洗牌交叉的具体执行步骤如下:
(1)随机选取一个交叉位置K点,将父代P1、P2划分为两个部分;
(2)对K点前半部分基因进行随机打乱,使两个父代P1、P2分别自己交叉;
步骤4.1.2、变异算子:
变异操作包括工序编码层变异、机器编码层变异和速度编码层变异,工序编码层的变异操作有互换、***、倒序和随机重排变异四种方式;机器编码层变异:随机从机器集选择合适机器更新机器编码;速度编码层变异:随机从速度集选择合适速度更新速度编码;
步骤4.2、选择算子概率集合SOP:
首先交叉算子和变异算子都选择Q个算子分别放入各自的策略池中,每个算子初始被选中的概率是相同的,即1/Q,交叉算子和变异算子的选择概率分别进行,用向量vic和def记录每一代的结果,vic和def的具体形式如下:
vic=(0 0...0)1×Q (4-1)
def=(0 0...0)1×Q (4-2)
vic和def向量根据父代与子代的非支配关系进行更新,其中vic、def向量中qth列记录策略池中第q个算子(q=1,2,…,Q)的值,第q个算子在vic和def中的值分别用vicq和defq表示,交叉算子情况如下:
情况一:若父代P1完全支配P2,则每个子代分别与P1进行Pareto支配关系比较,如果没有子代被父代P1支配,则vicq+2;
情况二:若父代两两之间互不支配,则比较每个父代和每个子代的Pareto支配关系,如果两个子代不同时被两个父代支配,则vicq+1,defq+1;
情况三:如果子代不被父代支配,则defq+2;
变异算子情况如下:
若父代P1完全支配P2,则子代与P1进行Pareto支配关系比较,如果子代不被父代P1支配,则vicq+1,否则defq+1;
本改进点设置算法经过每五代就要更新一次选择算子概率集合SOP,需要两个矩阵:成功矩阵V和失败矩阵D来储存每五代的vic和def向量,V和D的具体形式如下:
Figure FDA0004087966850000091
其中V和D矩阵中qth列记录策略池中第q个算子(q=1,2,…,Q)的值,并依据V和D矩阵更新SOP;更新方法如下:为计算第q个算子的概率,算法对V和D两个矩阵的qth列分别求和:
Figure FDA0004087966850000092
Figure FDA0004087966850000093
其中,S1q表示第q个算子叠加五代得到的vicq值;S2q表示第q个算子叠加五代得到的defq值,对于第q个交叉算子的SOP值计算方式如下:
Figure FDA0004087966850000094
Figure FDA0004087966850000095
Figure FDA0004087966850000096
S3q设置最小值ε为0.0001;S4q是qth个交叉算子在五代内产生的后代成功的比率;SOPq表示选择算子概率集合SOP中第q个算子的概率。
5.根据权利要求4所述的基于NSGA-III算法求解车间调度问题的方法,其特征在于,所述步骤5具体如下:
步骤5.1、对目标函数进行归一化处理:
按照式(5-1)对每一维目标函数进行规范化处理:
Figure FDA0004087966850000097
Figure FDA0004087966850000101
为求出的Pt+1中所有个体的第j个子目标函数的最小值;fj(x)为Pt+1中个体的第j个子目标函数值;/>
Figure FDA0004087966850000102
为Pt+1中个体规范化之后的第j个子目标函数值;bj为超平面在第j维目标函数方向截距;
步骤5.2、基于参考点的近似支配排序:
目标函数规范化完成后,个体X的g个目标值记为
Figure FDA0004087966850000103
利用个体到参考线的垂直距离,对个体与参考点的关联关系进行评估,将个体关联到首个垂直距离最小的参考点上,并定义参考点r被关联的次数为小生境数ρr,若个体X与参考点r关联,则个体X在第r条参考线上的投影距离dr1(X)和垂直距离dr2(X)的计算式如下:
dr1(X)=||[fnor(X)]Tλr||/||λr||, (5-2)
dr2(X)=||[fnor(X)]-dr1(X)λr/||λr||||, (5-3)
其中λr=[λr1r2,...,λrg]T为参考点r的方向向量,且满足
Figure FDA0004087966850000104
为了尽快地使目标函数收敛,将个体标准化目标值与原点之间的距离F(X)和Pareto准则相结合,F(X)的计算式如下:
Figure FDA0004087966850000105
首先利用Pareto原则进行个体间支配关系的准确判断,若两个体是Pareto互不支配关系,则利用F(X)进行判断,利用近似支配原则对个体间支配关系进行判断时,需满足以下准则之一:
(a)当且仅当对任意z∈{1,2,...,g}有
Figure FDA0004087966850000106
且至少存在一个下标z'∈{1,2,...,g},使/>
Figure FDA0004087966850000107
成立,则认为X支配S;
(b)当任意两个体都处于Pareto互不支配状态时,则利用F(X)进行判断;其中准则(a)利用Pareto非支配原则进行支配关系的准确判断,保证非支配个体保留至下一代种群中,保证算法的收敛性,准则(b)规定了两个体的近似支配策略,当两个体处于Pareto互不支配支配状态时,利用F(X)进行支配关系的近似判断,以减少各层级的个体数量。
CN202310142327.1A 2023-02-21 2023-02-21 基于nsga-iii算法求解车间调度问题的方法 Pending CN116360355A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310142327.1A CN116360355A (zh) 2023-02-21 2023-02-21 基于nsga-iii算法求解车间调度问题的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310142327.1A CN116360355A (zh) 2023-02-21 2023-02-21 基于nsga-iii算法求解车间调度问题的方法

Publications (1)

Publication Number Publication Date
CN116360355A true CN116360355A (zh) 2023-06-30

Family

ID=86907927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310142327.1A Pending CN116360355A (zh) 2023-02-21 2023-02-21 基于nsga-iii算法求解车间调度问题的方法

Country Status (1)

Country Link
CN (1) CN116360355A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117555305A (zh) * 2024-01-11 2024-02-13 吉林大学 一种基于nsgaii的多目标可变子批柔性车间作业调度方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117555305A (zh) * 2024-01-11 2024-02-13 吉林大学 一种基于nsgaii的多目标可变子批柔性车间作业调度方法
CN117555305B (zh) * 2024-01-11 2024-03-29 吉林大学 一种基于nsgaii的多目标可变子批柔性车间作业调度方法

Similar Documents

Publication Publication Date Title
CN107862411B (zh) 一种大规模柔性作业车间调度优化方法
CN109034633B (zh) 改进遗传算法求解带移动时间的柔性作业车间调度方法
Liu et al. Improved genetic algorithm for the job-shop scheduling problem
CN113034026B (zh) 基于Q-learning和GA的多目标柔性作业车间调度自学习方法
CN110619437A (zh) 一种低能耗柔性作业车间调度方法
CN112381343B (zh) 一种基于遗传-骨干粒子群混合算法的柔性作业车间调度方法
CN113792924A (zh) 一种基于Deep Q-network深度强化学习的单件作业车间调度方法
CN108460463B (zh) 基于改进遗传算法的高端装备流水线生产调度方法
CN110221585A (zh) 一种用于混合流水车间考虑设备维护的节能调度控制方法
CN112381273B (zh) 一种基于u-nsga-iii算法的多目标作业车间节能优化方法
CN108710970B (zh) 一种巨型梯级水电***的多目标调度并行降维方法
CN111966049B (zh) 一种混合流水车间生产设备调度控制方法
CN102073311A (zh) 基于离散量子微粒群算法的机器零件加工流水线调度方法
CN116360355A (zh) 基于nsga-iii算法求解车间调度问题的方法
CN111814359B (zh) 一种面向离散制造的集成车间调度与装配序列规划方法
CN110597213A (zh) 一种分布式混合流水车间的生产调度方法及***
CN117035364A (zh) 基于改进混合模因算法的分布式异构流水车间调度方法
CN114021934A (zh) 基于改进spea2求解车间节能调度问题的方法
CN110110447B (zh) 一种混合蛙跳反馈极限学习机带钢厚度预测方法
CN112148446B (zh) 一种用于多技能资源受限项目调度的进化策略方法
CN112926837A (zh) 基于数据驱动改进遗传算法求解作业车间调度问题的方法
CN114237166A (zh) 基于改进spea2算法求解多转速节能调度问题的方法
CN113792494B (zh) 基于迁徙鸟群算法和交叉融合的多目标柔性作业车间调度方法
Norozi et al. Application of intelligence based genetic algorithm for job sequencing problem on parallel mixed-model assembly line
Jayakumar et al. A multi-objective genetic algorithm approach to the probabilistic manufacturing cell formation problem

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