CN112686474A - 一种基于改进的水波优化算法的可并行装配线平衡方法 - Google Patents
一种基于改进的水波优化算法的可并行装配线平衡方法 Download PDFInfo
- Publication number
- CN112686474A CN112686474A CN202110093837.5A CN202110093837A CN112686474A CN 112686474 A CN112686474 A CN 112686474A CN 202110093837 A CN202110093837 A CN 202110093837A CN 112686474 A CN112686474 A CN 112686474A
- Authority
- CN
- China
- Prior art keywords
- chromosome
- individual
- processes
- assembly line
- chromosome individual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- General Factory Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于改进的水波优化算法的可并行装配线平衡方法。所述方法包括:收集数据;初始化水波优化算法的参数;计算工序的后续时间和紧后工序数量,并且初始化种群;使用适应度值函数f(X)计算种群中所有染色体个体的适应度值,并且记录适应度值最高的染色体个体为Xbest;更新种群中的所有染色体个体;判断是否达到算法结束条件,如果达到,将最优染色体个体Xbest解码为一个调度方案,使用该调度方案调整实际装配线,结束整个过程,否则,将当前迭代次数加1并返回更新种群中的所有染色体个体。本发明的一种基于改进的水波优化算法的可并行装配线平衡方法能够对可并行装配线平衡问题实现有效的求解,能有效提高大型装配线的生产效率,降低生产成本。
Description
技术领域
本发明涉及制造业中装配线平衡领域,具体涉及一种基于改进的水波优化算法的可并行装配线平衡方法。
背景技术
在当今工业生产中,随着技术水平的提高,大部分工业产品在生产过程中都需要经过很多的工序,而在一个生产车间中,这些工序通常都涉及不同种类的资源,如工人、设备、空间等。调度这些资源通常需要工作经验丰富的生产专家人工制定调度方案。在涉及工序较少的产品的生产过程中,人工指定调度方案通常能够起到一定的效果,但是在涉及工序较多的产品的生产过程中,特别是大型机械装备的制造过程中,人工制定调度方案耗时耗力,且可能造成装配线上不同资源的忙闲不均、装配线的生产效率不高等问题。
复杂的装配线平衡问题是NP-hard问题,很难在可接受的时间内找到最优解。因此,近些年来很多学者都使用启发式算法或者元启发式算法求解这类问题,如遗传算法,粒子群算法,禁忌搜索算法。对于可并行装配线的问题,现有的研究[1]在解决工序数量特别多的复杂问题时会出现求解时间过长的问题,本发明利用满足单调递增的概率密度函数的概率根据工序的后续时间和紧后工序的启发式信息进行算法初始化,从而实现在较短的时间内求解,提高算法效率。现有研究(Michels A S,Lopes T C,Sikora C G S,et al.ABenders'decomposition algorithm with combinatorial cuts for the multi-mannedassembly line balancing problem[J].European Journal of Operational Research,2019,278.)在寻优时易陷入局部最优解。
发明内容
本发明的目的是提供一种解决可并行装配线平衡问题的改进水波优化算法,本发明通过改进的水波优化算法,对染色体个体进行传播、碎浪、折射操作,能够很好提升算法的性能。通过算法得到的方案能够很有效的提高生产效率,降低生产成本。
本发明的目的至少通过如下技术方案之一实现。
一种基于改进的水波优化算法的可并行装配线平衡方法,包括以下步骤:
S1、分析可并行装配线特点和收集数据;
S2、初始化水波优化算法的参数;
S3、计算工序的后续时间和紧后工序数量,并且以这两个信息为启发式信息初始化种群;
S4、使用适应度值函数f(X)计算种群中所有染色体个体的适应度值,并且记录适应度值最高的染色体个体为Xbest;
S5、更新种群中的所有染色体个体;
S6、判断是否达到算法结束条件,如果达到,将最优染色体个体Xbest解码为一个调度方案,使用该调度方案调整实际装配线,结束整个过程,否则,将当前迭代次数加1并返回步骤S5。
进一步地,步骤S1中,在复杂产品的装配线上,生产一个产品需要多个工序,不同工序之间具有先后约束关系;将整个生产过程分为几个工作站,将工序分配到工作站上,将待装配的产品顺序通过所有的工作站,也即一个半成品必须要完成一个工作站的所有工序后,才能开始加工下一个工作站上的工序;
装配线平衡问题的目标是:在每个工作站的加工时间Ts不超过节拍时间CT的前提下,找到一个调度方案使得工作站总数量最小;当工作站上工序加工不允许并行时,即同一时间一个工作站只能加工一个工序,则Ts等于该工作站上所有工序时间的总和;当工作站上工序加工允许并行时,一个工作站同一时间可以加工多个工序,因此Ts小于工作站上所有工序时间的总和,但是一个工作站的空间有限,只能承载有限数量的工人同时作业,因此同时加工工序的数量也是有限的;
在不可并行的装配线平衡问题中,一个工作站在任意时刻都只能加工一个工序,因此工件在工作站上的加工时间是该工作站上所有的工序的时间之和;在可并行的装配线平衡问题中,一个工作站可以同时加工多个工序,因此工件在工作站上的加工时间小于等于该工作站上所有工序的加工时间之和;但是每个工作站的空间是有限的,有限的空间内能承载的工人数量是有限的,因此一个工作站能同时加工的工序数量也是有限的;在可并行的装配线平衡问题中,工序还需要被指派到某一个工人上,因此可并行装配线平衡问题相较不可并行的问题更加复杂,除了需要将工序分配到工作站上,使得工作站的加工时间在小于节拍时间的同时使得所用到的工作站数量尽可能少;另外,还需要对工作站上的工序指派工人,并考虑工人的工作效率最大,使用的工人数最少;可并行问题相较不可并行问题更加复杂,更难求解;
收集的数据包括工序的编号oi,工序所需要的工人数量pi,工序的加工时长ti,工序的紧前工序。
进一步地,步骤S2中,初始化的参数包括总的迭代次数N,初始波长为λ0,种群大小PS,碎浪算子片段最大长度MML,最大高度Hmax,适应度值函数f(X),一个工作站可以容纳的人数Pmax,当前迭代次数iter=0。
进一步地,步骤S3中,使用的编码是基于工序的编码,染色体个体形如[o1,o2,o3,…,on],n为工序数量,i=1,2,…,n,oi均为工序的编号,代表生产过程中的一个工序,一个工序在染色体个体中占据的位置称为基因位;
一个工序的后续时间的定义如下:在不考虑任何资源限制的情况下,从该工序完成时刻计,最短还需要多长时间才能完成所有工序的加工;
一个工序的紧后工序的定义为:在工序顺序关系图中,有一条边以工序oa为起点以工序ob为终点,那么ob就是oa紧后工序;相应的,oa是ob紧前工序;
一个工序的紧后工序数量的定义为:一个工序的紧后工序的数量和;
在使用后续时间以及紧后工序数量这两个信息作为启发式信息进行初始化过程中,后续时间越长的工序有更大概率排在越靠前的基因位,后续时间相同的工序,紧后工序数量越多的工序有更大概率排在越靠前的基因位;使用启发式信息能够在短时间内找到较优解;初始化种群即为将初始化染色体个体的过程重复PS次,记录下所有产生的染色体个体,染色体个体还具有波长和高度属性;初始化染色体个体的具体过程如下:
S3.1、初始化集合A,其为所有紧前工序数量为0的工序集合,初始化时集合A不为空集;初始化集合B为空集;初始化染色体个体X为空,即不包含任何工序;
S3.2、如果集合A为空集,那么就得到最终的初始化染色体个体X,将染色体个体的波长设置为λ=λ0,高度设置为H=Hmax,结束初始化染色体个体的过程,否则,执行步骤S3.3;
S3.3、记录集合A的大小为SA,将集合A中所有工序按照后续时间从小到大排列,后续时间相同的工序按照紧后工序数量从小到大排列,并且按照排列的顺序设置所有工序的顺序号为0,1,…,SA-2,SA-1;
概率分布P并不唯一,只要它的概率密度函数是单调递增的;因为这样概率分布产生一个大的数的概率更大,那么就可以使得在步骤S3.5中,选择后续时间长的工序的概率更大;这样就可以实现后续时间越长的工序有越大的概率排在染色体靠前的基因位;
S3.5、更新染色体,即选择顺序号为index的工序加在染色体个体X的末尾基因位上;
S3.6更新集合A和集合B,即将顺序号为index的工序从集合A中删除并加入集合B;遍历顺序号为index的工序的所有紧后工序,若存在一个紧后工序的所有紧前工序都属于集合B,则将该紧后工序加入到集合A中;继续执行步骤S3.2。
进一步地,步骤S4中,计算所有染色体个体的适应度值时,计算适应度值f(X)需要将染色体X解码为可并行装配线的一个调度方案,然后计算调度方案中所用到的工作站数量和所用的工人人数,工作站数量越少或者工人人数越少的染色体个体有更高的适应度值,适应度值函数的公式如下:
f(X)=UB-(w1*NS+w2*NW)
其中w1,w2分别是工作站数量和工人数量的加权系数;NS是染色体个体X解码为调度方案中所用到的工作站数量;NW是染色体个体X解码为调度方案中所用到的工人总人数;UB是w1*NS+w2*NW的上限,本发明中UB取为即工序数量n和所有工序需要的人数加权和;
解码采用贪心算法,贪心策略为:如果当前工作站有足够的工人使得当前工序能够完成,那么将当前工序分配到当前工作站;否则,新增一个工人再重新分配,如果工作站上因为空间限制无法新增工人,就新增一个工作站再重新分配;具体的解码的过程如下:
S4.1、初始化解码过程中的参数,即设工作站的数量NS=1,当前工作站上的工人人数NP=0,工人总人数为NW=0,当前工作站上的工人集合P为空集,设队列Q为一个空队列;将染色体个体X上所有的工序按照在染色体个体上出现的顺序加入队列Q中,工序的允许开工时刻tsi为0,其中i表示工序在染色体中的顺序编号,i=1,2,…,n;
S4.2、判断工序是否全部完成分配,即如果队列Q为空,输出工作站数量NS和工人总人数NW,结束解码过程,否则执行步骤S4.3;
S4.3、读取队列Q中当前工序的信息,即从队列Q头部出队一个元素,定义其为当前工序ocur,读取该工序需要的装配工人数信息pcur,装配时间信息tcur,允许开工时刻tsi;
S4.4、分配当前工序ocur的装配工人,即在集合P中的所有工人的空闲时间段中,找出在时间段[ta,tb]中有pcur个工人是空闲的,ta≥tsi,tb=ta+tcur;如果能找到pcur个工人在时间段[ta,tb]上是空闲的,则指派pcur个工人在时间段[ta,tb]上去加工工序ocur,并执行S4.6;如果不能找到pcur个工人在时间段[ta,tb]上是空闲的,则执行步骤S4.5;
S4.5、如果当前工作站的工人数NP<Pmax,则增加一个没有被指派任务的工人到当前工作站上,同时将该工人加入集合P,使NP=NP+1,执行步骤S4.4;否则,增加一个工作站,使NS=NS+1,NW=NW+NP,NP=0,将集合P设为空集,同时将队列中所有的工序的允许开工时刻tsi重新设置为0,执行步骤S4.4;
S4.6、如果工序ocur的所有紧后工序oi的允许开工时刻tsi小于tb,则将该紧后工序的允许开工时刻tsi设置为tb,执行步骤S4.2;否则保持tsi不变,执行步骤S4.2。
进一步地,步骤S5中,对种群中的每一个染色体个体进行如下操作:
S5.1、对染色体个体X使用传播算子得到一个新染色体个体Xp;
S5.2、若f(Xp)>f(X),则执行步骤S5.3;否则,令染色体个体的高度H减1,执行步骤S5.4;
S5.3、将染色体个体的高度重新设置为H=Hmax.并且对新染色体个体Xp进行碎浪算子得到碎浪后的新染色体个体Xb,若Xb的适应度值大于当前种群中最优染色体个体Xbest的适应度值,即f(Xb)>f(Xbest),则Xbest和X均更新为Xb;否则,将X更新为Xp;
S5.4、若染色体个体X的高度H为0,对染色体个体X使用折射算子获得一个折射后的新染色体个体Xr,将X更新为Xr;
S5.5、按照如下公式更新染色体个体的波长λ:
其中α是衰减系数,f(X)为当前染色体个体X的适应度值,f(Xmin),f(Xmax)分别为当前种群的适应度值的最小值和最大值,ε是一个接近零但不等于零的正数,防止出现指数的分母为0的情况。
进一步地,在步骤S5.1中,对染色体个体X做传播算子得到新染色体个体Xp的过程为将染色体个体X作为第一染色体P1,然后随机选择种群内部另外一个不同的染色体个体作为第二染色体P2,对于第一个染色体个体P1随机选择一个染色体片段,记录此片段的所有工序,将这些工序按照第二个染色体个体P2中的顺序放置在子代与P1所选片段相同位置的片段上,将第一染色体P1上所选片段之外的部分完全复制给子代,子代就是传播算子得到的新染色体个体Xp;
该传播算子所选片段长度由如下公式计算:
CL=λ*rand()*n;
其中λ是染色体个体的波长,rand()是[0,1)区间内的均匀分布的随机数,n是工序数量;使用这样的染色体片段长度选择策略可以使得在迭代初期,种群的多样性较优,在迭代末期,种群能够快速的收敛。
进一步地,在步骤S5.3中,对Xp进行碎浪算子得到碎浪后的新染色体个体Xb的过程如下:
先对Xp随机选择染色体片段,将该片段中所有的工序提取出来,不考虑片段之外的工序,使用步骤S3中初始化染色体个体的方法重新生成该染色体片段中的工序顺序,并替换该片段位置上的工序,得到碎浪后的新染色体个体Xb;碎浪算子中选择的染色体片段的长度由如下公式计算:
其中N为总的迭代次数,iter为当前迭代次数,rand()是[0,1)区间内的均匀分布的随机数,n是工序数量。
进一步地,在步骤S5.4中,对染色体个体X使用折射算子获得一个折射后的新染色体个体Xr的过程为:产生一个[0,1)区间内的均匀分布的随机数rand(),计算产生一个折射后的新染色体个体Xr的概率其中N为总的迭代次数,iter为当前迭代次数;若rand()>Pnew,则根据步骤S5.1中的传播算子,以当前染色体个体X为第一染色体P1,以种群中最好的染色体个体Xbest为第二染色体P2产生一个折射后的新染色体个体Xr;否则,则根据步骤S3中初始化染色体个体的过程产生一个折射后的新染色体个体Xr;
当迭代次数较少时,产生新染色体个体的概率较高,这样保证了算法初期染色体的多样性,当迭代次数较大时,产生新染色体个体的概率较低,保证算法后期能够收敛。
进一步地,步骤S6中,算法的结束条件为当前迭代次数iter等于N,如果满足,输出找到的最优染色体个体Xbest,将最优染色体个体Xbest解码为一个调度方案,该调度方案包括工人在工作站上的指派方案以及工序指派给工人的方案,使用该调度方案调整实际装配线,结束可并行装配线平衡方法;否则将当前迭代次数iter加1,即iter=iter+1,返回步骤S5。
相比与现有技术,本发明的优点在于:
本发明使用了启发式信息进行初始化,能够快速得到小规模问题的最优解,和大规模问题的可行解。
对比于现有技术,本发明能够找到工作站数量相同,但是工人人数更少的方案,且求解的时间大大降低。更少的工人数量可以节约生产部门的人力成本,提升生产效率。
附图说明
图1为本发明实施例中可并行装配线平衡方法的流程图。
图2为本发明实施例中可并行装配线上工序之间的顺序关系图。
图3为本发明实施例中传播算子的过程图示意图。
图4为实施例中产生一个染色体个体过程的流程图。
图5为实施例中解码过程的流程图。
图6为实施例中更新一个染色体个体过程的流程图。
具体实施方式
以下结合附图和案例对本发明的技术方案做进一步的说明。
实施例:
一种基于改进的水波优化算法的可并行装配线平衡方法,如图1所示,包括以下步骤:
S1、分析可并行装配线特点和收集数据;
在装配线平衡问题中,装配线上有多个工序,完成一个工序oi,需要pi个工人同时工作ti个小时完成加工。本实施例中,工序之间有如图2所示的先后关系,任意一个工序都必须要在其所有紧前工序完成后才能开始加工,在图2中,o2必须要在o1,o3完成之后才能开始加工,一条装配线又被分为不同工作站,如图2所示,所有的7个工序可以被分为3个工作区域,o1,o2,o3在第一工作站完成加工,o4,o5,o7在第二工作站完成加工,o6在第三工作站完成加工,工序和工作站也可以有其他的对应关系。待装配的半成品顺序通过所有的工作站,也即半成品需要加工完一个工作站上的所有工序,才能移动到下一个工作站进行加工。
装配线平衡问题的目标是:在每个工作站的加工时间Ts不超过节拍时间CT的前提下,找到一个调度方案使得工作站总数量最小并且使得工人人数尽量少;当工作站上工序加工不允许并行时,即同一时间一个工作站只能加工一个工序,则Ts等于该工作站上所有工序时间的总和;当工作站上工序加工允许并行时,一个工作站同一时间可以加工多个工序,因此TS小于工作站上所有工序时间的总和,但是一个工作站的空间有限,只能承载有限数量的工人同时作业,因此同时加工工序的数量也是有限的;这里的节拍时间是指从一个产品加工完成到下一个产品加工完成的时间间隔,节拍时间与产品的需求量有关,如果产品的需求量很大,那么节拍时间就必须要短;反之,节拍时间可以很长。
收集的数据包括工序的编号oi,工序所需要的工人数量pi,工序的加工时长ti,工序的紧前工序。
S2、初始化水波优化算法的参数;
初始化的参数包括总的迭代次数N,初始波长为λ0,种群大小PS,碎浪算子片段最大长度MML,最大高度Hmax,适应度值函数f(X),一个工作站可以容纳的人数Pmax,当前迭代次数iter=0。
本实施例中,迭代次数通常和所解决问题的规模有关,根据测试所得,当工序数量在50以内,N取1000次;工序数量大于50小于100,N取5000次;工序数量在100到200之间,N取10000次。初始波长λ0取0.5。种群大小PS取50,碎浪算子片段最大长度MML选取为工序数量的
S3、计算工序的后续时间和紧后工序数量,并且以这两个信息为启发式信息初始化种群;
使用的编码是基于工序的编码,染色体个体形如[o1,o2,o3,…,on],n为工序数量,i=1,2,…,n,oi均为工序的编号,代表生产过程中的一个工序,一个工序在染色体个体中占据的位置称为基因位;
一个工序的后续时间的定义如下:在不考虑任何资源限制的情况下,从该工序完成时刻计,最短还需要多长时间才能完成所有工序的加工;
一个工序的紧后工序的定义为:在如图2所示的工序顺序关系图中,一个工序的紧后工序的定义为:在工序顺序关系图中,有一条边以工序oa为起点以工序ob为终点,那么ob就是oa紧后工序;相应的,oa是oa紧前工序;图2中o2即为o1和o3的紧后工序。
一个工序的紧后工序数量的定义为:一个工序的紧后工序的数量和;
在使用后续时间以及紧后工序数量这两个信息作为启发式信息进行初始化过程中,后续时间越长的工序有更大概率排在越靠前的基因位,后续时间相同的工序,紧后工序数量越多的工序有更大概率排在越靠前的基因位;使用启发式信息能够在短时间内找到较优解;初始化种群即为将初始化染色体个体的过程重复PS次,记录下所有产生的染色体个体,染色体个体还具有波长和高度属性;如图4所示,初始化染色体个体的具体过程如下:
S3.1、初始化集合A,其为所有紧前工序数量为0的工序集合,初始化时集合A不为空集;初始化集合B为空集;初始化染色体个体X为空,即不包含任何工序;
S3.2、如果集合A为空集,那么就得到最终的初始化染色体个体X,将染色体个体的波长设置为λ=λ0,高度设置为H=Hmax,结束初始化染色体个体的过程,否则,执行步骤S3.3;
S3.3、记录集合A的大小为SA,将集合A中所有工序按照后续时间从小到大排列,后续时间相同的工序按照紧后工序数量从小到大排列,并且按照排列的顺序设置所有工序的顺序号为0,1,…,SA-2,SA-1;
概率分布P并不唯一,只要它的概率密度函数是单调递增的;因为这样概率分布产生一个大的数的概率更大,那么就可以使得在步骤S3.5中,选择后续时间长的工序的概率更大;这样就可以实现后续时间越长的工序有越大的概率排在染色体靠前的基因位;
S3.5、更新染色体,即选择顺序号为index的工序加在染色体个体X的末尾基因位上;
S3.6更新集合A和集合B,即将顺序号为index的工序从集合A中删除并加入集合B;遍历顺序号为index的工序的所有紧后工序,若存在一个紧后工序的所有紧前工序都属于集合B,则将该紧后工序加入到集合A中;继续执行步骤S3.2。
S4、使用适应度值函数f(X)计算种群中所有染色体个体的适应度值,并且记录适应度值最高的染色体个体为Xbest;
计算所有染色体个体的适应度值时,计算适应度值f(X)需要将染色体X解码为可并行装配线的一个调度方案,然后计算调度方案中所用到的工作站数量和所用的工人人数,工作站数量越少或者工人人数越少的染色体个体有更高的适应度值,适应度值函数的公式如下:
f(X)=UB-(w1*NS+w2*NW)
其中w1,w2分别是工作站数量和工人数量的加权系数;NS是染色体个体X解码为调度方案中所用到的工作站数量;NW是染色体个体X解码为调度方案中所用到的工人总人数;UB是w1*NS+w2*NW的上限,本发明中UB取为即工序数量n和所有工序需要的人数加权和;
解码采用贪心算法,贪心策略为:如果当前工作站有足够的工人使得当前工序能够完成,那么将当前工序分配到当前工作站;否则,新增一个工人再重新分配,如果工作站上因为空间限制无法新增工人,就新增一个工作站再重新分配;如图5所示,具体的解码的过程如下:
S4.1、初始化解码过程中的参数,即设工作站的数量NS=1,当前工作站上的工人人数NP=0,工人总人数为NW=0,当前工作站上的工人集合P为空集,设队列Q为一个空队列;将染色体个体X上所有的工序按照在染色体个体上出现的顺序加入队列Q中,工序的允许开工时刻tsi为0,其中i表示工序在染色体中的顺序编号,i=1,2,…,n;
S4.2、判断工序是否全部完成分配,即如果队列Q为空,输出工作站数量NS和工人总人数NW,结束解码过程,否则执行步骤S4.3;
S4.3、读取队列Q中当前工序的信息,即从队列Q头部出队一个元素,定义其为当前工序ocur,读取该工序需要的装配工人数信息pcur,装配时间信息tcur,允许开工时刻tsi;
S4.4、分配当前工序ocur的装配工人,即在集合P中的所有工人的空闲时间段中,找出在时间段[ta,tb]中有pcur个工人是空闲的,ta≥tsi,tb=ta+tcur;如果能找到pcur个工人在时间段[ta,tb]上是空闲的,则指派pcur个工人在时间段[ta,tb]上去加工工序ocur,并执行S4.6;如果不能找到pcur个工人在时间段[ta,tb]上是空闲的,则执行步骤S4.5;
S4.5、如果当前工作站的工人数NP<Pmax,则增加一个没有被指派任务的工人到当前工作站上,同时将该工人加入集合P,使NP=NP+1,执行步骤S4.4;否则,增加一个工作站,使NS=NS+1,NW=NW+NP,NP=0,将集合P设为空集,同时将队列中所有的工序的允许开工时刻tsi重新设置为0,执行步骤S4.4;
S4.6、如果工序ocur的所有紧后工序oi的允许开工时刻tsi小于tb,则将该紧后工序的允许开工时刻tsi设置为tb,执行步骤S4.2;否则保持tsi不变,执行步骤S4.2。
S5、更新种群中的所有染色体个体;
如图6所示,对种群中的每一个染色体个体进行如下操作:
S5.1、对染色体个体X使用传播算子得到一个新染色体个体Xp;
如图3所示,对染色体个体X做传播算子得到新染色体个体Xp的过程为将染色体个体X作为第一染色体P1,然后随机选择种群内部另外一个不同的染色体个体作为第二染色体P2,对于第一个染色体个体P1随机选择一个染色体片段,记录此片段的所有工序,将这些工序按照第二个染色体个体P2中的顺序放置在子代与P1所选片段相同位置的片段上,将第一染色体P1上所选片段之外的部分完全复制给子代,子代就是传播算子得到的新染色体个体Xp;
该传播算子所选片段长度由如下公式计算:
CL=λ*rand()*n;
其中λ是染色体个体的波长,rand()是[0,1)区间内的均匀分布的随机数,n是工序数量;使用这样的染色体片段长度选择策略可以使得在迭代初期,种群的多样性较优,在迭代末期,种群能够快速的收敛。
S5.2、若f(Xp)>f(X),则执行步骤S5.3;否则,令染色体个体的高度H减1,执行步骤S5.4;
S5.3、将染色体个体的高度重新设置为H=Hmax.并且对新染色体个体Xp进行碎浪算子得到碎浪后的新染色体个体Xb,若Xb的适应度值大于当前种群中最优染色体个体Xbest的适应度值,即f(Xb)>f(Xbest),则Xbest和X均更新为Xb;否则,将X更新为Xp;
对Xp进行碎浪算子得到碎浪后的新染色体个体Xb的过程如下:
先对Xp随机选择染色体片段,将该片段中所有的工序提取出来,不考虑片段之外的工序,使用步骤S3中初始化染色体个体的方法重新生成该染色体片段中的工序顺序,并替换该片段位置上的工序,得到碎浪后的新染色体个体Xb;碎浪算子中选择的染色体片段的长度由如下公式计算:
其中N为总的迭代次数,iter为当前迭代次数,rand()是[0,1)区间内的均匀分布的随机数,n是工序数量。
S5.4、若染色体个体X的高度H为0,对染色体个体X使用折射算子获得一个折射后的新染色体个体Xr,将X更新为Xr;
对染色体个体X使用折射算子获得一个折射后的新染色体个体Xr的过程为:产生一个[0,1)区间内的均匀分布的随机数rand(),计算产生一个折射后的新染色体个体Xr的概率其中N为总的迭代次数,iter为当前迭代次数;若rand()>Pnew,则根据步骤S5.1中的传播算子,以当前染色体个体X为第一染色体P1,以种群中最好的染色体个体Xbest为第二染色体P2产生一个折射后的新染色体个体Xr;否则,则根据步骤S3中初始化染色体个体的过程产生一个折射后的新染色体个体Xr;
当迭代次数较少时,产生新染色体个体的概率较高,这样保证了算法初期染色体的多样性,当迭代次数较大时,产生新染色体个体的概率较低,保证算法后期能够收敛。
S5.5、按照如下公式更新染色体个体的波长λ:
其中α是衰减系数,f(X)为当前染色体个体X的适应度值,f(Xmin),f(Xmax)分别为当前种群的适应度值的最小值和最大值,ε是一个接近零但不等于零的正数,通常取10-6,防止出现指数的分母为0的情况。
S6、判断是否达到算法结束条件,算法的结束条件为当前迭代次数iter等于N,如果满足,输出找到的最优染色体个体Xbest,将最优染色体个体Xbest解码为一个调度方案,该调度方案包括工人在工作站上的指派方案以及工序指派给工人的方案,使用该调度方案调整实际装配线,结束可并行装配线平衡方法;否则将当前迭代次数iter加1,即iter=iter+1,返回步骤S5。
本实施例中,在解决实际问题中,与数学规划的方法对比结果如表1所示。
表1
数学规划 | 本发明 | |
工作站数量 | 6 | 6 |
工人人数 | 37 | 24 |
求解时长 | 1000s | 9.8s |
可见,对比于现有技术,本发明能够找到工作站数量相同,但是工人人数更少的方案,且求解的时间大大降低。更少的工人数量可以节约生产部门的人力成本,提升生产效率。
Claims (10)
1.一种基于改进的水波优化算法的可并行装配线平衡方法,其特征在于,包括以下步骤:
S1、收集数据;
S2、初始化水波优化算法的参数;
S3、计算工序的后续时间和紧后工序数量,并且以这两个信息为启发式信息初始化种群;
S4、使用适应度值函数f(X)计算种群中所有染色体个体的适应度值,并且记录适应度值最高的染色体个体为Xbest;
S5、更新种群中的所有染色体个体;
S6、判断是否达到算法结束条件,如果达到,将最优染色体个体Xbest解码为一个调度方案,使用该调度方案调整实际装配线,结束整个过程,否则,将当前迭代次数加1并返回步骤S5。
2.根据权利要求1所述的一种基于改进的水波优化算法的可并行装配线平衡方法,其特征在于,步骤S1中,在复杂产品的装配线上,生产一个产品需要多个工序,不同工序之间具有先后约束关系;将整个生产过程分为几个工作站,将工序分配到工作站上,将待装配的产品顺序通过所有的工作站,也即一个半成品必须要完成一个工作站的所有工序后,才能开始加工下一个工作站上的工序;
收集的数据包括工序的编号oi,工序所需要的工人数量pi,工序的加工时长ti,工序的紧前工序。
3.根据权利要求2所述的一种基于改进的水波优化算法的可并行装配线平衡方法,其特征在于,步骤S2中,初始化的参数包括总的迭代次数N,初始波长为λ0,种群大小PS,碎浪算子片段最大长度MML,最大高度Hmax,适应度值函数f(X),一个工作站可以容纳的人数Pmax,当前迭代次数iter=0。
4.根据权利要求3所述的一种基于改进的水波优化算法的可并行装配线平衡方法,其特征在于,步骤S3中,使用的编码是基于工序的编码,染色体个体形如[o1,o2,o3,…,on],n为工序数量,i=1,2,…,n,oi均为工序的编号,代表生产过程中的一个工序,一个工序在染色体个体中占据的位置称为基因位;
一个工序的后续时间的定义如下:在不考虑任何资源限制的情况下,从该工序完成时刻计,最短还需要多长时间才能完成所有工序的加工;
一个工序的紧后工序的定义为:在工序顺序关系图中,有一条边以工序Oa为起点以工序Ob为终点,那么Ob就是Oa紧后工序;相应的,Oa是Ob紧前工序;
一个工序的紧后工序数量的定义为:一个工序的紧后工序的数量和;
初始化种群即为将初始化染色体个体的过程重复PS次,记录下所有产生的染色体个体,染色体个体还具有波长和高度属性;初始化染色体个体的具体过程如下:
S3.1、初始化集合A,其为所有紧前工序数量为0的工序集合,初始化时集合A不为空集;初始化集合B为空集;初始化染色体个体X为空,即不包含任何工序;
S3.2、如果集合A为空集,那么就得到最终的初始化染色体个体X,将染色体个体的波长设置为λ=λ0,高度设置为H=Hmax,结束初始化染色体个体的过程,否则,执行步骤S3.3;
S3.3、记录集合A的大小为SA,将集合A中所有工序按照后续时间从小到大排列,后续时间相同的工序按照紧后工序数量从小到大排列,并且按照排列的顺序设置所有工序的顺序号为0,1,…,SA-2,SA-1;
S3.5、更新染色体,即选择顺序号为index的工序加在染色体个体X的末尾基因位上;
S3.6更新集合A和集合B,即将顺序号为index的工序从集合A中删除并加入集合B;遍历顺序号为index的工序的所有紧后工序,若存在一个紧后工序的所有紧前工序都属于集合B,则将该紧后工序加入到集合A中;继续执行步骤S3.2。
5.根据权利要求4所述的一种基于改进的水波优化算法的可并行装配线平衡方法,其特征在于,步骤S4中,计算所有染色体个体的适应度值时,计算适应度值f(X)需要将染色体X解码为可并行装配线的一个调度方案,然后计算调度方案中所用到的工作站数量和所用的工人人数,工作站数量越少或者工人人数越少的染色体个体有更高的适应度值,适应度值函数的公式如下:
f(X)=UB-(w1*NS+w2*NW)
其中w1,w2分别是工作站数量和工人数量的加权系数;NS是染色体个体X解码为调度方案中所用到的工作站数量;NW是染色体个体X解码为调度方案中所用到的工人总人数;UB是w1*NS+w2*NW的上限,UB取为即工序数量n和所有工序需要的人数加权和;
解码采用贪心算法,贪心策略为:如果当前工作站有足够的工人使得当前工序能够完成,那么将当前工序分配到当前工作站;否则,新增一个工人再重新分配,如果工作站上因为空间限制无法新增工人,就新增一个工作站再重新分配;具体的解码的过程如下:
S4.1、初始化解码过程中的参数,即设工作站的数量NS=1,当前工作站上的工人人数NP=0,工人总人数为NW=0,当前工作站上的工人集合P为空集,设队列Q为一个空队列;将染色体个体X上所有的工序按照在染色体个体上出现的顺序加入队列Q中,工序的允许开工时刻tsi为0,其中i表示工序在染色体中的顺序编号,i=1,2,…,n;
S4.2、判断工序是否全部完成分配,即如果队列Q为空,输出工作站数量NS和工人总人数NW,结束解码过程,否则执行步骤S4.3;
S4.3、读取队列Q中当前工序的信息,即从队列Q头部出队一个元素,定义其为当前工序Ocur,读取该工序需要的装配工人数信息pcur,装配时间信息tcur,允许开工时刻tsi;
S4.4、分配当前工序Ocur的装配工人,即在集合P中的所有工人的空闲时间段中,找出在时间段[ta,tb]中有pcur个工人是空闲的,ta≥tsi,tb=ta+tcur;如果能找到pcur个工人在时间段[ta,tb]上是空闲的,则指派pcur个工人在时间段[ta,tb]上去加工工序Ocur,并执行S4.6;如果不能找到pcur个工人在时间段[ta,tb]上是空闲的,则执行步骤S4.5;
S4.5、如果当前工作站的工人数NP<Pmax,则增加一个没有被指派任务的工人到当前工作站上,同时将该工人加入集合P,使NP=NP+1,执行步骤S4.4;否则,增加一个工作站,使NS=NS+1,NW=NW+NP,NP=0,将集合P设为空集,同时将队列中所有的工序的允许开工时刻tsi重新设置为0,执行步骤S4.4;
S4.6、如果工序Ocur的所有紧后工序oi的允许开工时刻tsi小于tb,则将该紧后工序的允许开工时刻tsi设置为tb,执行步骤S4.2;否则保持tsi不变,执行步骤S4.2。
6.根据权利要求5所述的一种基于改进的水波优化算法的可并行装配线平衡方法,其特征在于,步骤S5中,对种群中的每一个染色体个体进行如下操作:
S5.1、对染色体个体X使用传播算子得到一个新染色体个体Xp;
S5.2、若f(Xp)>f(X),则执行步骤S5.3;否则,令染色体个体的高度H减1,执行步骤S5.4;
S5.3、将染色体个体的高度重新设置为H=Hmax.并且对新染色体个体Xp进行碎浪算子得到碎浪后的新染色体个体Xb,若Xb的适应度值大于当前种群中最优染色体个体Xbest的适应度值,即f(Xb)>f(Xbest),则Xbest和X均更新为Xb;否则,将X更新为Xp;
S5.4、若染色体个体X的高度H为0,对染色体个体X使用折射算子获得一个折射后的新染色体个体Xr,将X更新为Xr;
S5.5、按照如下公式更新染色体个体的波长λ:
其中α是衰减系数,f(X)为当前染色体个体X的适应度值,f(Xmin),f(Xmax)分别为当前种群的适应度值的最小值和最大值,ε是一个接近零但不等于零的正数,防止出现指数的分母为0的情况。
7.根据权利要求6所述的一种基于改进的水波优化算法的可并行装配线平衡方法,其特征在于,在步骤S5.1中,对染色体个体X做传播算子得到新染色体个体Xp的过程为将染色体个体X作为第一染色体P1,然后随机选择种群内部另外一个不同的染色体个体作为第二染色体P2,对于第一个染色体个体P1随机选择一个染色体片段,记录此片段的所有工序,将这些工序按照第二个染色体个体P2中的顺序放置在子代与P1所选片段相同位置的片段上,将第一染色体P1上所选片段之外的部分完全复制给子代,子代就是传播算子得到的新染色体个体Xp;
该传播算子所选片段长度由如下公式计算:
CL=λ*rand()*n;
其中λ是染色体个体的波长,rand()是[0,1)区间内的均匀分布的随机数,n是工序数量。
10.根据权利要求1~9任一项所述的一种基于改进的水波优化算法的可并行装配线平衡方法,其特征在于,步骤S6中,算法的结束条件为当前迭代次数iter等于N,如果满足,输出找到的最优染色体个体Xbest,将最优染色体个体Xbest解码为一个调度方案,该调度方案包括工人在工作站上的指派方案以及工序指派给工人的方案,使用该调度方案调整实际装配线,结束可并行装配线平衡方法;否则将当前迭代次数iter加1,即iter=iter+1,返回步骤S5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110093837.5A CN112686474B (zh) | 2021-01-22 | 2021-01-22 | 一种基于改进的水波优化算法的可并行装配线平衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110093837.5A CN112686474B (zh) | 2021-01-22 | 2021-01-22 | 一种基于改进的水波优化算法的可并行装配线平衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112686474A true CN112686474A (zh) | 2021-04-20 |
CN112686474B CN112686474B (zh) | 2022-04-22 |
Family
ID=75459063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110093837.5A Active CN112686474B (zh) | 2021-01-22 | 2021-01-22 | 一种基于改进的水波优化算法的可并行装配线平衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112686474B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113359702A (zh) * | 2021-05-11 | 2021-09-07 | 浙江工业大学 | 一种基于水波优化-禁忌搜索的智能仓库agv作业优化调度方法 |
CN113901728A (zh) * | 2021-11-18 | 2022-01-07 | 东北大学 | 基于迁移遗传算法的电脑第二类装配线平衡优化方法 |
CN114839931A (zh) * | 2022-03-17 | 2022-08-02 | 兰州理工大学 | 一种用于分布式制造工厂的装配阻塞流水车间集成调度系统 |
CN115933570A (zh) * | 2022-12-28 | 2023-04-07 | 华南理工大学 | 一种考虑产品工序差异的混流装配线平衡方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130132042A1 (en) * | 2011-11-16 | 2013-05-23 | Luen Shing Tools Limited | Method and System for Combinatorial Layout Design |
CN103246923A (zh) * | 2013-04-25 | 2013-08-14 | 中山大学 | 基于自适应遗传算法的弹性车间调度技术 |
CN103530702A (zh) * | 2013-10-14 | 2014-01-22 | 西安建筑科技大学 | 一种基于瓶颈设备分解的大规模作业车间调度方法 |
CN106022474A (zh) * | 2016-06-01 | 2016-10-12 | 河海大学常州校区 | 一种可重构装配线平衡优化方法 |
CN107958313A (zh) * | 2017-12-19 | 2018-04-24 | 兰州理工大学 | 一种离散的水波优化算法 |
CN108764448A (zh) * | 2018-05-18 | 2018-11-06 | 九江学院 | 一种改进免疫算法求解第一类装配线平衡问题的方法 |
CN109657354A (zh) * | 2018-12-20 | 2019-04-19 | 华中科技大学 | 一种基于数字孪生的混流装配车间快速重构方法及系统 |
-
2021
- 2021-01-22 CN CN202110093837.5A patent/CN112686474B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130132042A1 (en) * | 2011-11-16 | 2013-05-23 | Luen Shing Tools Limited | Method and System for Combinatorial Layout Design |
CN103246923A (zh) * | 2013-04-25 | 2013-08-14 | 中山大学 | 基于自适应遗传算法的弹性车间调度技术 |
CN103530702A (zh) * | 2013-10-14 | 2014-01-22 | 西安建筑科技大学 | 一种基于瓶颈设备分解的大规模作业车间调度方法 |
CN106022474A (zh) * | 2016-06-01 | 2016-10-12 | 河海大学常州校区 | 一种可重构装配线平衡优化方法 |
CN107958313A (zh) * | 2017-12-19 | 2018-04-24 | 兰州理工大学 | 一种离散的水波优化算法 |
CN108764448A (zh) * | 2018-05-18 | 2018-11-06 | 九江学院 | 一种改进免疫算法求解第一类装配线平衡问题的方法 |
CN109657354A (zh) * | 2018-12-20 | 2019-04-19 | 华中科技大学 | 一种基于数字孪生的混流装配车间快速重构方法及系统 |
Non-Patent Citations (1)
Title |
---|
张丽欣: "多策略WWO算法及其在车间调度问题上的应用研究", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113359702A (zh) * | 2021-05-11 | 2021-09-07 | 浙江工业大学 | 一种基于水波优化-禁忌搜索的智能仓库agv作业优化调度方法 |
CN113901728A (zh) * | 2021-11-18 | 2022-01-07 | 东北大学 | 基于迁移遗传算法的电脑第二类装配线平衡优化方法 |
CN113901728B (zh) * | 2021-11-18 | 2024-04-19 | 东北大学 | 基于迁移遗传算法的电脑第二类装配线平衡优化方法 |
CN114839931A (zh) * | 2022-03-17 | 2022-08-02 | 兰州理工大学 | 一种用于分布式制造工厂的装配阻塞流水车间集成调度系统 |
CN115933570A (zh) * | 2022-12-28 | 2023-04-07 | 华南理工大学 | 一种考虑产品工序差异的混流装配线平衡方法 |
CN115933570B (zh) * | 2022-12-28 | 2024-04-23 | 华南理工大学 | 一种考虑产品工序差异的混流装配线平衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112686474B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112686474B (zh) | 一种基于改进的水波优化算法的可并行装配线平衡方法 | |
CN107450498B (zh) | 基于改进人工蜂群算法的生产调度方法及系统 | |
CN107301473B (zh) | 基于改进遗传算法的同类平行机批调度方法及系统 | |
CN104268722B (zh) | 基于多目标进化算法的动态柔性作业车间调度方法 | |
CN108182518B (zh) | 一种基于改进遗传算法的在制状态人员调度方法 | |
CN115600774B (zh) | 一种装配式建筑构件产线的多目标生产调度优化方法 | |
CN111966049B (zh) | 一种混合流水车间生产设备调度控制方法 | |
CN108776461A (zh) | 一种柔性作业车间调度方法及系统 | |
CN115471133A (zh) | 一种基于订单管理和滚动优化排产的车间综合调度系统 | |
CN111144710A (zh) | 一种可持续性混合流水车间的构建和动态调度方法 | |
CN114881504B (zh) | 一种基于订单选择的电子精密件全自动柔性生产线调度方法 | |
Fakhrzad et al. | A new multi-objective job shop scheduling with setup times using a hybrid genetic algorithm | |
CN113762811B (zh) | 一种考虑加班的无拖期Job Shop调度问题求解方法及系统 | |
CN104281917A (zh) | 基于自适应遗传和克隆选择算法的模糊作业车间调度方法 | |
Ma et al. | A hybrid particle swarm optimization and simulated annealing algorithm for job-shop scheduling | |
CN116985146B (zh) | 退役电子产品的机器人并行拆解规划方法 | |
CN105427058A (zh) | 一种基于遗传算法的发动机测试线工位分配优化方法 | |
CN115933570B (zh) | 一种考虑产品工序差异的混流装配线平衡方法 | |
CN111489035B (zh) | 一种基于机器学习与回溯法结合的模具组合分配方法 | |
CN114415615B (zh) | 不确定需求下混流装配线平衡分配方法及装置 | |
CN113283819B (zh) | 基于规则解码的Job Shop调度问题求解方法及系统 | |
CN115829148A (zh) | 一种设备维护车间调度优化方法及计算机可读介质 | |
CN108596455A (zh) | 一种基于物料配送的汽车底盘下料车间调度方法 | |
Norozi et al. | Application of intelligence based genetic algorithm for job sequencing problem on parallel mixed-model assembly line | |
CN117236660B (zh) | 一种钢管组批切割数据分析系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |