基于改进果蝇算法的分布式流水车间调度方法

文档序号:26010420发布日期:2021-07-23 21:30阅读:82来源:国知局
基于改进果蝇算法的分布式流水车间调度方法

本发明涉及作业车间调度技术领域,特别是属于一种基于差异飞行策略改进果蝇算法的分布式流水车间调度方法。



背景技术:

如今,经济全球化和越来越激烈的市场竞争使现代企业更重视分布式的生产环境。企业凭借分布式生产环境高质量、低成本、低风险的优势而更具有市场竞争力。作为现代制造系统的重要部分,生产调度在过去几十年中受到了越来越多关注.特别是分布式置换流水车间调度问题(distributedpermutationflowshopschedulingproblem,dpfsp)在现代企业中发挥着越来越重要的作用,吸引了诸多研究人员的注意力。

传统的dpfsp通常假设加工某工件前的设置时间/启动时间(setuptime)是序列独立的,即设置时间与工件的排列顺序无关,一般将其包括在加工时间中或者忽略不计。但在实际环境中,处理下一个待加工的工件前需要执行一些额外的操作,如在印刷行业中,当下一项作业与正在加工的作业的尺寸、墨水颜色等属性不同时,工人需要调整尺寸、更换墨水颜色,这些设置需要花费一定的时间且不容忽视,并且设置时间不仅与即将处理的工件有关,而且受到正在处理的工件的影响,即体现序列相关设置时间的特点(sequence-dependentsetuptime,sdst)。而且,当把设置时间包括在各种工业环境中的调度决策中时,可以实现巨大的节约。因此,研究高效的方法对带有设置时间的分布式调度问题进行优化将会对现代企业产生巨大效益。



技术实现要素:

本发明的目的即在于提供一种基于改进果蝇算法的分布式流水车间调度方法,解决了带有设置时间的分布式置换流水车间调度问题,以达到降低企业生产成本、提高效率的目的。

本发明所提供的基于改进果蝇算法的分布式流水车间调度方法,其特征在于,包括以下步骤:

步骤1:参数初始化;设置种群大小psize、种群最优果蝇个体未更新次数的阈值g以及算法的停止时间t,其中,种群中包含的果蝇个体数量对应车间调度可选用的解决方案数量;阈值g表示最大完工时间最小的果蝇个体未改变的次数的上限值;停止时间t=10*m*n(m为机器数量,n为工件数量),其中,上述最大完工时间为每一个工厂中最后一个工件完成时间的最大值;

步骤2:果蝇种群的初始化;通过基于工件序列的表示方法进行编码,使用构造性启发式方法生成2个果蝇个体,使用随机方法生成剩余psize-2个果蝇个体,形成包含psize个果蝇的初始种群p={π(1),π(2),...π(psize)},从种群p中选择最大完工时间最小的果蝇个体,对最佳方案进行更新;

步骤3:利用嗅觉探索机制指导果蝇进行邻域扰动,并形成新果蝇种群p1={π(1),π(2),...π(psize)};

步骤4:利用差异飞行策略指导果蝇进行视觉飞行;

步骤5:更新最佳解决方案,判断是否达到终止条件,若满足,则进化结束,输出当前最佳解决方案及其对应的最大完工时间,反之转至步骤3。

进一步的,在步骤2中,基于工件序列的表示方法进行编码的步骤如下:一个果蝇为一种解决方案,以二维向量的形式表示一个果蝇,二维向量由f个一维向量构成,f为分布式工厂的数量,一个工厂对应一个一维向量,每个一维向量中包含多个工件,工件的排列顺序和加工顺序一致,基于上述编码规则,一个果蝇个体可以表示为π={π1,π2,...πf},其中,第k个工厂中的工件序列πk={πk,1,πk,2,...πk,nk},k∈{1,2,...f},nk表示第k个工厂中待加工工件的数目。

进一步的,在步骤2中,构造性启发式方法的具体步骤如下:首先,计算每个工件的总加工时间,按照总加工时间从大到小排序,前f个工件按随机方式,依次分配到f个工厂中(工件数量≥工厂数量);剩余的工件逐一提取,插入到最佳位置中,直至所有工件都被提取并插入,最终生成一个果蝇个体,所述的最佳位置是在工件尝试插入到每一个工厂所有可能位置后,所选取的完工时间最小的位置。

进一步的,在步骤2中,随机方法的具体步骤如下:随机选择f个工件,按随机方式,依次分配到f个工厂中(工件数量≥工厂数量);剩余的工件随机提取,一次提取一个工件,将其插入到最佳位置,生成一个果蝇个体,其中,所述的最佳位置是在工件尝试插入到每一个工厂所有可能位置后,所选取的完工时间最小的位置。

进一步的,在步骤3中,嗅觉探索机制包括一次交换扰动、二次交换扰动,其中,

一次交换扰动的具体步骤如下:从完工时间最大的工厂中随机提取一个工件,记作jcri。剩余的f-1个工厂,每间工厂随机提取一个工件,记作jtar,将jcri与jtar交换位置,产生f-1个新方案,从中选择最大完工时间最小的方案;

二次交换扰动的具体步骤如下:在一次交换扰动得到的方案中,从完工时间最大的工厂中随机选择b个不重复的工件,其中,b的范围设定为大于3,且小于完工时间最大的工厂中的工件数目的一半,从b个工件中随机选择一个工件记作jori,将jori与剩余b-1个工件进行交换,则产生b-1个新方案,从中选择最大完工时间最小的方案,作为新果蝇种群。

进一步的,在步骤4中,差异飞行策略包括以下步骤:

a.根据果蝇种群中最小的最大完工时间未发生变化的次数,判断种群是否陷入局部最优,如果种群中最小的最大完工时间未发生变化的次数达到g次,则认为种群此时陷入局部最优,执行步骤b1,反之认为种群未陷入局部最优,执行步骤b2;

b1.若种群陷入局部最优,种群内的果蝇按照最大完工时间由小到大排序,排序后的种群中,前20%的果蝇因为有着较小的最大完工时间而被直接保留;剩余80%果蝇中,前50%果蝇通过相邻工件互换方法,向当前种群中最大完工时间最小的果蝇进行学习,即对最大完工时间最小的果蝇执行相邻工件互换方法;剩余50%果蝇使用随机方法生成,最终生成一个包含psize个果蝇的新种群p2;从种群p2中随机选择psize/2个果蝇,更新种群p中最大完工时间较大的psize/2个果蝇(即果蝇种群p中较差的一半个体向果蝇群p2中的部分个体飞行);

b2.若种群未陷入局部最优,则将嗅觉探索阶段生成的种群p1与嗅觉探索阶段前的种群p组合,并从中选择最大完工时间较小的psize个果蝇进行下一次迭代(即果蝇个体向种群p1和p中最好的psize个果蝇飞行);

其中,相邻工件互换方法的具体步骤为:首先寻找完工时间最大的工厂为关键工厂,若关键工厂只有一个,则对该工厂内的工件执行相邻工件互换操作,即每相邻的两个工件互换位置,从中选择完工时间最小的一组互换,生成新方案;若关键工厂数量存在多个,则多个关键工厂中的每个工厂中的工件,均执行相邻工件互换操作,从中选择完工时间最小的一组互换,生成新方案。

本发明所提供的基于改进果蝇算法的分布式流水车间调度方法,具有以下积极效果:

(1)本发明由于为果蝇设计了一种嗅觉探索机制,指引果蝇探索更有潜力的区域;

(2)本发明克服了传统的果蝇算法性能无法得到充分的发挥的缺点,改进后的果蝇算法更容易求得高质量的解决方案;

(3)本发明克服了传统优化算法随机生成初始方案的缺点,采用高效的启发式方法生成初始解,保证了初始种群的多样性和高质量;

(4)本发明通过差异飞行策略的设计,充分利用种群中不同果蝇的信息,对个体差异化对待,避免果蝇算法进化过程中陷入局部最优;

综上所述,本发明可以很好的解决离散调度问题,能够为分布式车间调度提供良好的解决方案。

附图说明

图1为本发明实现过程的示意图;

图2为所有对比算法解决270个算例生成的统计结果信息表;

图3为所有数据的anova分析结果信息表;

图4为对比算法的平均散点图。

具体实施方式

如图1所示,本发明所提供的基于改进果蝇算法的分布式流水车间调度方法,主要包括以下实现过程:

步骤1:参数初始化。设置种群大小psize、种群最优果蝇个体未更新次数的阈值g以及算法的停止时间t,其中,种群中包含的果蝇个体数量对应车间调度可选用的解决方案数量;阈值g表示最大完工时间最小的果蝇个体未改变的次数的上限值;停止时间t=10*m*n(m为机器数量,n为工件数量),其中,上述最大完工时间为每一个工厂中最后一个工件完成时间的最大值;

步骤2:果蝇种群的初始化。通过基于工件序列的表示方法进行编码,使用构造性启发式方法生成2个果蝇个体,使用随机方法生成剩余psize-2个果蝇个体,形成包含psize个果蝇的初始种群p={π(1),π(2),...π(psize)},从种群p中选择最大完工时间最小的果蝇个体,对最佳方案进行更新。

具体地,基于工件序列的表示方法进行编码的步骤如下:一个果蝇为一种解决方案,以二维向量的形式表示一个果蝇,二维向量由f个一维向量构成,f为分布式工厂的数量,一个工厂对应一个一维向量,每个一维向量中包含多个工件,工件的排列顺序和加工顺序一致,基于上述编码规则,一个果蝇个体可以表示为π={π1,π2,...πf},其中,第k个工厂中的工件序列πk={πk,1,πk,2,...πk,nk},k∈{1,2,...f},nk表示第k个工厂中待加工工件的数目。

构造性启发式方法的具体步骤如下:首先,计算每个工件的总加工时间,按照总加工时间从大到小排序,前f个工件按随机方式,依次分配到f个工厂中(工件数量≥工厂数量);剩余的工件逐一提取,插入到最佳位置中,直至所有工件都被提取并插入,最终生成一个果蝇个体。其中,最佳位置是在工件尝试插入到每一个工厂所有可能位置后,所选取的完工时间最小的位置。

随机方法的具体步骤如下:随机选择f个工件,按随机方式,依次分配到f个工厂中(工件数量≥工厂数量);剩余的工件随机提取,一次提取一个工件,将其插入到最佳位置,生成一个果蝇个体,其中,最佳位置是在工件尝试插入到每一个工厂所有可能位置后,所选取的完工时间最小的位置。

步骤3:利用嗅觉探索机制指导果蝇进行邻域扰动,并形成新果蝇种群p1={π(1),π(2),...π(psize)}。嗅觉探索机制包括一次交换扰动、二次交换扰动,其中,

一次交换扰动的具体步骤如下:从完工时间最大的工厂中随机提取一个工件,记作jcri。剩余的f-1个工厂,每间工厂随机提取一个工件,记作jtar,将jcri与jtar交换位置,产生f-1个新方案,从中选择最大完工时间最小的方案;

二次交换扰动的具体步骤如下:在一次交换扰动得到的方案中,从完工时间最大的工厂中随机选择b个不重复的工件,其中,b的范围设定为大于3,且小于完工时间最大的工厂中的工件数目的一半,从b个工件中随机选择一个工件记作jori,将jori与剩余b-1个工件进行交换,则产生b-1个新方案,从中选择最大完工时间最小的方案,作为新果蝇种群。

步骤4:利用差异飞行策略指导果蝇进行视觉飞行。差异飞行策略包括以下步骤:

a.根据果蝇种群中最小的最大完工时间未发生变化的次数,判断种群是否陷入局部最优,如果种群中最小的最大完工时间未发生变化的次数达到g次,则认为种群此时陷入局部最优,执行步骤b1,反之认为种群未陷入局部最优,执行步骤b2;

b1.若种群陷入局部最优,种群内的果蝇按照最大完工时间由小到大排序,排序后的种群中,前20%的果蝇因为有着较小的最大完工时间而被直接保留;剩余80%果蝇中,前50%果蝇通过相邻工件互换方法,向当前种群中最大完工时间最小的果蝇进行学习,即对最大完工时间最小的果蝇执行相邻工件互换方法;剩余50%果蝇使用随机方法生成,最终生成一个包含psize个果蝇的新种群p2;从种群p2中随机选择psize/2个果蝇,更新种群p中最大完工时间较大的psize/2个果蝇(即果蝇种群p中较差的一半个体向果蝇群p2中的部分个体飞行);

b2.若种群未陷入局部最优,则将嗅觉探索阶段生成的种群p1与嗅觉探索阶段前的种群p组合,并从中选择最大完工时间较小的psize个果蝇进行下一次迭代(即果蝇个体向种群p1和p中最好的psize个果蝇飞行);

其中,相邻工件互换方法的具体步骤为:首先寻找完工时间最大的工厂为关键工厂,若关键工厂只有一个,则对该工厂内的工件执行相邻工件互换操作,即每相邻的两个工件互换位置,从中选择完工时间最小的一组互换,生成新方案;若关键工厂数量存在多个,则多个关键工厂中的每个工厂中的工件,均执行相邻工件互换操作,从中选择完工时间最小的一组互换,生成新方案。

步骤5:更新最佳解决方案,判断是否达到终止条件,若满足,则进化结束,输出当前最佳解决方案及其对应的最大完工时间,反之转至步骤3。

下面,如图2-4所示,本发明通过一个具体的实施例,对本发明做进一步的描述说明。在本发明的具体实施例中,以果蝇种群大小psize=10(种群中包含10个果蝇个体);g=4(当所有果蝇个体中最小的最大完工时间4次未发生改变时,即可判定陷入局部最优);停止时间t=10*m*n(m为机器数量,n为工件数量)为例,进行详细的说明和实验验证。

仿真实验所采用的测试算例为270个标准算例。其中,工件数量n={100,200,300,400,500},机器数量m={5,8,10},工厂数量f={2,3,4,5,6,7},影响因子factor={25,50,100}。工件的加工时间均匀分布在范围[1,99),设置时间按照(1+rand()%99)*factor产生。

将本发明提出的基于差异飞行策略的果蝇算法(简称dffo_df)与进化算法(ea)、粒子群算法(pso)、带重启机制的迭代贪婪算法(igm)和改进迭代贪婪算法(ig_lxp)进行对比,以验证本发明的有效性,这几种对比算法都是近几年提出的具有高性能的优化算法。为了减小实验的误差,使计算结果更具有效性与一般性,对于每个算例重复执行5次,以生成统计结果。使用相对百分比偏差(relativepercentageincrease,rpi)作为性能评价指标,rpi的计算公式为rpi=(c-cbest)/cbest*100,其中,c表示某一具体算法解决算例时得到的最大完工时间,而cbest则表示这5种算法中,解决同意算例时得到的最小的最大完工时间。显然,rpi值越小,表示算法寻找到的最大完工时间越小,性能越好。

图2是所有算法解决270个算例生成的统计结果,按照工厂数量(f)、工件数量(n)和机器数量(m)进行分组;图3是对所有数据的多因素方差分析,图4是对所有算法优化结果的直观表示。具体地,从图2的平均pri值可以看出,dffo_df无论在工厂规模、工件规模还是机器规模上,pri结果均明显优于其它算法,其次是igm、ea,性能最差的算法是pso、ig_lxp。为了直观地观察算法之间的差异,对实验数据进行多因素方差分析,图3记录了多因素方差分析的结果,而图4则展示了不同算法的平均散点图(95%lsd置信区间)。从图3和图4可以看出,由于p-value等于0,所以不同算法之间存在显著性差异,且dffo_df拥有最好的优化结果。综上所述,通过对270个算例的仿真实验验证了本发明的优越性和有效性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1