宇宙大爆炸算法[1]是一个持续的大爆炸(Big Bang)和大收缩(Big Crunch)的过程,其不要求待优化函数连续可导,也不需要待优化函数的梯度信息,算法原理和操作相对简单,易于实现,已广泛应用于函数优化[2-3]、商业系统[4-5]、经济调度[6]、数据挖掘[7]、路径规划[8]、工业工程[9-14]等诸多领域中.高维寻优时,BB-BC算法生成的碎片解随迭代次数的增加逐渐丧失解的多样性,同时解质量下降,陷入局部最优解的状态无法跳出,难以寻到全局最优解.因此提高搜索速度,增加碎片解的多样性和质量是提高寻优能力的根本途径.同时针对群智能优化算法的改进一直是优化研究的一个方向[15-17].文献[14]通过引进指数分布提高碎片解多样性,提出一种指数分布大爆炸算法的改进算法,文献[17]通过混沌映射增加解的多样性,提出一种均匀大爆炸混沌大收缩(UBB-CBC)的改进算法,都在一定程度上提高了大爆炸阶段碎片解的多样性,增加了算法的寻优能力.但两个改进算法并没有解决下代碎片解质量差的问题,且算法对于跳出局部最优解的能力不强,以至于在高维寻优过程中,算法寻优能力改善并不明显.本文通过对收缩时质心的计算改进收缩速度,同时引进粒子群算法(PSO)来增加下代碎片解质量,并引进宇宙大撕裂理论增加解多样性,提高跳出局部最优解的能力,整体上提高了高维寻优时BB-BC的收敛速度.仿真实验结果表明,改进算法的优化结果要优于标准的BB-BC和UBB-CBC算法.
1 BB-BC算法BB-BC算法是一个持续的爆炸和收缩过程,算法的每次收缩都会收缩于一个质心,在下次爆炸中以该质心为中心点进行爆炸,直到达到算法的结束条件时终止.以3维空间为例,爆炸过程就是以质心为球心,碎片向整个球体的空间移动的过程.
根据优化问题目标函数构造的适应度函数,在大爆炸算法运行过程中,算法会随机搜索其整个候选解空间从而找到优化问题的最优解或者次优解.BB-BC算法在初次迭代中,碎片解是在优化目标函数解空间中随机产生的,碎片解随机地分布于目标函数的整个解空间.从算法迭代的第二代起,碎片解是以算法在上代收缩过程中得到的质心为中心点,在当代解空间中爆炸产生.质心在各维空间方向上的爆炸是相互独立的,同时各个碎片解的产生过程也是相互独立的.大爆炸产生碎片解公式为
| $ {\mathit{X}_{\mathit{ik}}}{\rm{ = }}{\mathit{X}_{\mathit{ck}}}{\rm{ + }}\frac{{\mathit{ra}{\rm{(}}{\mathit{x}_{\mathit{max}}} - {\mathit{x}_{\mathit{min}}}{\rm{)}}}}{{{\rm{1 + }}\mathit{t}}}, $ | (1) |
其中Xik表示第i个碎片解第k个坐标分量;Xck表示当代收缩质心在n维空间中第k维坐标分量;r是(-1, 1) 之间的随机数,默认服从高斯分布;a为收缩因子,在算法运行过程中为常数;t为算法运行时迭代数;xmax、xmin为目标函数解空间的上下界.
质心的产生主要有两种方式:
(1) 以每代算法中的最优解为质心.
(2) 针对当代全部碎片解的空间位置以及该碎片解的适应度值综合考虑得到质心.
第1种方式中,算法每代的收缩奇点的计算方式相对简单,只需遍历找出适应度值最优的碎片解.第2种方式中,质心的产生主要与算法每代碎片解的数量以及碎片解的适应度值有关.该种方式质心的产生主要依据式(2):
| $ {\mathit{X}_{\mathit{ck}}}{\rm{ = }}\frac{{\sum\limits_{\mathit{i} = 1}^\mathit{N} {\frac{1}{{{\mathit{f}_\mathit{i}}}}{\mathit{X}_{\mathit{ik}}}} }}{{\sum\limits_{\mathit{i} = 1}^\mathit{N} {\frac{1}{{{\mathit{f}_\mathit{i}}}}} }}, $ | (2) |
其中,fi是第i个碎片解的适应度值,N是当代碎片解的总数.
BB-BC算法:
Step1:初始化大爆炸大收缩算法的解集.
在问题解搜索空间内随机初始化N个碎片解.
Step2:大收缩过程.
(1) 根据适应度函数,求各碎片解的适应度值.
(2) 根据得到的各碎片解的适应度值,通过奇点收缩式(2) 得到当代质心.
Step3:大爆炸过程.
(1) 依据Step2中的质心,通过式(1) 得到下代碎片解;同时当代最优解保留进下代碎片解集.
(2) 针对得到的碎片解集进行解维度矫正.
Step4:判断结束过程.
判断是否满足停止准则,若满足则停止迭代并输出结果;否则转入Step2.
2 混合算法(HBB-BC)BB-BC算法在运行过程中主要存在两个问题:
(1) 收缩速度慢.由于其寻优过程中,碎片解在解空间内产生的随机性,导致上下代解之间的弱关联性,进而影响到算法的收缩速度.
(2) 难以跳出局部最优解.随迭代次数的增大,根据公式(1),搜索空间会急速减小,进而容易陷入局部最优解中难以跳出.
2.1 粒子群算法(PSO)粒子群算法(PSO)是一种基于群体的智能优化算法[18-19],群体中的每一个粒子表示目标函数问题的一个候选解,并具有与目标函数相关的适应度值.各个粒子在搜索空间中以一定速度飞行,并根据粒子自身飞行经验以及当前最优粒子状态对速度进行动态调整,个体之间通过协作与竞争,搜索问题的最优解.其实现公式为
| $ \mathit{V}_{\mathit{id}}^{\mathit{t}{\rm{ + 1}}}{\rm{ = }}\mathit{wV}_{\mathit{id}}^\mathit{t}{\rm{ + }}{\mathit{c}_{\rm{1}}}{\mathit{r}_{\rm{1}}}\left( {{\mathit{P}_{\mathit{id}}}{\rm{ - }}\mathit{X}_{\mathit{id}}^\mathit{t}} \right){\rm{ + }}{\mathit{c}_{\rm{2}}}{\mathit{r}_{\rm{2}}}\left( {{\mathit{P}_{\mathit{gd}}} - \mathit{X}_{\mathit{id}}^\mathit{t}} \right), $ | (3) |
| $ \mathit{X}_{\mathit{id}}^{\mathit{t}{\rm{ + 1}}} = \mathit{X}_{\mathit{id}}^\mathit{t} + \mathit{V}_{\mathit{id}}^{\mathit{t}{\rm{ + 1}}}, $ | (4) |
其中Vidt代表第t代粒子群中第i个粒子在第d维度上的速度大小;w代表惯性权重;c1、c2为加速常数;r1、r2为(0, 1) 之间的随机数;Xidt为第t代粒子群中第i个粒子在第d维的坐标分量;Pid为当代第i个粒子在第d维经历过的最好的位置;Pgd为群体所有粒子在第d维经历过的最好位置.
2.2 改进的奇点解方法由于生成的质心符合解的特性,同时质心本身特性使得其作为解的适应度值同样很小.此时,由于质心用于下一代解集的生成,其本身可以看作当代解集中的一员.根据以上分析,本文提出可以在得到质心后计算质心的适应度值,同时与当代适应度值最优的碎片解进行比较,如果质心的适应度值优于当代最优碎片解的适应度值,则选取质心替代当代最优碎片解作为奇点解进入下一代解集.
据此分析,BB-BC算法Step3更改为:
(1) 计算质心的适应度值,并与当代最优适应度值比较,如果质心的适应度值更优,则当代质心取代当代最优解作为奇点解进入下一代碎片解集.
(2) 依据Step2中的质心及公式(1) 得到下一代碎片解集.
(3) 针对得到的碎片解集进行解维度矫正.
2.3 宇宙大撕裂根据公式(1), 随迭代次数的增加,BB-BC算法搜索空间逐渐减小,大大减弱碎片解的多样性,从而在算法后期容易陷入局部解的状况.
在宇宙大爆炸理论中,当宇宙扩张到一个极限值时,会出现大收缩或大撕裂两种情况.BB-BC算法使用大收缩状况.为增加解的多样性,增强算法跳出局部解的能力,本文引用大撕裂理论.在每代解中,选取适应度值最差的nλ个解作为撕裂解,并将撕裂解中最优的解定义为逃逸解.以逃逸解作为所有撕裂解爆炸的撕裂中心,使其游离在解空间内用以随时跳出局部解.同时撕裂解不参与大收缩.撕裂解爆炸个数仍为nλ,其中nλ为
| $ {\mathit{n}_\mathit{\lambda }} = \frac{\mathit{N}}{\mathit{\lambda }}. $ | (5) |
其中,λ为撕裂因子;N是当代碎片解的总数.同时将剩下的解作为收缩解,用以求出奇点解.
2.4 混合的BB-BC算法高维函数的搜索空间会随着维数的增加而大幅增加,BB-BC算法针对高维函数进行优化时需要足够多的碎片解,这样必然会导致算法的优化速度降低,从而影响优化性能,因此不仅需要增加解的多样性,还要提高其质量.将质心加入解集队列,生成奇点解,适当提高了收敛速度.在粒子群算法中粒子位置的更新受该粒子历史最优位置、粒子群中所有粒子的历史最优位置的影响.利用粒子群优化上、中、下代粒子之间的寻优联系可提高BB-BC算法在搜索空间的寻优能力和大爆炸算法的高维优化能力,改进BB-BC算法的收缩慢的问题;同时,引入宇宙大撕裂理论,在算法中加入撕裂解,增强碎片解在解空间的扩张能力,提高碎片解的多样性,从而增加算法跳出局部最优解的能力.
本文基于PSO算法、改进的奇点解方法以及大撕裂理论提出一种混合的BB-BC算法(Hybrid BB-BC,简称HBB-BC).
改进后撕裂解的爆炸公式为
| $ \mathit{X}_{\mathit{ik}}^{\mathit{t}{\rm{ + 1}}} = \mathit{X}_{\mathit{wk}}^\mathit{t} + \frac{{{\mathit{r}_0}\mathit{a}({\mathit{x}_{\text{max}}} - {\mathit{x}_{\text{min}}})}}{{1 + \frac{\mathit{t}}{\mathit{s}}}}. $ | (6) |
改进后收缩解的爆炸公式为
| $ \begin{array}{l} \;\;\;\;\;\mathit{X}_{\mathit{ik}}^{\mathit{t}{\rm{ + 1}}} = \mathit{X}_{\mathit{ck}}^\mathit{t} + \frac{{{\mathit{r}_0}\mathit{a}({\mathit{x}_{\text{max}}} - {\mathit{x}_{\text{min}}})}}{{1 + \frac{\mathit{t}}{\mathit{s}}}} + \mathit{p, }\\ \mathit{P} = (1 - {\mathit{r}_0})\left( {{\mathit{c}_1}{\mathit{r}_1}\left( {{\mathit{P}_{\mathit{pk}}} - \mathit{X}_{\mathit{ik}}^\mathit{t}} \right) + {\mathit{c}_2}{\mathit{r}_2}\left( {{\mathit{P}_{\mathit{ck}}} - \mathit{X}_{\mathit{ik}}^\mathit{t}} \right)} \right). \end{array} $ | (7) |
其中Xikt为第t代解集第i个体在第k维的分量;Xwkt为第t代解集的最劣解的第k维分量;Xckt为第t代解集的质心在第k维的分量;r0、r1、r2为(0, 1) 之间的随机数,在产生下一代解集的大爆炸时为固定值;a为收缩因子;xmax、xmin为解集个体在单个维度上的上下界值;c1、c2为加速常数;每经过s代搜索空间整体减小一次,,用以放慢搜索空间的收缩速度,根据官方源码提示默认取10;Ppk为上代解集最优解在第k维的分量;Pck为当代解集最优解(历代解集最优解)在第k维的分量.
HBB-BC算法:
Step1:初始化大爆炸大收缩算法的解集.
在问题解搜索空间内随机初始化N个碎片解.
Step2:大收缩过程.
(1) 根据适应度函数,求出碎片解的适应值;
(2) 根据式(5),求出nλ个撕裂解,并将剩下的碎片解作为收缩解;
(3) 根据得到的各收缩解的适应值,通过奇点收缩公式(式(2))得到当代质心.
Step3:大爆炸过程.
(1) 计算质心的适应度值,并与当代最优适应度值比较,如果质心的适应度值更优,则当代质心取代当代最优解作为奇点解进入下一代解集;
(2) 根据逃逸解和公式(式(6)),得到撕裂解爆炸的下一代碎片解集;依据Step2中的质心和公式(式(7))得到收缩解爆炸的下一代碎片解集;
(3) 针对得到的碎片解全集进行解维度矫正.
Step4:判断结束过程.
判断是否满足停止准则,若满足则停止迭代并输出结果,否则转入Step2.
3 仿真数值实验对BB-BC、HBB-BC和UBB-CBC 3种算法进行实验对比.表 1和表 2为测试函数及其属性信息[20].
| 表 1 用于实验的测试函数 Table 1 Test functions |
| 表 2 测试函数的属性信息 Table 2 Attribute information of test functions |
实验中统一使用如下参数:迭代总次数为500次,解集个数m=100、维数n=30,s=10,撕裂因子λ =5,加速因子a=0.5,算法HBB-BC加速常数c1、c2都取1.
为更好表现算法在运行过程中的变化情况,实验采用独立20次运行取平均最优适应度值的方式进行测试,并对实验产生的每一代平均最优适应度值先经过公式(8) 处理,而后在图形上进行表示.其中
| $ \mathit{Y = }{\rm{log}}\left( {{{\overline {{\mathit{f}^\mathit{t}}} }_{{\rm{best}}}}} \right). $ | (8) |
表 3为迭代结束后寻到的平均最优适应度值,图 1为20次独立迭代过程中的平均寻优变化情况.总体来说,同样的代数,HBB-BC算法能够寻到更优的解,粒子群引入和奇点解改进大幅提升算法的收敛能力,大撕裂理论的引入大大地增强算法跳出局部最优解的能力,寻优性能大幅提升,同时其收敛曲线的光滑性和鲁棒性亦不逊色于BB-BC和UBB-CBC算法.特别是F4,BB-BC和UBB-BC全部陷入局部最优解中无法跳出,而HBB-BC算法保持着良好的寻优能力.
| 表 3 各测试函数在独立20次迭代后的平均最优适应度值 Table 3 After each test function in independent 20 iterations, the best fitness value on average |
|
图 1 3种算法寻优情况对比结果 Figure 1 The contrast results of three algorithms |
综合表 3及图 1可以看出,本文根据BB-BC算法本身特性所提出的混合型BB-BC算法HBB-BC的优化性能明显优于原BB-BC算法和UBB-CBC算法.
4 结束语本文在原BB-BC算法的基础之上,分析BB-BC算法在实际高维求解中存在的解空间搜索局限性,基于过程改进,将奇点解加入解集,并利用PSO算法对碎片解的质量进行提升.同时,利用大撕裂理论增强算法跳出局部最优解的能力,提出一种混合的BB-BC算法(HBB-BC),并对其进行寻优性能的实验比较.根据测验结果分析,HBB-BC算法比原BB-BC算法和UBB-CBC算法的高维寻优性能更加优越,并且其收缩曲线的光滑度和算法鲁棒性同样优秀.
| [1] | EROL O K, EKSIN I. A new optimization method:big bang-big crunch[J]. Advances in Engineering Software, 2006, 37: 106-111. DOI: 10.1016/j.advengsoft.2005.04.005. |
| [2] | KUMBASAR T, EKSIN İ, GÜZELKAVA M, et al. Big Bang Big Crunch Optimization Method Based Fuzzy Model Inversion[M]//MICAI 2008: Advances in Artificial Intelligence. Berlin: Springer Berlin Heidelberg, 2008: 732-740. |
| [3] | KAVEH A, FARHOUDI N. A unified approach to parameter selection in meta-heuristic algorithms for layout optimization[J]. Journal of Constructional Steel Research, 2011, 67(10): 1453-1462. DOI: 10.1016/j.jcsr.2011.03.019. |
| [4] | Desai S R, Prasad R. A novel order diminution of LTI systems using big bang big crunch optimization and routh Approximation[J]. Applied Mathematical Modelling, 2013(37): 8016-8028. |
| [5] | JARADAT G M, AVOB M. Big bang-big crunch optimization algorithm to solve the course timetabling problem[C]// Intelligent Systems Design and Applications (ISDA), 2010 10th International Conference on. Cairo:IEEE, 2010: 1448-1452. |
| [6] | LABBI Y, ATTOUS D. Big bang-big crunch optimization algorithm economic dispathch with valve-point effect[J]. Journal of Theoretical & Applied Information Technology, 2010, 16: 881-887. |
| [7] | HATAMLOU A, ABDULLAH S, HATAMLOU M. Data clustering using big bang-big crunch algorithm[M]. Berlin Heidelberg: Springer, 2011: 383-388. |
| [8] | GENC H M, EKSIN I, EROL O K. Big bang-big crunch optimization algorithm hybridized with local directional moves and application to target motion analysis problem[C]// Systems Man and Cybernetics (SMC), 2010 IEEE International Conference on. Istanbul:IEEE, 2010: 881-887. |
| [9] | SAKTHIVEL S, PANDIYAN S, MARIKANI S, et al.Application of big bang big crunch algorithm for optimal power flow problems[J]. The International Journal of Engineering and Science, 2013, 2(4): 41-47. |
| [10] | AFSHAR M H, MOTAEI I. Constrained big bang-big crunch algorithm for optimal solution of large scale reservoir operation problem[J]. Optim Civ Eng, 2011, 1: 357-75. |
| [11] | KAVEH A, TALATAHARI S. Size optimization of space trusses using big bang-big crunch algorithm[J]. Computers and Structures, 2009(87): 1129-1140. |
| [12] | TABAKOV P Y. Big bang-big crunch optimization method in optimum design of complex composite laminates[J]. World Academy of Science, Engineering and Technology, 2011, 53: 835-9. |
| [13] |
周进, 张伟, 杨晓楠. 基于大爆炸优化算法的结构参数识别[J].
江西科学, 2010, 28(2): 135-140.
ZHOU J, ZHANG W, YANG X N. Structural parameter estimation based on big bang-big crunch algorithm[J]. Jiangxi Science, 2010, 28(2): 135-140. |
| [14] | HASANCEBI O, AZAD S K. An exponential big bang-big crunch algorithm for discrete design optimization of steel frames[J]. Computers and Structures, 2012: 167-179. |
| [15] |
涂井先, 刘伟. 基于辅助种群分类的遗传算法[J].
广东工业大学学报, 2012, 29(1): 39-42.
TU J X, LIU W. A genetic algorithm based on the classification of the auxiliary group[J]. Journal of Guangdong University of Technology, 2012, 29(1): 39-42. |
| [16] |
罗萍, 刘伟, 周述波. 自适应混沌变异的万有引力搜索算法[J].
广东工业大学学报, 2016, 33(1): 54-61.
LOU P, LIU W, ZHOU S B. Gravitational search algorithm of adaptive chaos mutation[J]. Journal of Guangdong University of Technology, 2016, 33(1): 54-61. |
| [17] | ALATAS B. Uniform big bang-chaotic big crunch optimization[J]. Commun Nonlinear Sci Numer Simulat, 2011, 16: 3696-3703. DOI: 10.1016/j.cnsns.2010.12.025. |
| [18] | EBERHART R, KENNEDY J. A new optimizer using particle swarm theory[C]//Proceedings of the Sixth International Symposium on. Nagoya:IEEE, 1995:39-43. |
| [19] | KENNEDY J, EBERHART R. Particle swarm optimization[C]//IEEE Int Conf Neural Networks. Perth, WA:IEEE, 1995:1942-1948. |
| [20] | HERRERA F, LOZANO M, MOLINA D. Test suite for the special issue of soft computing on scalability of evolutionary algorithms and other metaheuristics for large scale continuous optimization problems [J/OL].SCI2S.2010.http://sci2s.ugr.es/eamhco/functions1-19.pdf. |
2016, Vol. 33