一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于改进SPEA2算法求解多转速节能调度问题的方法与流程

2022-03-26 06:27:40 来源:中国专利 TAG:

基于改进spea2算法求解多转速节能调度问题的方法
技术领域
1.本发明属于作业调度技术领域,具体涉及一种基于改进spea2算法求解机器多转速车间节能调度问题的方法。


背景技术:

2.在以往的车间生产调度研究中,主要针对机器转速恒定的车间节能调度问题进行研究,但随着科技的发展,出现了不少多功能机床设备,可以根据实际需要以不同速度来对不同零件进行加工。因此,考虑不同转速对于机器加工效果的影响,研究机器多转速条件下的多目标柔性作业车间节能调度问题,更加符合目前制造车间的生产实际和调度理论未来的发展。


技术实现要素:

3.本发明的目的是提供一种基于改进spea2算法求解机器多转速车间节能调度问题的方法,解决了现有技术中存在的车间生产过程能耗过高问题。
4.本发明所采用的技术方案是,基于改进spea2算法求解机器多转速车间节能调度问题的方法,具体按照以下步骤实施:
5.步骤1、构建柔性作业车间节能调度问题模型:包括柔性作业车间节能调度问题描述、模型构建;
6.步骤2、采用基于自然数三段式编码,三段式编码分别为工序码、设备码和速度码;采用随机方式生成规模为n的初始种群p0,创建空的档案a0,设置算法参数:当前迭代次数t,最大迭代次数t
max
,交叉概率pn,变异概率pm;
7.步骤3、适应度赋值,计算当前种群p
t
和外部档案a
t
并集中所有个体的适应度;通过快速非支配排序构造非支配解集;
8.步骤4、环境选择:将当前种群p
t
和外部档案a
t
中所有的非支配解复制到下一代外部档案a
t 1
,如果a
t 1
的规模大于n,使用修剪策略修剪;如果a
t 1
的规模小于n,加入p
t
和a
t
的支配解;
9.步骤5、对非支配解集中的所有个体的所有目标函数值和拥挤度距离值,找出对应各个目标函数值最小的三个个体,定义为交界点,和拥挤度距离最大的一个个体,定义为稀疏点,交界点和稀疏点执行局部搜索操作,从而生成局部搜索子代种群q
t

10.步骤6、利用加权法,从最优解集中选出一个解x
*
作为最优妥协解,并对x
*
执行学习操作,生成学习子代种群g
t

11.步骤7、终止判断,如果t大等于t
max
,输出最优妥协解x
*
;反之如果t小于t
max
,执行步骤8;
12.步骤8、遗传选择:用二元锦标赛从a
t 1
q
t
g
t
中选择n个个体作为父代种群l
t

13.步骤9、令t=t 1,转到步骤2继续往下执行。
14.本发明的特点还在于,
15.步骤1中柔性作业车间节能调度问题描述如下:
16.设n个工件在m台设备上加工,每个工件有一道或多道工序,每道工序可在不同的设备上加工,但不同设备加工同一工序的时间不同,调度内容即是在满足约束条件的前提下,将工件的各道工序合理地安排给各台设备,并选择合适的加工速度,以实现最大完工时间、最小总延期时长、最小设备总负荷和最小系统总能耗;
17.模型假设具体如下:
18.设一台设备一次只能加工一个工件;
19.设备开始加工中途不可停止;
20.同一工件的工序加工有先后之分,即后道工序只有在前道工序加工完才可以加工;
21.不同工件没有先后约束;
22.设备空闲时不停机;
23.设备加工前的准备时间以及加工过程中工件的装载和卸载时间均不考虑;
24.包括设备故障、任务加急在内的紧急情况均不考虑。
25.步骤1中柔性作业车间节能调度问题模型构建具体如下:
26.ji表示工件i的总工序数;表示工件i的完工时间;n表示工件总数; ti表示工件i的交货期;t
ijk
表示工件i的第j道工序在设备k上的加工时间;x
ijk
为0-1变量,如果工件i的第j道工序在设备k上的加工,则x
ijk
=1,否则x
ijk
=0; x
ijkl
(t)为0-1变量,如果机器mk以速度v
l
加工工序o
ij
,则x
ijkl
(t)=1,否则 x
ijkl
(t)=0;e
kl
表示机器对应加工状态下的能耗,且e
kl
=4v
l2
,sek表示机器处于待机状态下的能耗,且sek=1,zk(t)为0-1变量,如果在t时刻,机器mk处于待机状态,则zk(t)=1,否则zk(t)=0,e
kl
与p
ijkl
两者的关系,如果工序o
ij
在机器mk上的加工速度增加,则相应加工时间会变小,但与之相反,其对应的能量消耗则会增大,具体如下:
[0027][0028]
所有机器在加工过程中始终保持开机状态,当其上没有工件加工时,对应机器处于待机状态,直到所有工件加工完成,机器才能关闭,
[0029]
目标函数构建如下:
[0030][0031][0032][0033][0034]
其中,公式(1-2)表示最大完工时间最小的目标函数;公式(1-3)表示总延期时长最小的目标函数;公式(1-4)表示设备总负荷最小的目标函数;公式(1-5)表示系统总能耗最小的目标函数,系统总能耗又包括加工能耗、空载能耗。
[0035]
步骤2中采用等长三段式编码方案分别表示包含的三个子问题,其中包括机器选择部分、工序排序部分编码方案、速度选择部分编码方案,速度选择部分采用与机器选择部分类似的编码方案,即每一位基因代表对应机器选择的速度档位,此处,每台机器的可选加工速度档位为v={1,1.2,1.5},采用随机方式生成规模为n的初始种群p0,创建空的档案a0,设置算法参数:算法参数包括当前迭代次数t,最大迭代次数t
max
,交叉概率pn,变异概率pm。
[0036]
步骤3具体如下:
[0037]
步骤3.1、计算个体所支配的解和所有支配该个体的解:
[0038]
给每个个体y(i)设置两个参数ni和si,ni为种群其他支配个体y(i)的个体数量,mi为被个体y(i)支配的其他个体的数量,当个体y(i)的所有目标值比个体y(j)对应的目标值都优时,定义个体y(i)支配个体y(j),否则个体y(i)不能支配个体y(j);
[0039]
步骤3.2、计算强度值:
[0040]
将种群和外部档案中所有个体所支配的解的数量,作为该个体的强度值 s(i):
[0041]
s(i)=|{j|xj∈p
t
a
t
,xi>xj}|
ꢀꢀꢀꢀꢀ
(3-1)
[0042]
步骤3.3、计算原始适应度值:
[0043]
在计算出强度值的基础上,每个个体的原始适应度值为所有支配它的解的强度值之和,按下式计算:
[0044][0045]
步骤3.4、计算密度值:
[0046]
引入k阶近邻法密集度参数评估具有相同适应度值的个体:
[0047][0048]
其中,σ
ik
为个体i与第k个相近的个体在目标函数空间上的欧几里得距离,d(i)越大表示个体i与第k近的个体距离越近,即越密集;
[0049]
步骤3.5、计算适应度值:
[0050]
原始的适应度值与密度值的和作为个体i的适应度值f(i):
[0051]
f(i)=r(i) d(i),i=1,2,...
ꢀꢀꢀ
(3-4)。
[0052]
步骤4具体如下:
[0053]
步骤4.1、将种群p
t
和外部档案a
t
并集中的所有非支配解即适应度值小于 1的解拷贝到a
t 1
中,如果a
t 1
的大小正好等于n,那么档案维护结束;
[0054]
步骤4.2、如果a
t 1
的大小小于n,那么将p
t
和a
t
并集中最好的n-|a
t 1
|个受支配的解即根据它们的适应度值大小排序后,最小的n-|a
t 1
|个个体加入到下一代档案a
t 1
中;
[0055]
步骤4.3、如果a
t 1
的大小大于n,那么要对a
t 1
实行修剪策略,直到a
t
的大小等于n为止,具体的操作是将满足下列条件的个体i从档案中删除,对所有的个体j,i<dj,其中i<dj当且仅当对于σ
ik
=σ
jk
,或者σ
ik
<σ
jk
,且对σ
il
=σ
jl
,此处,表示任意;σ
ik
为个体i与第k个相近的个体在目标函数空间上的欧氏距离。
[0056]
步骤5具体如下:
[0057]
步骤5.1、分别计算非支配解集f1中的所有个体的所有目标函数值,然后按照从大到小的顺序排序,找出每个目标函数值最小的个体,作为交界点;
[0058]
步骤5.2、计算非支配解集f1中的除了交界点之外的所有个体的拥挤度距离,找到拥挤度距离最大的个体,作为稀疏点;
[0059]
步骤5.3、对交界点和稀疏点执行变邻域搜索操作,从而生成局部搜索子代种群q
t
;局部搜索产生个体数为种群总数的10%。
[0060]
步骤5.3具体如下:
[0061]
局部搜索算法中,共有三种邻域结构,每次迭代时等概率选择n1∪n3和 n2∪n3其中一种来执行局部搜索操作,邻域结构具体如下:
[0062]
领域结构n1:在工序排序部分的码段中任选两个元素,将选中的两个元素之间的位置元素进行倒序排列;
[0063]
领域结构n2:在工序排序部分的码段中任选两个元素,将选中的两个元素中位置靠后的元素插入到位置靠前的元素前面的位置;
[0064]
领域结构n3:在机器分配部分的码段中任选一个元素,该元素的可加工设备数量大于1台,然后将该元素的对应加工设备变为其他可选设备中加工时间最小的设备。
[0065]
步骤6具体如下:
[0066]
步骤6.1、利用加权法,从最优解集f1中选出一个解作为最优妥协解x
*
,具体如下:
[0067]
步骤6.1.1、采用[0,1]线性变换算子将所有非支配解集f1中的个体对应的子目标函数值进行无量纲化处理,设b
ij
表示pareto解xi对应优化指标fj的值,则定义参数如下:
[0068][0069][0070][0071]
此处,i=1,2,3,

p是解的个数;j=1,2,3,

q为优化目标fj的个数;a
ij
表示对应解xi取得的优化目标fj的值;
[0072]
步骤6.1.2、求解得pareto解集的决策矩阵b=(b
ij
)
p
×q;
[0073]
步骤6.1.3、通过delphi调查法得到所有优化目标的权重矢量 w={ω1,ω2,

,ωq};
[0074]
步骤6.1.4、计算方案满意度矩阵
[0075]
步骤6.1.5、加权选优,选择d
l
=max(di)对应的解x
l
作为最优妥协解x
*

[0076]
步骤6.2、学习机制执行过程如下:
[0077]
步骤6.2.1、从最优解染色体长度范围内随机选择两个位置;
[0078]
步骤6.2.2、将两个位置之间的基因段直接复制给子代对应染色体位置;
[0079]
步骤6.2.3、剩余左侧的基因段打乱顺序后赋值给子代左侧基因段,剩余右侧基因段打乱顺序后赋值给子代右侧基因段,根据每一位基因代表对应机器选择的速度档位,调整速度档位编码层生成新的子代染色体,产生学习子代种群g
t

[0080]
步骤8中从a
t 1
q
t
g
t
中选择n个个体作为父代种群l
t
采用的方法为二元锦标赛,具体如下:
[0081]
步骤8.1、从a
t 1
q
t
g
t
中随机选择2个个体;
[0082]
步骤8.2、从这2个个体中选择非支配等级高的一个个体,作为父代种群l
t
中的一个个体;如果2的个体的非支配等级一样,则选择第一个个体作为父代种群l
t
中的一个个体;
[0083]
步骤8.3、判断l
t
的规模是否为n,如果是则执行步骤8.4;否则返回执行步骤8.1;
[0084]
步骤8.4、对父代种群l
t
和原有种群p
t
执行交叉和变异操作形成下一代种群p
t 1

[0085]
本发明的有益效果是,一种基于改进spea2算法求解机器多转速车间节能调度问题的方法,spea2算法是一种专门求解多目标优化问题的算法,由于其特性,不需要将多目标问题转化为单目标。改进算法是在原算法的基础上引入了稀疏度理论,增强了算法的局部搜索能力,扩大了种群多样性,并且采用改进的交叉与变异操作提高了问题的求解精度。除此之外,引入了学习机制,提升子代个体的良率,继承最优解的信息,加快算法求得全局最优解的速度。
附图说明
[0086]
图1是两种算法求解标准算例mk01所得最大完工时间收敛曲线;
[0087]
图2是两种算法求解标准算例mk01所得总延期时长收敛曲线;
[0088]
图3是两种算法求解标准算例mk01所得设备总负荷收敛曲线
[0089]
图4是两种算法求解标准算例mk01所得总能耗收敛曲线;
[0090]
图5是两种算法求解标准算例mk01所得igd值收敛曲线;
[0091]
图6是两种算法求解标准算例mk01所得hv值收敛曲线;
[0092]
图7是传统nsga-ii求解标准算例mk01所得调度结果甘特图;
[0093]
图8是改进spea2求解标准算例mk01所得调度结果甘特图;
[0094]
图9是适应度值计算示意图;
[0095]
图10是学习机制示意图;
[0096]
图11是pox交叉操作示意图;
[0097]
图12是obx交叉操作示意图;
[0098]
图13是多点交叉(mpx)操作示意图;
[0099]
图14是等长三段式编码方案示意图。
具体实施方式
[0100]
下面结合附图和具体实施方式对本发明进行详细说明。
[0101]
基于改进spea2算法求解机器多转速车间节能调度问题的方法,具体按照以下步骤实施:
[0102]
步骤1、构建柔性作业车间节能调度问题模型:包括柔性作业车间节能调度问题描述、模型构建;
[0103]
其中多目标柔性作业车间节能调度问题描述如下:
[0104]
设n个工件在m台设备上加工,每个工件有一道或多道工序,每道工序可在不同的设备上加工,但不同设备加工同一工序的时间不同,调度内容即是在满足约束条件的前提下,将工件的各道工序合理地安排给各台设备,并选择合适的加工速度,以实现最大完工时间、最小总延期时长、最小设备总负荷和最小系统总能耗;
[0105]
模型假设具体如下:
[0106]
设一台设备一次只能加工一个工件;
[0107]
设备开始加工中途不可停止;
[0108]
同一工件的工序加工有先后之分,即后道工序只有在前道工序加工完才可以加工;
[0109]
不同工件没有先后约束;
[0110]
设备空闲时不停机;
[0111]
设备加工前的准备时间以及加工过程中工件的装载和卸载时间均不考虑;
[0112]
包括设备故障、任务加急在内的紧急情况均不考虑。
[0113]
步骤1中柔性作业车间节能调度问题模型构建具体如下:
[0114]ji
表示工件i的总工序数;表示工件i的完工时间;n表示工件总数; ti表示工件i的交货期;t
ijk
表示工件i的第j道工序在设备k上的加工时间;x
ijk
为0-1变量,如果工件i的第j道工序在设备k上的加工,则x
ijk
=1,否则x
ijk
=0; x
ijkl
(t)为0-1变量,如果机器mk以速度v
l
加工工序o
ij
,则x
ijkl
(t)=1,否则 x
ijkl
(t)=0;e
kl
表示机器对应加工状态下的能耗,且e
kl
=4v
l2
,sek表示机器处于待机状态下的能耗,且sek=1,zk(t)为0-1变量,如果在t时刻,机器mk处于待机状态,则zk(t)=1,否则zk(t)=0,e
kl
与p
ijkl
两者的关系,如果工序o
ij
在机器mk上的加工速度增加,则相应加工时间会变小,但与之相反,其对应的能量消耗则会增大,具体如下:
[0115][0116]
所有机器在加工过程中始终保持开机状态,当其上没有工件加工时,对应机器处于待机状态,直到所有工件加工完成,机器才能关闭,
[0117]
目标函数构建如下:
[0118][0119][0120][0121][0122]
其中,公式(1-2)表示最大完工时间最小的目标函数;公式(1-3)表示总延期时长最小的目标函数;公式(1-4)表示设备总负荷最小的目标函数;公式(1-5)表示系统总能耗最小的目标函数,系统总能耗又包括加工能耗、空载能耗。
[0123]
步骤2、采用基于自然数三段式编码,三段式编码分别为工序码、设备码和速度码;采用随机方式生成规模为n的初始种群p0,创建空的档案a0,设置算法参数:当前迭代次数t,最大迭代次数t
max
,交叉概率pn,变异概率 pm;
[0124]
步骤2中采用等长三段式编码方案分别表示包含的三个子问题,其中包括机器选择部分、工序排序部分编码方案、速度选择部分编码方案,速度选择部分采用与机器选择部
分类似的编码方案,即每一位基因代表对应机器选择的速度档位,速度档位为正实数,不是整数,因此速度选择部分基因串内数值都不是整数。此处,每台机器的可选加工速度档位为v={1,1.2,1.5},对应一个可行解的编码方案如图14所示。
[0125]
采用随机方式生成规模为n的初始种群p0,创建空的档案a0,设置算法参数:算法参数包括当前迭代次数t,最大迭代次数t
max
,交叉概率pn,变异概率pm。
[0126]
步骤3、适应度赋值,计算当前种群p
t
和外部档案a
t
并集中所有个体的适应度;通过快速非支配排序构造非支配解集;
[0127]
步骤3具体如下:
[0128]
步骤3.1、计算个体所支配的解和所有支配该个体的解:
[0129]
给每个个体y(i)设置两个参数ni和si,ni为种群其他支配个体y(i)的个体数量,mi为被个体y(i)支配的其他个体的数量,当个体y(i)的所有目标值比个体y(j)对应的目标值都优时,定义个体y(i)支配个体y(j),否则个体y(i)不能支配个体y(j);
[0130]
步骤3.2、计算强度值:
[0131]
适应度赋值考虑个体的支配情况即每个个体所支配的解和所有支配该个体的解。将种群和外部档案中所有个体所支配的解的数量,作为该个体的强度值s(i):
[0132]
s(i)=|{j|xj∈p
t
a
t
,xi>xj}|
ꢀꢀꢀꢀꢀ
(3-1)
[0133]
步骤3.3、计算原始适应度值:
[0134]
在计算出强度值的基础上,每个个体的原始适应度值为所有支配它的解的强度值之和,按下式计算:
[0135][0136]
如图9所示,(求最大),在计算r(i)时,种群和外部档案内的个体都考虑在内,r(i)越大表明它被越多的解支配。图9中a点支配3个解,它的强度值为3;b点支配2个解,它的强度值为2;其它点依此类推。a点的原始适应度值为0,是非支配解;b点只被a点支配,它的原始适应度值为a 的强度值即3;c点被a点、b点和d点支配,它的原始适应度值为这三点的强度值之和即3 2 5;其它点依此类推。
[0137]
步骤3.4、计算密度值:
[0138]
原始的适应度赋值反映了个体的支配与被支配的信息,但是为了维护外部档案只知道这些信息是不够的,所以引入k阶近邻法密集度参数评估具有相同适应度值的个体:
[0139][0140]
其中,σ
ik
为个体i与第k个相近的个体在目标函数空间上的欧几里得距离,d(i)越大表示个体i与第k近的个体距离越近,即越密集;
[0141]
步骤3.5、计算适应度值:
[0142]
原始的适应度值与密度值的和作为个体i的适应度值f(i):
[0143]
f(i)=r(i) d(i),i=1,2,...
ꢀꢀꢀꢀꢀꢀ
(3-4)
[0144]
其中:i=1,2,...n.
[0145]
步骤4、环境选择:将当前种群p
t
和外部档案a
t
中所有的非支配解复制到下一代外部档案a
t 1
,如果a
t 1
的规模大于n,使用修剪策略修剪;如果a
t 1
的规模小于n,加入p
t
和a
t

支配解;
[0146]
步骤4具体如下:
[0147]
外部档案具有固定的大小始终保持一个恒定的常数;档案的维护保留边界解以防止从档案中移出。其具体维护步骤如下:
[0148]
步骤4.1、将种群p
t
和外部档案a
t
并集中的所有非支配解即适应度值小于 1的解拷贝到a
t 1
中,如果a
t 1
的大小正好等于n,那么档案维护结束;
[0149]
步骤4.2、如果a
t 1
的大小小于n,那么将p
t
和a
t
并集中最好的n-|a
t 1
|个受支配的解即根据它们的适应度值大小排序后,最小的n-|a
t 1
|个个体加入到下一代档案a
t 1
中;
[0150]
步骤4.3、如果a
t 1
的大小大于n,那么要对a
t 1
实行修剪策略,直到a
t
的大小等于n为止,具体的操作是将满足下列条件的个体i从档案中删除,对所有的个体j,i<dj,其中i<dj当且仅当对于σ
ik
=σ
jk
,或者σ
ik
<σ
jk
,且对σ
il
=σ
jl
,此处,表示任意;σ
ik
为个体i与第k个相近的个体在目标函数空间上的欧氏距离。
[0151]
步骤5、对非支配解集f1中的所有个体的所有目标函数值和拥挤度距离值,找出对应各个目标函数值最小的三个个体,定义为交界点,和拥挤度距离最大的一个个体,定义为稀疏点,交界点和稀疏点执行局部搜索操作,从而生成局部搜索子代种群q
t

[0152]
步骤5具体如下:
[0153]
步骤5.1、分别计算非支配解集f1中的所有个体的所有目标函数值,然后按照从大到小的顺序排序,找出每个目标函数值最小的个体,作为交界点;
[0154]
步骤5.2、计算非支配解集f1中的除了交界点之外的所有个体的拥挤度距离,找到拥挤度距离最大的个体,作为稀疏点;
[0155]
步骤5.3、对交界点和稀疏点执行变邻域搜索操作,从而生成局部搜索子代种群q
t
;局部搜索产生个体数为种群总数的10%。
[0156]
步骤5.3具体如下:
[0157]
局部搜索算法中,共有三种邻域结构,每次迭代时等概率选择n1∪n3和 n2∪n3其中一种来执行局部搜索操作,邻域结构具体如下:
[0158]
领域结构n1:在工序排序部分的码段中任选两个元素,将选中的两个元素之间的位置元素进行倒序排列;
[0159]
领域结构n2:在工序排序部分的码段中任选两个元素,将选中的两个元素中位置靠后的元素插入到位置靠前的元素前面的位置;
[0160]
领域结构n3:在机器分配部分的码段中任选一个元素,该元素的可加工设备数量大于1台,然后将该元素的对应加工设备变为其他可选设备中加工时间最小的设备。
[0161]
步骤6、利用加权法,从最优解集f1中选出一个解x
*
作为最优妥协解,并对x
*
执行学习操作,生成学习子代种群g
t

[0162]
结合图10,步骤6具体如下:
[0163]
步骤6.1、利用加权法,从最优解集f1中选出一个解作为最优妥协解x
*
,具体如下:
[0164]
步骤6.1.1、采用[0,1]线性变换算子将所有非支配解集f1中的个体对应的子目标函数值进行无量纲化处理,设b
ij
表示pareto解xi对应优化指标fj的值,则定义参数如下:
[0165][0166][0167][0168]
此处,i=1,2,3,

p是解的个数;j=1,2,3,

q为优化目标fj的个数;a
ij
表示对应解xi取得的优化目标fj的值;
[0169]
步骤6.1.2、求解得pareto解集的决策矩阵b=(b
ij
)
p
×q;
[0170]
步骤6.1.3、通过delphi调查法得到所有优化目标的权重矢量 w={ω1,ω2,

,ωq};
[0171]
步骤6.1.4、计算方案满意度矩阵
[0172]
步骤6.1.5、加权选优,选择d
l
=max(di)对应的解x
l
作为最优妥协解x
*

[0173]
步骤6.2、学习机制是子代学习前代最优解染色体优良基因,提升子代个体的良率。最优解在工序编码、机器编码均属于较优基因,后代对最优解的学习,继承了最优解的这些信息,加快算法求得全局最优解的速度。学习机制执行过程如下:
[0174]
步骤6.2.1、从最优解染色体长度范围内随机选择两个位置;
[0175]
步骤6.2.2、将两个位置之间的基因段直接复制给子代对应染色体位置;
[0176]
步骤6.2.3、剩余左侧的基因段打乱顺序后赋值给子代左侧基因段,剩余右侧基因段打乱顺序后赋值给子代右侧基因段,根据每一位基因代表对应机器选择的速度档位,调整速度档位编码层生成新的子代染色体,产生学习子代种群g
t

[0177]
步骤7、终止判断,如果t大等于t
max
,输出最优妥协解x
*
;反之如果t小于t
max
,执行步骤8;
[0178]
步骤8、遗传选择:用二元锦标赛从a
t 1
q
t
g
t
中选择n个个体作为父代种群l
t

[0179]
步骤8中从a
t 1
q
t
g
t
中选择n个个体作为父代种群l
t
采用的方法为二元锦标赛,具体如下:
[0180]
步骤8.1、从a
t 1
q
t
g
t
中随机选择2个个体;
[0181]
步骤8.2、从这2个个体中选择非支配等级高的一个个体,作为父代种群l
t
中的一个个体;如果2的个体的非支配等级一样,则选择第一个个体作为父代种群l
t
中的一个个体;
[0182]
步骤8.3、判断l
t
的规模是否为n,如果是则执行步骤8.4;否则返回执行步骤8.1;
[0183]
步骤8.4、对父代种群l
t
和原有种群p
t
执行交叉和变异操作形成下一代种群p
t 1

[0184]
步骤8.4中交叉操作针对工件排序部分和设备选择部分分别进行,工序排序部分采用基于顺序的优先级保留的交叉(the precedence preserving order-based crossover,pox)操作,设备选择部分采用基于顺序的交叉操作,具体如下:
[0185]
(1)工序交叉操作
[0186]
此处工序交叉采用基于顺序的优先级保留的交叉操作,具体如图8所示,设p1和p2表示父代个体,c1和c2表示子代个体,首先,把所有工件随机分为两个子集s1和s2;将p1中属于s1的工件复制到c1,将p2中属于s2的工件复制到c2,保持工件位置不变;将p2中属于s2的工
件复制到c1,将p1中属于s1的工件复制到c2,保持工件顺序不变;图11中s1={1},s2={2,3};
[0187]
(2)设备交叉操作
[0188]
如图12所示,设备交叉采用基于顺序的交叉(the order based crossover, obx)操作,此处p1,p2,c1,c2代表含义与工序交叉操作相同,k1,k2,k3,k4表示位置子集,其中k1={3,5,8},k2={1,2,4,6,7},k3={1,3,8},k4={2,4,5,6,7};设备交叉的详细流程如下:
[0189]
1)创建四个子集k1,k2,k3,k4;
[0190]
2)从设备码中随机选择几个位置编号放入k1,将剩余位置编号放入k2;
[0191]
3)将p1中与k1对应的工序码,在p2的工序码中找到,并将其对应位置序列放入k3,再将p2中其余位置序列放入k4;
[0192]
4)将父代p1中属于k1的值复制给子代c2中k3对应的位置,将父代p2中属于k4的值复制给子代c2剩余位置,保持位顺序不变;
[0193]
5)将父代p2中属于k3的值复制给子代c1中k1对应的位置,将父代p1中属于k2的值复制给子代c1剩余位置,保持顺序不变。
[0194]
图12中k1={3,5,8},k2={1,2,4,6,7},k3={1,3,8},k4={2,4,5,6,7}
[0195]
(3)速度选择部分的交叉操作:
[0196]
速度选择部分采用多点交叉操作mpx(muti-point crossover),mpx操作的步骤描述如下,如图13所示。
[0197]
步骤1:随机产生一组长度与fjsp码串相等的由0,1组成的数组s;
[0198]
步骤2:从父代个体p1和p2中复制与数组s中“1”位置对应的机器编号至子代个体c1和c2;
[0199]
步骤3:从p1和p2中复制与数组s中“0”位置对应的机器编号至c2和c1;
[0200]
步骤8.4中变异操作分别针对工序排序部分和设备选择两个部分展开:
[0201]
(1)工序排序部分的变异操作:
[0202]
工序排序部分的变异操作共有互换、插入和倒序三种变异方式,每次迭代时,以相等概率选择其中一种执行,三种变异操作具体如下:
[0203]
1)互换变异:
[0204]
在工序码中随机选择两个不同位置e1和e2,将这两个位置对应的元素进行交换;
[0205]
2)插入变异:
[0206]
在工序码中随机选择两个不同位置e1和e2,将e2对应的元素插入到e1前面;
[0207]
3)倒序变异:
[0208]
在工序码中随机选择两个不同位置e1和e2,将这两个位置之间的元素进行倒序排列;
[0209]
(2)设备选择部分的变异操作:
[0210]
设备选择部分的变异操作执行随机替换的变异方式,随机选择两个基因位,从其对应机器集中加工时间最短的机器来替换已选机器;
[0211]
(3)速度选择部分的变异操作:
[0212]
速度选择部分的变异操作执行选择最快替换的变异方式,随机选择两个基因位,从其对应可选速度集中选择最快的速度档位来替换已选加工速度档位。
[0213]
步骤9、令t=t 1,转到步骤2继续往下执行。
[0214]
仿真验证
[0215]
本节对标准算例mk01-mk10进行仿真实验,将分别采用改进spea2 和传统nsga
‑ⅱ
两种算法用matlab2017b编程,在配置为内存8g,r5 3.2ghz 的计算机上,在win10操作系统下进行仿真求解。由于标准算例仅包含加工时间数据,不能直接应用本文算法求解,为了有效应用本文算法对 mk01-mk10进行求解,其中标准算例原有的加工时间作为基本加工时间,所有设备的加工速度都包括v={1,1.2,1.5}三个档位,加工能耗e
kl
=4v
l2
,空载能耗sek=1;所有工件的交货期数据按照公式(1)来生成。
[0216][0217]
其中,dj代表第j个工件的交期时间,rj代表第j个工件的投放时间,tj代表第j个工件的松紧度,sj代表第j个工件的工序数,p
l,j
代表第j个工件的第l个工序的加工时间。tj有三个取值:tj=2表示时间宽松,tj=1.5表示时间适中,tj=1表示时间紧张。每个案例中,具有不同时间松紧程度(紧张、适中、宽松)的工件数量分别为34%,33%,33%。
[0218]
传统nsga
‑ⅱ
算法的参数设置为n=200,pc=0.8,pm=0.15, t
max
=1200,采用加权法来从pareto解集中选择最优妥协解。改进spea2算法的参数设置为n=200,pc=0.7,pm=0.15,t
max
=1200。两种算法针对每个算例求解运行10次。求解结果如表1所示:
[0219]
表1两种算法的仿真结果对比
[0220][0221]
分析表1可知,在最大完工时间指标上,传统nsga
‑ⅱ
算法取得了 mk01,mk02,mk04,mk05,mk08,mk09共6个算例的最优值,取得了mk01,mk02,mk03,mk05,mk08,mk09共6个算例的最好平均值。改进spea2算法取得了mk01,mk03,mk06,mk07,mk10共5个算例的最优值,取得了mk01,mk04,mk06,mk07,mk10共5个算例较好的平均值。
[0222]
在总延期时长指标上,传统nsga
‑ⅱ
算法取得了mk01,mk02,mk03, mk04,mk06,
mk07,mk08,mk10共8个算例的最优值,取得了mk01, mk02,mk03,mk04,mk06,mk07,mk08,mk09,mk10共9个算例的较好的平均值。改进spea2取得了mk01,mk02,mk03,mk04,mk05, mk06,mk07,mk09,mk10共9个算例的最优值,取得了mk01,mk02,mk03,mk04,mk05,mk06,mk07,mk09,mk10共9个算例的较好的平均值。
[0223]
在总能耗指标上,传统nsga
‑ⅱ
算法取得了mk01,mk02,mk04, mk06,mk08共5个算例的最优值,取得了mk01,mk02,mk03,mk06, mk08,共5个算例的较好的平均值。改进spea2取得了mk03,mk05, mk07,mk09,mk10共5个算例的最优值,取得了mk04,mk05,mk07, mk09,mk10共5个算例的较好的平均值。
[0224]
在总负荷指标上,传统nsga
‑ⅱ
算法取得了0个算例的最优值,取得了0个算例的较好的平均值。改进spea2算法取得了mk01,mk02,mk03, mk04,mk05,mk06,mk07,mk08,mk09,mk10共10个算例的最优值,取得了mk01,mk02,mk03,mk04,mk05,mk06,mk07,mk08, mk09,mk10共10个算例较好的平均值。
[0225]
为了进一步分析算法的优化性能,将两种算法求解机器多转速柔性作业车间调度问题所得hv结果对比如下表2所示。分析表2可知传统nsga
‑ⅱ
算法取得了mk04共1个算例的最优的hv值。改进spea2算法取得了 mk01,mk02,mk03,mk05,mk06,mk07,mk08,mk09,mk10共 9个算例的最优hv值。
[0226]
综上可知,改进spea2算法在求解机器多转速柔性作业车间调度问题上,较传统nsga
‑ⅱ
算法拥有更好的综合性能。
[0227]
表2改进spea2与nsga
‑ⅱ
算法在所有算例上所得hv的比较结果
[0228]
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献