基于改进蛙跳算法的多目标选择性拆卸序列规划方法
2022-04-04朱建峰徐志刚苏开远
朱建峰,徐志刚,苏开远
(山东大学 机械工程学院,山东 济南 250061)
0 引言
拆卸是在对废旧产品进行生命周期末端处理时的一个关键的预先处理过程,拆卸过程是从产品中分离出零件,用来实现零件的维修、重用、回收、再制造等[1]。拆卸序列规划(Disassembly Sequence Planning, DSP)是指根据产品内部结构、装配约束关系以及干涉检验等信息,生成可指导实际拆卸过程的拆卸序列[2]。再制造过程中,只有部分零部件可再制造重用,因此选择性拆卸更加符合再制造的实际。好的拆卸序列规划方法能有效提高拆卸效率,降低拆卸成本。
进行DSP首先需建立拆卸信息模型,用以表示拆卸约束并产生可行拆卸序列。目前,国内外研究中,大多采用连接图[3]、优先关系图[4]或邻接矩阵和优先关系矩阵[5]进行拆卸信息建模,这些建模方式方法简单、建模容易,但得到的可行解空间不完整,在进行DSP时可能遗漏更好的可行解。另外,也有许多文献中采用有向图[6]、与或图[7]、Petri网[8]进行拆卸建模,上述建模方式虽然能完整表达DSP问题的可行解空间,但对于较大规模的DSP问题,生成这类拆卸模型非常困难。本文基于紧固件约束矩阵和结构件约束矩阵进行拆卸信息建模,在完整表达拆卸约束的前提下,区分了紧固件和结构件,相比于优先关系矩阵,降低了矩阵的维度。
DSP问题的求解是NP-hard问题,其中,基于启发式智能优化算法的DSP求解方法具有求解速度快、参数设置方便、模块化程度高等优点,现已成为求解DSP问题的重要方法,例如,基于遗传算法[9]、蚁群算法[10]、粒子群算法[11]、人工蜂群算法[12]、花朵授粉算法[13]等DSP方法。上述求解方法未考虑多目标优化问题,或采用加权法将多目标问题转化为单目标优化问题,简化了问题的求解难度,最终只能得到一个最优或近似最优解,且没有考虑到多目标件选择性拆卸的情况,具有一定的局限性。
混合蛙跳算法(Shuffled Frog Leaping Algorithm, SFLA)[14]结合模因演算算法(Memetic Algorithm, MA)和粒子群优化(Particle Swarm Optimization, PSO)算法的优点,具有概念简单、参数少、计算速度快、全局寻优能力出色、鲁棒性强等特点。SFLA因其独特的优势已被广泛应用于函数优化[15]、生产调度[16]、资源网络优化[17]和图像处理[18]等方面,同时SFLA在求解旅行商问题[19-20]、背包问题[21]、时间表问题[22]等组合优化问题中也表现出优异的性能。
但目前已有文献对多目标件的选择性拆卸序列规划(Multi-object Selective DSP, MSDSP)的研究相对较少,且鲜有学者将SFLA应用于DSP问题中。针对上述问题,本文提出基于多目标改进蛙跳算法(Multi-object Imoroved SFLA, MISFLA)的MSDSP方法,利用Pareto思想构建了多目标改进蛙跳算法,同时构建了MSDSP的数学模型,通过不同拆卸规模的拆卸实例,并与多种算法进行对比分析,验证了本文所提方法的可行性与优越性,同时将其运用到具体的拆卸实例中。
1 多目标件选择性拆卸序列规划数学模型
1.1 问题描述及拆卸信息表达
MSDSP是指在满足拆卸优先关系约束的前提下,为拆卸所有目标零部件,以拆卸时间最小化和拆卸收益最大化为目标,确定最优(近似最优)的可行拆卸序列。
本文在文献[23]的基础上,对其拆卸信息表达方法进行补充和优化,提出利用紧固件约束矩阵和结构件约束矩阵构建产品的拆卸信息模型。
本文对产品拆卸建模作如下说明:
(1)结构件指除紧固件以外最小的拆卸单元;紧固件指用来固连两个或多个结构件的机械部件,例如螺栓、螺钉、螺柱等。
(2)紧固件与结构件之间的约束关系作为已知条件,通过用户输入方式获得。
(1)紧固件约束矩阵定义
紧固件约束矩阵表示拆卸产品中紧固件和结构件之间的约束关系,其中矩阵的行序号表示紧固件序号,列序号表示结构件序号,紧固件约束矩阵
(1)
式中coij,i=1,2,…,m,m为待拆卸产品中存在的紧固件数量;j=1,2,…,n,n为待拆卸产品中存在的结构件数量。且紧固件i与结构件j存在一定的约束关系。对coij进行如下定义:
(2)结构件约束矩阵定义
结构件约束矩阵表示结构件与结构件之间的约束关系,其中矩阵的行序号和列序号都表示结构件序号,结构件约束矩阵
(2)
如图1所示为某待拆卸产品的拆卸模型示例图,该产品由5个紧固件和4个结构件装配而成,由于图例为二维装配图且产品底端固定,只考虑3个拆卸方向:+X、-X、+Y,由上述紧固件约束矩阵和结构件约束矩阵的建立方法可得该产品的紧固件约束矩阵G1和结构件约束矩阵G2,分别如下所示:
1.2 数学模型的建立
为便于数学模型的建立,对MSDSP进行如下假设:①所有零部件均可拆卸;②考虑到再制造拆卸实际中,只有部分零部件可再制造重用,本文在拆卸收益计算时只考虑所有目标件的价值。
描述MSDSP模型用到的符号及其定义如下:
(1)N为待拆卸产品中零部件的数量,N=n+m,其中:n为所有结构件的数量,m为所有紧固件的数量。
(2)i为所有零部件的编号,i∈{1,2,…,N}。
(3)P为所有结构件编号的集合,P={1,2,…,n}。
(4)J为所有紧固件编号的集合,J={n+1,n+2,…,n+m}。
(5)Ng为拆除所有目标零部件需要的拆卸操作数量。
(6)j为拆卸操作的编号,j∈{1,2,…,Ng}。
(8)coij为紧固件约束矩阵G1中的元素。
(10)Dj为执行拆卸任务时被干涉的拆卸方向数,0≤Dj≤s。
(11)Td(x)为拆卸方向变换消耗的时间。
(12)Tt(x)为拆卸工具变换消耗的时间。
(13)Tc(x)为移除时紧固件与结构件的切换消耗的时间。
(14)Tp(x)为移除结构件时额外消耗的时间。
(15)Tb(x)为移除零部件的基本拆卸时间。
(16)V(x)为零部件可再利用价值指数。
(17)E(x)为零部件回收收益。
基于以上定义,以拆卸过程中拆卸时间最小化和拆卸收益最大化为目标,构建以下数学模型:
各决策变量的定义及表达式如下:
Td(xj+1)=
Tt(xj+1)=
Tc(xj+1)=
优化目标函数:
(3)
(4)
约束条件:
(5)
(6)
(7)
(8)
j∈{1,2,…,Ng}。
(9)
其中:式(3)和式(4)分别表示最小化拆卸时间和最大化拆卸收益的目标函数;式(5)表示紧固件i能被拆卸的约束条件;式(6)表示已拆除相关紧固件的结构件i能被拆卸的约束条件;式(7)为拆除所有目标件所拆卸的所有零部件均属于待拆卸产品中的部件;式(8)表示包括目标件在内,每个零部件只能被拆卸一次;式(9)表示每执行一次拆卸操作,必须且只能拆掉一个零部件。
2 多目标改进蛙跳算法的求解方法
本文通过多目标优化理论设计基于多目标改进蛙跳算法(MISFLA),主要包括青蛙个体编码与可行解构造、蛙群分组、局部搜索及全局信息混合等部分。
2.1 青蛙个体编码与可行解构造
MISFLA的青蛙个体结构与多目标件选择性DSP问题的解的表现形式相对应,即每一个青蛙个体表示为一个可行的拆卸序列。青蛙个体编码结构定义如下:
青蛙个体Frog采用三段式编码,总体包括伪码fv、实码fr及目标码fob,数学表达式如下:
Frog={{fv}1×N|{fob}|{fr}1×Ng}。
(10)
式中:fv为基于拆卸信息模型G1和G2产生的可行串行完全拆卸序列;fob为待拆卸目标件的集合;fr为fv中包含所有目标件的最短可行拆卸子序列,即一条可行的选择性序列。
可行解的具体构造规则如下:
(1)定义可拆卸零部件集合为A,目标件集合为B,可行完全拆卸序列的解为X,选择性序列的解为X1,令A=∅,B=∅,X=∅,X1=∅。
(2)初始状态下,根据G1和G2,由式(5)与式(6)搜索所有可拆卸的紧固件或结构件,并将其放入A中,将待拆卸目标件放入集合B中,定义临时变换矩阵G3和G4,使G3=G1,G4=G2。
(3)从A中随机选择一个元素a,放入X最左端,并在A中删除元素a;然后判断元素a的类型,若元素a为紧固件,转步骤(4),若元素a为结构件,则转步骤(5)。
(4)更新G3(删除G3中a所在行的所有元素),然后根据G1,对于a所连接的每一个结构件,在G4中由式(6)判断其是否可拆,若可拆,则将相应结构件编号放入A中。
(5)更新G3(删除G3中a所在行的所有元素),同时更新G4(删除G4中a所在行与列的所有元素),然后根据G1,对a所阻挡的每一个紧固件,在G3中由式(5)判断其是否可拆,若可拆,则将相应紧固件放入a中;同时,根据G2,对结构件a在任一拆卸方向所阻挡的每一个结构件,在G4中由式(6)判断其是否可拆,若可拆且该结构件不在X中,则将相应结构件放入A中。
(6)判断产品中所有紧固件和结构件是否已被拆除,若已完成,则输出解X,否则转步骤(3)。
(7)将X中的元素依次放入X1,直至X1中包含集合B中所有元素。
(8)可行青蛙个体构造完成。
2.2 目标函数计算与蛙群分组
DSP的目的是为了获取拆卸时间最短和拆卸经济效益最好的可行拆卸序列。本文的优化目标函数如式(3)和式(4)所示,拆卸时间包括零部件拆卸方向变换消耗的时间、拆卸工具变换消耗的时间、基本拆卸时间、移除结构件时额外消耗的时间、拆除时紧固件与结构件的切换消耗的时间,拆卸收益包括零部件可再利用价值指数及回收收益,各目标函数值依据实码fr进行计算。
因为本文涉及多个目标的协同优化,无法简单地对解的优劣性进行排序,所以引入Pareto最优解集理论和NSGA-Ⅱ中的快速非支配排序及拥挤距离比较思想进行蛙群分组。
青蛙个体支配关系,即任意两个具有k个子目标的青蛙个体Frog1和Frog2,若满足式(11),则称Frog1支配Frog2,记为Frog1≻Frog2。
(11)
若同时存在某目标i,使得fi(Frog1)优于fi(Frog2),以及目标j,使得fj(Frog1)优于fj(Frog2),则两青蛙个体互不支配,Frog1和Frog2对应的解互为非支配解或Pareto解。若在决策空间中不存在某个青蛙支配当前青蛙,则当前青蛙个体对应的解为Pareto最优解,多目标优化问题会产生一组Pareto最优解,即Pareto最优解集,所有Pareto最优解对应目标值的连线构成Pareto最优前沿。
基于快速非支配排序及拥挤度比较思想的蛙群分组方式如下:
(1)计算种群中每个青蛙个体的目标函数值f1和f2,定义集合L(l),用以存放不同非支配等级的Pareto解,l表示非支配等级,l越小,等级越高。为种群中所有青蛙个体定义两个参数nF和SF,分别表示种群中Frog支配个体的个数和被Frog支配的个体的集合。
(2)种群分级。计算每个青蛙个体的nF和SF,将种群中所有nF=0的个体保存到L(1)中,对于L(1)中L(1)的每个个体i,遍历其所支配个体集合SFi中的每个个体j,执行nFj=nFj-1,若nF=0,则将该个体j保存到L(2)中,依此类推,直至整个种群被分级。
(3)拥挤度计算。设共有k个目标函数,依照每个优化目标函数值fj,将种群中所有个体进行升序排列,令边界的两个个体拥挤度为∞,其他个体i的拥挤度
(12)
(4)青蛙个体排序。首先根据非支配等级l进行排序,l越小,青蛙个体越优秀,对于相同等级的个体再依照拥挤度进行排序,拥挤度越大,个体越优秀,最终将所有个体从优到劣进行排序。
(5)依照排序排名,第i个青蛙子群体Yi的分组公式如下:
Yi={Frogi+qsp(j-1)|1≤j≤qsf},1≤i≤qsp。
(13)
式中:qsp为青蛙子群体数量;qsf为每个子群体中的青蛙个体数量;i,j为整数。
2.3 改进的蛙群局部搜索策略
由于标准混合蛙跳算法的局部搜索策略不适用于DSP问题的求解,本文引入调节因子和调节序的思想优化设计局部搜索策略。
在旅行商问题(Traveling Salesman Problem, TSP)的求解中,调节因子用于改变两个城市的先后访问顺序,调节序则是由多个调节因子构成的有序序列[20]。本文针对DSP问题,借鉴遗传算法用于离散组合优化问题时对优先关系保留交叉算子的相关处理,提出基于调节位置的调节序对青蛙个体中的伪码段fv进行调节。
(1)调节因子与调节序
已知某拆卸序列fv,定义调节因子为Af(α,β),其作用是将fv中第β个零部件插入到第α个零部件之前,产生一个新序列。假设某fv=(2,4,6,1,5,3),调节因子为Af(2,4),则newfv=fv+Af(2,4)=(2,1,4,6,5,3)。
(2)基于调节位置的调节序
将含有调节位置的调节序定义为Afs(γ,δ),Afs(γ,δ)=(Af1+Af2+…+Afn)表示含有n个调节因子的调节序,其中:γ,δ为随机产生的调节位置,且1≤γ≤δ≤n;Af1,Af2,…,Afn是调节因子,它们之间的先后顺序是有意义的。调节序作用于拆卸序列,也就是依照调节序中的调节因子依次调整拆卸序列。设fv1,fv2为两个不同的拆卸任务序列,则Afs(γ,δ)⊗(fv1Θfv2)表示将fv1中第γ个零部件与第δ个零部件之间的序列按照其在fv2中序列的排列方式进行调整,即
newfv1=fv1+Afs(γ,δ)⊗(fv1Θfv2)=fv1+(Af1+Af2+…+Afn)=
[(fv1+Af)1+Af2]+…+Afn)。
(14)
调节序构造算子伪代码如下:
步骤1确定fv1中第γ个零部件与第δ个零部件之间的零部件在fv2中的位置,设两者之间的零部件在fv2中的相对位置为i,则1≤i≤δ-γ+1;在fv1中的位置为j,且γ≤j≤δ;令i=1,j=γ。
步骤2判断fv2(i)与fv1(j)是否相等,若fv2(i)≠fv1(j),在fv1中找到零部件位置p使得fv2(i)==fv1(p),由此可得Af(j,p),则newfv1=fv1+Af(j,p);若fv2(i)=fv1(j),转步骤3。
步骤3i=i+1,j=j+1;若i>δ-γ+1,调节结束;否则转步骤2,继续执行。
设fv1=(2,5,4,3,1,6),fv2=(3,2,4,5,6,1),则Afs(2,5)⊗(fv1Θfv2)=[Af1(2,4),Af2(3,4)]。
(3)青蛙个体更新策略构建
设当前迭代子群体中的最差个体为Frogw、最好个体为Frogb、全局最优个体为Frogg,基于上述调节序思想构建更新策略,对最差青蛙个体Frogw进行位置调整,位置更新公式如下:
s=min{int[r·length(Afs(γ,δ)⊗
(fvwΘfvb))],smax};
(15)
Afi∈Afs(γ,δ)⊗(fvwΘfvb)。
(16)
执行更新策略(15)和(16)后,依据fvw更新frw,并计算newFrogw的各个目标函数值,判断newFrogw的支配个体数num(SnF)与被支配的个体数之差nnF是否变大,若变大,则更新Frogw,否则执行更新策略(17)和(18),
s=min{int[r·length(Afs(γ,δ)⊗
(fvwΘfvg))],smax};
(17)
Afi∈Afs(γ,δ)⊗(fvwΘfvg)。
(18)
执行上述更新策略后,若num(SnF)与nnF之差仍没得到改善,则按照初始青蛙个体的构造方法重新构造一个newFrogw。
图2所示为青蛙个体执行更新策略的一个实例,图中,调节位置(γ,δ)=(4,9),r=1,由调节序构造算子可知length(Afs(γ,δ)⊗(fvwΘfvb))=4,设smax=5,则具体调节过程如下:
由Frogw的进化过程可知,Frogw在进化过程中始终保持了优先约束关系,从而避免了因验证青蛙个体是否可行带来的时间浪费。每一个调节因子表示一个青蛙步长,通过smax可有效地控制青蛙个体跳跃的距离,避免因跳跃距离过大而找不到最优解或因跳跃距离过小导致移动速度缓慢。同时,在进化过程中实现了实码串frw的长度、零部件优先顺序的多样性调节,保证了青蛙个体的多样性。
(4)青蛙个体更新信息源增加
在基本蛙跳算法的子群更新策略中,信息交互的来源只有全局最优解、局部最优解和局部最劣解,因此本文通过增加信息交互源让子群内邻域解参与到信息交互中,实现子群内部信息的充分交流。具体策略如下:
在每个子群体局部最劣解更新的同时,选择除局部最劣解以外的4个次劣解构成局部次劣域,同时选择除局部最优解以外的4个次优解构成局部次优域,从局部次劣域中随机选取2个不同的次劣解Frogw1与Frogw2作为待更新解,从局部次优域中随机选取2个不同的次优解Frogb1与Frogb2分别对Frogw1和Frogw2进行更新,次劣域更新公式如下:
s=min{int[r·length(Afs(γ,δ)⊗
(fvw1Θfvb1))],smax};
(19)
Afi∈Afs(γ,δ)⊗(fvw1Θfvb1)。
(20)
2.4 改进的青蛙全局信息混合策略
基本蛙跳算法在全局混合的过程中只是进行了简单的信息交流,各个子群信息并未进行深度挖掘。但是,一味盲目追求交互深度会增加种群的相似性和单一性,导致后续迭代中蛙群分组的价值降低。针对这一问题,为兼顾信息交互深度和个体多样性,本文提出一种满足优先约束关系的三段随机交叉和单点变异思想。将qsp个子群的局部最优解进行随机交叉,生成qsp个新解分别代替各子群的局部最劣解,接着再进入全局混合,然后对种群所有个体进行单点变异。
三段随机交叉策略如图3所示,即随机产生4个交叉点1~4,对每两个交叉点之间的片段,从起始交叉点往后随机选取长度为2~5不等的码段进行交叉,将父代P1中1-1′、2-2′、3-3′之间的元素按照父代P2中的相同元素的排列顺序进行调节,并填充到子代C1的相应位置,剩下的片段则全部赋值给子代C1。
本文采用单点变异方式构建变异算子,如图4所示,其基本思想如下:首先在P1中产生1个随机变异点a,将a点之前的序列赋值给C1,a点之后的序列构建步骤如下:①删除约束矩阵G1和G2中关于a点之前片段所有元素的优先关系约束;②在新的约束矩阵G1和G2条件下,依据产生初始解的过程,对a点之后的片段所有元素进行随机重新排列,完成C1的构建。
2.5 MISFLA算法实现步骤
步骤1算法基本参数设定(青蛙的种群规模N、子群体数qsp、种群迭代次数Ip、子群体迭代次数Ic、最大蛙跳步长Smax)。
步骤2种群初始化。按照2.1节所述可行序列的构造方法随机产生N个可行解,并计算每个青蛙个体的各个目标函数值。
步骤3蛙群分组。根据2.2节所述的蛙群分组方法,将种群中所有个体划分至qsp个子群体中。
步骤4局部搜索。根据2.3节所述的青蛙个体更新策略,对每个子群体进行局部搜索。
步骤5全局信息交流。根据2.4节所述的全局信息混合策略,重新混合所有青蛙个体。
步骤6计算每个青蛙个体的各个目标函数值,并更新种群中的Pareto非支配解集。
步骤7判断是否满足算法终止条件,若满足,则结束搜索并输出Pareto非支配解集;否则,转步骤3,继续搜索。
MISFLA的算法流程图如图5所示。
3 算例分析与实例应用
本文基于Visual Studio 2015,采用VC++语言编写算法程序。运行本应用程序的计算机环境为:Intel(R)Core(TM)i3-4170 CPU@3.70 GHz 3.70 GHz,内存4 GB,Windows 7 64位操作系统。通过求解不同规模的拆卸实例并与多种算法作对比,说明所提算法MISFLA的可行性与优越性。
3.1 算例分析
以文献[25]中的工业机械臂模型为算例求解MSDSP问题,该模型由23个零部件组成,其三维模型如图6所示,由于原始拆卸模型中部分拆卸信息不全,对其进行补充后的拆卸信息如表1所示。
表1 工业机械臂拆卸信息表
续表1
通过正交试验及统计分析,在综合考虑解的质量与程序运行时间的基础上,设置算法参数如下:
青蛙的种群规模N=100、子群体数qsp=10、种群迭代次数Ip=50、子群体迭代次数Ic=5、最大蛙跳步长Smax=5;选择拆卸目标件分别为fob1={6,11,12}和fob2={5,6,9,12},求解结果如表2所示。
表2 工业机械臂在不同拆卸目标件下的拆卸结果
为综合评价本文所提MISFLA的性能,将本文算法与带精英策略的快速非支配排序遗传算法(Non-dominated Sorting Genetic Algorithm Ⅱ, NSGA-Ⅱ)[26]、粒子群算法(Particle Swarm Optimization, PSO)[27]和基本蛙跳算法(Shuffled Frog Leaping Algorithm, SFLA)进行对比,本文均采用C++语言实现上述各算法的编写,并运行于相同的计算机环境中,各算法在目标件为fob1和fob2时,求解的Pareto前沿曲线分别如图7和图8所示。同时本文采用程序平均运行时间tr、反转世代距离IGD、间距指标SP和Pareto非劣解的个数nump四个指标综合综合评价各算法,对比结果如表3所示。其中:IGD用于评价所求Pareto非劣解与真实Pareto的前沿的总体差距,IGD值越小表示所求Pareto前沿的收敛性和分布多样性越好,即更加逼近真实Pareto前沿;SP用于评价Pareto前沿分布的均匀性,SP越小表示分布均匀性越好。本文计算IGD和SP的公式如下:
(21)
(22)
由图7和表3可知,当拆卸目标件为{6,11,12}时,NSGAⅡ的运行时间较好、收敛性及Pareto非劣解的求解能力适中,但其分布均匀性较差;PSO的运行时间及分布均匀性适中,其收敛性及Pareto非劣解的求解能力较差;基本SFLA的运行时间、收敛性、Pareto非劣解的求解能力适中,且分布均匀性较好;MISFLA运行时间稍长,但其在收敛性、Pareto非劣解的求解能力及分布均匀性方面均表现良好。当拆卸目标件为{5,6,9,12}时,虽然MISFLA的运行时间略长,但在求解质量、收敛性方面远优于其余3种算法,且表现出了良好的分布均匀性。因此,MISFLA的综合性能优于其余3种算法,在求解MSDSP方面具有良好的求解优势。
表3 各算法性能对比
3.2 实例应用及分析
现以某企业中的丝杆升降机拆卸作为拆卸实例进行分析。该产品由33个结构件和13个紧固件组成,其爆炸图如图9所示[28],产品的拆卸信息如表4所示。
表4 丝杆升降机拆卸信息表
续表4
运用MISFLA算法求解共有46个零部件的丝杆升降机拆卸实例,算法参数设置如下:青蛙的种群规模N=100、子群体数qsp=10、种群迭代次数Ip=50、子群体迭代次数Ic=10、最大蛙跳步长Smax=10;选择拆卸目标件分别为蜗轮蜗杆类目标件集合fob1={7,11,12}和轴承类目标件集合fob2={4,13,19,21,29},求解结果如表5所示。
表5 丝杆升降机在不同拆卸目标件下的拆卸结果
续表5
由表5可知,当拆卸目标件为fob1={7,11,12}时,共求得4组Pareto非支配解,各目标函数值的变化范围为f1∈[272,272.8],f2∈[3.340 37,2.707 38],运行时间为25.405 s;在fob2={4,13,19,21,29}的情况下,共求得8组Pareto非支配解,f1∈[305.2,343.6],f2∈[1.539 99,2.010 98],运行时间为31.504 s。由此可见,MISFLA可在较短的时间内求解不同规模的拆卸目标,并且可以为决策者提供多种拆卸方案,使其可根据实际情况进行多样化的选择;另外,多目标件的选择性拆卸可使决策者针对某一特定类别的零部件进行高效分类拆卸。
4 结束语
本文在现有拆卸序列规划方法的基础上,针对其不足方面及存在难点,提出基于多目标改进蛙跳算法的MSDSP方法,具体如下:
(1)提出基于紧固件约束矩阵和结构件约束矩阵的产品拆卸信息建模方法;以拆卸时间最小化和拆卸收益最大化为目标,并融入多目标件价值因素构建全新的多目标选择性序列评价方法,同时构建多目标件选择性拆卸序列规划数学模型。
(2)融入Pareto思想构建多目标改进蛙跳算法,提出三段式青蛙个体编码结构;采用基于快速非支配排序与拥挤度比较的思想改进排序分组策略;提出基于调节位置的调节序的方法构建子蛙群局部搜索策略,并构建新的青蛙个体位置更新公式,同时通过构建青蛙个体更新次劣域增加信息源以实现子群体充分交流;提出一种新的交叉和变异思想构建全局信息交互策略,以此兼顾信息交互深度和多样。
(3)通过不同规模的拆卸实例,将改进后的多目标蛙跳算法与多目标算法NSGA-Ⅱ和粒子群算法进行多指标对比分析,验证了该算法的可行性与优越性,最后将其应用到实际的拆卸实例中。
大型复杂机械产品的拆卸具有约束关系复杂、零件数量庞大及多人协作等特点,后续将继续优化该算法,研究多人多目标件的选择性异步并行拆卸序列规划方法,进一步提高拆卸效率。