
1.本发明属于制造业生产调度领域,尤其涉及一种基于差分进化算法的调度优化求解方法。
背景技术:2.流水车间调度问题广泛存在于各种现实问题当中,在化工,食品加工,钢铁,运筹学等多个行业中起着十分重要的作用。流水车间调度问题可以定义为多个不同的工件在不同机器上的加工次序、分配、组合等多个问题的表现。同时要求在把有限的资源分配为多个子任务的同时,满足一个或多个优化目标。当机器数大于两台时,流水车间调度问题已被证明为np-hard问题,这类问题的特点是随着问题规模的不断增加,求解难度呈几何式倍增。因此,传统方法在解决该类问题时往往会出现耗时长,求解精度低等问题。目前,寻找一个高效精确的解决方案已成为学术界面临的重大挑战之一。
3.差分进化算法作为一种基于种群的启发式搜索算法,由于其高效的全局搜索能力,在面对大规模全局优化问题时表现出了良好的性能,是解决复杂工程优化问题的潜在高效框架。然而,差分进化算法依然存在传统演化算法的缺点,随着进化代数的增加,算法的种群多样性降低,同时存在过早收敛或停滞等缺点,这对依靠种群差异来进化的算法来说无疑是致命的。为了改进以上缺点,本发明中主要针对算法进化模式并结合求解问题的问题特点来提高算法性能。此外,为了针对调度领域中其他问题进行优化求解,本发明中还针对函数优化问题构建了优化方法,用户可通过定义优化问题模型调用该方法进行较为简单的优化求解。
技术实现要素:4.本发明的目的在于提供一种可应用于制造业生产调度领域的基于差分进化算法的调度优化求解方法。
5.所提出的协同变异策略的主要思想是,在种群演化过程中使用奖励机制和利用算法运行中产生的历史信息,将几种突变策略与不同控制参数设置随机组合,以生成理想的试验个体。
6.本发明的实现方法如下:一种基于差分进化算法的调度优化求解方法,该调度优化求解方法包括变量不可分离的非线性函数优化模块和分布式阻塞流水作业车间调度模块。针对制造业生产调度领域中不同的问题,选用不同的模块进行优化求解。
7.优选地,针对变量不可分离的非线性函数优化模块,构建学习型协同 lshade算法(lshade-clm)作为内置的优化算法,由于大多数调度问题抽象为函数优化问题时均为不可分离问题,因此该算法地设计主要针对不可分离的函数优化问题。
8.优选地,针对分布式阻塞流水作业车间调度模块,将集成离散差分进化算法(ede)作为内置的优化算法。
9.本发明公开了一种基于差分进化算法的调度优化求解方法,该方法包括以下步
骤:
10.(1)针对不可分离的非线性函数优化模块,构建lshade-clm算法作为内置模块,该算法具有协同方案和综合学习机制;在lshade-clm中,提出了一种新的协同突变机制,包括“de/current-to-pbetter/r”和“de/ current-to-pbest-w/1”;在所提出的具有综合学习机制的“de/ current-to-pbetter/r”策略中,利用总体协方差矩阵(cma-es)生成候选解并指导搜索方向;同时,采用竞争奖励机制控制突变因子f,生成合作机制的试验向量;当在某一维度上发现停滞时,采用维度重置策略来提高种群在维度层面上的多样性,具体按以下过程实施:
11.①
在初始化后,在变异阶段中使用一种协同变异策略,包括两种不同的变异策略“de/current-to-pbetter/r”和“de/current-to-pbest-w/1”;协同变异策略中包含的两种策略如下所示:
12.v
i,g
=x
i,g
+fw·
(x
pbest,g-x
i,g
)+f
·
(x
r1,g-x
r2,g
)
ꢀꢀ
(1)
13.v
i,g
=x
i,g
+fw·
(x
pbetter,g-x
i,g
)+f
·
(x
pr1,g-x
pr2,g
)
ꢀꢀ
(2)
14.②
在协同变异策略中使用两个不同的参数控制方法来构成参数候选池,并生成变异参数f,两个不同的参数控制方法如下所示:
[0015][0016][0017]
③
提出了一种种群信息驱动的重启策略,以在维度层面上增加种群多样性,种群信息驱动的重启策略操作如下所示:
[0018]
定义了来判断种群中的个体在每一维度上的状态,具体计算方法如下:
[0019][0020]
当参数小于e-10
时,新的个体通过如下方法产生:
[0021][0022]
(2)针对分布式阻塞流水作业车间调度问题,构建一个内置算法集成离散差分进化算法(ede),其中包含集成的种群初始化算子,具有竞争机制的离散变异算子,离散的交叉算子,偏向选择算子和精英保留算子,具体按以下过程实施:
[0023]
①
使用三种不同类型的方法初始化种群,并且为每种方法分配相同的种群大小,三种不同的策略描述如下:
[0024]
分布式neh(dneh)策略,dneh方法有四个步骤:
[0025]
步骤1:将πk作为工厂fk的工件处理顺序,且根据每个机方法上每个工件非递增的完工时间顺序,生成加工序列j=[j1,j2,
…
,jn];
[0026]
步骤2:对于每个工厂fk(k=1,2,
…
,f),分配工件jk并更新πk;
[0027]
步骤3:设置k=k+1,如果k≤n,则将jk分配给每个工厂现有序列的所有可能位置,然后将工件放置到当前完工时间最短的位置;
[0028]
步骤4:如果k≤n,则重复步骤3,然后输出πk;
[0029]
分布式前延迟neh(dfd-neh)策略:dfd-neh的初始化过程与dneh 的过程相同,除了如何在每个工厂中选择首工件,在dfd-neh中,根据公式 7和公式8为每个工件计算两个索引值,然后,应用公式9计算每个作业的前置延迟影响r(i),按递增顺序对工件进行排序,选择具有最小r(i)的工件,并将其放置在加工序列πk的首位置:
[0030][0031][0032][0033]
分布式前延迟和限制时间的neh(dfdit-neh)策略:dfdit-neh策略是dfd-neh策略的增强版本;在dfdit-neh策略中,从阻塞时间,空闲时间和前延迟三个方面考虑了每个工件对加工序列的影响,dfdit-neh策略中的主要步骤描述如下:
[0034]
步骤1:选择具有最小r(i)的作业,并将其放在加工序列πk的首位置,此时,令k=1;
[0035]
步骤2:当k《n时,选择具有最小ind(i,k)的工件,并将其分配给每个工厂现有序列的所有可能位置,然后将其放置到具有当前最小完工时间的位置,令k=k+1;
[0036]
步骤3:重复步骤1,步骤2直到完成所有工件的排序;
[0037][0038]
②
在变异操作中使用具有竞争机制的离散变异算子,具体操作描述如下:
[0039]
在算法运行初期,如果运行时间t小于0.1
×
m,则变异策略从公式11 和公式12中随机选择,其中,令x={xk|k=1,2,
…
,f}表示目标向量,突变体可以表示为v={vk|k=1,2,
…
,f},突变载体v公式11和公式12产生:
[0040][0041][0042]
其中,运算符的定义分别描述如下:
[0043][0044][0045][0046]
在突变操作中引入了竞争进化机制,能产生优秀个体的策略将被在下一代中分配予更大的种群数量;在0.1
×
m秒后,如果s
1,g
大于s
2,g
,则使用公式11 生成v
i,g
,否则使用公
式12,s
1,g
和s
2,g
在算法初始化时被设置为0.5,并根据公式13更新:
[0047][0048]
③
使用在交叉操作中使用离散的交叉算子,具体操作描述如下:
[0049]
令x={xk|k=1,2,..,f}表示目标向量,相应的变异向量表示为v= {vk|k=1,2,..,f},在离散的交叉操作中,通过如下方法生成试验矢量u:
[0050]
步骤1:通过公式14产生μk[0051][0052]
其中,μk是用于执行交叉操作的一组位置,且k=1,2,
…
,n,交叉因子cr=0.5;
[0053]
步骤2:让u1=x,从第一个工厂开始,按照在v中出现的顺序依次替换u1中的工件xk(j),且j∈μk,然后,以相同的方式,使u2=v,在u2中的工件vk(j) 被按照在x中出现的顺序依次替换;
[0054]
步骤3:计算u1和u2的总流经时间;选择二者其中较好的一个作为试验向量u;
[0055]
④
在选择操作中执行偏向选择算子和精英保留算子,具体操作描述如下:
[0056]
在ede算法中,将贪婪选择算子替换为偏向选择算子,ede算法中种群的多样性通过偏向选择操作得到了增强,避免了种群陷入局部最优状态,在以最小化总完工时间为准则的前提下,新的目标个体x
i,g+1
通过公式15产生:
[0057][0058]
同时为了保证ede算法的收敛速度,最优个体将会通过精英保留策略进入到下一代种群中去,此外,若当前最优个体比上一代最优个体差时,将上一代记录的最优个体插入当前种群的随机位置。
[0059]
优选地,在步骤(1)中,所述函数优化模块针对不可分离的函数优化问题,因此在cec2017测试集中进行效果测试。在针对其他调度问题进行求解时,可通过lov编码规则将问题域转换为实数问题域并调用内置模块进行求解。
[0060]
优选地,在步骤(2)中,所述分布式阻塞流水作业车间调度优化模块终止准则为运行时间,在不同运行时间下优化结果不同,因此需要用户针对具体问题设定可接受地运行时间。
[0061]
相比于现有技术的缺点和不足,本发明具有以下有益效果:
[0062]
(1)本发明针对制造业生产调度领域中的具体调度问题构建了相应的优化求解模块,相比于现有技术更具针对性,优化效果也更佳;
[0063]
(2)本发明针对不可分离的函数优化问题,构建了通用的函数优化模块,可针对其他调度问题进行求解;
[0064]
(3)本发明易于实现,逻辑简单,且易于扩展,可通过迭代的扩展满足当前制造业生产领域中的大多数调度问题的求解需求。
附图说明
[0065]
图1是本发明一种基于差分进化算法的调度优化求解方法的流程图。
[0066]
图2是分布式生产环境的示意图。
[0067]
图3是分布式阻塞流水车间调度问题模型的甘特图示例。
[0068]
图4是不可分离问题的适应度地形图示例。
[0069]
图5是lshade-clm算法与先进的函数优化算法的friedman统计分析图。
[0070]
图6是ede算法与先进的分布式阻塞流水车间调度算法的arpd趋势图。
[0071]
图7是cwwo算法的流程图。
[0072]
图8是cwwo算法与先进的分布式装配流水车间调度问题的区间图。
具体实施方式
[0073]
以下结合附图及实施例,对本发明进行进一步详细说明,应当理解,此处所描述的具体实例仅用于解释本发明,并不用于限定本发明。
[0074]
如图1所示,图1是本发明一种基于差分进化算法的调度优化求解方法的流程图。
[0075]
一种基于差分进化算法的调度优化求解方法,该调度优化求解方法包括不可分离的非线性函数优化模块及分布式阻塞流水车间调度优化模块。不同优化模块中内置了相应的优化算法,针对不同问题选用不同模块可表现出较优的性能。
[0076]
本发明公开了一种基于差分进化算法的调度优化求解方法,该方法包括以下步骤:
[0077]
针对分布式阻塞流水车间调度问题,提出了集成的初始化策略、竞争进化的离散变异策略、离散的交叉策略、偏向选择策略和精英保留策略构建优化算法ede。
[0078]
(1)针对不可分离的非线性函数优化模块,构建lshade-clm算法作为内置模块,该算法具有协同方案和综合学习机制;在lshade-clm中,提出了一种新的协同突变机制,包括“de/current-to-pbetter/r”和“de/ current-to-pbest-w/1”;在所提出的具有综合学习机制的“de/ current-to-pbetter/r”策略中,利用总体协方差矩阵(cma-es)生成候选解并指导搜索方向;同时,采用竞争奖励机制控制突变因子f,生成合作机制的试验向量;当在某一维度上发现停滞时,采用维度重置策略来提高种群在维度层面上的多样性,具体按以下过程实施:
[0079]
①
在初始化后,在变异阶段中使用一种协同变异策略,包括两种不同的变异策略“de/current-to-pbetter/r”和“de/current-to-pbest-w/1”;协同变异策略中包含的两种策略如下所示:
[0080]vi,g
=x
i,g
+fw·
(x
pbest,g-x
i,g
)+f
·
(x
r1,g-x
r2,g
)
ꢀꢀ
(1)
[0081]vi,g
=x
i,g
+fw·
(x
pbetter,g-x
i,g
)+f
·
(x
pr1,g-x
pr2,g
)
ꢀꢀ
(2)
[0082]
②
在协同变异策略中使用两个不同的参数控制方法来构成参数候选池,并生成变异参数f,两个不同的参数控制方法如下所示:
[0083][0084]
[0085]
③
提出了一种种群信息驱动的重启策略,以在维度层面上增加种群多样性,种群信息驱动的重启策略操作如下所示:
[0086]
定义了来判断种群中的个体在每一维度上的状态,具体计算方法如下:
[0087][0088]
当参数小于e-10
时,新的个体通过如下方法产生:
[0089][0090]
(2)针对分布式阻塞流水作业车间调度问题,构建一个内置算法集成离散差分进化算法(ede),其中包含集成的种群初始化算子,具有竞争机制的离散变异算子,离散的交叉算子,偏向选择算子和精英保留算子,具体按以下过程实施:
[0091]
针对不可分离的函数优化问题,采用实数编码规则、随机种群初始化、协同变异策略、集成参数控制策略、维度重启策略构建优化算法lshade-clm。
[0092]
①
使用三种不同类型的方法初始化种群,并且为每种方法分配相同的种群大小,三种不同的策略描述如下:
[0093]
分布式neh(dneh)策略,dneh方法有四个步骤:
[0094]
步骤1:将πk作为工厂fk的工件处理顺序,且根据每个机方法上每个工件非递增的完工时间顺序,生成加工序列j=[j1,j2,
…
,jn];
[0095]
步骤2:对于每个工厂fk(k=1,2,
…
,f),分配工件jk并更新πk;
[0096]
步骤3:设置k=k+1,如果k≤n,则将jk分配给每个工厂现有序列的所有可能位置,然后将工件放置到当前完工时间最短的位置;
[0097]
步骤4:如果k≤n,则重复步骤3,然后输出πk;
[0098]
分布式前延迟neh(dfd-neh)策略:dfd-neh的初始化过程与dneh 的过程相同,除了如何在每个工厂中选择首工件,在dfd-neh中,根据公式 7和公式8为每个工件计算两个索引值,然后,应用公式9计算每个作业的前置延迟影响r(i),按递增顺序对工件进行排序,选择具有最小r(i)的工件,并将其放置在加工序列πk的首位置:
[0099][0100][0101][0102]
分布式前延迟和限制时间的neh(dfdit-neh)策略:dfdit-neh策略是dfd-neh策略的增强版本;在dfdit-neh策略中,从阻塞时间,空闲时间和前延迟三个方面考虑了每个工件对加工序列的影响,dfdit-neh策略中的主要步骤描述如下:
[0103]
步骤1:选择具有最小r(i)的作业,并将其放在加工序列πk的首位置,此时,令k=1;
[0104]
步骤2:当k《n时,选择具有最小ind(i,k)的工件,并将其分配给每个工厂现有序列
的所有可能位置,然后将其放置到具有当前最小完工时间的位置,令k=k+1;
[0105]
步骤3:重复步骤1,步骤2直到完成所有工件的排序;
[0106][0107]
②
在变异操作中使用具有竞争机制的离散变异算子,具体操作描述如下:
[0108]
在算法运行初期,如果运行时间t小于0.1
×
m,则变异策略从公式11 和公式12中随机选择,其中,令x={xk|k=1,2,
…
,f}表示目标向量,突变体可以表示为v={vk|k=1,2,
…
,f},突变载体v公式11和公式12产生:
[0109][0110][0111]
其中,运算符的定义分别描述如下:
[0112][0113][0114][0115]
在突变操作中引入了竞争进化机制,能产生优秀个体的策略将被在下一代中分配予更大的种群数量;在0.1
×
m秒后,如果s
1,g
大于s
2,g
,则使用公式11 生成v
i,g
,否则使用公式12,s
1,g
和s
2,g
在算法初始化时被设置为0.5,并根据公式13更新:
[0116][0117]
③
使用在交叉操作中使用离散的交叉算子,具体操作描述如下:
[0118]
令x={xk|k=1,2,..,f}表示目标向量,相应的变异向量表示为v= {vk|k=1,2,..,f},在离散的交叉操作中,通过如下方法生成试验矢量u:
[0119]
步骤1:通过公式14产生μk[0120][0121]
其中,μk是用于执行交叉操作的一组位置,且k=1,2,
…
,n,交叉因子cr=0.5;
[0122]
步骤2:让u1=x,从第一个工厂开始,按照在v中出现的顺序依次替换u1中的工件xk(j),且j∈μk,然后,以相同的方式,使u2=v,在u2中的工件vk(j) 被按照在x中出现的顺序依次替换;
[0123]
步骤3:计算u1和u2的总流经时间;选择二者其中较好的一个作为试验向量u;
[0124]
④
在选择操作中执行偏向选择算子和精英保留算子,具体操作描述如下:
[0125]
在ede算法中,将贪婪选择算子替换为偏向选择算子,ede算法中种群的多样性通过偏向选择操作得到了增强,避免了种群陷入局部最优状态,在以最小化总完工时间为准
则的前提下,新的目标个体x
i,g+1
通过公式15产生:
[0126][0127]
同时为了保证ede算法的收敛速度,最优个体将会通过精英保留策略进入到下一代种群中去,此外,若当前最优个体比上一代最优个体差时,将上一代记录的最优个体插入当前种群的随机位置。
[0128]
优选地,在步骤(1)中,所述函数优化模块针对不可分离的函数优化问题,因此在cec2017测试集中进行效果测试。在针对其他调度问题进行求解时,可通过lov编码规则将问题域转换为实数问题域并调用内置模块进行求解。
[0129]
优选地,在步骤(2)中,所述分布式阻塞流水作业车间调度优化模块终止准则为运行时间,在不同运行时间下优化结果不同,因此需要用户针对具体问题设定可接受地运行时间。
[0130]
由图6可以看出在相同运行时间下,ede算法所得解的精度显著优于所对比的先进的分布式阻塞流水车间调度问题求解算法。
[0131]
由图5可以看出在相同的函数评价次数下,lshade-clm算法所得解的精度显著优于所对比的先进的函数优化问题求解算法。
[0132]
以上显示和描述了本发明的基本原理和主要特征及本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。