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

基于改进布谷鸟算法的铸造混合流水车间调度方法及系统

2023-02-04 14:37:24 来源:中国专利 TAG:


1.本发明涉及车间调度技术领域,特别是涉及一种基于改进布谷鸟算法的铸造混合流水车间调度方法及系统。


背景技术:

2.随着材料技术和智能装备技术的进步,我国在铸造业领域取得了飞跃式发展,但在智能化、信息化等方面远不如工业发达国家。铸造混合流水车间不同于一般的混合流水车间,其特殊之处在于熔炼阶段为批处理形式,而其它阶段均为单件加工形式,且铸造生产流程长。例如在加工过程中对具有某些相同特征的铸件进行组批,称为“批处理”,并将同一批次的铸件在批处理设备上统一进行加工,批处理完成后再对铸件执行单件加工操作,此时一台设备在某一时刻只能加工一个铸件,其中不同种类铸件的加工阶段数可能不同。因此铸造生产过程复杂,其生产调度难度较大。相较于作业车间调度问题(job-shop scheduling problem,jsp)和流水车间调度问题(flow shop scheduling problem,fsp),混合流水车间调度问题(hybrid flow shop scheduling problem,hfsp)更加逼近实际的多样化生产环境,数学模型更加复杂。铸造型企业的调度问题属于混合流水车间调度问题,在解决此类问题时不仅要考虑到铸件的加工顺序和机器选择,还要考虑到铸件的组批方式和批处理设备的选择。因此,设计最优的混合流水车间生产调度解决方案,进一步完善铸造企业生产计划与调度集成优化理论,提高铸造企业资源配置合理性及效率,降低不确定性因素对铸造企业决策制定造成的干扰,显得尤为重要。
3.元启发式算法是解决混合流水车间调度问题的常用算法。布谷鸟算法(cuckoo search,cs)是模仿布谷鸟育雏提出的一种元启发式算法,被广泛的应用于资源分配、车间调度、路径规划等多种问题求解。布谷鸟算法的核心在于巢寄生行为以及l
é
vy飞行机制:布谷鸟将蛋产于其他鸟类巢穴来繁衍后代,原巢主以概率pa发现布谷鸟蛋并将其丢弃,使得布谷鸟执行l
é
vy飞行以寻找新的巢穴,布谷鸟找到宿主的巢穴位置对应着问题的解。l
é
vy飞行能帮助布谷鸟找到更多更好的巢穴来繁衍后代,其通常由“短距离飞行”和“长距离飞行”两种飞行状态组合而成。具备l
é
vy飞行特征的布谷鸟在飞行途中先是进行较长时间的“长距离飞行”,在某一随机时刻执行90
°
急转弯,随后在此范围内进行相对较短时间的“短距离飞行”,其中,“短距离飞行”可以增加宿主巢穴位置的多样性,“长距离飞行”可以使算法较为容易地跳出局部最优,且通常将算法的终止条件设置为最大迭代次数。因此,布谷鸟算法本身同时具备较强的全局搜索能力和一定的局部搜索能力,但对于混合流水车间调度问题的优化,传统布谷鸟算法随着迭代次数的增加容易陷入局部最优解,寻优能力有待提高。


技术实现要素:

4.本发明的目的是提供一种基于改进布谷鸟算法的铸造混合流水车间调度方法及系统,以解决传统布谷鸟算法随着迭代次数的增加容易陷入局部最优解,寻优能力有待提
高的问题。
5.为实现上述目的,本发明提供了如下方案:
6.一种基于改进布谷鸟算法的铸造混合流水车间调度方法,包括:
7.建立铸造混合流水车间的调度模型,所述调度模型用于表示总加工时间与铸件的加工顺序、铸件对应的加工机器,以及铸件的组批方式之间的关系;
8.生成初始种群;所述初始种群为序列组成的集合,所述序列包含铸件加工顺序、每一铸件对应的加工机器以及铸件的组批方式;
9.根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群;
10.采用改进布谷鸟算法对所述优解子种群进行更新,得到第一更新子种群;所述改进布谷鸟算法是基于斯皮尔曼简捷相关系数距离对传统布谷鸟算法进行改进的算法;
11.采用遗传算法中的交叉和变异操作对所述劣解子种群进行更新,得到第二更新子种群;
12.根据所述调度模型,计算新种群中最大完工时间最小的个体,并判断是否满足迭代终止条件,若是,则根据所述最大完工时间最小的个体获得最优调度方法;否则,对所述新种群进行更新,并设置更新后的新种群为初始种群,返回步骤“根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群”;所述新种群由所述第一更新子种群和所述第二更新子种群合并而成;所述最大完工时间为所有铸件的最后一道工序的完工时间最大值。
13.可选的,所述采用改进布谷鸟算法对所述优解子种群进行更新,具体包括:
14.根据所述个体的适应度值,获取所述优解子种群中的最优个体;
15.计算所述优解子种群中每一个体与最优个体之间的距离;
16.判断所述距离是否小于设定的距离阈值,得到第一判断结果;
17.若所述第一判断结果为是,则对所述距离对应的个体进行变异操作;若所述第一判断结果为否,则对所述距离对应的个体进行交叉操作。
18.可选的,所述调度模型包括目标函数和约束条件;所述约束条件包括单件加工阶段的约束条件和批处理加工阶段的约束条件;
19.所述单件加工阶段的约束条件包括:每一铸件的每个阶段只能被一台加工设备加工;同一时刻一台加工设备只能加工铸件的一个阶段;每个铸件都必须按照其特定的工艺路线进行加工;铸件加工途中不能停止;
20.所述批处理加工阶段的约束条件包括:一个铸件不能被同时分配到多个任务批次中;一个任务批次中的铸件数量小于设定数量阈值;一个任务批次只能在一台熔炼炉中进行熔炼;只有相同的材质才能组成一个批次;熔炼炉上进行加工的任务批次总重量不能超出该熔炼炉的最大容量,其中,任务批次的重量为该任务批次中的所有铸件重量之和;铸件加工途中不能停止;同一台熔炼炉中不同的任务批次具有先后顺序。
21.可选的,所述对所述新种群进行更新,具体包括:
22.采用变邻域下降搜索算法对所述新种群进行更新。
23.可选的,所述方法还包括:按以下编码规则对每一调度方法进行编码,得到每一调度方法对应的个体:
24.所述编码规则包括:每一个体的编号包括铸件的类别编号、铸件的加工顺序、铸件
对应的加工机器以及铸件的组批方式。
25.可选的,在所述根据所述调度模型生成初始种群之后,所述根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群之前,所述方法还包括:
26.对初始种群中个体的单件加工阶段和批处理加工阶段采用不同的解码方法进行解码;
27.根据解码后的初始种群,计算个体的适应度值。
28.可选的,所述单件加工阶段的解码方法包括:
29.按照每一铸件前一阶段的完工时间,对所有铸件进行升序排序,得到第一任务序列;
30.从所述第一任务序列中取出排在第一位的第一铸件,并将所述第一铸件从所述第一任务序列中删除;
31.计算所述第一铸件在每一可选加工设备上加工的完工时间,得到第一完工时间,选取第一完工时间最小的加工设备为第一加工设备;
32.判断所述第一加工设备是否唯一,得到第二判断结果;
33.若所述第二判断结果为是,则将所述第一加工设备设定为所述第一铸件的最优加工设备;跳转至步骤“更新加工设备的累计加工时间”;
34.若所述第二判断结果为否,则计算每一所述可选加工设备的累计加工时间,得到第二加工时间;选取所述第二加工时间最小的加工设备为第二设备;判断所述第二设备是否唯一,得到第三判断结果;若所述第三判断结果为是,则将所述第二设备设定为所述第一铸件的最优加工设备;跳转至步骤“更新加工设备的累计加工时间”;若所述第三判断结果为否,则从所述第二设备中随机选择一个设备为所述第一铸件的最优加工设备;
35.更新加工设备的累计加工时间;
36.判断所述第一任务序列中是否存在铸件,若是,则返回步骤“从所述第一任务序列中取出排在第一位的第一铸件”,否则,结束,获得初始种群中个体单件加工阶段的加工顺序以及对应的加工机器。
37.可选的,所述批处理加工阶段的解码方法包括:
38.按照每一铸件前一阶段的完工时间,对所有铸件进行升序排序,得到第二任务序列;
39.从所述第二任务序列中取出排在第一位的第二铸件,并将所述第二铸件从所述第二任务序列中删除;
40.判断是否存在合理任务批,得到第四判断结果;所述合理任务批为满足与所述第二铸件材质相同,且加工所述任务批的熔炼炉剩余容量大于所述第二铸件的理论重量的任务批;
41.若所述第四判断结果为是,则将所述第二铸件插入到所述合理任务批中;否则,为所述第二铸件新建一个任务批;
42.按照最早完工优先规则,为新建的任务批分配一台熔炼炉;
43.判断所述第二任务序列中是否存在铸件,若是,则返回步骤“从所述第二任务序列中取出排在第一位的第二铸件”,否则,结束,获得初始种群中个体批处理加工阶段的组批方式。
44.本发明还提供一种基于改进布谷鸟算法的铸造混合流水车间调度系统,包括:
45.调度模块建立模块,用于建立铸造混合流水车间的调度模型,所述调度模型用于表示总加工时间与铸件的加工顺序、铸件对应的加工机器,以及铸件的组批方式之间的关系;
46.初始种群获取模块,用于生成初始种群;所述初始种群为序列组成的集合,所述序列包含铸件加工顺序、每一铸件对应的加工机器以及铸件的组批方式;
47.种群划分模块,用于根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群;
48.优解子种群更新模块,用于采用改进布谷鸟算法对所述优解子种群进行更新,得到第一更新子种群;所述改进布谷鸟算法是基于斯皮尔曼简捷相关系数距离对传统布谷鸟算法进行改进的算法;
49.劣解子种群更新模块,用于采用遗传算法中的交叉和变异操作对所述劣解子种群进行更新,得到第二更新子种群;
50.最优调度方法获取模块,用于根据所述调度模型,计算新种群中最大完工时间最小的个体,并判断是否满足迭代终止条件,若是,则根据所述最大完工时间最小的个体获得最优调度方法;否则,对所述新种群进行更新,并设置更新后的新种群为初始种群,返回步骤“根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群”;所述新种群由所述第一更新子种群和所述第二更新子种群合并而成;所述最大完工时间为所有铸件的最后一道工序的完工时间最大值。
51.可选的,所述优解子种群更新模块具体包括:
52.最优个体获取模块,用于根据所述个体的适应度值,获取所述优解子种群中的最优个体;
53.距离计算子模块,用于计算所述优解子种群中每一个体与最优个体之间的距离;
54.距离判断模块,用于判断所述距离是否小于设定的距离阈值,得到第一判断结果;
55.若所述第一判断结果为是,则对所述距离对应的个体进行变异操作;若所述第一判断结果为否,则对所述距离对应的个体进行交叉操作。
56.根据本发明提供的具体实施例,本发明公开了以下技术效果:
57.本发明提供一种基于改进布谷鸟算法的铸造混合流水车间调度方法及系统,首先,建立铸造混合流水车间的调度模型;然后,生产初始种群;根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群;采用改进布谷鸟算法对所述优解子种群进行更新,并采用遗传算法中的交叉和变异操作对所述劣解子种群进行更新,根据更新后的新种群以及调度模型,获得满足最大完工时间最小的个体,并判断是否满足迭代终止条件,若是,则根据最大完工时间最小的个体获得最优调度方法;否则对所述新种群进行更新,并设置更新后的新种群为初始种群,返回“根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群”。本发明将初始种群划分为优解子种群和劣解子种群,并对优、劣种群采取不同的进化策略,提升了算法的搜索能力,避免了随着迭代次数的增多,算法陷入局部最优解,提高了寻优能力。
附图说明
58.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
59.图1为本发明实施例1提供的基于改进布谷鸟算法的铸造混合流水车间调度方法流程图;
60.图2为本发明实施例1提供的单层编码规则序列图;
61.图3为本发明实施例1提供的单件加工阶段的解码方法流程图;
62.图4为本发明实施例1提供的批处理加工阶段的解码方法流程图;
63.图5为本发明实施例1提供的种群进化策略示意图;
64.图6为本发明实施例1提供的交叉操作流程图;
65.图7为本发明实施例1提供的变邻域下降搜索算法流程图;
66.图8为本发明实施例1提供的交叉操作示意图
67.图9为本发明实施例1提供的变异操作示意图;
68.图10为本发明实施例1提供的“n6m5l4”运行结果调度甘特图;
69.图11为本发明实施例1提供的“n6m5l4”收敛曲线图。
具体实施方式
70.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
71.本发明的目的是提供一种基于改进布谷鸟算法的铸造混合流水车间调度方法及系统,以解决传统布谷鸟算法随着迭代次数的增加容易陷入局部最优解,寻优能力有待提高的问题。
72.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
73.实施例1
74.本实施例提供一种基于改进布谷鸟算法的铸造混合流水车间调度方法,请参阅图1,包括:
75.s1、建立铸造混合流水车间的调度模型;所述调度模型用于表示总加工时间与铸件的加工顺序、铸件对应的加工机器,以及铸件的组批方式之间的关系。
76.建立调度模型前,首先需要对铸造企业混合流水车间调度问题进行描述,定义参数变量和决策变量。具体定义的参数变量和决策变量请参阅表1和表2。本实施例中,设铸造车间需生产w种类型的铸件,每种类型铸件i的生产批量为xi,所有铸件都需要经过m个阶段的连续加工,每个阶段k上有mnk台并行的加工设备可供选择,并且至少有一个阶段有多台加工设备。针对不同的加工形式有不同的决策过程,在单件加工阶段中,该调度问题需确定每个阶段上的铸件序列以及铸件的加工设备分配;在批处理阶段,首先根据合金材质将铸
件划分为不同的任务批次,然后确定每个任务批次的加工顺序以及任务批次的熔炼炉分配。各种类铸件的加工阶段数m已知,且各铸件在各机器上所需的加工时间已知,批处理阶段的加工设备各参数已知,要求得到相应调度方案时的最大完工时间最短。
77.表1参数变量及含义
[0078][0079]
表2决策变量及含义
[0080]
[0081][0082]
作为一种可选的实施方式,所述调度模型包括目标函数和约束条件。约束条件包括单件加工阶段的约束条件和批处理加工阶段的约束条件。
[0083]
其中,目标函数为:
[0084][0085][0086]
单件加工阶段的约束条件包括:
[0087][0088]
上式表示在单件加工阶段,每个铸件的每个阶段只能被一台加工设备加工;
[0089][0090][0091]
上述两个公式表示在同一时刻,一台加工设备只能加工铸件的一个阶段;
[0092][0093]
上式表示每个铸件都必须按照其特定的工艺路线进行加工;
[0094][0095]
上式表示铸件一旦开始加工则不能被中止。
[0096]
批处理加工阶段的约束条件包括:
[0097][0098]
上式表示一个铸件不能被同时分配到多个任务批次中;
[0099][0100]
上式表示一个任务批次中的铸件数量限制;
[0101][0102]
上式表示一个任务批次只能在一台熔炼炉中进行熔炼;
[0103][0104][0105]
上述两个公式为材质约束,只有相同的材质才能组成一个批次;
[0106][0107]
上式为熔炼炉最大容量限制,即在当前熔炼炉上进行加工的任务批次总重量不能
超出该熔炼炉的最大容量,其中,任务批次的重量为该任务批次中的所有铸件重量之和;
[0108][0109]
上式表示当前任务批在熔炼炉上一旦开始加工则不能中止;
[0110][0111][0112]
上述两个公式表示同一台熔炼炉中不同的任务批次具有先后顺序。
[0113]
需要说明的是,调度模型的约束条件还可包括决策变量约束:
[0114][0115]
上式表示各个变量的取值范围,其中,决策变量st
ijkl
和sbt
bd
均为连续变量,α
ijkl
、λ
ijb
、π
bd
以及ω
bg
均为0-1变量。
[0116]
s2、生成初始种群;所述初始种群为序列组成的结合,所述序列包括铸件加工顺序以及、每一铸件对应加工机器以及铸件的组批方式。
[0117]
在获取初始种群之前,需要初始化参数设置,参数包括:巢穴数量n、算法最大迭代次数m、l
é
vy飞行中“长短距离”阈值pd、交叉概率pc、变异概率pm、原巢主发现概率pa。
[0118]
作为一种可选的实施方式,所述方法还包括:按以下编码规则对每一调度方法进行编码,得到每一调度方法对应的个体:
[0119]
所述编码规则包括:每一个体的编号包括铸件的类别编号、铸件的加工顺序、铸件对应的加工机器以及铸件的组批方式。
[0120]
本实例中具体采用铸件类别编号排序的单层编码规则生成初始种群。基于铸件类别编号排序的单层编码规则,具体包括以下内容:
[0121]
由单层编码规则所生成的序列可表示为x={xi},如图2所示,图2中不同的数字表示铸件的种类,且都代表铸件在第一阶段的加工顺序,数字出现的次数代表各类铸件的个数,如数字1出现2次,代表第1类铸件有2个,从该序列可知,铸件x
11
(铸件种类1中的第1个铸件)的第一阶段最先加工,其次为x
21
的第一个加工阶段,剩余铸件在第一个阶段的加工顺序依次为x
12
、x
31
以及x
22

[0122]
s3、根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群。
[0123]
作为一种可选的实施方式,在所述s2之后,所述s3之前,所述方法还包括:
[0124]
对初始种群中个体的单件加工阶段和批处理加工阶段采用不同的解码方法进行解码;
[0125]
根据解码后的初始种群,计算个体的适应度值。
[0126]
作为一种可选的实施方式,请参阅图3,所述单件加工阶段的解码方法包括:
[0127]
按照每一铸件前一阶段的完工时间,对所有铸件进行升序排序,得到第一任务序列;
[0128]
从所述第一任务序列中取出排在第一位的第一铸件,并将所述第一铸件从所述第一任务序列中删除;
[0129]
计算所述第一铸件在每一可选加工设备上加工的完工时间,得到第一完工时间,选取第一完工时间最小的加工设备为第一加工设备;
[0130]
判断所述第一加工设备是否唯一,得到第二判断结果;
[0131]
若所述第二判断结果为是,则将所述第一加工设备设定为所述第一铸件的最优加工设备;跳转至步骤“更新加工设备的累计加工时间”;
[0132]
若所述第二判断结果为否,则计算每一所述可选加工设备的累计加工时间,得到第二加工时间;选取所述第二加工时间最小的加工设备为第二设备;判断所述第二设备是否唯一,得到第三判断结果;若所述第三判断结果为是,则将所述第二设备设定为所述第一铸件的最优加工设备;跳转至步骤“更新加工设备的累计加工时间”;若所述第三判断结果为否,则从所述第二设备中随机选择一个设备为所述第一铸件的最优加工设备;
[0133]
更新加工设备的累计加工时间;
[0134]
判断所述第一任务序列中是否存在铸件,若是,则返回步骤“从所述第一任务序列中取出排在第一位的第一铸件”,否则,结束,获得初始种群中个体单件加工阶段的加工顺序以及对应的加工机器。
[0135]
作为一种可选的实施方式,请参阅图4,所述批处理加工阶段的解码方法,具体包括:
[0136]
按照每一铸件前一阶段的完工时间,对所有铸件进行升序排序,得到第二任务序列;
[0137]
从所述第二任务序列中取出排在第一位的第二铸件,并将所述第二铸件从所述第二任务序列中删除;
[0138]
判断是否存在合理任务批,得到第四判断结果;所述合理任务批为满足与所述第二铸件材质相同,且加工所述任务批的熔炼炉剩余容量大于所述第二铸件的理论重量的任务批;
[0139]
若所述第四判断结果为是,则将所述第二铸件插入到所述合理任务批中;否则,为所述第二铸件新建一个任务批;
[0140]
按照最早完工优先规则,为新建的任务批分配一台熔炼炉;
[0141]
判断所述第二任务序列中是否存在铸件,若是,则返回步骤“从所述第二任务序列中取出排在第一位的第二铸件”,否则,结束,获得初始种群中个体批处理加工阶段的组批方式。
[0142]
获取个体的适应度值之后,将初始种群按适应度值进行升序排序,并将初始种群平均分为二等份,如图5所示,设排序后的种群大小为n且n为偶数,则由x∈[0,n/2]构成的种群称为“优解子种群”,由x∈[n/2 1,n]构成的种群称为“劣解子种群”。
[0143]
s4、采用改进布谷鸟算法对所述优解子种群进行更新,得到第一更新子种群;所述改进布谷鸟算法是基于斯皮尔曼简捷相关系数距离对传统布谷鸟算法进行改进的算法。
[0144]
对优解子种群的个体执行l
é
vy飞行发现新的巢穴,计算新巢穴的适应度值,如果新巢穴的适应度值优于该巢穴,则用新巢穴替代该巢穴,然后执行下一次迭代,若新巢穴的适应度值劣于该巢穴,则直接执行下一次迭代,直到满足迭代条件终止。
[0145]
作为一种可选的实施方式,所述s4具体包括:
[0146]
s41、根据所述个体的适应度值,获取所述优解子种群中的最优个体;
[0147]
s42、计算所述优解子种群中每一个体与最优个体之间的距离;
[0148]
s43、判断所述距离是否小于设定的距离阈值,得到第一判断结果;
[0149]
若所述第一判断结果为是,则对所述距离对应的个体进行变异操作;若所述第一
判断结果为否,则对所述距离对应的个体进行交叉操作。
[0150]
传统布谷鸟在空间中通过交替使用“长距离飞行”和“短距离飞行”两种模式来寻找巢穴,其距离为欧式空间距离,然而本发明所研究的问题属于离散优化问题,欧式空间距离已不再适用。本发明采用铸件序列表示布谷鸟的巢穴位置即问题的解,描述两个序列的距离为布谷鸟算法求解的关键所在。本发明基于spearman’s footrule距离(斯皮尔曼简捷相关系数距离)进行改进,为了使得两个序列之间的距离值处于[0,1]之间,且方便后续引入交叉和变异操作,定义d
ij
表示两个个体之间的远近程度,其计算公式如下所示:
[0151][0152][0153]
其中,x
ik
表示序列i的第k个位置的值,n为序列的长度。
[0154]
本发明提出的一种改进的l
é
vy飞行机制,形式上可以表示为:
[0155][0156]
其中,x
new
(t)为更新后第t代种群中的巢穴位置,cross()函数表示交叉操作,mut()函数表示变异操作,xi(t)为第t代种群中当前巢穴位置,xr(t)为第t代种群中最优巢穴位置,d
ir
为xi(t)和xr(t)之间的距离,可由上述关于d
ij
的公式计算得出,pd为事先给定的用于界定“长距离”和“短距离”的阈值。l
é
vy飞行机制的改进思路为:如果当前个体xi(t)与种群中最优个体xr(t)距离超出了给定的阈值pd,则两个个体通过cross()函数进行交叉操作以获取最优个体的序列片段,在全局范围内进行扰动,其相当于l
é
vy飞行中的“长距离飞行”,有助于算法跳出局部最优。否则,表明两个体之间差异并不大,即xi(t)已经很接近最优个体xr(t),此时对当前个体xi(t)通过mut()函数进行变异操作,在局部小范围内进行扰动,相当于“短距离飞行”,可增强局部搜索能力。
[0157]
s5、采用遗传算法中的交叉和变异操作对所述劣解子种群进行更新,得到第二更新子种群。
[0158]
需要说明的是,对劣解子种群更新采用的交叉操作和变异操作是引入的遗传算法的交叉和变异,根据交叉概率、变异概率进行更新操作。步骤s4中,对优解子种群也执行交叉变异,该交叉变异是为了代替长短飞行策略,但是没有用交叉概率,而是采用一个距离去计算是否进行交叉操作。
[0159]
对劣解子种群进行种群更新,具体地,以交叉概率pc执行交叉操作,以变异概率pm执行变异操作,直至满足终止条件退出;
[0160]
其中,交叉操作流程图如图6所示,具体操作步骤为:
[0161]
将xi(t)与xr(t)之间的距离d
ir
作为交叉概率,生成一个元素位于[0,1]区间的n维随机向量r={rk},1≤k≤n,其中,n为xi(t)的编码长度;
[0162]
根据上述关于d
ij
的公式计算xi(t)和xr(t)之间的距离d
ir

[0163]
依次取出向量r中每个位置的概率rk与d
ir
比较大小,若rk≤d
ir
,则将xr(t)个体的
第k位置的铸件种类编号保留并依次填入子代x
new
(t)中,反之,则删除;
[0164]
删除xi(t)个体上与xr(t)个体中保留的铸件种类号相同的值;
[0165]
最后将xi(t)中剩余的铸件种类号按原先顺序依次填入子代x
new
(t);
[0166]
判断x
new
(t)序列长度是否等于n,若等于,则结束流程,否则,转至步骤“依次取出向量r中每个位置的概率rk与d
ir
比较大小”。
[0167]
s6、根据所述调度模型,计算新种群中最大完工时间最小的个体,并判断是否满足迭代终止条件,若是,则根据所述最大完工时间最小的个体获得最优调度方法;否则,对所述新种群进行更新,并设置更新后的新种群为初始种群,返回步骤“根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群”;所述新种群由所述第一更新子种群和所述第二更新子种群合并而成;所述最大完工时间为所有铸件的最后一道工序的完工时间最大值。
[0168]
需要说明的是,所述迭代终止条件可以为迭代次数满足最大迭代次数。
[0169]
为了提高迭代效率,本发明还提供下述方法。
[0170]
作为一种可选的实施方式,所述对所述新种群进行更新,具体包括:
[0171]
采用变邻域下降搜索算法对所述新种群进行更新。
[0172]
其中,本实施例中引入五种常见的邻域结构,分别是交换操作、插入操作、贪婪交换、贪婪插入、反转逆序。
[0173]
交换操作:从编码序列中随机选取两个元素,然后将它们两个的值进行交换。
[0174]
插入操作:从编码序列中随机选取一个元素,然后将其插入到另一个随机选取的位置。
[0175]
贪婪交换:从编码序列中随机选取一个元素,将其与其他剩余元素分别交换产生多个邻域结构,每次选择最好的一个邻域结构。显然,对于一个长度为n的编码序列,使用贪婪交换可以产生n-1种邻域结构。
[0176]
贪婪插入:从编码序列中随机选取一个元素,将其插入到其编码序列中的其他剩余位置,产生多个邻域结构,每次都选择最好的一个邻域结构。显然,对于一个长度为n的编码序列,使用贪婪插入方式可产生n-1种邻域结构。
[0177]
反转逆序:从编码序列中随机选取两个位置,然后将两个位置之间的元素顺序进行反转。
[0178]
请参阅图7,采用上述变邻域下降搜索算法对所述新种群进行更新的具体方法为:
[0179]
设n为包含上述5种邻域结构的集合,k(1≤k≤5)为当前邻域结构的索引,nk(
·
)表示使用集合n中第k个邻域结构对个体进行搜索,令k=1,pa=0.4;
[0180]
生成一个在区间[0,1]上服从均匀分布的随机数r,若r<pa,则执行步骤“使用第k个邻域结构对个体xi(t)执行搜索”,否则,输出xi(t),流程结束;
[0181]
使用第k个邻域结构对个体xi(t)执行搜索,即
[0182]
判断是否优于xi(t),若优于,则令否则,令k=k 1;
[0183]
若k≤5,返回执行步骤“使用第k个邻域结构对个体xi(t)执行搜索”,否则,输出xi(t),流程结束。
[0184]
本发明上述方案具有以下技术效果:
[0185]
1、针对批处理和单件加工建立了以最小化最大完工时间的调度模型,并且为两种加工方式设计不同的解码方式,解码规则相比于最早完工优先规则(the earliest completion time first,ectf)、最早可用优先规则(firstavailable machine,fam)和随机规则(the random machine,rm)具有较高的可行性和优越性;
[0186]
2、采用交叉变异策略代替布谷鸟长短飞行机制,提升了算法的寻优能力;
[0187]
3、提出了“优解子种群”和“劣解子种群”双种群进化策略,对优劣种群采取不同的进化策略,提升了算法的搜索能力,加快了算法的收敛速度;
[0188]
4、设计了一种基于变邻域下降搜索的布谷鸟巢寄生策略,进一步提升了算法的寻优能力。
[0189]
还需说明的是,本发明提供的一种基于改进布谷鸟算法的铸造混合流水车间调度方法中“改进布谷鸟算法”包括两层含义;第一,摒弃传统方法中采用的直接通过布谷鸟算法对调度模型进行更新的方法,将种群划分为优解子种群和劣解子种群,并针对两种子种群采用不同的更新策略,其中优解子种群采用布谷鸟策略进行更新,劣解子种群采用遗传算法中的交叉变异操作进行更新。第二,对优解子种群采用的布谷鸟算法也并不是传统的布谷鸟算法,而是基于spearman’s footrule距离对传统布谷鸟算法进行改进(即根据距离执行交叉变异,且此交叉变异操作代替了传统布谷鸟算法中的长短飞行策略)。
[0190]
为了验证本发明的有效性,根据以上步骤,用扩展的标准案例进行测试,案例命名规则为:铸件种类数-阶段数-熔炼炉数,如“n6m5l4”表示铸件种类数为6,每种类别的铸件都有5个加工阶段,其中批处理阶段有4台熔炼炉。对于批处理阶段,熔炼炉分为两个等级,记为l2和l4,其中l2表示有两台熔炼炉,l4为四台熔炼炉,具体的参数如表3所示。对n6m5l4案例进行求解,具体的参数如表4所示,表4中的[13,13,17]表示第1类别的铸件的第一阶段为单件加工阶段,且有3台可选加工设备,对应的加工时间分别为13小时、13小时、17小时,表4中的[4,3,4]表示第2类别的铸件的第一阶段为单件加工阶段,且有3台可选加工设备,对应的加工时间分别为4小时、3小时、4小时。表4中第二阶段为批处理加工阶段,此时,所有类别铸件在相同熔炼炉上加工时间相等,仅与熔炼炉自身参数相关,不同熔炼炉上的加工时间分别为20小时、25小时、30小时、35小时,第三阶段、第四阶段、第五阶段均为单件加工阶段。
[0191]
表3熔炼炉参数
[0192][0193][0194]
表4铸造混合流水车间调度问题示例
[0195][0196]
步骤1:按照调度模型确立目标函数;
[0197]
步骤2:按照调度模型设置单件加工约束、批处理加工约束、决策变量约束;
[0198]
步骤3:设置改进谷布鸟算法中各参数,设巢穴数量n=90、算法最大迭代次数m=200、l
é
vy飞行中“长短距离”阈值pd=0.8、交叉概率pc=0.6、变异概率pm=0.3、原巢主发现概率pa=0.4;
[0199]
步骤4:采用一种基于铸件类别编号排序的单层编码规则生成初始种群;
[0200]
由单层编码规则所生成的序列可表示为x={xi},其中,xi表示第i类铸件,xi在序列中出现的次序为该类铸件中的铸件编号,由xi所构成的序列x表示铸件在第一个阶段的加工顺序,为了便于描述,以x
ij
表示铸件类别i的第j个铸件。例如,设有序列x={1,2,1,3,2,4,6,5,4},数字出现的次数代表各类铸件的个数,如数字1出现2次,代表第1类铸件有2个,则从该序列可知,铸件x
11
(铸件类别1中的第1个铸件)的第一个加工阶段最先加工,其次为x
21
的第一个加工阶段,剩余铸件在第一个阶段的加工顺序依次为x
12
、x
31
、x
22
、x
41
、x
61
、x
51
以及x
42

[0201]
步骤5:对所有布谷鸟的巢穴位置进行解码,计算种群中个体的适应度值并按升序排列种群,将此种群平均分成二等份,由x∈[0,n/2]构成的种群为“优解子种群”,由x∈[n/2 1,n]构成的种群为“劣解子种群”。
[0202]
步骤6:对“优解子种群”使用改进的布谷鸟算法进行种群更新,具体地,对该子种群的个体执行l
é
vy飞行发现新的巢穴,计算新巢穴的适应度值,如果新巢穴的适应度值优于该巢穴,则用新巢穴替代该巢穴,然后执行下一次迭代,若新巢穴的适应度值劣于该巢穴,则直接执行下一次迭代,直到算法达到迭代次数终止;
[0203]
步骤7:对“劣解子种群”进行种群更新,以交叉概率pc执行交叉操作,以变异概率pm执行变异操作,直至满足终止条件退出;
[0204]
以xi(t)={3,2,1,4,5,2}和xr(t)={2,5,1,4,3,2}为例说明交叉操作和变异操作,设编码长度n为6,其中铸件种类2生产数量为2,两者之间的距离d
ir
=1/3,生成6维的随机向量r={0.31,0.56,0.8,0.12,0.29,0.7},最终产生的子代x
new
(t)={2,1,5,4,3,2},使用该方式可以避免产生非法的个体编码,图8为对应的交叉操作示意图。mut()操作采用互换变异,即从xi(t)编码中任意选取两个位置,然后将它们两个的位置进行交换,图9为对应的变异操作示意图。
[0205]
步骤8:合并两个子种群,得到新种群,根据新种群以及调度模型,得到满足最大完
工时间最小的个体,并判断是否满足迭代终止条件,若是,则根据所述最大完工时间最小的个体获得最优调度方法;否则,使用一种基于变邻域下降搜索的布谷鸟巢寄生策略对所述新种群进行更新,并重复执行步骤5-8,直到达到迭代次数输出最优解。
[0206]
其中,对新种群使用一种基于变邻域下降搜索的布谷鸟巢寄生策略更新,具体包括:
[0207]
步骤8.1:设n为包含交换操作、插入操作、贪婪交换、贪婪插入、反转逆序5种邻域结构的集合,k(1≤k≤5)为当前邻域结构的索引,nk(
·
)表示使用集合n中第k个邻域结构对个体进行搜索,令k=1,pa=0.4;
[0208]
步骤8.2:生成一个在区间[0,1]上服从均匀分布的随机数r,若r<pa,则执行步骤8.3,否则,输出xi(t),流程结束;
[0209]
步骤8.3:使用第k个邻域结构对个体xi(t)执行搜索,即
[0210]
步骤8.4:判断是否优于xi(t),若优于,则令否则,令k=k 1,执行步骤8.5;
[0211]
步骤8.5:若k≤5,执行步骤8.3,否则,输出xi(t),流程结束。
[0212]
运行结果调度甘特图如图10所示,图11为四种算法的收敛曲线图,从图11中所知改进布谷鸟算法得到的最优解优于离散粒子群算法、离散布谷鸟算法及遗传算法,证明改进后的布谷鸟算法的寻优能力更强,能更好的跳出局部最优解。
[0213]
为了测试改进布谷鸟算法求解铸造混合流水车间调度问题的有效性和优越性,选择了三种先进的算法与之对比,分别是dcs(komaki g.m.,teymourian e.,kayvanfar v.,et al.improved discrete cuckoo optimization algorithm for the three-stage assembly flowshop scheduling problem[j].computers&industrial engineering,2017,105:158-173)、ga(yi j.h.,xing l.n.,wang g.g.,et al.behavior of crossover operators in nsga-iii for large-scale optimization problems[j].information sciences,2020,509:470-487.)、dpso(xia x.,xingy.,wei b.,et al.a fitness-based multi-role particle swarm optimization[j].swarm and evolutionary computation,2019,44:349-364.)。这些算法分别在标准测试集上进行仿真测试,并且使用rpd(relative percentage deviation,prd)、最优值(c
best
)、平均值(avg)来表征算法的性能,表5为算法对比实验结果。
[0214]
表5算法对比实验结果
[0215][0216][0217]
本发明以最大完工时间最小为优化目标建立了铸造混合流水车间调度模型,并提出了一种改进的布谷鸟算法进行求解。所提出的布谷鸟优化算法中做出的改进包括设计了一种考虑加工设备均衡性的解码规则,引入交叉、变异方法优化布谷鸟的长短飞行机制,对优劣种群采取不同的进化策略,提升了算法的搜索能力,通过实施例验证了改进布谷鸟算法的有效性和优越性。综上,按照本发明的铸造混合流水车间调度优化方法,能够提高制造型企业的生产效率,提升其市场竞争力,为制造型企业制定有效的生产决策提供充分的理论基础。
[0218]
实施例2
[0219]
本实施例提供一种基于改进布谷鸟算法的铸造混合流水车间调度系统,包括:
[0220]
调度模块建立模块,用于建立铸造混合流水车间的调度模型,所述调度模型用于表示总加工时间与铸件的加工顺序、铸件对应的加工机器,以及铸件的组批方式之间的关系;
[0221]
初始种群获取模块,用于生成初始种群;所述初始种群为序列组成的集合,所述序列包含铸件加工顺序、每一铸件对应的加工机器以及铸件的组批方式;
[0222]
种群划分模块,用于根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群;
[0223]
优解子种群更新模块,用于采用改进布谷鸟算法对所述优解子种群进行更新,得到第一更新子种群;所述改进布谷鸟算法是基于斯皮尔曼简捷相关系数距离对传统布谷鸟算法进行改进的算法;
[0224]
劣解子种群更新模块,用于采用遗传算法中的交叉和变异操作对所述劣解子种群进行更新,得到第二更新子种群;
[0225]
最优调度方法获取模块,用于根据所述调度模型,计算新种群中最大完工时间最小的个体,并判断是否满足迭代终止条件,若是,则根据所述最大完工时间最小的个体获得最优调度方法;否则,对所述新种群进行更新,并设置更新后的新种群为初始种群,返回步骤“根据个体的适应度值,将所述初始种群划分为优解子种群和劣解子种群”;所述新种群由所述第一更新子种群和所述第二更新子种群合并而成;所述最大完工时间为所有铸件的最后一道工序的完工时间最大值。
[0226]
可选的,所述优解子种群更新模块,具体包括:
[0227]
最优个体获取模块,用于根据所述个体的适应度值,获取所述优解子种群中的最优个体;
[0228]
距离计算子模块,用于计算所述优解子种群中每一个体与最优个体之间的距离;
[0229]
距离判断模块,用于判断所述距离是否小于设定的距离阈值,得到第一判断结果;
[0230]
若所述第一判断结果为是,则对所述距离对应的个体进行变异操作;若所述第一判断结果为否,则对所述距离对应的个体进行交叉操作。
[0231]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0232]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献