粒子群算法1——常用智能算法

一、遗传算法

1.概念

       遗传算法(GA)自 1975 年 Holland 提出之后,作为一种经典的进化算法,已经在国际上形成了一个活跃的研究领域。经典遗传算法首先对待求解问题的参数进行编码,编码的每一位称之为“基因”,由基因组成的若干矢量称之为“染色体”。这样将所求问题的每一组参数解编码为一个染色体,若干染色体按照自然界优胜劣汰的进化规律,以适应度函数为评价解好坏的标准,逐代演化。较好的染色体个体将会有较大的概率被选择出来,作为父代进入到下一次遗传演化中,经过杂交变异等遗传操作生成新的种群。若干代演化之后,最终生成的种群将会拥有更好的适应度值,将染色体解码,即得到求解问题的近似最优解。算法中的基本遗传算子有染色体选择,基因杂交和基因变异等。

2.算法流程

Step1:随机产生初始种群,设置进化代数t = 1以及最大进化代数T; 
Step2:计算群体中每个个体的适应度值; 
Step3:判断当前适应度值是否满足要求,或进化代数已经达到最大,若是,则算法终止,将当前的最佳个体作为解输出;若否,则               继续;
Step4:依据适应度条件,选择将进入下一代的父代个体;  
Step5:将杂交算子应用于群体,按概率cp 进行杂交操作; 
Step6:将变异算子应用于群体,按概率mp 进行变异操作; 
Step7: 进化代数t = t + 1,转Step3。

其算法的实现流程图如下

二、进化算法

1.概念

        进化规划是由 Lawrence  J.  Fogel 等人在 1966 年提出的,是一种通过进化来达到行为智能化的算法,但在算法提出之后的三十年间,未能得到足够的重视,直到 20 世纪90 年代,算法得到改进,才作为进化算法的一个分支被广泛应用。进化规划算法的主要
规则是从一组随机产生的个体开始搜索,通过由适应度函数来评价个体的优劣程度,对个体进行选择,变异等操作,令其逐渐靠近全局最优解。与遗传算法类似,进化规划算法同样容易早熟,因此进化规划算法研究的主要内容之一就是避免早熟,以及均衡算法的探索和执行能力。

2.算法流程

Step1:确定进化策略以及各项控制参数; 
Step2:随机初始化种群,并设置进化代数t = 1,最大进化代数T; 
Step3:根据目标函数计算种群中每个个体的适应度值; 
Step4:判断当前适应度值是否满足要求,或进化代数已经达到最大,若是,则算法终止,将当前的最佳个体作为解输出;若否,则                继续; 
Step5:对个体进行重组、变异操作,得到临时种群; 
Step6:根据目标函数计算临时种群中每个个体的适应度值;
Step7:根据评价结果进行选择操作,得到新种群; 
Step8:进化代数t = t + 1,转Step4。


其算法流程如下:

三、群体智能算法

        群智能算法是一种仿生的、随机的概率搜索算法,所以一般将它归结为一种新兴的演化计算方法。群智能的概念最早由 Beni,Hackwood 和 Wang 三人在元胞自动机系统中提出,原本指在一维或二维网格空间中,与相邻个体相互作用,从而实现自组织的主体。之后 Bonabeau、Dorigo 和 Theraula 将其定义为任何一种受昆虫或者其他动物的群体社会行为启发而设计出具有分布式特征的算法。再之后,Bonabeau 将其定义为无智能或具有简单智能的主体,通过任何形式的聚集或者协同行动表现出智能行为特征的算法。

        目前在群智能理论研究领域有如粒子群算法、蚁群算法、蜂群算法、免疫算法、细菌觅食算法等早期提出的算法,也有以及近些年新提出的鱼群算法,萤火虫算法等算法。其中的蚁群算法和粒子群算法是两种较为典型的群智能算法。其中的蚁群算法和粒子群算法是两种较为典型的群智能算法。

Mark Millonas 在 1994 年定义了群智能的五条基本原则: 
①  邻近原则,群内个体具有对简单的空间或时间进行计算和评估的能力; 
②  品质原则,群内个体具有对环境以及群内其他个体的品质作出响应的能力; 
③  反应多样性原则,群内的不同个体能够对环境中某一变化做出不同的反应; 
④  稳定性原则,群内个体的行为模式不会在每次环境发生变化时都发生改变; 
⑤  适应性原则,群内个体能够在所需代价不高的情况下,在适当的时候改变自身的行为模式。

群智能算法具有如下特点: 
①  群智能算法不存在中心控制,因此当其中某个或者几个个体表现较差时,并不会影响到整个群体对问题的求解。这种特性使得群智能算法更适应网络环境下的工作,且具有较强的鲁棒性。 
②  群体中的每个个体都可以以改变环境的方式进行间接通信,通过这种间接通信,个体之间能够传递信息与共同协作,并且当个体数目增加时,通信所增加的开销比传统算法要小很多,这使得群智能算法十分易于扩充。 
③  群体具有自组织性,算法仅通过简单个体的交互过程的集合,而表现出复杂的群体行为。 
④  群体中的个体所具有的能力以及在演化迭代中所遵循的行为规则都非常简单,因此群智能算法在编程上非常容易实现。

1.蚁群算法

        蚁群算法是由意大利学者Dorigo 在 1991 年,受到自然界中蚁群集体觅食行为的启发而提出的。蚁群算法是对蚂蚁群落食物采集过程的模拟,蚁群最初随机地开始寻找食物,当某只蚂蚁找到食物后,会在回蚁穴的路上释放一种被称作信息素的挥发性分泌物,其他蚂蚁会被信息素吸引,而沿着该路线去寻找食物,但有些蚂蚁会另辟蹊径,当新开辟的有效路线更短时,新路线的信息素浓度较高,会吸引更多的蚂蚁来走这条路,这样在若干次寻路之后,所有的蚂蚁都会聚集到从蚁穴到食物源最短的一条路线上。蚁群算法已成功应用于许多离散优化问题。

--------------------- 
作者:暮秋之子_cumt 
来源:CSDN 
原文:https://blog.csdn.net/jinpeng_cumt/article/details/55214494?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!

以人工鱼群算法、烟花爆炸优化算法两个典型的群体智能算法为主,系统介绍了算法的原理,建立了基于协作、竞争机制的群体智能算法的数学模型。全书着重分析了人工鱼群算法和烟花爆炸优化算法的弱点,并提出了多种新颖的改进机制,给出了算法的详细实现步骤。本书还详细探讨了部分群体智能算法在VRP问题、图像边缘检测、SVM反问题、网络态势预测、数据聚类、特征选择等领域内的应用,并介绍了近年来出现的两个比较新颖的群体智能算法,顾问引导搜索算法和教—学优化算法。

猜你喜欢

转载自blog.csdn.net/kebu12345678/article/details/83104218
今日推荐