分布式进化算法

Posted 码丽莲梦露

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式进化算法相关的知识,希望对你有一定的参考价值。

1 多解优化问题

        多解优化问题是指一类具有多个最优解的复杂优化问题。多峰优化问题和多目标优化问题都是两类典型的多解优化问题,它们之前的统一关系,即都具有多个最优解多峰优化问题要求算法找到多个具有相同适应度值得最优解,多目标优化问题要求算法找到能优化多个目标的一组Pareto最优解。多目标优化可以通过映射转化为多解优化问题,如图3所示。

2 进化算法的框架

        进化算法是一类受自然界演化规律和智能现象启发的优化算法。常见的进化算法包括遗传算法、粒子群算法、差分进化算法、蚁群优化算法和分布式估计算法。下列主要介绍一下差分进化(Differential Evolution,DE)、蚁群优化算法(Ant Colony Optimization, ACO)。

 2.1 差分进化算法

 步骤3为变异操作,除步骤3种的变异方式,还有以下几种典型的操作设计方法:

2.2 蚁群优化算法

3 基于分布式计算的进化算法

3.1 基于分布式个体的多峰差分进化算法

         用进化算法求解多峰优化问题,算法需要保持充分的种群多样性以定位到搜索空间中的多个峰。为实现这一目的,小生境技术是常用的一个方法,通过将种群划分为多个子种群以保持种群多样性。划分的目的是将哪些位于同一个峰区域的个体划分到同一个子种群中,然后每个子种群独立演化,各自定位到一个峰,最后整个种群就可以找到多个峰。小生境策略面临着多样性(如何同时定位多个峰)和收敛性(如何提高在已定位的峰上的精确)两方面的挑战。

        这篇论文提出了DIMP(Distributed Individuals for Multiple Peaks)框架的DIDE(Distributed Individuals Differential Evolution)算法,其思想:让种群中每个个体作为一个分布式搜索单元在搜索空间中独立搜索并各自定位到一个峰,避免了小生境策略中困难的种群划分操作,同时也能保持充分的种群多样性以定位到更多的峰。

        总体思路:每个个体作为一个分布式搜索单元并且被赋予一个寿命。分布式单元基于虚拟种群进行变异操作,从而保持个体的分布式搜索并且提供充分的种群多样性以定位到尽可能多的峰。另外,DIDE采用个体寿命机制,进一步增强种群多样性以定位更多的峰。最后,通过精英学习机制提高在已定位的峰上的精度。

        DIDE的挑战:在DIMP框架下每个个体是一个分布式搜索单元而差分进化算法中个体的变异操作通常需要种群中的其他个体的信息(例如种群中其他个体之间的差分向量)作为引导。

        解决方式:为每个个体构建一个虚拟种群,每个个体的虚拟种群包括一些基于个体生成的虚拟个体。通过这种方式,每个个体的变异操作可以使用对应虚拟种群中的虚拟个体作为引导。

3.1.1 具体实施方法

(1)基于虚拟种群的变异操作

        对个体是个体的虚拟种群中的两个虚拟个体。的虚拟个体基于虚拟个体范围(即L和U,分别表示搜索空间的下界和上界)在附近生成,变异公司如下:

        虚拟个体范围R的设置十分重要。较大的R取值能增强算法的全局搜索能力,但对算法的局部收敛带来困难,较小的R取值则相反。算法在开始阶段每个个体的R初始化为一个较大的值,以帮助个体充分探索,在演化过程中,逐渐减小以促进个体在所定位的峰周围进行局部搜索,从而逐渐收敛到峰。

(2) 个体寿命机制

        DIDE算法采用个体寿命机制以帮助算法定位到更多的峰,如算法2-2所示。定义了一个阈值mht(maximum halved times)来判定是否触发个体寿命机制。如果一个个体ht(初始为0,定义的是R的缩减次数)达到了mht,那么DIDE算法判定该个体已经耗尽寿命。对于耗尽寿命的个体,如果它达到了一个准入标准,则将其视为精英解并添加到外部存档中。然后,耗尽寿命的个体将重新初始化,同时个体所应的R和ht也重新初始化。

        个体寿命机制可以检查一个耗尽寿命个体在整个种群中的适应值排名,如果它在整个种群中的适应度值排名在前at(access threhold),那么将它视为精英解并添加到外部存档库中,否则将其过滤。

(3) 精英学习机制

        外部存档中存储了一组精英解。每个精英解虽已定位到一个峰但可能仍然没达到精度需求。DIDE算法通过精英学习机制提高精英解的精度。

        外部存档中的一些精英解可能定位到同一个峰,在这种情况下,没必要让外部档案中的每一个精英解都进行精英学习,可以通过聚类将定位到同一个峰的精英解聚成一类,精英学习机制从每个类中挑选一个具有代表性的精英解进行精英学习。

 3.2 分布式多种群进化算法

        (待更)

以上是关于分布式进化算法的主要内容,如果未能解决你的问题,请参考以下文章

遗传算法理解

遗传算法中种群规模和个体个数的区别

布局优化基于差分进化算法求解电力负荷分配matlab源码

差分进化算法优化集成参数

C++算法之遗传算法及实现

如何通俗易懂地解释遗传算法?有什么例子?