一种基于果蝇算法的模糊批调度方法及系统与流程

文档序号:23958921发布日期:2021-02-18 20:51阅读:132来源:国知局
一种基于果蝇算法的模糊批调度方法及系统与流程

[0001]
本发明涉及模糊批调度优化技术领域,具体来说是一种基于果蝇算法的模糊批调度方法及系统。


背景技术:

[0002]
近年来,生产调度问题越来越引起企业的重视,在资源有限的情况下,如何有效的对生产过程进行科学的调度成为企业发展的核心问题。由于生产过程中工件和机器都具有不同的属性,使得问题的解决变得更加复杂,通过经验很难去设计一个合理的调度方案。
[0003]
当前基于平行机调度问题的研究都集中在确定的环境中,没有考虑到机器的磨损以及操作工人具有学习能力的情况,因此在现实的生产环境下,工件的加工时间是模糊的。在确定的环境下得到的调度方案和实际结果存在较大的偏差,并不能很好的支持企业的决策。同时当前的算法普遍存在时间复杂度较高,极大的降低了企业的生产效率。
[0004]
在传统策略中通过对比候选工件尺寸和批的剩余容量,选择具有较小差值的工件加入批中,使得批的浪费空间最小。但是会出现一个批中不同工件的加工时间差距较大,导致大量工件加工时间变长。
[0005]
如申请号为cn201611042598.6公开的一种基于改进果蝇算法的作业车间调度方法,该方法根据作业车间的特点,建立作业车间的数学模型,构建出每个工件不同工序的加工顺序的约束条件,以及每台机器上不同工件的工序加工顺序的约束条件。然后建立基于最大完工时间最小的作业车间调度目标函数,通过基于工序的编码方式形成果蝇个体,采用了自适应步长的分类嗅觉随机搜索法,使果蝇种群快速找到味道浓度判定函数的最小值,得出作业车间调度的最优解,即作业车间调度的最优方案。虽然该算法实现简单,只需要设置两个参数,并且全局寻优能力较强,能够有效地解决作业车间调度问题。但该方案采用单一种群,全局搜索能力弱,且初始解为随机生成,算法你收敛较慢,存在大量低效搜索,同时没有筛除没有潜力的种群解,解的多样性差。


技术实现要素:

[0006]
本发明所要解决的技术问题在于提供一种充分考虑工件尺寸和加工时间的基于果蝇算法的模糊批调度方法。
[0007]
本发明通过以下技术手段实现解决上述技术问题的:
[0008]
一种基于果蝇算法的模糊批调度方法,包括以下步骤:
[0009]
步骤1:根据模糊批调度问题的特点,建立模糊批调度问题的数学模型
[0010]
步骤2:初始化最大迭代数t
max
,果蝇种群数量nc,精英种群数量ne,果蝇种群中果蝇个体数s,令当前迭代数t=0;
[0011]
步骤3:根据问题设计启发式信息,通过启发式信息构建所有果蝇种群初始解;
[0012]
步骤4:令t=t+1,果蝇种群通过多种嗅觉搜索方案形成新的解,通过视觉搜索得到新的种群;
[0013]
步骤5:对当前代所有的果蝇种群进行目标值比较,重新初始化部分拥有较劣解和陷入局优的果蝇种群;
[0014]
步骤6:通过协作搜索更新精英种群,保留优秀的解空间,精英果蝇执行嗅觉和视觉搜索并更新种群解;
[0015]
步骤7:从所有果蝇种群中获取全局最优调度方案,如果t<t
max
,则返回步骤4,否则输出最优调度方案。
[0016]
本发明考虑到现实生产环境的复杂性,将工件的加工时间定义为模糊数,同时批的加工时间受到学习效应和恶化效应的影响,使得算法的结果更加接近实际结果,为企业的决策提供更加准确的理论支持。本发明使用同时考虑尺寸和时间的启发式算法来生成初始解。同时考虑尺寸和时间去选择工件加入批中,既减少了浪费空间,又减小整个工程的完工时间。本发明使用的搜索策略考虑了批在机器上处理位置的差异,可以很好搜索优秀的解空间。为了避免果蝇算法在搜索过程中陷入局部最优,满足一定条件的果蝇种群将会被重新初始化。同时一个精英种群策略被设计,可以更好的探索优秀解空间,大大的提高了算法的运行效率。
[0017]
进一步的,所述的步骤1的数学模型如下:
[0018]
假设存在n个工件需要进行加工处理,处理工件的机器集合为m={m1,m2...m
i
...m
m
},其中m
i
的机器容量为z
i
,由n个工件组成的待加工批总集合为b,其中b
ki
表示在第i个机器上处理的第k个批;工件集具有不同的加工尺寸s和模糊加工时间批的尺寸是批中所有工件的尺寸之和,批的模糊加工时间取决于批中所有工件中最大模糊加工时间以及批在机器上的加工位置,批的尺寸不超过其加工机器的容量,机器的模糊加工时间为机器中所有批的加工时间总和,目标是最小化最大完工时间,即
[0019][0020]
其中t
i
为机器m
i
的完工时间。
[0021]
进一步的,所述的步骤3启发式信息生成初始解详细步骤如下:
[0022]
步骤3.1:初始化当前果蝇种群数foa=0;
[0023]
步骤3.2:令foa=foa+1,生成当前果蝇种群的待加工工件集合tl;
[0024]
步骤3.3:为所有机器创建候选工件集合cl
i
,利用公式,
[0025]
cl
i
={j
j
∈tl|s
j
≤z
i
}
[0026]
其中s
j
表示工件j
j
的尺寸;
[0027]
步骤3.4:对比所有机器,找到当前具有最小模糊完工时间且候选工件集不为空的机器m
i
,为机器m
i
新建一个批b
ki
,从候选集合随机选择一个工件加入批中;
[0028]
步骤3.5:更新批的尺寸和模糊加工时间,更新候选集合,公式为
[0029]
cl
ki
={j
j
∈tl|s
j
≤(z
i-s
ki
)}
[0030]
其中cl
ki
表示批b
ki
的工件候选集合,s
ki
表示b
ki
的尺寸;
[0031]
步骤3.6:通过候选工件和当前加工批尺寸和加工时间的差异,计算候选工件的启发式信息利用公式,
[0032][0033]
其中是工件j
j
的模糊加工时间,表示批b
ki
的模糊加工时间;
[0034]
步骤3.7:生成一个随机数r∈(0,1),判断r是否大于设定值;本实施例中,根据试验及工作经验,设定值取值0.5;
[0035]
步骤3.8:若是,选择在候选集合中具有最大启发式信息的工件放入当前批中,若否,在候选集合中随机选择一个工件放入当前批中;
[0036]
步骤3.9:更新当前批的剩余容量和模糊加工时间。
[0037]
步骤3.10:更新当前批的候选集合,判断是否为空,若是则执行步骤3.11,否则执行步骤3.6;
[0038]
步骤3.11:计算批的实际模糊加工时间,利用公式
[0039][0040]
其中表示批b
ki
的原始加工时间,表示批b
ki
的实际加工时间,γ表示一个不可压缩因子,c1和c2分别表示学习因子和恶化因子,表示批b
ki
的开始加工时间;
[0041]
步骤3.12:更新机器m
i
的模糊完工时间和待处理工件集合tl,判断是否还有工件未分批,若是,则执行步骤3.3;
[0042]
步骤3.13:若否,则计算目标值为当前果蝇种群调度的初始解;
[0043]
步骤3.14:判断foa<ne,若是则执行步骤3.2,否则结束。
[0044]
进一步的,所述的步骤4的嗅觉搜索详细过程如下:
[0045]
步骤4.1:对于每个果蝇种群,初始化当前果蝇个体数s=1,t
imp
=0;
[0046]
步骤4.2:当前果蝇的解初始为果蝇种群的解,随机选择一种变异操作,从而产生果蝇新解,变异操作包括:
[0047]
a:随机选择一个机器,在该机器上随机选择2个批进行加工位置交换;
[0048]
b:随机选择2个具有相同容量的机器,再分别在其中各随机选择一个批进行加工位置交换;
[0049]
c:生成一个随机数r∈[5,10],执行a操作r次;
[0050]
d:生成一个随机数r∈[5,10],执行b操作r次;
[0051]
e:生成2个随机数r1,r2∈[5,10],执行a操作r1次,执行b操作r2次。
[0052]
步骤4.3:重新计算变化后机器的模糊完工时间;
[0053]
步骤4.4:判断是否s<s,若是,则s=s+1,并执行步骤4.2,若否则结束;
[0054]
所述视觉搜索详细过程如下:
[0055]
步骤4.5:计算当前果蝇种群每个个体的目标值,如果存在果蝇个体的目标值优于当前种群的目标值,则该个体的解将成为果蝇种群新的目标解,并令t
imp
=0,否则蝇种群的解保持不变,并将t
imp
=t
imp
+1。
[0056]
进一步的,所述步骤5的重新初始化详细过程如下:
[0057]
步骤5.1:在每次迭代过程中,记录每个果蝇种群的目标解更新情况,如果存在果
蝇种群在连续的5次迭代中没有提升目标解的质量,即t
imp
≥5,就将当前种群使用启发式信息重新初始化,并令t
imp
=0;
[0058]
步骤5.2:对每次迭代过程中,目标解质量较差的20%果蝇种群使用启发式信息重新初始化,并令t
imp
=0。
[0059]
进一步的,所述步骤6的协作搜索详细过程如下:
[0060]
步骤6.1:获取当前代所有果蝇种群目标值最优解,判断精英种群的数量e是否e<ne;
[0061]
步骤6.2:若是,则将果蝇种群目标值最优解加入精英种群中,e=e+1;
[0062]
步骤6.3:若否,找到当前精英种群的最差目标解,并将其替换为果蝇种群目标值最优解;
[0063]
步骤6.4:精英果蝇执行嗅觉和视觉搜索。
[0064]
本发明还提供一种基于果蝇算法的模糊批调度系统,包括
[0065]
数学模型建立模块,根据模糊批调度问题的特点,建立模糊批调度问题的数学模型
[0066]
初始化模块,初始化最大迭代数t
max
,果蝇种群数量nc,精英种群数量ne,果蝇种群中果蝇个体数s,令当前迭代数t=0;
[0067]
果蝇种群初始解构建模块,根据问题设计启发式信息,通过启发式信息构建所有果蝇种群初始解;
[0068]
种群更新模块,令t=t+1,果蝇种群通过多种嗅觉搜索方案形成新的解,通过视觉搜索得到新的种群;
[0069]
重新初始化模块,对当前代所有的果蝇种群进行目标值比较,重新初始化部分拥有较劣解和陷入局优的果蝇种群;
[0070]
精英种群更新模块,通过协作搜索更新精英种群,保留优秀的解空间,精英果蝇执行嗅觉和视觉搜索并更新种群解;
[0071]
判断模块,从所有果蝇种群中获取全局最优调度方案,如果t<t
max
,则返回步骤4,否则输出最优调度方案。
[0072]
进一步的,所述的步数学模型如下:
[0073]
假设存在n个工件需要进行加工处理,处理工件的机器集合为m={m1,m2...m
i
...m
m
},其中m
i
的机器容量为z
i
,由n个工件组成的待加工批总集合为b,其中b
ki
表示在第i个机器上处理的第k个批;工件集具有不同的加工尺寸s和模糊加工时间批的尺寸是批中所有工件的尺寸之和,批的模糊加工时间取决于批中所有工件中最大模糊加工时间以及批在机器上的加工位置,批的尺寸不超过其加工机器的容量,机器的模糊加工时间为机器中所有批的加工时间总和,目标是最小化最大完工时间,即
[0074][0075]
其中t
i
为机器m
i
的完工时间。
[0076]
进一步的,所述果蝇种群初始解构建模块中启发式信息生成初始解详细步骤如下:
[0077]
步骤3.1:初始化当前果蝇种群数foa=0;
[0078]
步骤3.2:令foa=foa+1,生成当前果蝇种群的待加工工件集合tl;
[0079]
步骤3.3:为所有机器创建候选工件集合cl
i
,利用公式,
[0080]
cl
i
={j
j
∈tl|s
j
≤z
i
}
[0081]
其中s
j
表示工件j
j
的尺寸;
[0082]
步骤3.4:对比所有机器,找到当前具有最小模糊完工时间且候选工件集不为空的机器m
i
,为机器m
i
新建一个批b
ki
,从候选集合随机选择一个工件加入批中;
[0083]
步骤3.5:更新批的尺寸和模糊加工时间,更新候选集合,公式为
[0084]
cl
ki
={j
j
∈tl|s
j
≤(z
i-s
ki
)}
[0085]
其中cl
ki
表示批b
ki
的工件候选集合,s
ki
表示b
ki
的尺寸;
[0086]
步骤3.6:通过候选工件和当前加工批尺寸和加工时间的差异,计算候选工件的启发式信息利用公式,
[0087][0088]
其中是工件j
j
的模糊加工时间,表示批b
ki
的模糊加工时间;
[0089]
步骤3.7:生成一个随机数r∈(0,1),判断r是否大于设定值;本实施例中,根据试验及工作经验,设定值取值0.5;
[0090]
步骤3.8:若是,选择在候选集合中具有最大启发式信息的工件放入当前批中,若否,在候选集合中随机选择一个工件放入当前批中;
[0091]
步骤3.9:更新当前批的剩余容量和模糊加工时间。
[0092]
步骤3.10:更新当前批的候选集合,判断是否为空,若是则执行步骤3.11,否则执行步骤3.6;
[0093]
步骤3.11:计算批的实际模糊加工时间,利用公式
[0094][0095]
其中表示批b
ki
的原始加工时间,表示批b
ki
的实际加工时间,γ表示一个不可压缩因子,c1和c2分别表示学习因子和恶化因子,表示批b
ki
的开始加工时间;
[0096]
步骤3.12:更新机器m
i
的模糊完工时间和待处理工件集合tl,判断是否还有工件未分批,若是,则执行步骤3.3;
[0097]
步骤3.13:若否,则计算目标值为当前果蝇种群调度的初始解;
[0098]
步骤3.14:判断foa<ne,若是则执行步骤3.2,否则结束。
[0099]
进一步的,所述种群更新模块中的嗅觉搜索详细过程如下:
[0100]
步骤4.1:对于每个果蝇种群,初始化当前果蝇个体数s=1,t
imp
=0;
[0101]
步骤4.2:当前果蝇的解初始为果蝇种群的解,随机选择一种变异操作,从而产生果蝇新解,变异操作包括:
[0102]
a:随机选择一个机器,在该机器上随机选择2个批进行加工位置交换;
[0103]
b:随机选择2个具有相同容量的机器,再分别在其中各随机选择一个批进行加工位置交换;
[0104]
c:生成一个随机数r∈[5,10],执行a操作r次;
[0105]
d:生成一个随机数r∈[5,10],执行b操作r次;
[0106]
e:生成2个随机数r1,r2∈[5,10],执行a操作r1次,执行b操作r2次。
[0107]
步骤4.3:重新计算变化后机器的模糊完工时间;
[0108]
步骤4.4:判断是否s<s,若是,则s=s+1,并执行步骤4.2,若否则结束;
[0109]
所述视觉搜索详细过程如下:
[0110]
步骤4.5:计算当前果蝇种群每个个体的目标值,如果存在果蝇个体的目标值优于当前种群的目标值,则该个体的解将成为果蝇种群新的目标解,并令t
imp
=0,否则蝇种群的解保持不变,并将t
imp
=t
imp
+1。
[0111]
进一步的,所述重新初始化模块中的重新初始化详细过程如下:
[0112]
步骤5.1:在每次迭代过程中,记录每个果蝇种群的目标解更新情况,如果存在果蝇种群在连续的5次迭代中没有提升目标解的质量,即t
imp
≥5,就将当前种群使用启发式信息重新初始化,并令t
imp
=0;
[0113]
步骤5.2:对每次迭代过程中,目标解质量较差的20%果蝇种群使用启发式信息重新初始化,并令t
imp
=0。
[0114]
进一步的,所述精英种群更新模块中的协作搜索详细过程如下:
[0115]
步骤6.1:获取当前代所有果蝇种群目标值最优解,判断精英种群的数量e是否e<ne;
[0116]
步骤6.2:若是,则将果蝇种群目标值最优解加入精英种群中,e=e+1;
[0117]
步骤6.3:若否,找到当前精英种群的最差目标解,并将其替换为果蝇种群目标值最优解;
[0118]
步骤6.4:精英果蝇执行嗅觉和视觉搜索。
[0119]
本发明的优点在于:
[0120]
1.本发明考虑到现实生产环境的复杂性,将工件的加工时间定义为模糊数,同时批的加工时间受到学习效应和恶化效应的影响,使得算法的结果更加接近实际结果,为企业的决策提供更加准确的理论支持。
[0121]
2.本发明使用同时考虑尺寸和时间的启发式算法来生成初始解。同时考虑尺寸和时间去选择工件加入批中,既减少了浪费空间,又减小整个工程的完工时间。
[0122]
3.本发明使用的搜索策略考虑了批在机器上处理位置的差异,可以很好搜索优秀的解空间。为了避免果蝇算法在搜索过程中陷入局部最优,满足一定条件的果蝇种群将会被重新初始化。同时一个精英种群策略被设计,可以更好的探索优秀解空间,大大的提高了算法的运行效率。
附图说明
[0123]
图1为本发明实施例基于果蝇算法的模糊批调度方法中根据启发式信息生成初始解的流程框图;
[0124]
图2为本发明实施例基于果蝇算法的模糊批调度方法的流程框图;
[0125]
图3为本发明实施例中实验案例中同算法在不同算例下的平均运行时间对照折线图。
具体实施方式
[0126]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0127]
在本实例中的基于果蝇算法的模糊批调度方法,是考虑现实生成情况的不确定性,同时考虑工件的尺寸和模糊加工时间进行分批,再通过多种变异操作来产生新的解,基于重新初始化果蝇种群和保留精英种群策略来提升算法的稳定性和多样性。如图2所示,具体步骤如下:
[0128]
步骤1:假设存在n个工件需要进行加工处理,处理工件的机器集合为m={m1,m2...m
i
...m
m
},其中m
i
的机器容量为z
i
,由n个工件组成的待加工批总集合为b,其中b
ki
表示在第i个机器上处理的第k个批;工件集具有不同的加工尺寸s和模糊加工时间批的尺寸是批中所有工件的尺寸之和,批的模糊加工时间取决于批中所有工件中最大模糊加工时间以及批在机器上的加工位置,批的尺寸不超过其加工机器的容量,机器的模糊加工时间为机器中所有批的加工时间总和,目标是最小化最大完工时间,即
[0129][0130]
其中t
i
为机器m
i
的完工时间。
[0131]
步骤2:初始化最大迭代数t
max
,果蝇种群数量nc,精英种群数量ne,果蝇种群中果蝇个体数s。令当前迭代数t=0,当前精英种群数e=0;
[0132]
步骤3.1:初始化当前果蝇种群数foa=0;
[0133]
步骤3.2:令foa=foa+1,生成当前果蝇种群的待加工工件集合tl;
[0134]
步骤3.3:为所有机器创建候选工件集合cl
i
,利用公式,
[0135]
cl
i
={j
j
∈tl|s
j
≤z
i
}
[0136]
其中s
j
表示工件j
j
的尺寸;
[0137]
步骤3.4:对比所有机器,找到当前具有最小模糊完工时间且候选工件集不为空的机器m
i
,为机器m
i
新建一个批b
ki
,从候选集合随机选择一个工件加入批中;
[0138]
步骤3.5:更新批的尺寸和模糊加工时间,更新候选集合,公式为
[0139]
cl
ki
={j
j
∈tl|s
j
≤(z
i-s
ki
)}
[0140]
其中cl
ki
表示批b
ki
的工件候选集合,s
ki
表示b
ki
的尺寸;
[0141]
步骤3.6:通过候选工件和当前加工批尺寸和加工时间的差异,计算候选工件的启发式信息利用公式,
[0142][0143]
其中是工件j
j
的模糊加工时间,表示批b
ki
的模糊加工时间;
[0144]
步骤3.7:生成一个随机数r∈(0,1),判断r是否大于设定值;本实施例中,根据试验及工作经验,设定值取值0.5;
[0145]
步骤3.8:若是,选择在候选集合中具有最大启发式信息的工件放入当前批中,若否,在候选集合中随机选择一个工件放入当前批中;
[0146]
步骤3.9:更新当前批的剩余容量和模糊加工时间。
[0147]
步骤3.10:更新当前批的候选集合,判断是否为空,若是则执行步骤3.11,否则执行步骤3.6;
[0148]
步骤3.11:计算批的实际模糊加工时间,利用公式
[0149][0150]
其中表示批b
ki
的原始加工时间,表示批b
ki
的实际加工时间,γ表示一个不可压缩因子,c1和c2分别表示学习因子和恶化因子,表示批b
ki
的开始加工时间;
[0151]
步骤3.12:更新机器m
i
的模糊完工时间和待处理工件集合tl,判断是否还有工件未分批,若是,则执行步骤3.3;
[0152]
步骤3.13:若否,则计算目标值为当前果蝇种群调度的初始解;
[0153]
步骤3.14:判断foa<ne,若是则执行步骤3.2;
[0154]
步骤4.1:对于每个果蝇种群,初始化当前果蝇个体数s=1,t
imp
=0;
[0155]
步骤4.2:当前果蝇的解初始为果蝇种群的解,随机选择一种变异操作,从而产生果蝇新解,变异操作包括:
[0156]
a:随机选择一个机器,在该机器上随机选择2个批进行加工位置交换;
[0157]
b:随机选择2个具有相同容量的机器,再分别在其中各随机选择一个批进行加工位置交换;
[0158]
c:生成一个随机数r∈[5,10],执行a操作r次;
[0159]
d:生成一个随机数r∈[5,10],执行b操作r次;
[0160]
e:生成2个随机数r1,r2∈[5,10],执行a操作r1次,执行b操作r2次。
[0161]
步骤4.3:重新计算变化后机器的模糊完工时间;
[0162]
步骤4.4:判断是否s<s,若是,则s=s+1,并执行步骤4.2;
[0163]
步骤4.5:计算当前果蝇种群每个个体的目标值,如果存在果蝇个体的目标值优于当前种群的目标值,则该个体的解将成为果蝇种群新的目标解,并令t
imp
=0,否则果蝇种群的解保持不变,并将t
imp
=t
imp
+1。
[0164]
步骤5.1:如果存在果蝇种群在连续的5次迭代中没有提升目标解的质量,即t
imp
≥5,就将当前种群使用启发式信息重新初始化,并令t
imp
=0;
[0165]
步骤5.2:对每次迭代过程中,目标解质量较差的20%果蝇种群使用启发式信息重新初始化,并令t
imp
=0;
[0166]
步骤6.1:获取当前代所有果蝇种群目标值最优解,判断精英种群的数量e是否e<ne;
[0167]
步骤6.2:若是,则将果蝇种群目标值最优解加入精英种群中,e=e+1;
[0168]
步骤6.3:若否,找到当前精英种群的最差目标解,并将其替换为果蝇种群目标值最优解;
[0169]
步骤6.4:精英果蝇执行嗅觉和视觉搜索;
[0170]
步骤7:判断t<t
max
,若是则执行步骤4.1,否则输出所有种群的最优解为问题的调
度方案。
[0171]
本实施例考虑到现实生产环境的复杂性,将工件的加工时间定义为模糊数,同时批的加工时间受到学习效应和恶化效应的影响,使得算法的结果更加接近实际结果,为企业的决策提供更加准确的理论支持。本实施例同时考虑尺寸和时间的启发式算法来生成初始解。在传统策略中通过对比候选工件尺寸和批的剩余容量,选择具有较小差值的工件加入批中,使得批的浪费空间最小。但是会出现一个批中不同工件的加工时间差距较大,导致大量工件加工时间变长。同时考虑尺寸和时间去选择工件加入批中,既减少了浪费空间,又减小整个工程的完工时间。
[0172]
本实施例使用的搜索策略考虑了批在机器上处理位置的差异,可以很好搜索优秀的解空间。为了避免果蝇算法在搜索过程中陷入局部最优,满足一定条件的果蝇种群将会被重新初始化。同时一个精英种群策略被设计,可以更好的探索优秀解空间,大大的提高了算法的运行效率。
[0173]
以下通过实验对本实施例方案进行说明:
[0174]
首先对模糊数的表示及计算进行说明:
[0175]
模糊数的表示:
[0176][0177]
其中和分别表示模糊数的下限和上限,表示模糊数最有可能的值;假设模糊数和模糊数的运算如下:
[0178]
模糊加减法
[0179][0180]
模糊乘法
[0181][0182]
模糊比较
[0183][0184]
如果:
[0185]
a:则
[0186]
b:则
[0187]
c:则
[0188]
为了验证本实施例提供的基于果蝇算法的模糊批调度方法的有效性,我们设计了16组测试算例,问题参数设置基于文献ant colony optimization algorithm for scheduling jobs with fuzzy processing time on parallel batch machines with different capacities。详细设置如表1所示,其中机器容量有3种,分别是10,25和65,当机器数为5时,比例为3:1:1,当机器数为10时,容量分别为5:3:2。
[0189]
表1:实验算例参数
[0190][0191]
本实验提出的算法ifoa是基于果蝇算法进行设计的,其参数有nc,ne和s,通过田口法对算法的参数进行测试,最终确定实验参数值为nc=50,ne=5以及s=7。此外,通过预备实验确定学习因子c1和恶化因子c2的值,具体实验步骤如下:从n={90,126,180,270}中随机挑选2个工件数,得到8个实例组合,针对每个实例组合以不同的c1和c2进行实验,得出目标值取平均值,找到最接近平均值的组合作为参数取值。基于实际生产环境,实验中c1和c2的取值范围分别为(-0.5,0)和(0,0.5),经实验测试,得到4组参数组合,分别为e1(-0.1,0.1),e2(-0.1,0.3),e3(-0.3,0.1)以及e4(-0.3,0.3)。
[0192]
本实验选择元启发式算法pso
ff
,fhaco以及rkga作为对比算法,实验结果如表2所示,实验的主要评价指标有相对百分比差距(rpd),其计算方式如下:
[0193][0194]
其中sol
alg
表示当前的算法的结果,sol
best
表示所有算法的最优解,当rpd越小表示算法的解越好。
[0195]
表2:对比实验结果
[0196][0197]
在表2中,brpd,mrpd和arpd分别表示最优,最大和平均rpd值。从表2中可以看出在16组算例中,ifoa算法都较优于其它对比算法。其中brpd的平均值不超过4%,表示在大多数情况下ifoa都能得到很好的结果。此外在不同的算例中,ifoa的结果的差异性较小,对问题具有较好的鲁棒性。
[0198]
图3展示的是不同算法在不同算例下的平均运行时间,从图中可以看出在小规模情况下,ifoa具有最短的运行时间,随着规模的增大,ifoa的运行时间增加,仅次于pso
ff
,仍然获得很好的运行效果。
[0199]
本实例中还提供一种基于果蝇算法的模糊批调度系统,包括
[0200]
数学模型建立模块,假设存在n个工件需要进行加工处理,处理工件的机器集合为
m={m1,m2...m
i
...m
m
},其中m
i
的机器容量为z
i
,由n个工件组成的待加工批总集合为b,其中b
ki
表示在第i个机器上处理的第k个批;工件集具有不同的加工尺寸s和模糊加工时间批的尺寸是批中所有工件的尺寸之和,批的模糊加工时间取决于批中所有工件中最大模糊加工时间以及批在机器上的加工位置,批的尺寸不超过其加工机器的容量,机器的模糊加工时间为机器中所有批的加工时间总和,目标是最小化最大完工时间,即
[0201][0202]
其中t
i
为机器m
i
的完工时间。
[0203]
初始化模块,初始化最大迭代数t
max
,果蝇种群数量nc,精英种群数量ne,果蝇种群中果蝇个体数s。令当前迭代数t=0,当前精英种群数e=0;
[0204]
果蝇种群初始解构建模块,根据问题设计启发式信息,通过启发式信息构建所有果蝇种群初始解;具体执行如下:
[0205]
步骤3.1:初始化当前果蝇种群数foa=0;
[0206]
步骤3.2:令foa=foa+1,生成当前果蝇种群的待加工工件集合tl;
[0207]
步骤3.3:为所有机器创建候选工件集合cl
i
,利用公式,
[0208]
cl
i
={j
j
∈tl|s
j
≤z
i
}
[0209]
其中s
j
表示工件j
j
的尺寸;
[0210]
步骤3.4:对比所有机器,找到当前具有最小模糊完工时间且候选工件集不为空的机器m
i
,为机器m
i
新建一个批b
ki
,从候选集合随机选择一个工件加入批中;
[0211]
步骤3.5:更新批的尺寸和模糊加工时间,更新候选集合,公式为
[0212]
cl
ki
={j
j
∈tl|s
j
≤(z
i-s
ki
)}
[0213]
其中cl
ki
表示批b
ki
的工件候选集合,s
ki
表示b
ki
的尺寸;
[0214]
步骤3.6:通过候选工件和当前加工批尺寸和加工时间的差异,计算候选工件的启发式信息利用公式,
[0215][0216]
其中是工件j
j
的模糊加工时间,表示批b
ki
的模糊加工时间;
[0217]
步骤3.7:生成一个随机数r∈(0,1),判断r是否大于设定值;本实施例中,根据试验及工作经验,设定值取值0.5;
[0218]
步骤3.8:若是,选择在候选集合中具有最大启发式信息的工件放入当前批中,若否,在候选集合中随机选择一个工件放入当前批中;
[0219]
步骤3.9:更新当前批的剩余容量和模糊加工时间。
[0220]
步骤3.10:更新当前批的候选集合,判断是否为空,若是则执行步骤3.11,否则执行步骤3.6;
[0221]
步骤3.11:计算批的实际模糊加工时间,利用公式
[0222]
[0223]
其中表示批b
ki
的原始加工时间,表示批b
ki
的实际加工时间,γ表示一个不可压缩因子,c1和c2分别表示学习因子和恶化因子,表示批b
ki
的开始加工时间;
[0224]
步骤3.12:更新机器m
i
的模糊完工时间和待处理工件集合tl,判断是否还有工件未分批,若是,则执行步骤3.3;
[0225]
步骤3.13:若否,则计算目标值为当前果蝇种群调度的初始解;
[0226]
步骤3.14:判断foa<ne,若是则执行步骤3.2;
[0227]
种群更新模块,令t=t+1,果蝇种群通过多种嗅觉搜索方案形成新的解,通过视觉搜索得到新的种群;具体执行如下:
[0228]
步骤4.1:对于每个果蝇种群,初始化当前果蝇个体数s=1,t
imp
=0;
[0229]
步骤4.2:当前果蝇的解初始为果蝇种群的解,随机选择一种变异操作,从而产生果蝇新解,变异操作包括:
[0230]
a:随机选择一个机器,在该机器上随机选择2个批进行加工位置交换;
[0231]
b:随机选择2个具有相同容量的机器,再分别在其中各随机选择一个批进行加工位置交换;
[0232]
c:生成一个随机数r∈[5,10],执行a操作r次;
[0233]
d:生成一个随机数r∈[5,10],执行b操作r次;
[0234]
e:生成2个随机数r1,r2∈[5,10],执行a操作r1次,执行b操作r2次。
[0235]
步骤4.3:重新计算变化后机器的模糊完工时间;
[0236]
步骤4.4:判断是否s<s,若是,则s=s+1,并执行步骤4.2;
[0237]
步骤4.5:计算当前果蝇种群每个个体的目标值,如果存在果蝇个体的目标值优于当前种群的目标值,则该个体的解将成为果蝇种群新的目标解,并令t
imp
=0,否则果蝇种群的解保持不变,并将t
imp
=t
imp
+1。
[0238]
重新初始化模块,对当前代所有的果蝇种群进行目标值比较,重新初始化部分拥有较劣解和陷入局优的果蝇种群;具体执行如下:
[0239]
步骤5.1:如果存在果蝇种群在连续的5次迭代中没有提升目标解的质量,即t
imp
≥5,就将当前种群使用启发式信息重新初始化,并令t
imp
=0;
[0240]
步骤5.2:对每次迭代过程中,目标解质量较差的20%果蝇种群使用启发式信息重新初始化,并令t
imp
=0。
[0241]
精英种群更新模块,通过协作搜索更新精英种群,保留优秀的解空间,精英果蝇执行嗅觉和视觉搜索并更新种群解;具体执行如下:
[0242]
步骤6.1:获取当前代所有果蝇种群目标值最优解,判断精英种群的数量e是否e<ne;
[0243]
步骤6.2:若是,则将果蝇种群目标值最优解加入精英种群中,e=e+1;
[0244]
步骤6.3:若否,找到当前精英种群的最差目标解,并将其替换为果蝇种群目标值最优解;
[0245]
步骤6.4:精英果蝇执行嗅觉和视觉搜索;
[0246]
判断模块,从所有果蝇种群中获取全局最优调度方案,如果t<t
max
,则返回步骤4,否则输出最优调度方案。
[0247]
以下通过实验对本实施例方案进行说明:
[0248]
首先对模糊数的表示及计算进行说明:
[0249]
模糊数的表示:
[0250][0251]
其中和分别表示模糊数的下限和上限,表示模糊数最有可能的值;假设模糊数和模糊数的运算如下:
[0252]
模糊加减法
[0253][0254]
模糊乘法
[0255][0256]
模糊比较
[0257][0258]
如果:
[0259]
a:则
[0260]
b:则
[0261]
c:则
[0262]
为了验证本实施例提供的基于果蝇算法的模糊批调度方法的有效性,我们设计了16组测试算例,问题参数设置基于文献ant colony optimization algorithm for scheduling jobs with fuzzy processing time on parallel batch machines with different capacities。详细设置如表1所示,其中机器容量有3种,分别是10,25和65,当机器数为5时,比例为3:1:1,当机器数为10时,容量分别为5:3:2。
[0263]
表1:实验算例参数
[0264][0265]
本实验提出的算法ifoa是基于果蝇算法进行设计的,其参数有nc,ne和s,通过田口法对算法的参数进行测试,最终确定实验参数值为nc=50,ne=5以及s=7。此外,通过预备实验确定学习因子c1和恶化因子c2的值,具体实验步骤如下:从n={90,126,180,270}中随机挑选2个工件数,得到8个实例组合,针对每个实例组合以不同的c1和c2进行实验,得出目标值取平均值,找到最接近平均值的组合作为参数取值。基于实际生产环境,实验中c1和c2的取值范围分别为(-0.5,0)和(0,0.5),经实验测试,得到4组参数组合,分别为e1(-0.1,
0.1),e2(-0.1,0.3),e3(-0.3,0.1)以及e4(-0.3,0.3)。
[0266]
本实验选择元启发式算法pso
ff
,fhaco以及rkga作为对比算法,实验结果如表2所示,实验的主要评价指标有相对百分比差距(rpd),其计算方式如下:
[0267][0268]
其中sol
alg
表示当前的算法的结果,sol
best
表示所有算法的最优解,当rpd越小表示算法的解越好。
[0269]
表2:对比实验结果
[0270][0271]
在表2中,brpd,mrpd和arpd分别表示最优,最大和平均rpd值。从表2中可以看出在16组算例中,ifoa算法都较优于其它对比算法。其中brpd的平均值不超过4%,表示在大多数情况下ifoa都能得到很好的结果。此外在不同的算例中,ifoa的结果的差异性较小,对问题具有较好的鲁棒性。
[0272]
图3展示的是不同算法在不同算例下的平均运行时间,从图中可以看出在小规模情况下,ifoa具有最短的运行时间,随着规模的增大,ifoa的运行时间增加,仅次于pso
ff
,仍然获得很好的运行效果。
[0273]
本实施例还提供一种计算机可读存储介质,计算机存储介质存储计算机指令,计算机指令使所述计算机执行上述的基于果蝇算法的模糊批调度方法。
[0274]
本实施例还提供一种处理设备,包括至少一个处理器,以及与处理器通信连接的至少一个存储器,其中,存储器存储有可被处理器执行额程序指令,处理器调用所述程序指令能够执行上述的基于果蝇算法的模糊批调度方法。
[0275]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1