各种群体寻优算法的比较

简介: 各种群体寻优算法的比较

计算机技术不断发展,算法技术也在不断更新。群体智能 (Swarm Intelligent,SI) 算法始于 20 世纪 90 年代初,主要是受自然界生物群体智能现象的启发,通过模仿社会性动物的行为,而提出的一种随机优化算法。群体智能是基于种群行为对给定的目标进行寻优的启发式搜索算法,其的核心是由众多简单个体组成的群体能够通过相互之间的简单合作来实现某一较复杂的功能。所以群体智能可以在没有集中控制并且缺少全局信息和模型的前提下,为寻找复杂的分布式问题的解决方案提供了基础。


作为计算智能的一个重要的学科分支,群体智能优化算法是一类通过模仿生物界的遗传进化机理和群体协作行为而提出的仿生类随机搜索算法。该算法以其高效的寻优速度,无需考虑问题的过多初始信息等特点而受到人们的普遍关注。


群体智能优化算法是一类基于概率的随机搜索进化算法,各个算法之间存在结构、研究内容、计算方法等具有较大的相似性。因此,群体智能优化算法可以建立一个基本的理论框架模式:

Step1:设置参数,初始化种群;

Step2:生成一组解,计算其适应值;

Step3:由个体最有适应着,通过比较得到群体最优适应值;

Step4:判断终止条件示否满足?如果满足,结束迭代;否则,转向Step2;


各个群体智能算法之间最大不同在于算法更新规则上,有基于模拟群居生物运动步长更新的(如PSO,AFSA与SFLA),也有根据某种算法机理设置更新规则(如ACO)。

统一框架下的群体智能优化算法,可以根据优化对象的特性只能地选择适合的更新规则,进行运算得到理想的优化结果。


蚁群算法(Ant Colony, ACO):是模拟真实的蚁群秘觅食过程寻求最短路径的原理,由意大利学者Dorigo等在20世纪90年代首先提出。最初的蚁群算法成为蚂蚁系统,对于旅行商问题(TSP)及二次分配问题(QAP)等取得了较好效果,经过改进后成为蚂蚁算法或蚁群算法。蚁群算法吸收了蚂蚁群体行为的典型特征:一是能觉察小范围区域内情况,并能判断出是否有食物或其他同类的信息素轨迹;而是释放自己的信息素;三是所遗留的信息素会随时间而逐步减小。蚁群算法通过候选解组织群体的过程来寻求最优解,这个过程包括适应阶段和协作阶段。在适应阶段,各候选解根据积累的信息不断调整自身的结构;在协作阶段各候选解间通过信息交流,以便产生系能更好的解。


1991 年意大利学者 Dorigo M 等受到自然界中蚁群觅食行为启发而提出了蚁群算法(AntColony Optimization,ACO)。蚁群算法的基本理念是蚁群生物性的利用最短路径的根据局部信息调整路径上的信息素找寻的特征,这个算法的优势非常的明显,而且具有较为突出的应用性,在这个过程中蚂蚁可以逐步地构造问题的可行解,在解的构造期间,每只蚂蚁可以使用概率方式向下一个节点跳转,而且由于这个节点是具有较强信息素和较高启发式因子的方向,直至无法进一步移动。此时,蚂蚁所走路径对应于待求解问题的一个可行解。蚁群算法目前已成功地用于解决旅行商 TSP 问题、数据挖掘、二次指派问题、网络路由优化、机器人路径规划、图着色、物流配送车辆调度、PID 控制参数优化及无线传感器网络等问题。


蚁群算法的优点:

  1. 蚁群算法与其他启发式算法相比,在求解性能上,具有很强的鲁棒性(对基本蚁群算法模型稍加修改,便可以应用于其他问题)和搜索较好解的能力。
  2. 蚁群算法是一种基于种群的进化算法,具有本质并行性,易于并行实现。
  3. 蚁群算法很容易与多种启发式算法结合,以改善算法性能。


蚁群算法存在的问题:

TSP问题是一类经典的组合优化问题,即在给定城市个数和各城市之间距离的条件下,找到一条遍历所有城市且每个城市只能访问一次的总路程最短的路线。蚁群算法在TSP问题应用中取得了良好的效果,但是也存在一些不足:

  1. 如果参数设置不当,导致求解速度很慢且所得解的质量特别差。
  2. 基本蚁群算法计算量大,求解所需时间较长。
  3. 基本蚁群算法中理论上要求所有的蚂蚁选择同一路线,该线路即为所求的最优线路;但在实际计算中,在给定一定循环数的条件下很难达到这种情况。


另一方面,在其它的实际应用中,如图像处理中寻求最优模板问题,我们并不要求所有的蚂蚁都找到最优模板,而只需要一只找到最优模板即可。如果要求所有的蚂蚁都找到最优模板,反而影响了计算效率。


蚁群算法收敛速度慢、易陷入局部最优。蚁群算法中初始信息素匮乏。


蚁群算法一般需要较长的搜索时间,其复杂度可以反映这一点;而且该方法容易出现停滞现象,即搜索进行到一定程度后,所有个体发现的解完全一致,不能对解空间进一步进行搜索,不利于发现更好的解。


粒子群优化算法(Particles warm optimization algorithm, PSO):最早是在1995年由Kennedy和Eberhart提出的一种基于智能启发的全局优化技术演化计算方法,起源于生物学家对鸟群觅食过程行为的观察研究,具有易理解、易实现、全局搜索能力强等特点备受科学工程领域的极大关注。 设想这样一个场景:一群鸟在随机搜索食物,在这个区域里只有一块食物,所有的鸟都不知道食物在哪里,但是他们当前的位置离食物还有多元。那么找到食物的最优策略是什么呢,最简单有效的搜索目前离食物最近的鸟的周围区域。PSO算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为“微粒”,所有的微粒都有一个被优化的函数决定的适应值,每个微粒海有一个速度决定他们飞翔的方向和距离,然后微粒们就追随当前最优微粒在解空间中搜索。PSO算法初始化为一群随机微粒(随机解),然后通过迭代找到最优解,在每次迭代中,微粒通过跟踪两个“极值“来更新自己。第一个就是微粒本身所找到的最优解,这个解成为个体极值;另一个极值是整个种群目前找到的最优解,这个极值是全局极值。


粒子群算法的优点:

  1. PSO算法没有交叉和变异运算,依靠粒子速度完成搜索,并且在迭代进化中只有最优的粒子把信息传递给其它粒子,搜索速度快;
  2. PSO算法具有记忆性,粒子群体的历史最好位置可以记忆并传递给其它粒子;
  3. 需调整的参数较少,结构简单,易于工程实现;
  4. 采用实数编码,直接由问题的解决定,问题解的变量数直接作为粒子的维数。


粒子群算法的缺点:

  1. 缺乏速度的动态调节,容易陷入局部最优,导致收敛精度低和不易收敛;
  2. 不能有效解决离散及组合优化问题;
  3. 不能有效求解一些非直角坐标系描述问题,如有关能量场或场内粒子运动规律的求解问题(这些求解空间的边界大部分是基于极坐标、球坐标或柱坐标);
  4. 参数控制,对于不同的问题,如何选择合适的参数来达到最优效果。


细菌觅食算法(BFO)是模拟大肠杆菌在人体肠道内觅食时所表现出来的智能行为而提出的一类智能优化算法,由K.M.Passino于2002年提出。它具有三个典型的行为模式,即趋化行为、复制行为和驱散行为。

趋化行为指细菌向食物丰富的区域聚集的行为,包括翻转和前进两种模式。前者指细菌朝任意的方向移动一定距离;后者通过判断翻转后细菌的适应度函数值是否得到改善,来决定细菌是否要沿当前方向继续移动。通过这一行为,细菌可获得连续局部寻优的能力。

复制行为是根据细菌的适应度函数值,选择让较差的细菌继承较好细菌的位置及步长。通过该行为可加快细菌的寻优速度。

驱散行为是让细菌以一定概率被驱散到搜索空间中的任意位置,通过该行为可以避免细菌陷人局部极值。

整个菌群通过不断重复这三种行为,形成高效快速的寻优模式。

从细菌觅食优化算法提出来至今,已经有不少学者对其进行了深入地研究及改进,将其应用到实际工程中。随着研究的不断深入,BFO算法的一-些缺点和问题也随之暴露出来。其中主要集中在算法进行过程中参数的调整方面,包括细菌菌群的大小、细菌趋化的步长、细菌进行中的趋化操作、复制操作和迁移操作的上限次数,用BFO算法优化不同类型的问题时,其参数不具备自适应性,很难保:证求解的精度及收敛速度,因而算法不具备普遍性。


萤火虫算法(Glowworm Swarn Optimization, GSO) 是2005 年由印度学者 Krishnanand 和 Ghose 提出的通过模拟萤火虫在觅食、求偶和警戒等生活习性中产生的因光而吸引并移动的行为来进行寻优的。萤火虫算法的基本原理是 :用搜索空间中的点模拟自然界中的萤火虫个体,将搜索和优化过程模拟成萤火虫个体的吸引和移动过程,将求解问题的目标函数度量成萤火虫个体所处位置的优劣,将萤火虫个体的优胜略汰过程类比为求解问题目标函数的搜索和优化过程中用好的解取代较差的解的迭代过程。

萤火虫算法在问题空间随机分布N只萤火虫,这些萤火虫都带有一定的荧光,每个萤火虫都具有自己的感知范围Rdi (0


优点:萤火虫算法不仅可以优化单峰函数和多峰函数,而且该算法具有较强的局部搜索能力可以在一个娇小的区域内找到该区域的最优解。操作方便、实现简单、参数较少、而且参数对算法的影响较小。

缺点:萤火虫算法必须要求感知范围内有优秀个体向其提供信息,否则个体将停止搜索,这种搜索方法对优秀个体的依赖程度太高,从而降低了收敛速度;而且,当个体距离峰值非常近时,由于步长可能大于该距离,将导致个体在峰值附近发生震荡现象。


人工鱼群算法(Artificial Fish-Swarm Algorithm,AFSA):是由李晓磊等在2002年提出的,源于对鱼群运动行为的研究,是一种新型的智能仿生优化算法.在基本的AFSA算法中,主要是利用了鱼群的觅食、聚群和追尾行为,从构造单条鱼的底层行为坐骑,通过鱼群中各个体的局部寻优,达到全局最优值在群体中突显出来的目的。它具有较强的鲁棒性、优良的分布式计算机制、易于和其他方法结合等优点.目前对该算法的研究、应用已经渗透到多个应用领域,并由解决一维静态优化问题发展到解决多维动态组合优化问题。

2002 年由我国的李晓磊等受鱼群运动行为的启发而提出了人工鱼群算法(Artifi cialFish-Swarm Algorithm,AFSA)。人工鱼群算法的思想主要是利用鱼个体的四种行为(觅食、聚群、追尾和随机)的特征,通过技术应用将人工鱼随机地分布于解空间中,解空间中包含着若干局部最优值和一个全局最优值。在进行应用时,可以有效的利用相关特点进行,特别是应用的寻优期间,每次迭代执行完,人工鱼都将对比自身状态和公告板状态,如自身具有优势,则更新公告板状态,确保公告板为最优状态。 人工鱼群算法已在参数估计、组合优化、前向神经网络优化、电力系统无功优化、输电网规划、边坡稳定、非线性方程求解等方面得到应用,且取得了较好的效果。


人工鱼群算法的特点:

  1. 只需比较目标函数值,对目标函数的性质要求不高;
  2. 对初值的要求不高,随机产生或设置为固定值均可,鲁棒性强;
  3. 对参数设定的要求不高,容许范围大;
  4. 收敛速度较慢,但是具备并行处理能力;具备较好的全局寻优能力,能快速跳出局部最优点;
  5. 对于一些精读要求不高的场合,可以用它快速得到一个可行解;
  6. 不需要问题的严格机理模型,甚至不需要问题的精确描述,这使得它的应用范围得以延伸。


发展趋势及展望:蚂蚁优化算法、粒子优化算法等为解决一类优化问题提供了新的思路,众多研究者纷纷给予改进,使之得到了扩展和完善,在解决某些问题方面表现出了比传统优化算法更好的性能,但是单纯对优化算法的研究很难再有其他大的突破。然而,生物群体拥有巨大的潜力供人们研究,目前还没有形成系统的理论,许多问题有待回答。以下几个方面将是研究的热点:刺激产生新的算法的生物群体的行为模型;各种算法的完善和结合在实际问题上的应用;群体机器人的研究;群体智能系统的底层机制的研究;系统的建模、仿真以及实际应用。//生物的奥秘是无穷的,从生物学甚至社会学的角度出发,新的有益的行为模式有待去发现和提炼。



目录
相关文章
|
17天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
20天前
|
算法
基于大爆炸优化算法的PID控制器参数寻优matlab仿真
本研究基于大爆炸优化算法对PID控制器参数进行寻优,并通过Matlab仿真对比优化前后PID控制效果。使用MATLAB2022a实现核心程序,展示了算法迭代过程及最优PID参数的求解。大爆炸优化算法通过模拟宇宙大爆炸和大收缩过程,在搜索空间中迭代寻找全局最优解,特别适用于PID参数优化,提升控制系统性能。
|
7月前
|
机器学习/深度学习 存储
【Matlab智能算法】极限学习机-遗传算法(ELM-GA)函数极值寻优——非线性函数求极值
【Matlab智能算法】极限学习机-遗传算法(ELM-GA)函数极值寻优——非线性函数求极值
|
7月前
|
机器学习/深度学习 存储
【Matlab智能算法】Elman神经网络-遗传算法(Elman-GA)函数极值寻优——非线性函数求极值
【Matlab智能算法】Elman神经网络-遗传算法(Elman-GA)函数极值寻优——非线性函数求极值
|
7月前
|
机器学习/深度学习 存储
【Matlab智能算法】RBF神经网络-遗传算法(RBF-GA)函数极值寻优——非线性函数求极值
【Matlab智能算法】RBF神经网络-遗传算法(RBF-GA)函数极值寻优——非线性函数求极值
|
7月前
|
机器学习/深度学习 存储 算法
【程序员必须掌握的算法】【Matlab智能算法】GRNN神经网络-遗传算法(GRNN-GA)函数极值寻优——非线性函数求极值
【程序员必须掌握的算法】【Matlab智能算法】GRNN神经网络-遗传算法(GRNN-GA)函数极值寻优——非线性函数求极值
|
7月前
|
机器学习/深度学习 存储 算法
【Matlab智能算法】BP神经网络-遗传算法(BP-GA)函数极值寻优——非线性函数求极值
【Matlab智能算法】BP神经网络-遗传算法(BP-GA)函数极值寻优——非线性函数求极值
|
算法
粒子群算法的迭代寻优算法(Matlab代码实现)
粒子群算法的迭代寻优算法(Matlab代码实现)
103 0
|
机器学习/深度学习 算法 决策智能
基于遗传算法和非线性规划的函数寻优算法(Matlab代码实现)
基于遗传算法和非线性规划的函数寻优算法(Matlab代码实现)
203 0
基于鱼群算法的函数寻优
人工鱼群算法是李晓磊等人于2002年提出的一类基于动物行为的群体智能优化算法。该算法是通过模拟鱼类的觅食、聚群、追尾、随机等行为在搜索域中进行寻优,是集群体智能思想的一个具体应用。生物的视觉是极其复杂的,它能快速感知大量的空间事物,这是任何仪器和程序都难以比拟的,为了实施的简便和有效,在鱼群模式中应用了如下方法实现虚拟人工鱼的视觉。
下一篇
DataWorks