基于混合集合蛙跳与变邻域算法的平行机调度方法及系统与流程

文档序号:11431791阅读:201来源:国知局
基于混合集合蛙跳与变邻域算法的平行机调度方法及系统与流程

本发明涉及供应链技术领域,具体涉及一种基于混合集合蛙跳与变邻域算法的平行机调度方法及系统。



背景技术:

现有技术中提出了一些关于批处理机工件的调度问题的一些解决方案。以下进行简要说明:

(1)批调度相关:li等人研究了一类不相关平行批处理机工件加工问题。基于问题复杂性的考虑,他们提出了基于bflpt的启发式算法解决该问题。

具体参见lix,huangyl,tanq,etal.schedulingunrelatedparallelbatchprocessingmachineswithnon-identicaljobsizes.computers&operationsresearch,2013,40(12):2983-2990.

(2)工件恶化相关:wang等人研究了一类工件加工时间随着其开始加工时间非线性增加的生产调度问题。基于问题性质,他们提出了用于解决该问题的最优算法以及启发式算法。

具体参见wang,j.,wang,m.,2012.single-machineschedulingwithnonlineardeterioration.optimizationletters6,87-98.

(3)元启发式算法相关:eusuff等人于2003年受到自然界青蛙捕捉食物的过程的启发,提出了集合蛙跳算法。该算法的一般步骤为:

步骤一、初始化青蛙种群;

步骤二、依据每个个体的适应度值,将整个种群分为若干组;

步骤三、每组进行局部搜索;

步骤四、将分散的各组集合起来;

步骤五、判断终止条件是否达到,若为达到则转到步骤二。

该算法的优势在于集合操作可以使得在每次迭代时各个个体能进行一定的信息交流,增强了算法的寻优能力。

具体参见eusuff,m.m.,lansey,k.e.,2003.optimizationofwaterdistributionnetworkdesignusingtheshuffledfrogleapingalgorithm.journalofwaterresourcesplanning&management129,210-225。

在对相关技术进行研究的过程中,发明人发现:在传统的批调度的研究中,工件时间都是一个确定的值,工件的恶化效应很少被考虑。此外,在传统的集合蛙跳算法中,局部搜索类似于粒子群算法中的粒子的迁移策略,收敛精度低且容易陷入局部最优,不能有效地解决离散组合优化问题。这样导致调度不够合理。



技术实现要素:

本发明实施例的一个目的在于提高批处理机工件的过程中调度的合理性。

第一方面,本发明实施例提供了一种基于混合集合蛙跳与变邻域算法的多个不相关平行批处理机的协同制造方法,包括:

步骤1、输入每个工件在每个机器上的一般加工时间,初始化算法参数,包括种群规模n,划分的组数s,当前迭代次数l,rvns算法最大迭代次数umax,最大迭代次数lmax,并设置l=1;

步骤2、初始化种群内各个青蛙的位置,记所述种群为其中表示第l代种群p(l)中的第i个个体,表示个体在第j个维度上的位置,表示对应的工件,i=1,2,…n,j=1,2,…n;

步骤3、计算种群p(l)中每个个体的适应度值;

步骤4、按照适应度值将种群平均划分为s个组,记所述各组集合为表示上述集合中的第s个组,表示组中的第l个个体,s=1,2,…s,l=1,2,…(n/s),设置s=1;

步骤5、计算组中的最优与最差个体,分别记为随机选择组的一个个体作为rvns算法的初始解,设置u=1;

步骤6、判断u≤umax是否成立,若成立,则转到步骤9;

步骤7、随机产生一个的第一类邻域个体x_1,判断x_1是否优于若成立,则将x_1赋给将u+1赋给u,转到步骤5;否则,转到步骤8;

步骤8、随机产生一个的第二类邻域个体x_2,判断x_2是否优于若成立,则将x_2赋给将u+1赋给u,转到步骤5;否则,转到步骤9;

步骤9、随机产生一个的第三类邻域个体x_3,判断x_3是否优于若成立,则将x_3赋给将u+1赋给u,转到步骤5;否则,转到步骤10;

步骤10、判断是否优于若成立,则将赋给否则将赋给

步骤11、判断s不大于s,若成立,则将s+1赋给s,并转到步骤5;

步骤12、判断l不大于lmax,若成立,则将l+1赋给l,并转到步骤3;否则结束算法,输出每个工件的执行机器和每个机器上的组批和批的加工顺序。

可选地,步骤3中,所述计算种群p(l)中每个个体的适应度值的具体步骤如下:

步骤31、按照个体的位置来指定工件的排列顺序,将所述工件排列顺序记为设置b=1;

步骤32、将φ中前c个工件组成一批,记为并将所述前c个工件从φ中删除,设置k=1;

步骤33、尝试将批放入机器mk上,并将机器mk上的当前所有批按照批基本加工时间的非减序的顺序进行加工,,批的基本加工时间为未发生恶化时批中所有工件加工时间的最大值。依据公式(1)计算mk上最后一批的完工时间,记为

步骤34、判断k是否不大于m,若成立,则将k+1赋给k,转到步骤3;否则,将安排到机器mk*上,其中

步骤35、判断b是否等于b,若成立,则输出当前所有机器上批完工时间的最大值作为个体p(l)的适应度值;否则,转到步骤36;

步骤36、判断φ中剩余的工件数量是否不大于c,若成立,则将b+1赋给b,并将剩余的工件组成批转到步骤33;否则,将b+1赋给b并转到步骤32。

可选地,步骤7中,所述随机产生一个的第一类邻域个体x_1的具体步骤如下:

步骤71、随机产生一个长度为n的向量a={a1,…,aj,…,an},向量的各个元素的取值范围为(0,1),其中,向量a的各个元素与个体的各个元素一一对应;

步骤72、按照aj的非减序对个体的位置进行重新排序;

步骤73、重新排序生成的个体记为x_1。

可选地,步骤8中,所述随机产生一个的第二类邻域个体x_2的具体步骤如下:

步骤81、随机选择个体的两个位置进行交换;

步骤82、重复步骤81若干次得到个体x_2。

可选地,步骤9中,所述随机产生一个的第三类邻域个体x_3的具体步骤如下:

步骤91、随机选择个体的两个位置,并将其中一个位置的值插入到另一个位置之前;

步骤92、重复步骤91若干次得到个体x_3。

第二方面,本发明实施例提供了一种基于混合集合蛙跳与变邻域算法的多个不相关平行批处理机的协同制造系统,包括:

计算模块,同于执行:

步骤1、输入每个工件在每个机器上的一般加工时间,初始化算法参数,包括种群规模n,划分的组数s,当前迭代次数l,rvns算法最大迭代次数umax,最大迭代次数lmax,并设置l=1;

步骤2、初始化种群内各个青蛙的位置,记所述种群为其中表示第l代种群p(l)中的第i个个体,表示个体在第j个维度上的位置,表示对应的工件,i=1,2,…n,j=1,2,…n;

步骤3、计算种群p(l)中每个个体的适应度值;

步骤4、按照适应度值将种群平均划分为s个组,记所述各组集合为表示上述集合中的第s个组,表示组中的第l个个体,s=1,2,…s,l=1,2,…(n/s),

设置s=1;

步骤5、计算组中的最优与最差个体,分别记为随机选择组的一个个体作为rvns算法的初始解,设置u=1;

步骤6、判断u≤umax是否成立,若成立,则转到步骤9;

步骤7、随机产生一个的第一类邻域个体x_1,判断x_1是否优于若成立,则将x_1赋给将u+1赋给u,转到步骤5;否则,转到步骤8;

步骤8、随机产生一个的第二类邻域个体x_2,判断x_2是否优于若成立,则将x_2赋给将u+1赋给u,转到步骤5;否则,转到步骤9;

步骤9、随机产生一个的第三类邻域个体x_3,判断x_3是否优于若成立,则将x_3赋给将u+1赋给u,转到步骤5;否则,转到步骤10;

步骤10、判断是否优于若成立,则将赋给否则将赋给

步骤11、判断s不大于s,若成立,则将s+1赋给s,并转到步骤5;

输出模块,用于执行步骤12,在判断l不大于lmax,若成立,则将l+1赋给l,并转到步骤3;否则结束算法,输出每个工件的执行机器和每个机器上的组批和批的加工顺序。

本发明实施例针对拟解决的针对多个不相关批处理机器上的工件协同生产加工的问题,依据工件的在不同机器的一般加工时间和恶化情况,将工件分配至各机器并安排工件的组批和加工顺序,从而最小化最大完工时间,依据单机问题的最优解的性质,设计了有效的多机启发式规则,并将改规则融入改进集合蛙跳算法中用于解决该问题。经典集合蛙跳算法的改进策略主要是通过引入变邻域算法改进经典集合蛙跳算法的局部搜索过程,增强了原有算法的收敛速度和寻优能力。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明一实施例提供的一种基于混合集合蛙跳与变邻域算法的多个不相关平行批处理机的协同制造方法的流程示意图;

图2是本发明一实施例提供的一种基于混合集合蛙跳与变邻域算法的多个不相关平行批处理机的协同制造系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明各个实施例主要针对多个不相关批处理机器上的工件协同生产加工的问题。涉及的加工机器为批处理机,其特征是可以将多个工件组为一批,以批为单位进行加工,批处理时间等于该批所有工件中的最长加工时间。在本发明中每个工件在各个机器上的加工时间是不相同的。此外,受到机器老化效应和工人的疲劳等因素的影响,工件的加工时间会随着其开始加工时间的增加而增加,其中工件的加工时间与其开始时间之间具有非线性的函数关系。本发明涉及的工业领域主要包括半导体制造、金属加工、钢铁制造业等。

为便于理解,下面以一个实施例来说明本发明实施例提供的方法所要解决的问题。多个不相关批处理机器上的工件协同生产加工的问题,目标为最小化制造跨度。该问题描述如下:给定一组包含n个工件的任务集合,需要在m个平行批处理机上进行加工。所述工件集合记为j={j1,…,jj,…,jn},每个工件的尺寸相同。所述机器集合记为m={m1,…,mk,…,mm},,各批处理机具有相同的容量记为c。基本加工时间矩阵ω表示为|pn1pn2…pnm|。

工件jj在机器mk上的基本加工时间记为pjk,基本加工时间表示为发生恶化时的工件的基础加工时间,其中j=1,2…,n,k=1,2…,m

问题假设如下:

(1)所有工件是相容的,在满足机器容量约束的条件下可以将多个工件放入同一批中进行加工,批的加工时间由批中加工时间最长的工件以及加工机器所决定;

(2)受工件恶化效应的影响,工件的加工时间随着其开始加工时间非线性增加,计算公式如公式(1)所示:

其中,为工件jj在机器mk上的实际加工时间,t为工件jj在机器mk上的开始加工时间,α,β,λ为常量,并且α≥1,λ>1。

基于此,本发明实施例提供的一种基于混合集合蛙跳与变邻域算法的多个不相关平行批处理机的协同制造方法,可以参考图1,包括:

步骤1、输入每个工件在每个机器上的一般加工时间,初始化算法参数,包括种群规模n,划分的组数s,当前迭代次数l,rvns算法最大迭代次数umax,最大迭代次数lmax,并设置l=1;

步骤2、初始化种群内各个青蛙的位置,记所述种群为其中表示第l代种群p(l)中的第i个个体,表示个体在第j个维度上的位置,表示对应的工件,i=1,2,…n,j=1,2,…n;

步骤3、计算种群p(l)中每个个体的适应度值;

步骤4、按照适应度值将种群平均划分为s个组,记所述各组集合为

其中,表示上述集合中的第s个组,表示组中的第l个个体,s=1,2,…s,l=1,2,…(n/s),设置s=1;

步骤5、计算组中的最优与最差个体,分别记为随机选择组的一个个体作为rvns算法的初始解,设置u=1;

步骤6、判断u≤umax是否成立,若成立,则转到步骤9;

步骤7、随机产生一个的第一类邻域个体x_1,判断x_1是否优于若成立,则将x_1赋给将u+1赋给u,转到步骤5;否则,转到步骤8;

步骤8、随机产生一个的第二类邻域个体x_2,判断x_2是否优于若成立,则将x_2赋给将u+1赋给u,转到步骤5;否则,转到步骤9;

步骤9、随机产生一个的第三类邻域个体x_3,判断x_3是否优于若成立,则将x_3赋给将u+1赋给u,转到步骤5;否则,转到步骤10;

步骤10、判断是否优于若成立,则将赋给否则将赋给

步骤11、判断s不大于s,若成立,则将s+1赋给s,并转到步骤5;

步骤12、判断l不大于lmax,若成立,则将l+1赋给l,并转到步骤3;否则结束算法,输出每个工件的执行机器和每个机器上的组批和批的加工顺序。

在具体实施时,步骤3中计算种群p(l)中每个个体的适应度值可以通过多种实施方式,其中一种可选的事实方式包括如下步骤:

步骤31、按照个体的位置来指定工件的排列顺序,将所述工件排列顺序记为设置b=1;

步骤32、将φ中前c个工件组成一批,记为并将所述前c个工件从φ中删除,设置k=1;

步骤33、尝试将批放入机器mk上,并将机器mk上的当前所有批按照批基本加工时间的非减序的顺序进行加工,,批的基本加工时间为未发生恶化时批中所有工件加工时间的最大值。依据公式(1)计算mk上最后一批的完工时间,记为

步骤34、判断k是否不大于m,若成立,则将k+1赋给k,转到步骤3;否则,将安排到机器上,其中

步骤35、判断b是否等于b,若成立,则输出当前所有机器上批完工时间的最大值作为个体p(l)的适应度值;否则,转到步骤36;

步骤36、判断φ中剩余的工件数量是否不大于c,若成立,则将b+1赋给b,并将剩余的工件组成批转到步骤33;否则,将b+1赋给b并转到步骤32。

在具体实施时,步骤7中随机产生一个的第一类邻域个体x_1可以通过多种实施方式,其中一种可选的事实方式包括如下步骤:

步骤71、随机产生一个长度为n的向量a={a1,…,aj,…,an},向量的各个元素的取值范围为(0,1),其中,向量a的各个元素与个体的各个元素一一对应;

步骤72、按照aj的非减序对个体的位置进行重新排序;

步骤73、重新排序生成的个体记为x_1。

在具体实施时,步骤8中随机产生一个的第二类邻域个体x_2可以通过多种实施方式,其中一种可选的事实方式包括如下步骤:

步骤81、随机选择个体的两个位置进行交换;

步骤82、重复步骤1若干次得到个体x_2。

在具体实施时,步骤9中随机产生一个的第三类邻域个体x_3可以通过多种实施方式,其中一种可选的事实方式包括如下步骤:

步骤91、随机选择个体的两个位置,并将其中一个位置的值插入到另一个位置之前;

步骤92、重复步骤1若干次得到个体x_3。

本发明实施例提供的基于混合集合蛙跳与变邻域算法的多个不相关平行批处理机的协同制造方法中,针对拟解决的针对多个不相关批处理机器上的工件协同生产加工的问题,设计混合集合蛙跳与变邻域算法的元启发式算法,首先编码确定一个工件序列,然后依据问题的性质提出相应的组批策略和批调度启发式算法,得出相应个体的适应度值;其次,引入变邻域搜索算法作为原集合蛙跳算法的局部搜索过程,提高了解的质量,加快了算法的收敛速度,通过重复迭代,实现了对种群的不断更新,最终求得最优解。

此外,本发明实施例提供的方法在变邻域算法中设计了三种较为有效的邻域结构,分别是基于随机键思想的邻域结构、基于多重交换的邻域结构以及基于多重插入的邻域结构,这三种邻域结构兼顾了算法在种群多样性、随机性以及加速收敛等方面的要求,避免算法陷入局部最优,提高了算法的搜索深度与广度。

基于相同的构思,本发明另一实施例还提供了一种基于混合集合蛙跳与变邻域算法的多个不相关平行批处理机的协同制造系统,参见图2,包括:

计算模块21,同于执行:

步骤1、输入每个工件在每个机器上的一般加工时间,初始化算法参数,包括种群规模n,划分的组数s,当前迭代次数l,rvns算法最大迭代次数umax,最大迭代次数lmax,并设置l=1;

步骤2、初始化种群内各个青蛙的位置,记所述种群为其中表示第l代种群p(l)中的第i个个体,表示个体在第j个维度上的位置,表示对应的工件,i=1,2,…n,j=1,2,…n;

步骤3、计算种群p(l)中每个个体的适应度值;

步骤4、按照适应度值将种群平均划分为s个组,记所述各组集合为

其中,表示上述集合中的第s个组,表示组中的第l个个体,s=1,2,…s,l=1,2,…(n/s),设置s=1;

步骤5、计算组中的最优与最差个体,分别记为随机选择组的一个个体作为rvns算法的初始解,设置u=1;

步骤6、判断u≤umax是否成立,若成立,则转到步骤9;

步骤7、随机产生一个的第一类邻域个体x_1,判断x_1是否优于若成立,则将x_1赋给将u+1赋给u,转到步骤5;否则,转到步骤8;

步骤8、随机产生一个的第二类邻域个体x_2,判断x_2是否优于若成立,则将x_2赋给将u+1赋给u,转到步骤5;否则,转到步骤9;

步骤9、随机产生一个的第三类邻域个体x_3,判断x_3是否优于若成立,则将x_3赋给将u+1赋给u,转到步骤5;否则,转到步骤10;

步骤10、判断是否优于若成立,则将赋给否则将赋给

步骤11、判断s不大于s,若成立,则将s+1赋给s,并转到步骤5;

输出模块22,用于执行步骤12,在判断l不大于lmax,若成立,则将l+1赋给l,并转到步骤3;否则结束算法,输出每个工件的执行机器和每个机器上的组批和批的加工顺序。

可选的,计算模块21执行步骤7中的随机产生一个的第一类邻域个体x_1的具体步骤包括:

步骤71、随机产生一个长度为n的向量a={a1,…,aj,…,an},向量的各个元素的取值范围为(0,1),其中,向量a的各个元素与个体的各个元素一一对应;

步骤72、按照aj的非减序对个体的位置进行重新排序;

步骤73、重新排序生成的个体记为x_1。

可选的,计算模块21执行步骤8中的随机产生一个的第二类邻域个体x_2的具体步骤包括:

步骤81、随机选择个体的两个位置进行交换;

步骤82、重复步骤1若干次得到个体x_2。

可选的,计算模块21执行步骤9中随机产生一个的第三类邻域个体x_3的具体步骤包括:

步骤91、随机选择个体的两个位置,并将其中一个位置的值插入到另一个位置之前;

步骤92、重复步骤1若干次得到个体x_3。

本发明的实施例提供的基于混合集合蛙跳与变邻域算法的多个不相关平行批处理机的协同制造系统中,针对拟解决的针对多个不相关批处理机器上的工件协同生产加工的问题,依据工件的在不同机器的一般加工时间和恶化情况,将工件分配至各机器并安排工件的组批和加工顺序,从而最小化最大完工时间,依据单机问题的最优解的性质,设计了有效的多机启发式规则,并将改规则融入改进集合蛙跳算法中用于解决该问题。经典集合蛙跳算法的改进策略主要是通过引入变邻域算法改进经典集合蛙跳算法的局部搜索过程,增强了原有算法的收敛速度和寻优能力。

本发明实施例还公开一种计算机程序产品,所述计算机程序产品包括存储在计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:第一方面所述的方法。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

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