欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2023101423271
申请人: 陕西科技大学
专利类型:发明专利
专利状态:授权未缴费
专利领域: 控制;调节
更新日期:2025-07-09
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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的总工序数; 表示工件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表示机器对应加工状态下的能耗率,且 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上的加工速度增加,则相应加工时间会变小,但与之相反,相应加工的能量消耗则会增大,具体如下:所有机器在加工过程中始终保持开机状态,当其上没有工件加工时,对应机器处于待机状态,直到所有工件加工完成,机器才能关闭;

目标函数构建如下:

s.t.

其中,公式(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)确定:步骤2.1、定义X为集合 中所有元素的G‑1种组合;

步骤2.2、对X中的每一个元素xij,有 其中,xij表示X中第i种组合里的第j个元素;

步骤2.3、令S表示参考点集合,则对于S中的每一个元素sij和X中的每一个元素xij,满足式(2‑2):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)

th

vic和def向量根据父代与子代的非支配关系进行更新,其中vic、def向量中q 列记录策略池中第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的具体形式如下:th

其中V和D矩阵中q 列记录策略池中第q个算子(q=1,2,…,Q)的值,并依据V和D矩阵更th新SOP;更新方法如下:为计算第q个算子的概率,算法对V和D两个矩阵的q 列分别求和:其中,S1q表示第q个算子叠加五代得到的vicq值;S2q表示第q个算子叠加五代得到的defq值,对于第q个交叉算子的SOP值计算方式如下:th

S3q设置最小值ε为0.0001;S4q是q 个交叉算子在五代内产生的后代成功的比率;SOPq表示选择算子概率集合SOP中第q个算子的概率。

5.根据权利要求4所述的基于NSGA‑III算法求解车间调度问题的方法,其特征在于,所述步骤5具体如下:步骤5.1、对目标函数进行归一化处理:

按照式(5‑1)对每一维目标函数进行规范化处理:

为求出的Pt+1中所有个体的第j个子目标函数的最小值;fj(x)为Pt+1中个体的第j个子目标函数值; 为Pt+1中个体规范化之后的第j个子目标函数值;bj为超平面在第j维目标函数方向截距;

步骤5.2、基于参考点的近似支配排序:

目标函数规范化完成后,个体X的g个目标值记为

利用个体到参考线的垂直距离,对个体与参考

点的关联关系进行评估,将个体关联到首个垂直距离最小的参考点上,并定义参考点r被关联的次数为小生境数ρr,若个体X与参考点r关联,则个体X在第r条参考线上的投影距离dr1(X)和垂直距离dr2(X)的计算式如下:nor T

dr1(X)=||[f (X)]λr||/||λr||,   (5‑2)nor

dr2(X)=||[f (X)]‑dr1(X)λr/||λr||||,   (5‑3)T

其中λr=[λr1,λr2,...,λrg]为参考点r的方向向量,且满足为了尽快地使目标函数收敛,将个体标准化目标值与原点之间的距离F(X)和Pareto准则相结合,F(X)的计算式如下:首先利用Pareto原则进行个体间支配关系的准确判断,若两个体是Pareto互不支配关系,则利用F(X)进行判断,利用近似支配原则对个体间支配关系进行判断时,需满足以下准则之一:(a)当且仅当对任意z∈{1,2,...,g}有 且至少存在一个下标z'∈{1,

2,...,g},使 成立,则认为X支配S;

(b)当任意两个体都处于Pareto互不支配状态时,则利用F(X)进行判断;其中准则(a)利用Pareto非支配原则进行支配关系的准确判断,保证非支配个体保留至下一代种群中,保证算法的收敛性,准则(b)规定了两个体的近似支配策略,当两个体处于Pareto互不支配支配状态时,利用F(X)进行支配关系的近似判断,以减少各层级的个体数量。