生物地理学优化算法(BBO)是由Dan Simon于2008年提出的一种基于生物地理学理论发展起来的算法。与其他智能算法类似,BBO也是一种基于种群优化的算法,不过它将种群中的每个解看成一个栖息地,将解的适应度看成栖息地的HSI,解的每个分量则是一个SIV,通过模拟生物地理学中的迁移和变异过程来对种群进行不断演化,从而求解优化问题。BBO算法的两个主要操作就是迁移操作和变异操作。
一、迁移操作
BBO算法将优化问题的每个解看成一个栖息地。解的适应度越高,表示栖息地拥有的物种越多,其迁出率就越高、迁入率就越低:反之,解的适应度越低,其对应的迁出率越低、迁入率越高。
迁移操作的目的就是在不同的解之间进行信息分享,其中好的解倾向于把自身的信息传播给其他解,而差的解更倾向于从其他解中接收信息。在具体实现时,BBO算法的每次迭代都会考察种群中的每个解H(i),设其迁入率和迁出率分别为:λ(i)和μ(i),则其每个分量都有λi的概率被修改(即进行迁入);如果要迁入,则以迁出率为概率从种群中选择一个迁出解H(j),再将H(i)的当前分量替换为Hj的对应分量。对H(i)的所有分量都执行完上述操作后,就产生了一个新解H’(i)。算法比较H(i)和H’(i)的适应度,将适应度更高的一个保留在种群中。
上述迁移操作的过程可用算法过程下面所示的伪代码来描述,其中D表示问题的维度即解向量的长度,rand()用于生成一个[0,1]内的随机数。
二、变异操作
一些重大突发事件会急剧改变一个自然栖息地的某些性质,从而改变SHI并导致物种数量发生显著变化。BBO算法将这种情况建模为SIV变异。物种数量过多或过少时,物种数量概率都相对较低;在中等的物种数量下(接近平衡点),物种数量概率较高。可见上述物种概率指呈中心对称分布,如下图所示。
假设要求解的是一个连续优化问题,问题第d维的取值范围为[ld,ud],则BBO的变异操作过程可用下图所示算法过程的伪代码来描述。
总结
BBO算法由于进化机理的新颖性,已受到计算智能领域众多学者的关注。尽管已经取得很多重要的成果,但相对其他进化算法如来说,其更深入的理论研究包括BBO算法中的参数选取、复杂性分析问题、适应度函数设计以及算法在工程实际中的应用还有待扩展。