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

基于改进人工蜂群算法的动态多目标柔性作业车间调度方法与流程

2021-10-30 02:11:00 来源:中国专利 TAG:作业 柔性 调度 车间 蜂群


1.本发明属于动态多目标柔性作业车间调度优化技术领域,特别涉及一种基于改进人工蜂群算法的动态多目标柔性作业车间调度方法。


背景技术:

2.1954年johnson提出解决2台机器的流水车间问题并使用有效算法进行求解,车间调度优化问题自此开始。动态调度的概念出现较早,jackson于1957年便对静态调度和动态调度的概念做了区分。生产企业在实际生产过程中往往不是仅考虑单一的优化目标,需要同时兼顾质量、成本、效益等多个方面。因此,不仅需要考虑最大完成时间,还需要考虑交货期、资源利用率和企业效益等多个目标,需要同时对多个目标进行优化。并且实际生产车间环境复杂多变,生产过程中随时可能出现动态扰动。在连续生产过程中,由于这些扰动的发生,原有的调度方案已不再适应,需要确定新的调度方案。为了不影响车间高效稳定的生产,许多学者针对这种更复杂的车间情况,展开动态多目标柔性作业车间调度问题的研究。
3.人工蜂群算法(artificial bee colonyalgorithm,abc)是一种受自然界中蜜蜂行为所启发而产生的新的仿生智能优化算法。在abc中,雇佣蜂和观察蜂各占种群规模的一半,侦查蜂为转换来的。三者在优化时负责的功能不同,雇佣蜂代表探索,负责算法的全局搜索;观察蜂代表开发,负责算法的局部搜索;侦查蜂负责跳出局部最优;三种蜜蜂互相配合,使算法能够兼顾探索和开发两方面。三种蜜蜂可以相互转换,这是abc特有的机制。本发明采用一种改进人工蜂群算法求解动态多目标柔性作业车间调度问题。


技术实现要素:

4.发明目的:为解决实际生产车间中发生的动态事件,保证车间稳定高效的运行,本发明提供一种基于改进人工蜂群算法的动态多目标柔性作业车间调度方法,可以解决动态多目标柔性作业车间调度问题中出现的机器故障、订单取消和紧急订单插入。
5.技术方案:本发明所述的一种基于改进人工蜂群算法的动态多目标柔性作业车间调度方法,具体包括以下步骤:
6.(1)建立动态多目标柔性作业车间调度模型,将最大完成时间最小、碳排放最小和稳定性惩罚最小作为模型的目标函数;
7.(2)确定调度的约束条件,包括工序约束、机器约束、时间约束;
8.(3)初始化种群,采用两段式编码的方式表示染色体信息,第一段为工序编码串os,用来确定工件的加工顺序;第二段为机器编码串ms,用来表示工序分配到的机器;
9.(4)若达到设定的迭代次数,则输出外部档案,若没有达到则继续执行步骤(5);
10.(5)雇佣蜂采用工序编码串邻域搜索和机器编码串邻域搜索更新种群;
11.(6)观察蜂阶段采用锦标赛选择操作选择交叉个体,采用交叉与多重变异操作;
12.(7)侦查蜂阶段增加雇佣蜂转换为侦查蜂的数量并跳转到步骤(4),直至满足步骤(4)所述终止条件,获得优化后的调度模型,判断动态事件类型。
13.进一步地,所述步骤(1)包括以下步骤:
14.(11)假设有m(m1,m2,...,m
m
)台机器处理n(j1,j2,...,j
n
)个工件,每个工件有若干道工序,o
ij
表示工件i的第j道工序,每道工序可以在不同机器上进行加工,且在不同的机器上的加工时间是不相同的;
15.(12)最小化工件的完成时间:
16.f1=min(maxc
i
)
17.其中,c
i
表示工件j
i
的完成时间,i=1,2,3,

,n;n为工件的总数;最后一个工件完成的时间为最大完成时间;
18.(13)碳排放最小:
[0019][0020]
其中,为机器m
h
的空载功率,t
h
为机器上m
h
的空载时间,e
i
为第i个工件的工序数,为工件i的第j道工序在机器m
h
上的负载功率,t
ijh
为第i个工件的第j道工序在机器m
h
上加工所需时间,ε为转换系数;
[0021]
(14)稳定性惩罚最小:
[0022][0023]
其中,o
ij
为第i个工件的第j道工序,o
ea
为重调度后提前加工工件集合,s
ij
为工件o
ij
的开始时间,q为动态事件前时刻,h为动态事件后时刻,o
da
为重调度后延后加工工件集合,o
dc
为重调度后延后完成工件集合,c
ij
为工件o
ij
的完成时间,γ为惩罚系数。
[0024]
进一步地,步骤(5)所述的工序编码串邻域搜索实现过程如下:
[0025]
随机选择两个工件j1和j2,记录两个工件在工序串中的位置;若工件j1工序数小于j2,首先把j1从左到右填充到j2原来的位置,j2的工序从左到又依次填充到剩余位置;若工件j1工序数大于j2,j1把j2位置填充满后,剩余工序从左至右填充至原来位置,j2把剩余位置填满;计算新解各目标值,若新解支配旧解,则用新解替换旧解。
[0026]
进一步地,步骤(5)所述的机器编码串邻域搜索实现过程如下:随机生成整数i,i不大于总工序数;在机器分配码中随机选取i个位置;为每道工序从候选机器集中随机选则一台机器,若只有一台则保持不变;计算新解各目标值,若新解支配旧解,则用新解替换旧解。
[0027]
进一步地,步骤(7)所述判断动态事件类型过程如下:
[0028]
依据车间中订单、工序和机器关键信息将动态事件分为订单取消、紧急订单和机器故障三类;订单取消时把一部分订单移除工件集,并对剩余工件重新分配机器加工;紧急订单时,将紧急订单工件加工工件集合中,并且自动给其最高优先级,待给紧急订单分配的完成时间为最短后,在紧急订单后重新安排原订单加工;机器故障时,自动将故障机器移除可用机器集,将工序安排到其它机器上加工,当故障机器修复完成后,可在原故障机器上重新安排加工。
[0029]
有益效果:与现有技术相比,本发明的有益效果:本发明在传统的生产调度目标基础上,将碳排放纳入调度系统,建立以最大完成时间、碳排放和稳定性为目标的问题模型;
考虑到动态事件需要生产车间具有快速地响应能力,采用基于事件驱动的重调度策略,种群的初始化采用多种启发式规则产生优质的初始解降低算法搜索范围,针对碳排放目标提出一种启发式的低碳机器变异策略,加快算法收敛,满足处理动态事件的快速响应要求;可以很好解决动态多目标柔性作业车间调度问题中出现的机器故障、订单取消和紧急订单插入问题。
附图说明
[0030]
图1为本发明流程图;
[0031]
图2为工序串编码示意图;
[0032]
图3工序串编码示意图;
[0033]
图4为ipox交叉示意图;
[0034]
图5为多点交叉示意图;
[0035]
图6为交换变异操作示意图;
[0036]
图7为插入变异操作示意图;
[0037]
图8为改进逆序变异示意图;
[0038]
图9为mk01最大完成时间最小初始调度甘特图;
[0039]
图10为mk01碳排放最小初始调度甘特图;
[0040]
图11为mk01机器故障后最大完成时间最小甘特图;
[0041]
图12为mk01订单取消后最大完成时间最小甘特图;
[0042]
图13为mk01紧急订单插入后最大完成时间最小甘特图。
具体实施方式
[0043]
下面结合附图对本发明作进一步详细说明。
[0044]
本发明提供一种基于改进人工蜂群算法的动态多目标柔性作业车间调度方法,在传统的生产调度目标基础上,将碳排放纳入调度系统,建立以最大完成时间、碳排放和稳定性为目标的问题模型;考虑到动态事件需要生产车间具有快速地响应能力,采用基于事件驱动的重调度策略;种群的初始化采用多种启发式规则产生优质的初始解降低算法搜索范围,针对碳排放目标提出一种启发式的低碳机器变异策略。如图1所示,具体包括以下步骤:
[0045]
步骤1:建立动态多目标柔性作业车间调度模型,假设有m(m1,m2,...,m
m
)台机器处理n(j1,j2,...,j
n
)个工件,每个工件有若干道工序,o
ij
表示工件i的第j道工序,每道工序可以在不同机器上进行加工,且在不同的机器上的加工时间是不相同的。将最大完成时间最小、碳排放最小和稳定性惩罚最小作为模型的目标函数,并用数学函数进行如下描述,表1为各参数的说明。
[0046]
表1参数说明
[0047][0048]
(1.1)最小化工件的完成时间:
[0049]
f1=min(maxc
i
)
[0050]
最后一个工件完成的时间为最大完成时间,其中,c
i
表示工件j
i
的完成时间,i=1,2,3,

,n;n为工件的总数。
[0051]
(1.2)碳排放最小:
[0052][0053]
碳排放依据工厂加工工件产生的能耗来计算。工序选择不同的机器加工,其加工时间和加工功率不同,机器的加工状态分为空载和负载两种状态,所以机器的加工状态和机器选择是会影响生产过程中的碳排放。为消耗的总能耗,是总的碳排放,ε为转换系数,通常取0.7559。
[0054]
(1.3)稳定性惩罚最小:
[0055][0056]
该目标由三项组成,其中,为重调度后提前加工工件偏差惩罚,因为
原材料提前供应,会产生加急费用,γ为惩罚系数这里取1.5;为重调度后延后加工工件惩罚,延后加工会导致原材料提前到达造成额外的库存费用;为重调度后延后完成工件惩罚,延后工件完成时间会造成交付时间延后,导致交付性能变差。
[0057]
建立动态多目标柔性作业车间调度模型后,选取适当的初始参数,设立种群规模pop为200,最大搜索次数limit为20,算法最大迭代次数maxcycle为200。
[0058]
步骤2:确定调度模型的约束条件,包括工序约束、机器约束、时间约束。
[0059]
约束条件包括:任意工件都可以从零时刻开始被处理;同一时间同一台机器上只可以处理一个工件;同一个工件的同一道工序在同一时间只能被一台机器处理,直到该工序处理完成;同一个工件的工序之间有先后顺序约束,但是不同工件的工序没有先后顺序约束;不同的工件之间没有先后顺序的约束。
[0060]
c
i0
=0表示虚拟的第零道工序完工时间为零,s
ij
x
ijh
×
t
ijh
≤c
ij
和c
i(j

1)
≤s
ij
表示同一个工件包含的工序必须按照先后顺序处理,c
ij
≤c
max
表示任意工序的完成时间不超过总的完成时间,s
ij
t
ijh
≤s
kl
k(1

y
ijhkl
)和c
i(j

1)
≤s
ij
k(1

y
ijhkj
)表示一台机器仅允许同时加工一道工序,表示在一道工序仅允许同时在一台机器加工,s
ij
≥0,c
ij
≥0表示任意工序的开始时间和完成时间都是非负的,且任意工件都可以从0时刻开始加工。
[0061]
其中c
i0
为虚拟的第零道工序完工时间,s
ij
表示第i个工件的第j道工序开始加工时刻,x
ijh
=1表示工件i的第j道工序在机器h上加工,y
ijhkl
=1表示m
ijh
先于m
klh
加工,m
ijh
表示第i个工件的第j道工序在机器m
h
上加工,t
ijh
表示第i个工件的第j道工序在机器m
h
上加工所需时间,c
ij
表示第i个工件的第j道工序完成加工时刻。
[0062]
步骤3:初始化种群,采用两段式编码的方式表示染色体信息,第一段为工序编码串os,用来确定工件的加工顺序;第二段为机器编码串ms,用来表示工序分配到的机器。
[0063]
图2为两段式实数编码工序编码串,工序编码串[3122331]数字出现的次数代表该工件具体的工序,例如第一个3代表工件3的第1道工序,以此类推,该编码串对应的加工顺序为o
31

o
11

o
21

o
22

o
32

o
33

o
12

[0064]
图3为两段式实数编码机器编码串示例,机器编码串[2131213]中第一个位置的2代表选择加工这道工序的候选机器集中的第二个台机器m3,机器编码对应的加工工序为工件顺序。
[0065]
在机器串编码中,采用四种初始解生成规则,全局选择(global selection,gs)、局部选择(local selection,ls)、最低负荷选择(minimum load selection,mls)和随机选择(random selection,rs)。gs和ls能够尽可能地平衡每台机器上的负荷,提高机器的利用率,在一定程度上减小初始解的最大完工时间;规则可以使机器总负荷目标值达到最优,降低算法的搜索范围。该规则具体操作过程为找到每道工序的所有候选机器集,比较每台机器的加工时间,从中选择加工时间最少的加工机器。mls而具有强随机性的rs可以取到解空间中的任意解,保证初始解的多样性。
[0066]
在工序串编码中,本文采用剩余负荷最大规则(maximum residual load,mrl)、加工时间最短优先(shortest process time,spt)规则和随机选择(random selection,rs)
三种规则。mrl把各个工件的剩余加工时间统计排序,优先加工剩余加工时间最长的工件;spt优先处理剩余加工时间短的工件;rs把各个工序进行随机排序选择。
[0067]
机器串生成规则gs/ls/mls/rs的选择概率分别为0.3/0.2/0.1/0.4,工序串的生成规则mrl/spt/rs的选择概率分别为0.3/0.3/0.4。
[0068]
步骤4:若达到设定的迭代次数,则输出外部档案,若没有达到则继续执行步骤5。
[0069]
步骤5:雇佣蜂采用工序编码串邻域搜索和机器编码串邻域搜索更新种群。
[0070]
工序编码串邻域搜索具体过程如下:
[0071]
1)随机选择两个工件j1和j2,记录两个工件在工序串中的位置;
[0072]
2)若工件j1工序数小于j2,首先把j1从左到右填充到j2原来的位置,j2的工序从左到又依次填充到剩余位置;若工件j1工序数大于j2,j1把j2位置填充满后,剩余工序从左至右填充至原来位置,j2把剩余位置填满;
[0073]
3)计算新解各目标值,若新解支配旧解,则用新解替换旧解。
[0074]
机器编码串邻域搜索具体过程如下:
[0075]
1)随机生成整数i,i不大于总工序数;
[0076]
2)在机器分配码中随机选取i个位置;
[0077]
3)为每道工序从候选机器集中随机选则一台机器,若只有一台则保持不变;
[0078]
4)计算新解各目标值,若新解支配旧解,则用新解替换旧解。
[0079]
步骤6:观察蜂阶段采用锦标赛选择操作选择交叉个体,采用交叉与多重变异操作。
[0080]
观察蜂阶段采用锦标赛选择操作选择交叉个体,采用交叉与多重变异操作。交叉操作的作用是在尽量降低对父代的有效模式的破坏的前提下,继承父代染色体优良的基因,从而实现对解空间的高效搜索,交叉操作保证了算法的全局搜索能力。ipox交叉按照下面的步骤进行操作如图4所示;
[0081]
1)从种群中选择一条工序串作为父代x1,生成一个0~1之间的随机数,若随机数小于0.5,从外部档案中选择一条工序串作为x2;若随机数在0.5~1之间,则种群中选出另一条工序串作为x2(即x2不能与x1相同);
[0082]
2)把n个工件j1,j2,...,j
n
分为两个互补的工件集r1和r2;
[0083]
3)把父代x1中包含在r1工件集中的工序号按照在x1中的位置复制到子代c1中,把x2中包含在r2工件集中的工序按照原顺序插入到子代c1的空缺处;
[0084]
4)把父代x2中包含在r2工件集中的工序号按照在x2中的位置复制到子代c2中,把x1中包含在r1工件集中的工序按照原顺序插入到子代c2的空缺处;
[0085]
5)保留子代c1和c2进行非支配排序更新外部档案集。
[0086]
多点交叉操作按照下面的步骤进行操作如图5所示;
[0087]
1)选则与父代x1工序串对应的机器串作为机器串父代p1,选则与父代x2工序串对应的机器串作为机器串父代p2;
[0088]
2)随机生成一个由0和1组成的长度与机器串相等的二进制串;
[0089]
3)把父代p1中与二进制串中与1位置相同的机器号复制到子代s1的相同位置;把父代p2中与二进制串中与0位置相同的机器号复制到子代s1的相同位置;
[0090]
4)把父代p2中与二进制串中与1位置相同的机器号复制到子代s2的相同位置;把父
代p1中与二进制串中与0位置相同的机器号复制到子代s2的相同位置;
[0091]
5)保留子代s1和s2进行非支配排序更新外部档案集。
[0092]
变异操作相对于交叉操作,最大的区别在于变异只是对染色体上个别基因进行操作,通过对染色体位置或者出现的位置进行微调,好的变异操作可以维持种群的多样性,而且种群的多样性是保证算法跳出局部最优的关键所在,变异操作在一定程度上影响了算法的局部搜索能力。
[0093]
交换变异操作按照下面的步骤进行操作如图6所示;
[0094]
1)选择工序串中任意位置pos1,再选择除pos1外的另一位置pos2;
[0095]
2)交换两个位置的工件号,生成新的工序顺序码;
[0096]
3)对新种群进行非支配排序并更新外部档案集。
[0097]
插入变异操作按照下面的步骤进行操作如图7所示;
[0098]
1)选择工序串中任意位置pos1;
[0099]
2)取出pos1位置的工件,插入到任意位置pos2,该位置前后的工序串均保持不变;
[0100]
3)对新种群进行非支配排序并更新外部档案集。
[0101]
交换变异与插入变异的局部搜索能力较强,但全局搜索能力弱,故提出一种全局搜索能力强的改进逆序变异方法与以上变异方法优势互补。
[0102]
改进逆序变异操作按照下面的步骤进行操作如图8所示;
[0103]
1)选择工序串中任意位置pos1;
[0104]
2)将pos1位置两边的工序编码串的顺序分别进行逆序处理,形成新的工序编码串;
[0105]
3)对新种群进行非支配排序并更新外部档案集。
[0106]
机器变异操作按照下面的步骤进行操作;
[0107]
1)随机选择机器分配码中的一个位置;
[0108]
2)找到该位置的候选机器集,选择与原机器不同的机器进行加工;
[0109]
3)对新种群进行非支配排序并更新外部档案集。
[0110]
针对碳排放目标提出一种启发式的低碳机器变异策略:任意选取一道工序,在其可选机器集中选择一台碳排量最小的机器进行变异。
[0111]
步骤7:侦查蜂阶段增加雇佣蜂转换为侦查蜂的数量并跳转到步骤4,直至满足步骤4所述迭代次数,获得优化后的调度模型,判断动态事件类型。
[0112]
侦查蜂阶段增加雇佣蜂转换为侦查蜂的数量。由于初始调度阶段不存在动态事件,且后续调度方案的稳定性以初始方案为基准,所以初始调度的稳定性为0。将imoabc算法独立运行30次,选取12个pareto解列于表2中。可以看出两个目标相互对立,在pareto解集中一个目标的优化导致另一个优化目标值变差,图9和图10分别对应最大完成时间最小和碳排放最小的甘特图。
[0113]
依据车间中订单、工序和机器关键信息将动态事件分为订单取消、紧急订单和机器故障三类;订单取消时把一部分订单移除工件集,并对剩余工件重新分配机器加工;紧急订单时,将紧急订单工件加工工件集合中,并且自动给其最高优先级,待给紧急订单分配的完成时间为最短后,在紧急订单后重新安排原订单加工;机器故障时,自动将故障机器移除可用机器集,将工序安排到其它机器上加工,当故障机器修复完成后,可在原故障机器上重
新安排加工。以kacem数据集中的4
×
5算例为例详细阐述三种动态情况的处理方式。
[0114]
从图9可以看出,各台机器工序安排紧凑,工序之间空闲时间段少,因为机器功率最高的两台机器m1和m4加工速度快,因此侧重最大完工时间这一目标时,m1和m4空闲时间所剩不多,该调度方案的最大完成时间40为所有方案中的最小值。但m1和m4加工工件时产生的碳排放伴随其大功率而攀升,因此该调度方案的碳排放为952.96,在12个pareto解中最高。从图9和图10的对比中可以看出,由于机器m1和m4功率高,加工产生的碳排放大,所以m1和m4在碳排放最小调度方案中安排的加工工序少;机器m2可加工工序多,且机器m2功率低,故图10方案中m2上加工的工序数量最多,相对于图9中的方案m2增加8道加工工序。从表2可以看出,最大完成时间的差距达到75%,碳排放差距达到21%,每个目标都给决策者提供充足的决策范围。假设决策者倾向最大完成时间目标,选用图9调度方案进行加工,基于此方案研究后续动态调度事件。
[0115]
表2初始调度pareto解集
[0116][0117][0118]
机器故障的处理:假设在加工过程中,在8时刻检测到机器m2故障,在故障发生时机器m2上有工序o
31
正在加工,则工件j3报废,将工件j3移出工件集,把m2移出可用机器集,直到故障处理完成。此时采取事件驱动策略,立刻对剩余工件重调度,剩余工件按新的调度方案加工,在15时刻机器m2修复完成,再次进行重调度,把m2加入可用机器集。重调度后得到的pareto解如表3所示。根据初始调度方案决策者偏好,采用方案1,最大完成时间为43,完工时间仅仅增加了3个时刻,碳排放减少49.82,稳定性为157.5。方案1甘特图如图11所示(绿色工序块为已完成工序,红色工序块为损坏工序,蓝色工序块为动态事件发生时正在加工的工序,需要等待其完成加工后记录机器可重调度时刻)。由于o
53
只能在机器m2加工,因此等待机器故障在15时刻处理完成后,重新安排调度。
[0119]
表3机器故障后pareto解
[0120][0121]
订单取消的处理当图11调度方案加工到20时刻,检测到订单取消动态事件,工件j1取消,采用imoabc算法对剩余待加工工件初始化后进行重调度,工件取消重调度后的部分pareto解如表4所示。最大完成时间最小的是方案1,碳排放量最小的是方案12,稳定性最好的为方案4。依据决策者偏好采用最大完成时间为42的方案1加工剩余工件,甘特图如图12所示。
[0122]
表4工件取消的后pareto解
[0123][0124][0125]
图12中,订单取消发生在20时刻,工件j1取消,此时工件j1还有工序o
14
、o
15
和o
16
尚未加工,将j1移除待加工工序集,此时原定方案中出现空闲时间,因此对剩余工序重新安排调度后,最大完成时间减小1。
[0126]
紧急订单插入的处理:假设在25时刻检测到紧急订单需要加工,共有2个工件6道工序,订单具体信息如表5所示。此时紧急订单具有最高优先级,应立即进行重调度处理。重调度后得到的部分pareto解如表6所示。同样以最大完成时间为决策偏好,选择最大完成时间最小的方案1,该方案的最大完成时间为43,碳排放999.60,稳定性193.5,调度甘特图如图13所示。在25时刻接到紧急订单,此时除m5外其它机器均有工序在加工,记录各机器可加
工紧急工件的最早时刻,重新安排调度,待紧急工件j
11
和j
12
插入到机器m4和m5上加工后,记录其在各机器上的完成时间,再安排原调度方案中剩余工件加工,在33时刻紧急订单完成,最终完成时间为43。
[0127]
表5紧急订单信息
[0128][0129]
表6紧急订单插入后的pareto解
[0130][0131]
机器故障导致可用机器数量减少,增加了最大完成时间;订单取消降低生产任务量,势必减少碳排放;紧急订单插入同时影响最大完成时间和碳排放,使二者均变大。综合上述三种动态事件响应情况,最大完成时间由初始调度方案的40增加到43,增幅7.5%;碳排放由952.96增加到999.60,增幅4.9%;稳定性指标由原方案中的0变为193.5,说明动态事件响应过程中存在工件提前和滞后加工的情况。
[0132]
本发明采用基于事件驱动的重调度策略来处理柔性作业车间动态调度问题,优化最大完成时间、碳排放和稳定性三个目标。在brandimarte数据集mk01算例数据的基础上加入功率信息,针对常见的机器故障、订单取消和紧急订单插入三种情况,采用imoabc算法对调度方案进行调整,输出调整后的pareto解集,针对三种动态扰动,与初始调度方案比较,最大完成时间增加7.5%,碳排放增加4.9%。imoabc算法能够快速响应动态事件,维持车间稳定运行。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜