文章快速检索     高级检索
  浙江大学学报(工学版)  2018, Vol. 52 Issue (11): 2120-2127  DOI:10.3785/j.issn.1008-973X.2018.11.010
0

引用本文 [复制中英文]

朱卓悦, 徐志刚, 沈卫东, 杨得玉. 基于遗传蝙蝠算法的选择性拆卸序列规划[J]. 浙江大学学报(工学版), 2018, 52(11): 2120-2127.
dx.doi.org/10.3785/j.issn.1008-973X.2018.11.010
[复制中文]
ZHU Zhuo-yue, XU Zhi-gang, SHEN Wei-dong, YANG De-yu. Selective-disassembly sequence planning based on genetic-bat algorithm[J]. Journal of Zhejiang University(Engineering Science), 2018, 52(11): 2120-2127.
dx.doi.org/10.3785/j.issn.1008-973X.2018.11.010
[复制英文]

基金项目

国家自然科学基金资助项目(61272017);深圳市科技创新委员会资助项目(JCYJ20160510165328965)

作者简介

朱卓悦(1993—),女,硕士生,从事再制造与二次开发研究.
orcid.org/0000-0002-2302-1811.
E-mail:neu61zzy@163.com.

通信联系人

徐志刚,男,教授.
orcid.org/0000-0002-7428-4611.
E-mail:zhgxu@sdu.edu.cn
.

文章历史

收稿日期:2017-11-01
基于遗传蝙蝠算法的选择性拆卸序列规划
朱卓悦1, 徐志刚2, 沈卫东2, 杨得玉2     
1. 山东大学 深圳研究院,广东 深圳 518000;
2. 山东大学 机械工程学院,山东 济南 250061
摘要: 针对产品选择性拆卸序列规划问题,提出一种基于遗传蝙蝠算法的产品拆卸序列规划方法. 利用Python语言对传统蝙蝠算法进行离散化处理,并在种群更新过程中引入遗传算法的交叉与变异机制,生成遗传蝙蝠算法,以增强解搜索的多样性;在构建适应度函数模型时以拆卸工具的变化次数与拆卸方向的重新定位次数作为评价指标,同时加入零部件的回收收益指标,使适应度函数更加完善. 以工业机械臂为实例,利用所提方法进行产品拆卸序列规划求解,对比传统蝙蝠算法以及遗传算法的求解结果,发现在一定的种群数目下,所提方法收敛时间较短;在不同种群数目下,所提方法得到的适应度函数最优值质量较高,从而验证了遗传蝙蝠算法的搜索优越性.
关键词: 选择性拆卸序列规划    蝙蝠算法    遗传算法    拆卸混合图模型    拆卸求解    
Selective-disassembly sequence planning based on genetic-bat algorithm
ZHU Zhuo-yue1 , XU Zhi-gang2 , SHEN Wei-dong2 , YANG De-yu2     
1. Shenzhen Research Institute of Shandong University, Shenzhen 518000, China;
2. School of Mechanical Engineering, Shandong University, Jinan 250061, China
Abstract: A method based on genetic-bat algorithm (GBA) was proposed to resolve the selective disassembly sequence planning (SDSP) problem. The traditional bat algorithm was discretized by Python and the crossover mutation mechanism of genetic algorithm was introduced in the process of population regeneration to generate GBA and to improve the diversity of the search algorithm. The fitness function model was constructed, with the recovery benefit of the disassembly parts, changes of disassembly directions and disassembly tools as the evaluation indexes. The industrial mechanical arm was studied as an instance to compare traditional bat algorithm (BA) and genetic algorithm (GA). Results showed that the convergence time of GBA was shorter when the population number was defined, and under different population numbers, the optimal value of fitness function of GBA was higher. The superiority of the GBA was verified.
Key words: selective-disassembly sequence planning    bat algorithm    genetic algorithm    disassembly hybrid graph model    disassembly solution    
 

由于社会各界对环境的日益关注,绿色设计方法正成为设计过程的重要组成部分. 绿色设计是期望减少产品在整个生命周期内对环境的污染和对资源的浪费[1],涵盖了产品的整个生命周期(end-of-life,EOL)过程,包括面向装配的设计、供应链管理、生命周期评估、面向拆卸的设计、面向再制造的设计以及产品拆卸序列规划(disassembly sequence planning,DSP)等. 其中拆卸是产品回收和维护阶段最基本和最重要的操作. 面向维修的产品拆卸是维修性研究领域的一个重要组成部分. DSP的优劣直接影响了产品回收和再利用的质量及成本,所以对DSP的研究具有重要意义. 现在大部分的绿色设计方法研究都集中在全生命周期产品的完全拆卸上,但如果只有少数的零部件需要回收与再利用,考虑到产品的可拆卸性、可维护性以及退役后有价值的材料回收等[2],完全拆卸将耗费很多不必要的时间与成本. 所以需要研究对目标零件进行选择性拆卸序列规划(selective disassembly sequence planning,SDSP)的求解,从而达到提高资源利用率与保护环境的目的.

DSP问题的求解属于典型的NP-hard问题,即随着产品复杂程度的增加会出现组合爆炸的情况[3]. 启发式智能优化方法具有求解速度快、参数调整方便等优点[4],随着研究的不断深入,现已成为获取最优或近似最优拆卸序列的重要方法[5]. 启发式算法通常采用拆卸成本和拆卸总时间等作为选择近似最优拆卸序列的标准[6],可以大幅度减少求解约束矩阵时的搜索工作量. 目前已有许多启发式优化算法成功应用于DSP问题,如遗传算法(genetic algorithm,GA)[7]、蚁群算法(ant colony optimization, ACO)[8]、粒子群优化算法(particle swarm optimization, PSO)[9]、蟑螂算法(cockroach algorithm, CA)[10]、贪婪算法(greedy algorithm, GA)[11]和花朵授粉算法(flower pollination algorithm, FPA)[5]等. 由Yang[12-14]提出的蝙蝠算法(bat algorithm,BA)是一种通过模仿生物界中蝙蝠利用超声波来搜寻、定位和捕捉猎物等生物学特性所构造出的智能随机搜索算法[15]. BA具有分布式、并行性、模型简单、收敛速度快等特点,作为一种新颖的群智能搜索算法已经得到广大学者的关注,被广泛应用于自然科学与工程实践领域,如多目标优化问题[16]、0-1 背包问题[17]、工程优化问题[18]、离散生产调度问题[19]和大规模优化问题[20]等方面. 研究成果表明,与其他群智能算法相比,BA具有更大的发挥潜能,具有局部搜索与全局搜索的优先级动态调整特性. SDSP问题是一个典型的离散的组合优化难题,已有文献中鲜有学者将BA应用在SDSP问题上.

借鉴将BA运用于非对称旅行商(asymmetry travelling salesman problem,ATSP)问题的研究,对基本的BA进行改进. 针对其缺乏变异机制以及多样性较差等问题,引入GA的种群交叉突变机制,提出一个遗传更新的概念,即算法初始将产生一个随机数,当此随机数小于该遗传更新概率时,运用GA进行DSP求解;而当此随机数大于该遗传更新概率时,运用BA进行DSP求解. 由此提出遗传蝙蝠算法(genetic-bat algorithm,GBA)用来解决SDSP问题,构建适应度函数模型,通过实例对GBA求解SDSP问题的有效性以及优越性进行验证.

1 选择性拆卸序列规划 1.1 拆卸混合图模型的建立

拆卸图模型主要考虑零部件间的接触连接关系,所需拆卸工具和零件拆卸的方向,其中拆卸方向包括 $\left( { \pm x, \pm y, \pm z} \right)$ 6个方向[21]. 根据产品的相关拆卸信息,建立产品拆卸混合图模型,如图1所示. 产品待拆卸的部件可分为零件与紧固件,混合图由有向边与无向边连接顶点组成,其中顶点即为产品的零件或子装配体. 产品拆卸混合图表达式为

$G = \left\{ {{V_{\rm C}},{V_{\rm F}},E,D} \right\}.$ (1)

式中: ${V_{\rm C}}$ 为顶点集合,代表所有零件; ${V_{\rm F}}$ 代表所有待拆紧固件; $E$ 为无向边,表示零件间有接触约束关系; $D$ 为有向边,表示零件间无接触约束关系,但有优先约束关系.

设产品的拆卸混合图模型 $G$ 含有 $a$ 个零件与 ${{b}}$ 个紧固件,可以根据无向边与有向边分为一个 ${{a}}$ 维的稳定连接矩阵 ${{{G}}_1}$ 与一个 $a + b$ 维的拆卸优先矩阵 ${{{G}}_2}$ . 在以往的拆卸序列规划当中,一般仅考虑产品零部件之间的接触连接关系[22],而忽略了紧固件的连接关系. 本研究中表示零件间稳定连接关系的矩阵为

${{{G}}_1} = \left[ {\begin{array}{*{20}{c}} {{c_{1,1}}}&{{c_{1,2}}}& \cdots &{{c_{1,j}}} \\ {{c_{2,1}}}&{{c_{2,2}}}& \cdots &{{c_{2,j}}} \\ \vdots & \vdots &{}& \vdots \\ {{c_{i,1}}}&{{c_{i,2}}}& \cdots &{{c_{i,j}}} \end{array}} \right] ;\;i,j = 1,2,3, \cdots ,a.$ (2)

式中: $a$ 为产品中存在的零部件的数量,且零件 $i$ 与零件 $j$ 存在一定的连接关系. 对 ${c_{i,j}}$ 进行如下定义:

$\begin{array}{l}{c_{i,j}} = \left\{ {\begin{array}{*{20}{l}}{0, \;\;{\text{零件}}i {\text{与零件}}j {\text{之间没有接触连接关系}};}\\{1, \;\;{\text{零件}}i {\text{与零件}}j {\text{之间存在接触连接关系}};}\\{2, \;\;{\text{零件}}i {\text{与零件}}j {\text{之间存在稳定连接关系}};}\\0,\;\;i=j.\end{array}} \right.\end{array}$

相应的在拆卸混合图中,无向虚线表示接触连接关系,无向实线表示紧固件连接. 如图1所示,顶点7和8为无向实线连接,即两零件通过紧固件12相连,而顶点2和8为无向虚线连接,即仅存在接触连接关系.

在DSP当中,若零件 $m$ 对零件 $n$ 形成空间制约,则零件 $m$ 必须先于零件 $n$ 拆卸,如图1所示,顶点3到8之间为有向边连接,即零件3必须在零件8之前拆卸. 拆卸优先约束矩阵为

图 1 产品拆卸混合图 Fig. 1 Product disassembly hybrid graph
${{{G}}_2} = \left[ {\begin{array}{*{20}{c}} {{p_{1,1}}}&{{p_{1,2}}}& \cdots &{{p_{1,n}}} \\ {{p_{2,1}}}&{{p_{2,2}}}& \cdots &{{p_{2,n}}} \\ \vdots & \vdots &{}& \vdots \\ {{p_{m,1}}}&{{p_{m,2}}}& \cdots &{{p_{m,n}}} \end{array}} \right];\;m,n=1,2,3 ,\cdots, a + b.$ (3)

式中: ${p_{m,n}}$ 表示零件 ${{m}}$ 与零件 ${{n}}$ 之间的优先约束关系. 对 ${p_{m,n}}$ 进行如下定义:

$\begin{array}{l}{p_{m,n}} = \left\{ \begin{array}{l}0,\;\; {\text{零件}}i {\text{与零件}}j {\text{之间无优先拆卸关系}};\\1, \;\;{\text{零件}}j {\text{必须要在零件}}i {\text{之前拆卸}};\\0,\;\;\;m=n.\end{array} \right.\\ \end{array}$

拆卸混合图的顶点和边不仅表示零部件之间的接触和优先关系,还可以表示拆卸所需时间以及紧固件约束的个数以及类型等. 这些信息在DSP中都有着重要的作用.

1.2 适应度函数模型的建立

最优或近似最优拆卸序列为拆卸时间最短以及拆卸经济效益最好的的可行性序列. 采用拆卸工具的更换次数、拆卸方向的改变次数、拆卸零件所需时间以及拆卸零件的回收效益的综合评价来衡量其拆卸质量. 其中,拆卸方向改变的衡量标准即为拆卸重新定位时间的长短,在更换拆卸工具之前,应优选一个拆卸方向使其尽可能拆卸较多的部件. 大多数DSP方法都没有使用生命周期影响评估工具来衡量拆卸的质量,即无法准确地判断拆卸零部件对于环境的影响以及对其成本进行相关分析,所以利用LCA软件Simapro Eco-indicator 99进行产品零部件的成本效益分析,并运用相关公式得出零部件的回收收益[23]. 适应度函数模型为

$F(s) = \sum\limits_{i = 1}^a {{s_{1i}}{w_1}} + \sum\limits_{i = 1}^a {{s_{2i}}{w_2}} + \sum\limits_{i = 1}^a {{s_{3i}}{w_3}} + \sum\limits_{i = 1}^a {{s_{4i}}{w_4}} .$ (4)

式中:

${s_{1i}} = \left\{ \begin{array}{l}0, \;\;{\text{拆卸工具从}}{x_{i - 1}} {\text{到}}{x_i} {\text{无变化}},\\1, \;\;{\text{拆卸工具从}}{x_{i - 1}} {\text{到}}{x_i} {\text{有变化}}.\end{array} \right.$
${s_{2i}} = \left\{ \begin{array}{l}0, \;\;{\text{拆卸方向从}}{x_{i - 1}} {\text{到}}{x_i} {\text{无变化}},\\1, \;\;{\text{拆卸方向从}}{x_{i - 1}} {\text{到}}{x_i} {\text{有变化}}.\end{array} \right.$

$s_{3i}$ $s_{4i}$ 分别为拆卸零件所需时间以及拆卸零件的回收效益, $i$ 为拆卸序列中第 $i$ 个零件, $a$ 为总的拆卸次数, $w_1$ 为拆卸工具变化权重系数, $w_2$ 为拆卸方向变化权重系数, $w_3$ 为拆卸时间权重系数, $w_4$ 为回收收益权重系数. 针对不同的拆卸问题,上述4种评价指标的重要程度有所不同. 所以采用权重分配的方式区别他们的重要性,如式(4)所示. 权重分配的主要理论有专家打分法、模糊聚类法和层次分析法. 本研究中的权重分配系数主要由专家打分法获得.

2 基于遗传蝙蝠算法的DSP 2.1 基本蝙蝠算法

基本BA的主要思想是模拟蝙蝠的回声定位搜索机制. 为了方便起见,对蝙蝠回声的相关定位特性设定了理想化的规则[13]:1)所有蝙蝠使用回声定位来检测距离,并可区分食物与障碍物的不同;2)所有蝙蝠以固定频率 ${{ f_{{\rm m}}}} $ ,变化波长 $\lambda $ 和脉冲响度 $A_i$ ,在位置 $x_i$ 以速度 ${{v_i}}$ 随机飞行以搜索猎物. 假设每个蝙蝠可以根据靠近猎物的距离自动调节发射脉冲的频率或波长,即脉冲发射频率 ${f_i} \in [{f_{\min }},{f_{\max }}]$ ,脉冲发射速率 $r_i \in [0,1.0]$ ,且脉冲发射的响度范围为 ${A_i} \in [{A_{\min }},{A_0}]$ . 如上所述,蝙蝠算法包含的4个要素分别为速度 $v_i$ ,脉冲发射频率 $f_i$ ,脉冲发射速率 $r_i$ 和脉冲发射响度 $A_i$ . 对于每一次迭代,每个种群的蝙蝠均通过更新其速度和位置来移动. 假设搜索空间为 $d$ 维,第 $i$ 只蝙蝠在 $t$ 次迭代时的位置为 $x_i^t$ ,速度为 $v_i^t$ ,则在 $t + 1$ 次迭代的速度和位置更新公式为

${f_i} = {f_{\min }} + ({f_{\max }} - {f_{\min }})\beta {\text{,}}$ (5)
$v_{i}^{t + 1} = v_{i}^t + ({\rm{ }}x_{i}^t - {\rm{ }}x_i^*){f_i} {\text{,}}$ (6)
$x_{i}^{t + 1} = {\rm{ }}x_{i}^t + v_{i}^{t + 1}.$ (7)

式中: $f_i$ ${f_{\min }} $ ${f_{\max }} $ 分别为第 $i$ 只蝙蝠在当前时刻发出的脉冲频率以及脉冲频率的最小值和最大值,β 为[0, 1.0]上服从均匀分布的随机数, $x_i^*$ 为当前群体中的最优解.

当满足一定条件,需进行局部搜索时,位置更新公式如下:

${x_{{\rm new}}} = {x_{{\rm old}}} + \varepsilon {A^t}.$ (8)

式中: ${x_{{\rm old}}}$ 为当前最优解集中随机选取的一个解, $\varepsilon $ $\left[ { - 1.0,1.0} \right]$ 的随机数, ${A^t}$ 为当前种群的随机脉冲响度.

蝙蝠脉冲发射响度 $A_i$ 和脉冲发射速率 $r_i$ 的更新公式为

$A_i^{t + 1} = \alpha A_i^t {\text{,}}$ (9)
$r_i^{t + 1} = {\rm{ }}r_i^0\left[ {1 - \exp \;\left( {{\rm{ - }}\gamma t} \right)} \right].$ (10)

式中: $\alpha $ $\gamma $ 是常数, $0 < \alpha < 1.0$ $\gamma > 0$ $r_i^0$ 为初始脉冲速率.

2.2 改进的离散蝙蝠算法

基本BA主要运用于连续域优化问题的求解,而SDSP问题是一个典型的离散优化问题,所以需要对蝙蝠位置与速度更新的编码方式及算法中相关操作进行重新定义,使其离散化. 对于经典的BA基本参数中,蝙蝠脉冲发射响度 $A_i$ 和脉冲发射速率 $r_i$ 的更新公式不作改变,因为这2个参数的大小只是以一定概率决定是否接受更新后的蝙蝠位置. 同时为简化算法,在运用BA进行离散优化时,不再考虑脉冲发射频率 $f_i$ .

定义1 速度更新公式  为了尽可能准确地调整算法,将第 $i$ 只蝙蝠在 $t$ 次迭代时的速度 $v_i^t$ 与当前全局最优蝙蝠的位置相联系. 因此,运用汉明距离(hamming distance,HD)来重新定义 $v_i$ ,公式如下:

$v_i^t = {\rm Random}\;[1,{\text{H}}{\rm D}\;(x_i^t,x_i^*)].$ (11)

式(11)表示 $v_i^t$ 是第 $i$ 只蝙蝠在 $t$ 次迭代时的一个随机数,且此随机数的范围为1.0到第i只蝙蝠与当前全局最优蝙蝠位置的差别. 此差别由HD来表示,它代表将1个字符串变更成另外1个字符串所需要替换的字符的数量. 现有2个拆卸序列 $x_1$ $x_2$ x1 = 1−2−3−4−5−6−7,x2 = 1−3−2−5−4−6−7.可以看出, $x_1$ 中的零件2, 3, 4, 5与 $x_2$ 中相同位置上的零件编号不同,所以 $x_1$ $x_2$ 之间的HD为4.

定义2 位置更新公式  由式(8)可知,蝙蝠 $i$ $t + 1$ 次迭代的位置取决于其的 $v_i^{t + 1}$ 以及在 $t$ 次迭代时的位置. 蝙蝠 $i$ $t + 1$ 次迭代时执行的移动如下:

$x_i^{t + 1} = 2 \text{-} {\rm opt}\;\left( {{\text{ }}x_i^t,{\text{ }}v_i^{t + 1}} \right).$ (12)

式(12)中2-opt即2-optimization,是最初用于解决旅行商问题(traveling salesman problem,TSP)的两元素优化算法. 2-opt方法属于局部搜索算法(local search algorithm, LSA)的一种,LSA是求解组合优化问题的常用工具. 设现有一个产品需要拆卸的零件个数为9,其目标函数是总费用 $y_i$ 为最小值. 首先选取一个序列 y0=1−2−3−4−5−6−7−8−9,并假设 $y_0$ 是最优解 ${y_{\min }} $ . 使用2-opt算法进行问题的求解:首先随机选取2个零件 $i$ $j$ ,将 $i$ 之前的零件顺序不变添加到新序列中,将 $i$ $j$ 之间的零件将顺序倒序后添加到新序列中,将 $j$ 之后的零件顺序不变添加到新序列中,现选取 $i = 4$ $j = 7$ ,得到新序列, $1{\rm{ - }}2{\rm{ - }}3{\rm{ - }}\left( {7{\rm{ - }}6{\rm{ - }}5{\rm{ - }}4} \right){\rm{ - }}8{\rm{ - }}9. $ 将可行序列代入目标函数中即可得到目标函数值,将其与 ${y_{\min }}$ 的值进行比较,取目标函数值较小的可行解为 ${y_{\min }}$ ,直到找不到比 ${y_{\min }}$ 更小的函数值为止. 至此,该DSP问题已用2-opt算法解决. 可将2-opt算法推广到n-opt算法,即将n个零件进行倒序调换,以得到最优目标函数. 如式(12)所示,在每一次迭代的种群中,每个蝙蝠检查与其相邻蝙蝠的 $ x_i$ ,并选择最佳的一个作为其当前的移动目标. 也就是说,蝙蝠 $i$ 在执行2-opt算法后,选择了一个最佳的位置进行移动. 2-opt对序列的重组程度较弱,可对应连续空间中的小步长搜索,而3-opt对序列的重组程度较强,可视为连续空间中的大步长搜索. 对于3-opt算法,蝙蝠 $i$ $t + 1$ 次迭代时执行的移动如下:

$\mathop x\nolimits_i^{t + 1} = 3 \text{-} {\rm opt}\;\left( {\mathop x\nolimits_i^t ,\mathop v\nolimits_i^{t + 1} } \right).$ (13)

离散BA的基本流程图如图2所示.

图 2 离散BA基本流程图 Fig. 2 Basic flow chart of discrete BA
2.3 遗传蝙蝠算法步骤

虽然BA具有诸多优点[15],但由于其个体缺乏多样性,与其他启发式算法一样极易陷入局部极值,出现早熟收敛等问题. GA的解具有良好的多样性,所以除了对基本的BA进行改进之外,还将GA的种群交叉变异机制引入到BA中,从而保证种群迭代过程中多样性的增强,提高算法的搜索效率与收敛性能. GBA算法的主要步骤如下.

1)初始化种群,构建产品拆卸混合图模型,设置蝙蝠种群数量 $m$ ,常数 $\alpha $ $\lambda $ ,算法迭代次数 $n$ ,脉冲响度 $A$ 和脉冲发射速率 $r$ 的初始范围,交叉概率 $P_{\rm c}$ ,变异概率 $P_{{{\rm m}}}$ ,合适的种群遗传更新概率 $P_{{\rm ga}}$

2)计算种群的适应度值,找出当前最好的适应度值并储存;

3)系统随机产生随机数 $r_1$ ,如果 ${r_1} > {P_{{\rm ga}}}$ 则进行步骤4),若 ${r_1} \leqslant {P_{{\rm ga}}}$ 则进行步骤9);

4)通过式(11)、(12)更新种群个体的位置 $x_i$ 和速度 $v_i$

5)生成0到1.0之间的随机数 ${\rm rand1}$ ,若 ${\rm rand1} > {r_i}$ ,则对当前最优解进行扰动,并产生一个新的解 $x_{{\rm new}}$ 取代更新位置;

6)生成[0,1.0]的随机数rand2,如果 rand2 $< {A_i}$ ${\text{且}} f({x_i}) < f({x^*_i})$ ,接受新的解,同时增大 $r_i$ 减小 $A_i$

7)按适应度函数值对蝙蝠排序并更新当前最优解 ${x^*_i}$

8)如未满足终止条件,则返回步骤2),否则进行步骤12);

9)在适应度函数值前十的个体中随机选取2个个体作为母本,交叉形成2个后代,如果后代的适应度值之和小于母本适应度值之和,则从种群中移除母本保留后代,否则保留母本移除后代;

10)对个体进行变异操作,如果变异后的适应度值小于原始个体的适应度值,则个体接受变异结果,否则不接受;

11)如未满足终止条件,则返回步骤2),否则进行步骤12);

12)算法结束,输出最优个体解与适应度函数值.

GBA算法伪代码如下所示.

伪代码:遗传蝙蝠算法

输入:拆卸相关约束矩阵,零件/紧固件属性

1 定义目标函数 $f(x)$

2 初始化蝙蝠种群数量为 $m = 50$

3 系统随机产生随机数 $r_1$

4 产生合适的种群遗传更新概率 $P_{{\rm ga}} = 0.8$

5 for 设置种群中的每一只蝙蝠;

6  初始化常数 $\alpha = \lambda = 0.98$ ,算法迭代次数 $n$

  脉冲响度 $A$ 和脉冲发射速率 $r$ 的初始范围,

  交叉概率 $P_{\rm c} = 0.5$ ,变异概率 $P_{{{\rm m}}} = {\rm{0}}{\rm{.1}}$

7 计算种群的适应度,找出当前最好的适应度并储存;

8 for设置循环次数;

9  if ${r_1} < {P_{{\rm ga}}}$ ,执行遗传算法进行序列规划;

10   for 对于种群中的每一只蝙蝠,

11    if ${r_1} < {P_{\rm c}}$ ,对个体进行交叉操作;

12     在适应度函数值前十的个体中随机选取2个个体作为母本,交叉形成2个后代;

13     if 后代的适应度之和小于母本适应度值之和,则从种群中移除母本保留后代;

14    if ${r_1} < {P_{\rm{m}}}$ ,对个体进行变异操作;

15    if 变异后的适应度值小于原始个体的适应度值, 则个体接受变异结果;

16  else:执行蝙蝠算法进行序列规划

17    for 对于种群中的每一只蝙蝠,通过公式更新种群个体的位置 $x_i$ 和速度 $v_i$ ;生成[0,1.0]的随机数 ${\rm rand1}$

18     if ${\rm rand1} > {r_i}$

19      则对当前最优解进行扰动,产生新的解;

20     if 新解的适应度值之和小于当前最优解适应度值之和,新的解 $x_{{\rm new}}$ 取代更新位置;生成[0,1.0]的随机数rand2;

21     if ${\rm rand2}< {A_i}{\text{并且}} f({x_i}) < f({x^*_i})$

22      接受新的解,同时增大 $r_i$ 减小 $A_i$

23 按适应度函数值对蝙蝠排序并更新当前最优解 ${x^*_i}$

24 if 满足终止条件,

25 算法结束.

输出:最优个体解与适应度函数值.

3 实例应用

以文献[24]中的E16工业机械臂为例进行验证,基于Python语言编写了拆卸序列规划求解算法程序,运行程序的计算机系统为Windows 7 64位操作系统. 该模型由12个组件和11个紧固件组成,其三维造型图以及零部件编号如图3所示,在本案例研究中,选择组件11作为目标组件回收. 产品拆卸混合图如图4所示. 由工业机械臂的拆卸混合图可以通过人机交互的方式生成其稳定连接矩阵与优先关系矩阵. 机械臂零部件信息表如表1所示. 各个零件的拆卸方向以基座7为基准. 运用适应度函数模型式(4),利用专家打分法设置权重系数均为0.25. 为证明所提算法的优越性,将GBA与传统BA、基本GA进行比较,以相同的参数求解本文实例.

图 3 机械臂三维模型 Fig. 3 Three-dimensional model of mechanical arm
图 4 机械臂拆卸混合图 Fig. 4 Disassembly hybrid graph of mechanical arm
表 1 机械臂零部件信息表 Table 1 Information table of mechanical arm parts

在优化求解的过程中,通过多次反复试算,将传统BA的参数设置如下,脉冲响度 $A$ 的初始区间 $A_0 \in \left[ {0.7,1.0} \right]$ ,脉冲发射速率 $r$ 的初始区间 $r_0 \in \left[ {0,0.4} \right]$ ,常数 $\alpha = \lambda = 0.98$ ;将基本GA的参数设置如下,交叉概率 $P_{\rm c} = 0.5$ ,变异概率 $P_{{{\rm m}}} = 0.1$ ;将GBA算法的参数设置如下,交叉概率 $P_{\rm c} = 0.5$ ,变异概率 $P_{{{\rm m}}} = 0.1$ ,脉冲响度 $A$ 的初始区间 $A_0 \in \left[ {0.7,1.0} \right]$ ,脉冲发射速率 $r$ 的初始区间 $r_0 \in \left[ {0,0.4} \right]$ ,常数 $ \alpha =$ $ \lambda = 0.98$ . 为设置合适的种群遗传更新概率 $P_{{\rm ga}}$ 进行了相关的试验,令 $P_{{\rm ga}}$ 分别为0、0.2、0.4、0.6、0.8、1.0,其迭代收敛曲线如图5所示. 当 ${P_{{\rm ga}}} = 0$ 时,GBA的种群迭代更新过程与BA相同,当 ${P_{{\rm ga}}} = 1.0$ 时,种群迭代更新与GA相同,而当 ${P_{{\rm ga}}} = 0.8$ 时,达到稳定收敛解所需要的迭代数最少,收敛性能最佳,故试验设置选择种群更新概率 ${P_{{\rm ga}}} = 0.8$ ,优化指标权重同上. 设置种群规模数目 $m = 50$ ,在此基础上对3种算法的运行结果进行比较,其各自性能如表2所示. 表中,ne为停止收敛迭代数,f_max为最好结果,f_min为最差结果,f_ave为平均结果,tc为耗时.

图 5 不同种群更新概率的适应度收敛曲线 Fig. 5 Fitness convergence curve of different ${P_{{\rm ga}}}$ values

表2可知,在种群规模相同的情况下,随着迭代次数的增加,GBA算法表现出了更好的收敛性能. 虽然GBA与GA均能得到最优解,但GBA需要的迭代次数较少,算法运行时间较短,结果表现较好. 3种算法在上述参数设置下的收敛特性曲线如图6所示. 可以看出随着迭代次数的增加,GBA表现出了良好的收敛性能. 而原始的BA由于个体缺乏多样性容易陷入局部最小值,GA的解多样性较好,但种群搜索较为盲目. GBA通过为BA引入交叉变异机制,增强了解的多样性,所以在不易陷入局部最小值的同时也能够较快收敛.

图 6 GBA、BA与GA算法的收敛特性曲线 Fig. 6 Convergence characteristics of GBA, BA and GA algorithms

设定种群数目 $m$ =20~80,取迭代次数为100. 则3种算法的适应度函数平均值与最优值分布情况如表34所示. 由3种算法求解适应度函数的平均值可以看出,3种算法均能得到最优或近似最优解,但GBA算法更为优异. 在不同种群数目的条件下,收敛速度较快,随着种群数目的增加,适应度函数的平均值不断地减小并向最优值靠拢,表明GBA的搜索结果整体质量较好,寻优过程没有太多的盲目性. 由3种算法求解适应度函数的最优值可以看出在不同的种群规模条件下,GBA算法均搜索到了最优的适应度函数值11.68,该拆卸序列如表2所示. 结果表明GBA的寻优能力和搜索效率要好于传统GA与基本BA,验证了GBA的优越性. 不过只有当产品零件数目达到一定数量级时,运用GBA求解DSP问题才会显示出一定的优势性.

表 4 不同种群数下的适应度函数最优值 Table 4 Optimal values of fitness function under different population numbers
表 2 种群规模数目为50时各算法性能比较 Table 2 Comparison of algorithm performance with population size of 50
表 3 不同种群数下的适应度函数平均值 Table 3 Average values of fitness function under different population numbers
4 结 语

将遗传算法的种群交叉与变异引入到离散蝙蝠算法中,提出了一种应用于SDSP问题的遗传蝙蝠算法. 构建了产品拆卸混合图模型,以拆卸工具的变化次数与重新定位的次数作为评价指标,并在目标函数中加入了零部件的回收收益,使之更加完善. 运用遗传蝙蝠算法进行实例验证后,将其结果与基本蝙蝠算法与遗传算法的结果进行了比较,从而验证了遗传蝙蝠算法的搜索优越性. 如何通过与CAD更好的集成来获取待拆卸产品的相关信息,对于产品拆卸序列规划问题有着重要的工程意义,下一步工作将围绕此方面展开.

参考文献
[1]
KANNAN D. Evaluation of green manufacturing practices using a hybrid MCDM model combining DANP with PROMETHEE[J]. International Journal of Production Research, 2015, 53(21): 6344-6371. DOI:10.1080/00207543.2014.898865
[2]
王峻峰, 李世其, 刘继红. 面向绿色制造的产品选择拆卸技术研究[J]. 计算机集成制造系统, 2007, 13(6): 1097-1102.
WANG Jun-feng, LI Shi-qi, LIU Ji-hong. Selective disassembly planning for product green manufacturing[J]. Computer Integrated Manufacturing Systems, 2007, 13(6): 1097-1102. DOI:10.3969/j.issn.1006-5911.2007.06.010
[3]
张秀芬, 张树有. 基于粒子群算法的产品拆卸序列规划方法[J]. 计算机集成制造系统, 2009, 15(3): 508-514.
ZHANG Xiu-fen, ZHANG Shu-you. Product disassembly sequence planning based on particle swarm optimization algorithm[J]. Computer Integrated Manufacturing Systems, 2009, 15(3): 508-514.
[4]
张秀芬, 蔚刚, 王磊, 等. 支持复杂产品并行拆卸序列规划的遗传算法[J]. 计算机辅助设计与图形学学报, 2015, 27(7): 1327-1333.
ZHANG Xiu-fen, WEI Gang , WANG Lei, et al. Parallel disassembly sequence planning for complex productsbased on genetic algorithm[J]. Journal of Computer-Aided Design and Computer Graphics, 2015, 27(7): 1327-1333. DOI:10.3969/j.issn.1003-9775.2015.07.024
[5]
焦庆龙, 徐达, 李闯. 基于花朵授粉算法的产品拆卸序列规划[J]. 计算机集成制造系统, 2016, 22(12): 2791-2799.
JIAO Qing-long, XU Da, LI Chuang. Product disassembly sequence planning based on flower pollination algorithm[J]. Computer Integrated Manufacturing Systems, 2016, 22(12): 2791-2799.
[6]
FABIO G. Disassembly depth distribution for ease of service: a rule-based approach[J]. Journal of Engineering Design, 2008, 21(4): 375-411.
[7]
韩建升. 基于遗传算法的拆卸序列规划研究[D]. 武汉: 华中科技大学, 2007: 41-49.
HAN Jian-sheng. Research on disassembly sequence planning based on genetic algorithms [D]. Wuhan: Huazhong University of Science and Technology, 2007: 41-49. http://cdmd.cnki.com.cn/Article/CDMD-10295-1016273786.htm
[8]
章小红, 李世其, 王峻峰, 等. 基于蚁群算法的单目标选择性拆卸序列规划研究[J]. 计算机集成制造系统, 2007, 13(6): 1109-1114.
ZHANG Xiao-hong, LI Shi-qi, WANG Jun-feng, et al. Single object selective disassembly sequence planning based on ant colony algorithm[J]. Computer Integrated Manufacturing Systems, 2007, 13(6): 1109-1114. DOI:10.3969/j.issn.1006-5911.2007.06.012
[9]
张秀芬, 张树有, 伊国栋, 等. 面向复杂机械产品的目标选择性拆卸序列规划方法[J]. 机械工程学报, 2010, 46(11): 172-178.
ZHANG Xiu-fen, ZHANG Shu-you, YI Guo-dong, et al. Object selective disassembly sequence planning for complex mechanical products[J]. Journal of Mechanical Engineering, 2010, 46(11): 172-178.
[10]
施英莹, 刘志峰, 张洪潮, 等. 基于蟑螂算法的产品拆卸序列规划[J]. 合肥工业大学学报自然科学版, 2011, 34(11): 1601-1605.
Shi Ying-ying, Liu Zhi-feng, Zhang Hong-chao, et al. Product disassembly sequence planning based on cockroach swarm optimization[J]. Journal of Hefei University of Technology: Natural Science Edition, 2011, 34(11): 1601-1605.
[11]
刘志峰, 胡迪, 高洋, 等. 基于贪婪算法的产品拆卸序列规划[J]. 中国机械工程, 2011, 22(18): 2162-2166.
LIU Zhi-feng, HU Di, GAO Yang, et al. Product disassembly sequence planning based on greedy algorithm[J]. China Mechanical Engineering, 2011, 22(18): 2162-2166.
[12]
Yang X. A new metaheuristic bat-inspired algorithm[J]. Computer Knowledge and Technology, 2010, 284: 65-74.
[13]
Yang X. Bat algorithm for multi-objective optimization[J]. International Journal of Bio-Inspired Computation, 2012, 3(5): 267-274.
[14]
Yang X, Gandomi A. Bat algorithm: a novel approach for global engineering optimization[J]. Engineering Computations, 2012, 29(5): 464-483. DOI:10.1108/02644401211235834
[15]
彭敏. 基于差分变异蝙蝠算法的装配序列规划方法研究[D]. 湘潭: 湘潭大学, 2014: 4-5.
Peng Min. Research on assembly sequence planning based on differential mutation bat algorithm [D]. Xiangtan: Xiangtan University, 2014: 4-5. http://cdmd.cnki.com.cn/Article/CDMD-10530-1014412588.htm
[16]
李枝勇, 马良, 张惠珍. 蝙蝠算法在多目标多选择背包问题中的应用[J]. 计算机仿真, 2013, 30(10): 350-353.
LI Zhi-yong, MA Liang, ZHANG Hui-zhen. Application of bat algorithm in multi-objective and multi-choice knapsack problem[J]. Computer Simulation, 2013, 30(10): 350-353. DOI:10.3969/j.issn.1006-9348.2013.10.080
[17]
李枝勇, 马良, 张惠珍. 遗传变异蝙蝠算法在0-1背包问题上的应用[J]. 计算机工程与应用, 2014, 50(11): 49-52.
LI Zhi-yong, MA Liang, ZHANG Hui-zhen. Genetic mutation bat algorithm for 0-1 knapsack problem[J]. Computer Engineering and Applications, 2014, 50(11): 49-52. DOI:10.3778/j.issn.1002-8331.1207-0406
[18]
韩福霞, 刘宏志. 基于蝙蝠算法的信息工程监理多目标优化研究[J]. 现代计算机, 2013(13): 3-6.
HAN Fu-xia, LIU Hong-zhi. Research on multi-objective optimization problems in information engineering surveillance based on bat algorithm[J]. Modern Computer, 2013(13): 3-6. DOI:10.3969/j.issn.1007-1423(z).2013.13.001
[19]
盛晓华, 叶春明. 蝙蝠算法在PFSP调度问题中的应用研究[J]. 工业工程, 2013, 16(1): 119-124.
SHENG Xiao-hua, YE Chun-ming. Application of bat algorithm to permutation flow-shop scheduling problem[J]. Industrial Engineering Journal, 2013, 16(1): 119-124. DOI:10.3969/j.issn.1007-7375.2013.01.021
[20]
黄光球, 赵魏娟, 陆秋琴. 求解大规模优化问题的可全局收敛蝙蝠算法[J]. 计算机应用研究, 2013, 30(5): 1323-1328.
HUANG Guang-qiu, ZHAO Wei-juan, LU Qiu-qin. Bat algorithm with global convergence for solving large-scale optimization problem[J]. Application Research of Computers, 2013, 30(5): 1323-1328. DOI:10.3969/j.issn.1001-3695.2013.05.011
[21]
吴昊, 左洪福. 基于改进遗传算法的选择性拆卸序列规划[J]. 航空学报, 2009, 30(5): 952-958.
WU Hao, ZUO Hong-fu. Selective disassembly sequence planning based on improved genetic algorithm[J]. Acta Aeronautica Et Astronautica Sinica, 2009, 30(5): 952-958. DOI:10.3321/j.issn:1000-6893.2009.05.029
[22]
黄保群. 基于图论的拆卸模型及拆卸序列规划的研究[D]. 桂林: 桂林电子科技大学, 2006: 6–20.
HUANG Bao-qun. Research on demolition model and disassembly sequence planning based on graph theory [D]. Guilin: Guilin University of Electronic Science and Technology, 2006: 6-20.
[23]
SMITH S, HSU L, SMITH G. Partial disassmbly sequence planning based on cost-benefit analysis[J]. Journal of Cleaner Production, 2016, 139: 729-739. DOI:10.1016/j.jclepro.2016.08.095
[24]
WANG Heng-yu. Disassembly sequence planning for end-of-life products [D]. Winnipeg: University of Manitoba, 2016: 72–75. http://www.sciencedirect.com/science/article/pii/S2212827117300677