文档库 最新最全的文档下载
当前位置:文档库 › 人工鱼群算法综述

人工鱼群算法综述

人工鱼群算法综述
人工鱼群算法综述

人工鱼群改进算法研究综述

摘要:人工鱼群算法源于对鱼群运动行为的研究,是一种新型的群体智能随机全局优化算法,人工鱼群算法(AFSA)起步较晚,还存在着许多不足之处。因此本文主要通过阐述鱼群算法的基本理论的同时,对人工鱼群算法的改进方法进行文献综述,并根据这些改进方法指出了人工鱼群算法未来的改进与研究方向。

关键词:人工鱼群算法算法改进综述

1.引言

1.1 人工鱼群算法的基本概念

人工鱼群算法是李晓磊等[1]人于2002年提出的一种基于动物自治体[2-3]的优化方法,是集群智能思想[4]的一个具体应用,该算法根据水域中鱼生存数目最多的地方就是本水域中富含营养物质最多的地方这一特点来模拟鱼群的觅食行为而实现寻优。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工鱼个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度[5]。

人工鱼群算法主要利用鱼的三大基本行为:觅食、聚群和追尾行为,采用自上而下的寻优模式从构造个体的底层行为开始,通过鱼群中各个体的局部寻优,达到全局最优值在群体中凸显出来的目的[6]。

(1)觅食行为:这是鱼趋向食物的一种活动,一般认为它是通过视觉或味觉来感知水中的食物两或食物浓度来选择行动的方向[6]。

(2)聚群行为:大量或少量的鱼聚集成群,进行集体觅食和躲避敌害,这是它们在进化过程中形成的一种生存方式[6]。

(3)追尾行为:当某一条鱼或几条鱼发现食物时,它们附近的鱼会尾随而来,导致更远处的鱼也会尾随过来[6]。

人工鱼群算法就是通过模拟鱼类的觅食、聚群、追尾等行为在搜索域中进行寻优的。

1.2 人工鱼群算法的行为描述

觅食行为:设置人工鱼当前状态,并在其感知范围内随机选择另一个状态,如果得到的状态的目标函数大于当前的状态,则向新选择得到的状态靠近一步,反之,重新选取新状态,判断是否满足条件,选择次数达到一定数量后,如果仍然不满足条件,则随机移动一步[6]。

聚群行为:人工鱼探索当前邻居内的伙伴数量,并计算伙伴的中心位置,然后把新得到的中心位置的目标函数与当前位置的目标函数相比较,如果中心位置的目标函数优于当前位置的目标函数并且不是很拥挤,则当前位置向中心位置移动一步,否则执行觅食行为[6]。

追尾行为:人工鱼探索周围邻居鱼的最优位置,当最优位置的目标函数值大于当前位置的目标函数值并且不是很拥挤,则当前位置向最优邻居鱼移动一步,否则执行觅食[6]。

根据所要解决的问题性质,对人工鱼当前所处的环境进行评价,从而选择一种行为。较常用的评估方法是:选择各行为中使得向最优方向前进最大的方向,也就是各行为中使得人工鱼的下一步状态最优的行为,如果没有能使下一个状态优于当前状态的行为,则采用随机行为。

1.3 人工鱼群算法步骤[6]

Step1:设定鱼群的参数,包括鱼群的规模m, 最大迭代次数gen,人工鱼的感知范围Visual,最大移动步长step,拥挤度因子d等;

Step2:在参数区间内随机生成m条人工鱼个体作为初始鱼群;

Step3:计算每条鱼的食物浓度函数(目标函数),把最优的值放入公告板[7]中;

Step4:对于每条人工鱼执行以下操作

(1)计算出追尾行为、聚群行为的值,采用行为选择策略,选择最优的行为作为鱼的移动方向,缺省行为是觅食行为。

(2)计算出每条鱼的食物浓度函数(目标函数),其最优值与公告板中的值

进行比较,最终公告板中始终保持最优的值。

Step5:判断是否满足结束条件,如果满足结束,否则转Step4。

最终公告板中的值就是最优值。

2. 人工鱼群算法的改进

2.1 初始化的改进

初始化种群是算法进行搜索的起点。AFSA 算法的初始种群生成是随机的,通常情况下可以保证初始鱼群分布均匀,但对于个体的质量不能保证,解群中有一部分远离最优解。宋潇潇等[8]提出了基于极坐标编码的改进人工鱼群算法。它通过设定编码规则,并将此编码方式运用到三种行为当中,计算出每一个编码母体获得的人工鱼的概率,选择大概率的母体作为算法初始化的起点,有效提高算法的收敛性。曲良东等[9]利用混沌系统产生混沌变量,并在参数允许范围内随机产生各个人工鱼个体的初始状态。陈广洲等[10]引入了免疫算法中的消亡算子,经算子运算更新,相互比较,摒弃非优个体,将其重新初始化,以此保持种群的多样性。

2.2 算法参数的改进

王联国等[11]首先提出了一个全局版鱼群算法,并应用该算法对参数进行了详细的分析,实验表明步长step 越小,求解精度越高,当step 的值在1-6之间时,视野visual 的值对于优化精度影响较小。当step 的值比较大时,随着visual 值的增加,优化精度会震荡。针对拥挤因子λ,实验表明该数值越小,鱼进行随机游动和觅食行为的几率较大,摆脱极值束缚的能力就会越强。

为了提高鱼群算法的求解能力和精度,王联国等[12-13]提出了一种动态参数调整的人工鱼群算法,使算法在早期能够进行较大范围的全局搜索,后期保证局部精细搜索。文献提出的参数调整如公式如下:

3max ))/(30exp(T t ?-=α

min visual visual visual +?=α

min step step step +?=α

实验证明引入该机制的鱼群算法,求解精度明显较原始鱼群算法有了较大的提高。

任彦军等[14]提出了在觅食行为过程中采用基于交换列表的排序法,在随机移动行为中采用自适应的小范围移动行为来改进人工鱼群算法,并应用在置换Flow Shop调度,其仿真实验结果表明这种改进算法具有较强的全局搜索能力、更高的搜索效率。李会等[15]依据学者韩江洪[16]在粒子群算法领域提出的自适应调整策略,将鱼群根据个体鱼适应值和鱼群平均适应值进行比较,根据比较结果将鱼群分为三组:较优鱼群,一般鱼群和较差鱼群。并由此提出了自适应调整人工鱼群算法参数的方法,该方法采用个体鱼适应值与整个鱼群的平均适应值作比较,将整个鱼群分为三组,再采用自适应调整每组鱼群的视野范围和步长的方法,对基本鱼群算法进行了优化和改进。结果表明改进后的算法能够较快地收敛至全局较优解,并具有较好的寻优性能。

XiaoJianmei[17]采用另一种方法实现自适应参数调整,使步长step、视野visual、拥挤因子δ等参数随着计算的进行自动调整,以保证算法后期能够进行精细的局部搜索,提高算法的求解精度。它运用适应值变化率和变化方差来决定是否进行参数的调整。该文献将自适应鱼群算法(AAFSA)与原始鱼群算法、自适应粒子群算法、模拟退火粒子群算法进行了对比,其搜索范围和求解精度明显优于其它算法。

王冬冬等[18]提出了分段优化的思想,令食物浓度η为分界线,大于η时,为前期过程,采用较大的step和Visual,能使算法较快地得到一个相对较优的解; 小于η时为后期过程,采用较小的step和Visual,得到一个精度更高的解。黄华娟等[19]通过在人工鱼群的搜索过程中引进自适应的改变步长和拥挤度因子,其目的是加快算法的收敛速度,当寻优陷入平坦区时,对陷入的人工鱼以一定的概率对其变量加以扰动,使部分人工鱼改变状态,从而进入解空间的其他区域进行搜索,避免陷入局部最优。

2.3 与其他算法结合的改进

2.3.1 与模拟退火算法的结合改进

借鉴其他的智能算法的优点,进行优势互补是群体智能算法进行改进的一种有效手段。张梅凤等[20]首先在AFSA 中引进了变异算子,预先设置一个阈值beststep 标记公告板上的最优值,如果在一定的迭代次数内,公告板上的最优值没有变化或者变化率极小,则在保留当前最佳个体的情况下,以一定的概率对

于其它个体进行变异操作。通过引入类似于遗传算法的变异操作之后,为了提高鱼群算法的求解精度,作者将鱼群算法的后期改为执行模拟退火(SA),利用低温下SA算法几乎概率1 的收敛能力,进行精细解局部搜索。该算法较原始人工鱼群算法有较好的跳出极值能力和较高的求解精度。张梅凤等[21]针对人工鱼群算法求解多峰函数时难以发现全部最优的弱点,将小生境技术和模拟退火技术融入人工鱼群算法之中,同时加入变异算子和小生境半径自动生成机制,实验结果表明算法在求解多峰函数时非常有效;刘佳等借鉴模拟退火算法中的Metropolis判别准则改进了人工鱼的觅食行为,在利用人工鱼全局寻优的同时并利用模拟退火算子实施局部细化,提出了一种改进的人工鱼群优化算法(SA_IAFSA),保持了AFSA 算法简单、易实现的特点,克服了人工鱼漫无目的随机游动以及容易陷入局部最优值的缺点,显著提高了算法的运行效率和求解质量。

2.3. 2 与遗传算法的结合改进

刘白等[22]针对人工鱼群算法(AFSA)在实际应用中出现的问题,提出了基于遗传算法的人工鱼群(AFSA)优化算法,当最优值连续无变化或变化不明显时采用遗传算法的交叉、变异操作,消除人工鱼漫无目的随机游动或大量聚集在非全局极值点附近的局限。该算法不仅保持了人工鱼群算法(AFSA)简单、易实现的特点,而且提高了算法的运行效率和求解质量。实验结果表明,该算法改善了人工鱼群算法(AFSA),且有效可靠,能够较好地解决优化问题。Zi-xia Chen[23]等研究了将人工鱼群算法和遗传算法结合起来解决车辆调度问题,并发现组合的算法可以更快速的解决问题并保持性能的稳定等特征。

2.3.3 与粒子群的结合改进

曲良东等[24]将进化策略和粒子群进化规则引入鱼群算法中,并通过理论证明了该算法的全局收敛性,同时通过Benchmark 函数实验和应用于非线性参数估计问题中,证实了该算法收敛速度快,求解精度较高。刘凌子等[25]通过研究文化算法和鱼群算法的机制,提出了一种将鱼群算法嵌入到文化算法框架内的混合鱼群文化算法该算法中包含两个空间,一个是种群空间内的鱼群算法,鱼群在进化过程中不断获取知识,将其组成一个知识空间,从而使知识空间与种群空间协同进化。罗德相等[26]将种群分为两部分,一部分运用粒子群算法,一部分运用鱼群算法,将二者比较后的最优值赋予公告板,以此提高收敛速度。其中的鱼群算法借

鉴王联国等[12]的参数处理方式,通过5 个Benchmark 函数实验证明该算法的求解精度明显较原始粒子群算法和原始鱼群算法高。Hsing-Chih Tsai[27]等利用粒子群算法重新规划表示人工鱼群算法,并且将通信行为整合到人工鱼群算法中,从而形成新的人工鱼群参数公式。因为visual和step支配这人工鱼群算法,然而它们又难以设置,因此利用粒子群算法重新规划修改鱼群算法可以使step更加自由,从而优化人工鱼群算法。李亮等[28]通过邻域禁忌搜索,构造两点禁忌寻优算子对解空间进行无重复的搜索,以此来跳出局部最优点,确保算法的高效性。

2.3.4 与蚁群算法的结合改进

高德芳等[29]提出鱼群-蚁群算法的概念,将蚁群算法融入 ASFA 中,并运用于模块化产品配置设计,混合鱼群-蚁群算法充分利用了各自的优势增强了算法在解空间的搜索能力和效率。修春波等[30]分析了蚁群和鱼群两种优化算法的寻优机理,通过类比揭示了两种优化算法中寻优个体在寻优过程中所遵循的运动规律的差异。并将鱼群算法中拥挤度的作用引入到蚁群算法中,提出了一种新的混合优化算法。在优化过程中拥挤度的指导作用逐渐减弱,既克服了蚁群算法初期可能出现的早熟等现象,增强了算法遍历寻优的能力,又使得算法具有较快的收敛速度,提高了算法的寻优性能。

2.3.5 与聚类算法的结合改进

刘薇等[31]针对传统K-means聚类算法存在的缺陷,引进人工鱼群算法,提出了一种基于改进鱼群和K-means的混合聚类算法。聚类样本中心点初始化时,人工鱼各维参数随机选择在对应属性两个极值之间,同时为了降低计算复杂度,提高收敛效率,寻找全局最优,首先对随机选取的一小部分人工鱼进行K-means 操作,然后对全体人工鱼的追尾算子引入粒子群策略,引导其学习,模拟人工鱼的行为。Wang Fei[32]等将人工鱼群算法结合K-means算法用于机场容量聚类分析解决随机模型问题,从而证实了人工鱼群算法的可行性。Weiling Zhu[33]将人工鱼群算法和模糊C-mean算法结合起来用于聚类分析,发现者能够提高聚类的效率,使结果更加精确和稳定。并且发现人工鱼群算法的参数在很大的程度上影响着效率,人工鱼群算法参数的效率将是以后研究的一个热点。Li Xiao[34] Yongming Cheng[35]等也研究了将聚类算法和人工鱼群算法结合起来进行改进。

2.4 与其他技术结合的改进

Yazdani D[36]将模糊理论与人工鱼群算法融合提出了一种模糊自适应的人工鱼群算法。黄光球等[37]利用有限马尔科夫链理论分析了鱼群算法的进化过程,得出结论鱼群算法是全局渐进收敛的。张红霞[38]在鱼群算法的后期每隔一定的代数,引入一次单纯形算子,替换掉原来大量聚集在非极值点附近的人工鱼个体,有效提高了局部搜索精度,提高了解质量。曲良东等[39]文针对基本人工鱼群算法的不足,提出了一种基于单纯形的双群人工鱼群算法,在该算法中,两个不同的子群并行游动,通过子群重组进行子群问的信息交换,实现鱼群在解空间的探索和搜索能力,然后通过单纯形进行局部再搜索,表明该算法收敛速度快、精度高,具有更好的性能。戴上平等[40]提出了一种多鱼群协同的人工鱼群算法,并用于实现对连续空间变量的分类规则提取问题。班晓娟等[41]在基于认知的人工鱼行为模型的基础上,增加实现鱼群个体问通信及鱼群与环境交互的互操作行为模块,建立面向群体行为的人工鱼体系结构与模型。提出了一种基于多Agent的人工鱼群自组织行为的研究方法:将基于这种体系结构的人工鱼作为Agent,其能感知环境信息,产生意图,规划行为。但是只考虑到影响个体鱼集群的几个因素,事实上还有很多生理、心理、遗传等因素需要考虑,同时人工鱼群作为整体,还存在着个体间通信、合作捕食关系等。

Genrang Zheng[42]等将第一启发式算法和人工鱼群算法结合来形成混合人工算法用于解决组合拍卖的赢家决策问题,并且发现混合人工鱼群算法在赢家决策问题上是一种快速且有效的算法。同时也发现和蚁群算法相比,混合人工鱼群算法性能更好,应用也更加广泛。Yongquan Zhou等[43]也提出也一种将人工鱼群算法Hooke-Jeeves方式结合起来的基于变异算子的混合人工鱼群算法,用于解决非线性方程组问题。实验结果表明,该混合算法在效果和效率方面显著优于经典的数值方法和标准的人工鱼群算法。

2.5 增加群体多样性的改进

马勇杰等[44]研究表明采取一定的策略保持种群多样性是提高算法求解能力的重要途径。王培崇等[45]提出了一种小生境人工鱼群算法,针对K-Means算法对于初始k值较敏感和容易过早收敛的问题,提出基于人工鱼群机制的K-Means聚类算法(NAFS)。首先,利用先验知识随机产生待求解问题的若干个聚类中心,组成一个鱼群环境;其次,利用鱼群个体的协作、竞争机制寻找满意的结果。鉴于人

工鱼群算法后期容易陷入局部最优,根据鱼群聚集度引入小生境算法,改善种群的多样性,提高了算法的求解精度。王培崇等[46]为了克服人工鱼群算法容易收敛于局部最优和解精度不高的缺点,提出了一种新的小生境人工鱼群算法( NAFS) 。在算法后期根据鱼群聚集程度引入小生境排挤机制,维持种群的多样性。利用压缩映射定理从理论上证明了该算法的全局收敛性,证明该算法的解精度比原始人工鱼群算法有较大的提高。刘凌子等[25]提出一种基于人工鱼群和文化算法的新型混合全局优化算法,该混合算法的思想是将人工鱼群嵌入文化算法框架中,作为种群空间的一个进化过程;通过从进化种群中获得的知识组成知识空间,两空间具有各自群体并独立并行演化,从而实现增加人工鱼群的群体多样性。黄华娟[47]提出一种基于变异算子的人工鱼群混合算法,其中Hooke-Jeeves的强局部搜索能力提高了人工鱼群混合算法的局部收敛速度,变异算子的引入增加了群体的多样性,避免人工鱼群混合算法陷入局部最优。

3.总结与展望

作为一个前沿性的热点研究领域,人工鱼群算法已引起越来越多国内研究者的关注,但因人工鱼群算法(AFSA)起步较晚,与遗传算法、神经网络、蚁群算法、粒子群算法和免疫算法相比,人工鱼群算法理论还不完善、不成熟,研究处于初步阶段,在今后的工作中,还有很多方面有待进一步的探索和研究:(1)人工鱼群算法的理论研究

人工鱼群算法的理论研究还存在许多问题需要进一步解决,比如初始化参数选择问题、收敛速度问题等,这些均带有经验性和直觉性,至今没有经过严格的数学论证。今后人工鱼群算法的收敛性证明和理论分析仍然是一个非常具有挑战性的研究方向。

(2)人工鱼群算法的改进研究

人工鱼群算法因处于初步阶段,因此其算法的改进仍是目前研究的一大重要方向。根据目前的研究可知对人工鱼群算法在初始化、参数、与其他方法的结合和群体多样化方面的改进仍需积极探索与完善。特别是研究人工鱼群算法与其他智能算法和的融合技术,能够提高算法优化性能,因此研究人工鱼群算法与模拟退火算法、遗传算法、粒子群算法、蚁群算法等智能优化算法的融合技术,对智能算法的研究具有重要意义。

参考文献

[1] 李晓磊, 邵之江, 钱积新. 一种基于动物自治体的寻优模式: 鱼群算法[J]. 系统工程理论与实践, 2002, 22(11): 32-38.

[2] MAES P. From animals to animats 4: Proceedings of the fourth international conference on simulation of adaptive behavior [M]. The MIT Press, 1996.

[3] DEAN J. Animats and what they can tell us [J]. Trends in Cognitive Sciences, 1998, 2(2): 60-67.

[4] BONABEAU E, TH RAULAZ G. Swarm smarts [J]. Scientific American, 2000, 282(3): 72-79.

[5] 李晓磊, 钱积新. 人工鱼群算法自下而上的寻优模式[C] [J]. 过程系统工程年会论文集, 2001, 82(

[6] 李晓磊. 一种新型的智能优化方法-人工鱼群算法[D] [D]; 杭州: 浙江大学, 2003.

[7] 李晓磊, 路飞, 田国会, et al. 组合优化问题的人工鱼群算法应用[J]. 山东大学学报: 工学版, 2004, 34(5): 64-67.

[8] 宋潇潇, 孙棣华, 解佳. 基于极坐标编码的改进人工鱼群算法[J]. 系统工程与电子技术, 2010, 32(10):

[9] 曲良东, 何登旭. 一种混沌人工鱼群优化算法[J]. 计算机工程与应用, 2010, 46(022): 40-42.

[10] 陈广洲, 汪家权, 李传军, et al. 一种改进的人工鱼群算法及其应用[J]. 系统工程, 2009, 27(12): 105-110.

[11] 王联国, 施秋红. 人工鱼群算法的参数分析[J]. Computer Engineering, 2010, 36(24):

[12] 王联国, 洪毅, 赵付青, et al. 一种简化的人工鱼群算法[J]. 小型微型计算机系统, 2009, 30(8): 1663-1667.

[13] 王联国, 洪毅, 赵付青, et al. 一种改进的人工鱼群算法[J].

[14] 任彦君, 黎冰, 顾幸生. 改进的人工鱼群算法在置换Flow Shop 调度中的应用[J]. 华东理工大学学报(自然科学版), 2010, 1(019.

[15] 李会, 张天丽, 陶佰睿, et al. 动态分组方案的自适应人工鱼群算法[J]. 计算机工程与应用, 2013, 8):

[16] 韩江洪, 李正荣, 魏振春. 一种自适应粒子群优化算法及其仿真研究[J] [J]. 系统仿真学报, 2006, 18(10): 2969-2971.

[17] XIAO J, ZHENG X, WANG X, et al. A modified artificial fish-swarm algorithm; proceedings of the Intelligent Control and Automation, 2006 WCICA 2006 The Sixth World Congress on, F, 2006 [C]. IEEE.

[18] 王冬冬, 李哲, 梁丽, et al. 基于改进人工鱼群算法求解多元非线性方程组; proceedings of the 2009 年中国智能自动化会议论文集(第一分册), F, 2009 [C].

[19] 黄华娟, 周永权. 改进型人工鱼群算法及复杂函数全局优化方法[J]. 广西师范大学学报: 自然科学版, 2008, 26(1): 194-197.

[20] 张梅凤, 邵诚, 甘勇, et al. 基于变异算子与模拟退火混合的人工鱼群优化算法[J]. 电子学报, 2006, 34(8): 1381-1385.

[21] 张梅凤, 邵诚. 多峰函数优化的生境人工鱼群算法[J]. 控制理论与应用, 2008, 25(4): 773-776.

[22] 刘白, 周永权. 基于遗传算法的人工鱼群优化算法[J]. 计算机工程与设计, 2008, 29(22): 5827-5829.

[23] CHEN Z-X, LU Y-M. Research on Vehicle Routing Problem based on hybrid artificial fish-school and genetic algorithm; proceedings of the Computer Application and System Modeling (ICCASM), 2010 International Conference on, F, 2010 [C]. IEEE.

[24] 曲良东, 何登旭. 混合变异算子的人工鱼群算法[J] [J]. 计算机工程与应用, 2008, 44(35): 50-52.

[25] 刘凌子, 周永权. 一种基于人工鱼群和文化算法的新型混合全局优化算法倡[J]. 计算机应用研究, 2009, 26(12):

[26] 罗德相, 周永权, 黄华娟. 粒子群和人工鱼群混合优化算法[J]. 计算机与应用化学, 2009, 26(10): 1257-1261.

[27] TSAI H-C, LIN Y-H. Modification of the fish swarm algorithm with particle swarm optimization formulation and communication behavior [J]. Applied Soft Computing, 2011, 11(8): 5367-5374. [28] 李亮, 迟世春, 林皋. 禁忌鱼群算法及其在边坡稳定分析中的应用[J] [J]. 工程力学, 2006, 23(3): 6-10.

[29] 高德芳, 赵勇, 郭杨, et al. 基于混合鱼群-蚁群算法的模块化产品配置设计[J]. 机械, 2007, 34(1): 9-12.

[30] 修春波, 张雨虹. 基于蚁群与鱼群的混合优化算法[J]. 计算机工程, 2008, 34(14): 206-207.

[31] 刘薇, 刘柏嵩, 王洋洋. 基于改进鱼群和K-means 的混合聚类算法[J]. Computer Engineering and Applications, 2013, 49(22):

[32] FEI W, XIAO-HAO X, JING Z. Application of artificial fish school and K-means clustering algorithms for stochastic GHP; proceedings of the Control and Decision Conference, 2009 CCDC'09 Chinese, F, 2009 [C]. IEEE.

[33] ZHU W, JIANG J, SONG C, et al. Clustering Algorithm Based on Fuzzy C-means and Artificial Fish Swarm [J]. Procedia Engineering, 2012, 29(3307-3311.

[34] XIAO L. A clustering algorithm based on artificial fish school; proceedings of the Computer Engineering and Technology (ICCET), 2010 2nd International Conference on, F, 2010 [C]. IEEE. [35] CHENG Y, JIANG M, YUAN D. Novel clustering algorithms based on improved artificial fish swarm algorithm; proceedings of the Fuzzy Systems and Knowledge Discovery, 2009 FSKD'09 Sixth International Conference on, F, 2009 [C]. IEEE.

[36] YAZDANI D, TOOSI A N, MEYBODI M R. Fuzzy adaptive artificial fish swarm algorithm [M]. AI 2010: Advances in Artificial Intelligence. Springer. 2011: 334-343.

[37] 黄光球, 刘嘉飞, 姚玉霞. 人工鱼群算法的全局收敛性证明[J]. Computer Engineering, 2012, 38(2):

[38] 精度, 张红霞, 罗毅, et al. 基于单纯形法的改进型人工鱼群算法[J]. 2011,

[39] 曲良东, 何登旭. 基于单纯形法的双群人工鱼群算法[J]. 计算机应用, 2008, 28(8): 2103-2104.

[40] 戴上平, 姬盈利, 王华, et al. 基于多群协同人工鱼群算法的分类规则提取算法[J]. 计算机应用研究, 2012, 29(5): 1676-1679.

[41] 班晓娟, 吴崇浩, 王晓红, et al. 基于多Agent 的人工鱼群自组织行为算法[J]. 计算机工程, 2007, 33(23):

[42] ZHENG G, LIN Z. A Winner Determination Algorithm for Combinatorial Auctions Based on Hybrid Artificial Fish Swarm Algorithm [J]. Physics Procedia, 2012, 25(1666-1670.

[43] ZHOU Y, HUANG H. Hybrid Artificial Fish School Algorithm Based on Mutation Operator for Solving Nonlinear Equations; proceedings of the Intelligent Systems and Applications, 2009 ISA 2009 International Workshop on, F, 2009 [C]. IEEE.

[44] 马永杰, 云文霞. 遗传算法研究进展[J]. 计算机应用研究, 2012, 29(4): 1201-1206.

[45] 小生境, 王培崇, 钱旭, et al. 新的混合小生境鱼群聚类算法[J]. 2012,

[46] 王培崇, 雷凤君, 钱旭. 改进人工鱼群算法及其收敛性分析[J]. 科学技术与工程, 2013, 13(3):

[47] 黄华娟, 周永权. 基于变异算子的人工鱼群混合算法[J] [J]. 计算机工程与应用, 2009, 45(33): 28-37.

人工鱼群算法的仿真程序-matlab

tic figure(1);hold on ezplot('x*sin(10*pi*x)+2',[-1,2]); %% 参数设置 fishnum=50; %生成50只人工鱼 MAXGEN=50; %最多迭代次数 try_number=100;%最多试探次数 visual=1; %感知距离 delta=0.618; %拥挤度因子 step=0.1; %步长 %% 初始化鱼群 lb_ub=[-1,2,1]; X=AF_init(fishnum,lb_ub); LBUB=[]; fori=1:size(lb_ub,1) LBUB=[LBUB;repmat(lb_ub(i,1:2),lb_ub(i,3),1)]; end gen=1; BestY=-1*ones(1,MAXGEN); %每步中最优的函数值 BestX=-1*ones(1,MAXGEN); %每步中最优的自变量 besty=-100; %最优函数值 Y=AF_foodconsistence(X); while gen<=MAXGEN fprintf(1,'%d\n',gen) fori=1:fishnum %% 聚群行为 [Xi1,Yi1]=AF_swarm(X,i,visual,step,delta,try_number,LBUB,Y); %% 追尾行为 [Xi2,Yi2]=AF_follow(X,i,visual,step,delta,try_number,LBUB,Y); if Yi1>Yi2 X(:,i)=Xi1; Y(1,i)=Yi1; else X(:,i)=Xi2; Y(1,i)=Yi2; end end [Ymax,index]=max(Y); figure(1); plot(X(1,index),Ymax,'.','color',[gen/MAXGEN,0,0]) ifYmax>besty besty=Ymax; bestx=X(:,index); BestY(gen)=Ymax;

人工鱼群算法matlab实现

functionlhl_AF clc;clear all; close all; format long Visual = 2.5; %人工鱼的感知距离 Step = 0.3; %人工鱼的移动最大步长 N = 10; %人工鱼的数量 Try_number = 50;%迭代的最大次数 delta=0.618; %拥挤度因子 a1 = -10; b1 = 10; a2 = -10; b2 = 10; d = [];%存储50个状态下的目标函数值; k = 0; m = 50;%迭代次数 X1 = rand(N,1)*(b1-a1)+a1; %在-10~10之间,随机生成50个数; X2 = rand(N,1)*(b2-a2)+a2; X = [X1 X2]; %X = ones(N,2); %for i = 1:N % X(i,1)=-10; % X(i,2)=10; %end % 人工鱼数量,两个状态变量X1和X2; %计算50个初始状态下的; for i = 1:N www = [X(i,1),X(i,2)]; d(i) = maxf(www); end %公告牌用于记录人工鱼个体的历史最好状态 [w,i] = max(d); % 求出初始状态下的最大值w和最大值的位置i; maxX = [X(i,1),X(i,2)]; % 初始公告板记录,最大值位置; maxY = w; % 初始化公告板记录,最大值; figurex = []; figurey = []; figurez = []; figurex(numel(figurex)+1) = maxX(1); % 将maxX(1)放入figurex中, figurey(numel(figurey)+1) = maxX(2); % numel返回数组或者向量中所含元素的总数,matlab数组下标默认是从1开始的 figurez(numel(figurez)+1) = maxY; while(k

改进的人工鱼群算法(1)

改进的人工鱼群算法 江铭炎、袁东风、程永明著 山东大学信息科学与工程学院 Email:jiangmingyan@https://www.wendangku.net/doc/7a16802397.html,

摘要: 人工鱼群算法(AFSA)是一种新型的智能优化算法。它有许多优点,比如鲁棒性好、全局搜索能力强、参数公差的设定,而且它也被证明对初始值不敏感。然而,它有一些弱点,表现为在后期优化的优化精度和收敛速度比较差。在本文中,提出了一种改进AFSA(IAFSA),在更新的过程中它将全局信息添加到人工鱼的位置。这实验结果表明,该优化精度和收敛速度的方法与原AFSA相比有明显地改善。 1.简介 人工鱼群算法(AFSA)[1]是(SAS)鱼群优化算法的一种。近年来,如蚁群优化(ACO)的算法的SA [2],粒子群优化(PSO)[3]算法,蜂群算法(BA)[4]越来越多的应用到工程应用中,由此他们在研究领域成为了热点。 这是一种把鱼群行为寻找食物比为社会行为的基础上智能优化算法AFSA。在鱼群行为包括觅食,聚群行为,尾随行为[1],随机行为[5]和觅食行为[6]。与其他(SAS)相似,和它工作在一起的每个种群的个体被称为一个人工鱼(AF),每个人工鱼在“游”的搜索空间根据自己的经验及附近的伙伴来寻找有食物的地区。结果, 随着共享的社会信息、来自于之前人工鱼附近搜索的经验和发现的食物浓度, AFSA可以像其他SA有能力在很宽的空间找到更好的解决方案,有效地搜索全局最优的自适应。 仿照AFSA动物行为的过程,并通过个人的局部优化找出全局最优。在这种算法中,有时人工鱼个体的行为很难避免个体为时过早的

寻找局部最优[1][5]。在这种情况下,许多人工鱼陷入局部最优,只有少数的鱼能达到全局最优的区域。因此,AFSA的优化精度和收敛速度的往往不是十分令人满意。为了提高AFSA的性能, 在IAFSA更新过程中全区域最好的AFSA数据被加到了这个位置。三个基准函数是用来检测新算法的性能;实验结果表明,该IAFSA提高了AFSA的性能,并保留其很多优点,如鲁棒性、公差的参数的设置,寻找适应性等。2.人工鱼群算法 在自然界中,鱼能通过个体独立的搜索还有跟随其它鱼找到更有营养的区域,这个地区的鱼所在的地方通常是营养最丰富的。AFSA 的基本思想是模仿鱼类行为,如觅食,聚群和追尾使鱼个体局部搜索并达到全局最优[1][5]。人工鱼所在环境主要包括解的空间和其它人工鱼的状态。它的下一个行为取决于它现在的状态和地方环境状况(包括解决目前问题的特性和周围同伴的状态)。一人工鱼将会通过其自己的活动影响环境和它的同伴的活动。 从算数角度来讲,把一群人工鱼的N popsize,AF i 和位置向量X i相联系,(D是最优参数)在一个最优的问题中是一种可行的解决方案。让X i(t)表示一个人工鱼现在的位置,X i(t+1)是下一个选择的位置。每次迭代步长t+1, 人工鱼的行为的执行和位置矢量X i(t+1)的更新是通过增加一个增量更新向量△X i(t+1),仅包括局部最优信息。向量的增加是通过当前状态X i(t)和更好的状态X better (t+1),方程如下:

基本人工鱼群算法

基本人工鱼群算法 摘要人工鱼群算法(Artificial Fish-Swarm Algorithm,AFSA)是由李晓磊等在2002年提出的,源于对鱼群运动行为的研究,是一种新型的智能仿生优化算法。它具有较强的鲁棒性、优良的分布式计算机制易于和其他方法结合等优点。目前对该算法的研究、应用已经渗透到多个应用领域,并由解决一维静态优化问题发展到解决多维动态组合优化问题。人工鱼群算法已经成为交叉学科中一个非常活跃的前沿性学科。本文主要对鱼群算法进行了概述,引入鱼群模式的概念,然后给出了人工鱼的结构,接下来总结出了人工鱼的寻优原理,并对人工鱼群算法的寻优过程进行仿真,通过四个标准函数选取不同的拥挤度因子进行仿真实验,证实了利用人工鱼群算法进行全局寻优确实是有效的。 关键词:人工鱼群算法;拥挤度因子;寻优 0 引言 动物在进化过程中,经过漫长的优胜劣汰,形成了形形色色的觅食和生存方式,这些方式为人类解决生产生活中的问题带来了不少启发和灵感。动物不具备复杂逻辑推理能力和综合判断等高级智能,但他们通过个体的简单行为和相互影响,实现了群体的生存和进化。动物行为具有以下几个特点。 (1)适应性:动物通过感觉器官来感知外界环境,并应激性的做出各种反应,从而影响环境,表现出与环境交互的能力。 (2)自治性:在不同的时刻和不同的环境中能够自主的选取某种行为,而无需外界的控制或指导。 (3)盲目性:单个个体的行为是独立的,与总目标之间没有直接的关系。 (4)突现性:总目标的完成是在个体行为的运动过程中突现出来的。 (5)并行性:各个个体的行为是并行进行的。 人工鱼群算法是根据鱼类的活动特点提出的一种基于动物行为的自治体寻优模式。 1 鱼群模式描述 1.1 鱼群模式的提出 20世纪90年代以来,群智能(swarm intelligence,SI)的研究引起了众多学者的极大关注,并出现了蚁群优化、粒子群优化等一些著名的群智能方法。 集群是生物界中常见的一种现象,如昆虫、鸟类、鱼类、微生物乃至人类等等。生物的这种特性是在漫长的进化过程中逐渐形成的,对其生存和进化有着重

基于全局最优的快速人工鱼群算法及其应用研究

基于全局最优的快速人工鱼群算法及其应用研究 人工鱼群算法是一种有关动物行为的算法,这种算法 具有一定的智能性,是最近几年国内学者提出来的。这种人工鱼群算法是从行为方面进行的主要研究,并对原来存在的问题进行解决。 关键词】人工鱼群算法优化方法群体智能 众多实验能够证明,群体智能优化的相关算法在很多问 题的解决上都发挥了至关重要的作用,也得到了十分广泛的应用。 1人工鱼群算法 1.1鱼群及其算法的基本思想人工鱼群算法主要依据的是鱼群的行为启 发,在2002 年被提出的一种有关动物行为的比较优化的算法。一般情况 个范围之内,鱼群中的鱼会跟随群体中的其它成员 起找到食物比较多的地方。而通常情况下,一片水域范围内食物最多的地方往往会有最多的鱼群数目。根据这个特点,使用人工制作的鱼对鱼群的各种行为进行模拟,进而完成直线寻优的目的。 1.2人工鱼模型有关人工鱼模型的算法使用的是基于animats 的模 式,

设计采用的顺序是从上到下的,因此先进行的步骤就是人工 鱼模型的建造。通常情况下使用的是面向对象的技术方式, 并用会用C++语言的伪代码形式来加以说明。人工鱼一般的 模型描述方式如下: Various : float AF_swarm (); //the behavior of swarm float AF_evaluate (); //evaluate and select the behavior float AF_init (); //to initialize the AF Aritificial_fish (); float AF_X[n] ; //AF 's position step float AF_step ; //the distance that AF can moue for each float AF_visual ; //the visual diatance of AF float try_number ; //attempt time in the behavior of prey float AF_delta ; //the condition of jamming Functions : float AF_foodconsistence (); //the food consistence of AF ' s current position float AF_move (); //AF move to the next position float AF_follow (); //the behavior of follow float AF_prey (); //the behavior of prey

人工鱼群算法源代码

人工鱼群算法源代码 %人工鱼群算法;formatlong;Visual=2.5;;Step=0.3;;N=50;;Try_numb er=50;;a1=-10;;b1=10;;a2=-10;;b2=10;;d=[];;h=1e-1;;Friend_numb er=50;;k=0;;m=50;;X1=rand(N,1)*(b1-a1)+a1;;X2=rand(N,1)*(b2-a2) %人工鱼群算法 format long Visual=2.5; Step=0.3; N=50; Try_number=50; a1=-10; b1=10; a2=-10; b2=10; d=[]; h=1e-1; Friend_number=50; k=0; m=50; X1=rand(N,1)*(b1-a1)+a1; X2=rand(N,1)*(b2-a2)+a2; X=[X1 X2];%人工鱼数量 for i=1:N wwww=[X(i,1),X(i,2)]; d(i)=maxf(wwww); end [w,i]=max(d); maxX=[X(i,1),X(i,2)];%初始公告板记录 maxY=w;%初始公告板记录

figurex=[]; figurey=[]; figurez=[]; figurex(numel(figurex)+1)=maxX(1); figurey(numel(figurey)+1)=maxX(2); figurez(numel(figurez)+1)=maxY; kkk=0; while(kmaxf(XX)) XXnext1=XX+rand*Step*(Xc-XX)/norm(Xc-XX); if(XXnext1(1)>b1) XXnext1(1)=b1; end if(XXnext1(1)b2) XXnext1(2)=b2; end if(XXnext1(2)

人工鱼群算法matlab实现

function lhl_AF clc;clear all; close all; format long Visual = 2、5; %人工鱼的感知距离 Step = 0、3; %人工鱼的移动最大步长 N = 10; %人工鱼的数量 Try_number = 50;%迭代的最大次数 delta=0、618; %拥挤度因子 a1 = -10; b1 = 10; a2 = -10; b2 = 10; d = [];%存储50个状态下的目标函数值; k = 0; m = 50;%迭代次数 X1 = rand(N,1)*(b1-a1)+a1; %在-10~10之间,随机生成50个数; X2 = rand(N,1)*(b2-a2)+a2; X = [X1 X2]; %X = ones(N,2); %for i = 1:N % X(i,1)=-10; % X(i,2)=10; %end % 人工鱼数量,两个状态变量X1与X2; %计算50个初始状态下的; for i = 1:N www = [X(i,1),X(i,2)]; d(i) = maxf(www); end %公告牌用于记录人工鱼个体的历史最好状态 [w,i] = max(d); % 求出初始状态下的最大值w与最大值的位置i; maxX = [X(i,1),X(i,2)]; % 初始公告板记录,最大值位置; maxY = w; % 初始化公告板记录,最大值; figurex = []; figurey = []; figurez = []; figurex(numel(figurex)+1) = maxX(1); % 将maxX(1)放入figurex中, figurey(numel(figurey)+1) = maxX(2); % numel返回数组或者向量中所含元素的总数,matlab数组下标默认就是从1开始的 figurez(numel(figurez)+1) = maxY; while(k

人工鱼群算法综述

人工鱼群改进算法研究综述 摘要:人工鱼群算法源于对鱼群运动行为的研究,是一种新型的群体智能随机全局优化算法,人工鱼群算法(AFSA)起步较晚,还存在着许多不足之处。因此本文主要通过阐述鱼群算法的基本理论的同时,对人工鱼群算法的改进方法进行文献综述,并根据这些改进方法指出了人工鱼群算法未来的改进与研究方向。 关键词:人工鱼群算法算法改进综述 1.引言 1.1 人工鱼群算法的基本概念 人工鱼群算法是李晓磊等[1]人于2002年提出的一种基于动物自治体[2-3]的优化方法,是集群智能思想[4]的一个具体应用,该算法根据水域中鱼生存数目最多的地方就是本水域中富含营养物质最多的地方这一特点来模拟鱼群的觅食行为而实现寻优。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工鱼个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度[5]。 人工鱼群算法主要利用鱼的三大基本行为:觅食、聚群和追尾行为,采用自上而下的寻优模式从构造个体的底层行为开始,通过鱼群中各个体的局部寻优,达到全局最优值在群体中凸显出来的目的[6]。 (1)觅食行为:这是鱼趋向食物的一种活动,一般认为它是通过视觉或味觉来感知水中的食物两或食物浓度来选择行动的方向[6]。 (2)聚群行为:大量或少量的鱼聚集成群,进行集体觅食和躲避敌害,这是它们在进化过程中形成的一种生存方式[6]。 (3)追尾行为:当某一条鱼或几条鱼发现食物时,它们附近的鱼会尾随而来,导致更远处的鱼也会尾随过来[6]。

人工鱼群算法就是通过模拟鱼类的觅食、聚群、追尾等行为在搜索域中进行寻优的。 1.2 人工鱼群算法的行为描述 觅食行为:设置人工鱼当前状态,并在其感知范围内随机选择另一个状态,如果得到的状态的目标函数大于当前的状态,则向新选择得到的状态靠近一步,反之,重新选取新状态,判断是否满足条件,选择次数达到一定数量后,如果仍然不满足条件,则随机移动一步[6]。 聚群行为:人工鱼探索当前邻居内的伙伴数量,并计算伙伴的中心位置,然后把新得到的中心位置的目标函数与当前位置的目标函数相比较,如果中心位置的目标函数优于当前位置的目标函数并且不是很拥挤,则当前位置向中心位置移动一步,否则执行觅食行为[6]。 追尾行为:人工鱼探索周围邻居鱼的最优位置,当最优位置的目标函数值大于当前位置的目标函数值并且不是很拥挤,则当前位置向最优邻居鱼移动一步,否则执行觅食[6]。 根据所要解决的问题性质,对人工鱼当前所处的环境进行评价,从而选择一种行为。较常用的评估方法是:选择各行为中使得向最优方向前进最大的方向,也就是各行为中使得人工鱼的下一步状态最优的行为,如果没有能使下一个状态优于当前状态的行为,则采用随机行为。 1.3 人工鱼群算法步骤[6] Step1:设定鱼群的参数,包括鱼群的规模m, 最大迭代次数gen,人工鱼的感知范围Visual,最大移动步长step,拥挤度因子d等; Step2:在参数区间内随机生成m条人工鱼个体作为初始鱼群; Step3:计算每条鱼的食物浓度函数(目标函数),把最优的值放入公告板[7]中; Step4:对于每条人工鱼执行以下操作 (1)计算出追尾行为、聚群行为的值,采用行为选择策略,选择最优的行为作为鱼的移动方向,缺省行为是觅食行为。 (2)计算出每条鱼的食物浓度函数(目标函数),其最优值与公告板中的值

一种新型的智能优化方法—人工鱼群算法

浙江大学 博士学位论文 一种新型的智能优化方法—人工鱼群算法 姓名:李晓磊 申请学位级别:博士 专业:控制科学与工程 指导教师:钱积新 2003.1.1

加,,Z掌博士学位论文一III- 摘要 (优化命题的解决存在于许多领域,对于国民经济的发展也有着巨大的应用前景。随着优化对象在复杂化和规模化等方面的提高,基于严格机理模型的传统优化方法在实施方面变得越来越困难。厂吖 本文将基于行为的人工智能思想通过动物自治体的模式引入优化命题的解决中,构造了一种解决问题的架构一鱼群模式,并由此产生了一种高效的智能优化算法一人工鱼群算法。 文中给出了人工鱼群算法的原理和详细描述,并对算法的收敛性能和算法中各参数对收敛性的影响等因素进行了分析;针对组合优化问题,给出了人工鱼群算法在其中的距离、邻域和中心等概念,并给出了算法在组合优化问题中的描述;针对大规模系统的优化问题,给出了基于分解协调思想的人工鱼群算法;给出了人工鱼群算法中常用的一些改进方法;给出了人工鱼群算法在时变系统的在线辨识和鲁棒PID的参数整定中两个应用实例j最后指出了鱼群模式和算法的发展方向。 f在应用中发现,人工鱼群算法具有以下主要特点: ?算法只需要比较目标函数值,对目标函数的性质要求不高; ?算法对初值的要求不高,初值随机产生或设定为固定值均可以; ?算法对参数设定的要求不高,有较大的容许范围; ?算法具备并行处理的能力,寻优速度较快; ?算法具备全局寻优的能力; 鱼群模式和鱼群算法从具体的实施算法到总体的设计理念,都不同于传统的设计和解决方法,同时它又具有与传统方法相融合的基础,相信鱼群模式和鱼群算法有着良好的应用前景。∥ / 关键词人工智能,集群智能,动物自治体,人工鱼群算法,f优∥ ,l/。7

人工鱼群算法源代码

%人工鱼群算法 format long Visual=2.5; Step=0.3; N=50; Try_number=50; a1=-10; b1=10; a2=-10; b2=10; d=[]; h=1e-1; Friend_number=50; k=0; m=50; X1=rand(N,1)*(b1-a1)+a1; X2=rand(N,1)*(b2-a2)+a2; X=[X1 X2];% 人工鱼数量 for i=1:N wwww=[X(i,1),X(i,2)]; d(i)=maxf(wwww); end [w,i]=max(d); maxX=[X(i,1),X(i,2)];% 初始公告板记录 maxY=w;% 初始公告板记录 figurex=[]; figurey=[]; figurez=[]; figurex(numel(figurex)+1)=maxX(1); figurey(numel(figurey)+1)=maxX(2); figurez(numel(figurez)+1)=maxY; kkk=0; while(k

nf=0; Xc=0; for j=1:N %聚群行为开始 XXX=[X(j,1),X(j,2)]; if(norm(XXX-XX)maxf(XX)) XXnext1=XX+rand*Step*(Xc-XX)/norm(Xc-XX); if(XXnext1(1)>b1) XXnext1(1)=b1; end if(XXnext1(1)b2) XXnext1(2)=b2; end if(XXnext1(2)b1) XXnext1(1)=b1; end if(XXnext1(1)

人工鱼群算法实现最佳路径选择源码

无约束连续函数优化的人工鱼群算法通用MATLAB源码(2008-11-15 09:49:29)标签:杂谈 题目:无约束连续函数优化的人工鱼群算法通用MATLAB源码 此源码是对人工鱼群算法的一种实现,用于无约束连续函数的优化求解,对于含有约束的情况,可以先使用罚函数等方法,把问题处理成无约束的模型,再使用本源码进行求解,本源码由GreenSim团队原创,转载请注明,有意购买源码或代写相关程序,请与GreenSim团队联系(主页.cn/greensim)。 function [BESTX,BESTY,ALLX,ALLY]=FSOUCP(K,N,V,Delta,L,LB,UB) %% Fish Swarm Optimization for Unconstrained Continuous Problem %% FSOUCP.m %% 无约束连续函数的人工鱼群优化算法 % GreenSim团队原创作品,转载请注明 % Email: % GreenSim团队主页:.cn/greensim % [color=red]欢迎访问GreenSim——算法仿真团队→ [url=.cn/greensim].cn/greensim[/url][/color] %% 此函数实现人工鱼群算法,用于求解无约束连续函数最小化问题 %% 对于最大化问题,请先将其加负号转化为最小化问题 %% 输入参数列表 % K 迭代次数 % N 鱼群规模 % V 人工鱼的感知范围 % Delta 拥挤程度的判决门限,取值0~1之间 % L 觅食行为的试探次数 % LB 决策变量的下界,M×1的向量 % UB 决策变量的上界,M×1的向量 %% 输出参数列表 % BESTX K×1细胞结构,每一个元素是M×1向量,记录每一代的最优人工鱼的状态% BESTY K×1矩阵,记录每一代的最优人工鱼的评价函数值 % ALLX K×1细胞结构,每一个元素是M×N矩阵,记录每一代人工鱼的位置 % ALLY K×N矩阵,记录每一代人工鱼的评价函数值 %% 测试函数设置 % 测试函数用单独的子函数编写好,在子函数FIT.m中修改要调用的测试函数名即可 % 注意:决策变量的下界LB和上界UB,要与测试函数保持一致 %% 参考设置 %[BESTX,BESTY,ALLX,ALLY]=FSOUCP(50,30,0.5,0.3,20,LB,UB)

人工鱼群算法matlab实现

人工鱼群算法m a t l a b 实现 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

function lhl_AF clc;clear all; close all; format long Visual = ; %人工鱼的感知距离 Step = ; %人工鱼的移动最大步长 N = 10; %人工鱼的数量 Try_number = 50;%迭代的最大次数 delta=; %拥挤度因子 a1 = -10; b1 = 10; a2 = -10; b2 = 10; d = [];%存储50个状态下的目标函数值; k = 0; m = 50;%迭代次数 X1 = rand(N,1)*(b1-a1)+a1; %在-10~10之间,随机生成50个数; X2 = rand(N,1)*(b2-a2)+a2; X = [X1 X2]; %X = ones(N,2); %for i = 1:N % X(i,1)=-10; % X(i,2)=10; %end % 人工鱼数量,两个状态变量X1和X2; %计算50个初始状态下的; for i = 1:N www = [X(i,1),X(i,2)]; d(i) = maxf(www); end %公告牌用于记录人工鱼个体的历史最好状态 [w,i] = max(d); % 求出初始状态下的最大值w和最大值的位置i; maxX = [X(i,1),X(i,2)]; % 初始公告板记录,最大值位置; maxY = w; % 初始化公告板记录,最大值; figurex = []; figurey = []; figurez = []; figurex(numel(figurex)+1) = maxX(1); % 将maxX(1)放入figurex中,figurey(numel(figurey)+1) = maxX(2); % numel返回数组或者向量中所含元素的总数,matlab数组下标默认是从1开始的 figurez(numel(figurez)+1) = maxY; while(k

人工鱼群算法matlab实现

人工鱼群算法m a t l a b实 现 Revised by Jack on December 14,2020

function lhl_AF clc;clear all; close all; format long Visual = ; %人工鱼的感知距离 Step = ; %人工鱼的移动最大步长 N = 10; %人工鱼的数量 Try_number = 50;%迭代的最大次数 delta=; %拥挤度因子 a1 = -10; b1 = 10; a2 = -10; b2 = 10; d = [];%存储50个状态下的目标函数值; k = 0; m = 50;%迭代次数 X1 = rand(N,1)*(b1-a1)+a1; %在-10~10之间,随机生成50个数; X2 = rand(N,1)*(b2-a2)+a2; X = [X1 X2]; %X = ones(N,2); %for i = 1:N % X(i,1)=-10; % X(i,2)=10; %end % 人工鱼数量,两个状态变量X1和X2; %计算50个初始状态下的; for i = 1:N www = [X(i,1),X(i,2)]; d(i) = maxf(www); end %公告牌用于记录人工鱼个体的历史最好状态 [w,i] = max(d); % 求出初始状态下的最大值w和最大值的位置i; maxX = [X(i,1),X(i,2)]; % 初始公告板记录,最大值位置; maxY = w; % 初始化公告板记录,最大值; figurex = []; figurey = []; figurez = []; figurex(numel(figurex)+1) = maxX(1); % 将maxX(1)放入figurex中,figurey(numel(figurey)+1) = maxX(2); % numel返回数组或者向量中所含元素的总数,matlab数组下标默认是从1开始的 figurez(numel(figurez)+1) = maxY; while(k

人工鱼群算法的现状与改进分析

人工鱼群算法的现状与改进分析 王闯,薛婷,孙林燕 大连海事大学,辽宁大连 (116026) E-mail: wch-7408549@https://www.wendangku.net/doc/7a16802397.html, 摘要:本文首先对人工鱼群算法目前的发展情况进行了简单的综述。然后,通过分析人工鱼群算法的优点和缺点,提出了四种改进思路-改进参数、改进鱼群行为、高阶行为模式、与其它优化算法相融合,并用已有的改进算法加以论证。进而为人工鱼群算法的改进研究提供了新的便利。 关键词:人工鱼群算法,优化算法,算法改进 1. 引言 优化命题的解决存在于许多领域,对于国民经济的发展也有着巨大的应用前景。随着优化对象在复杂化和规模化等方面的提高,基于严格机理模型的传统优化方法在实施方面变得越来越困难。 人工鱼群算法(Artificial Fish-swarm Algorithm,AFSA)是一种基于模拟鱼群行为的优化算法,是由李晓磊等[1]于2002年提出的一种新型的寻优算法。AFSA是一种新型的思路,从具体的实施算法到总体的设计理念,都不同于传统的设计和解决方法,但同时它又能与传统方法相融合。因此,AFSA自提出以来,得到了国内外学者的广泛关注,对算法的研究应用已经渗透到多个应用领域,并由解决一维静态优化问题发展到解决多维动态组合优化问题。AFSA己经成为交叉学科中一个非常活跃的前沿性研究问题。 2. 研究现状 在基本AFSA中,主要是利用了鱼群的觅食、聚群和追尾行为,从构造单条鱼的底层行为做起,通过鱼群中各个体的局部寻优,达到全局最优值在群体中突现出来的目的。通过研究发现,AFSA具有以下特点[1]: l)算法只需要比较目标函数值,对目标函数的性质要求不高; 2)算法对初值的要求不高,初值随机产生或设定为固定值均可以; 3)算法对参数设定的要求不高,有较大的容许范围; 4)算法具备并行处理的能力,寻优速度较快; 5)算法具备全局寻优的能力,能够快速跳出局部极值点。 从目前对AFSA的研究来看,绝大部分集中在如何应用AFSA解决实际问题,对于算法本身的研究和优化,见到的还不多。 通过深入研究和实践发现,AFSA虽然具有很多优良的特性,但它本身也还是存在一些问题,如随着人工鱼数目的增多,将会需求更多的存储空间,也会造成计算量的增长;对精确解的获取能力不够,只能得到系统的满意解域;当寻优的区域较大,或处于变化平坦的区域时,收敛到全局最优解的速度变慢,搜索效率劣化;算法一般在优化初期具有较快的收敛性,而后期却往往收敛较慢。这些算法本身存在的问题,在一定程度上也影响了算法的实际应用。 因此,针对以上缺点,研究如何对人工鱼群算法进行优化、改进,解决算法本身存在的问题,提高算法求解各类优化问题的适应性,提高算法的搜索效率,具有比实际应用研究更重要的意义。

人工鱼群算法的简介及应用

德州律师https://www.wendangku.net/doc/7a16802397.html, 人工鱼群算法是根据鱼在水中寻找食物的行为演化而来。我们知道,在鱼塘里对着某一区域撒下食物,不一会儿就会有大量的鱼儿集中过来,鱼儿在水中一般有觅食,聚群,追尾三种行为,以下是这些行为的描述:(1)觅食行为:鱼一般会呆在食物较多的地方。一般在水里游的鱼,当它发现食物时,会向其游去。(2)聚 群行为:鱼在水中大多是群聚在一起,这样是为了能够更好的在水中生存,观察鱼群不难发现,鱼群中每条鱼之间都保持有一定的距离,而且它们会尽量保持方向一致,而外围的鱼也 都是不断像中心的位置靠近。 (3) 追尾行为:在鱼群中,当一条鱼或者几条鱼发现食物时,其它的鱼也会尾随其快速 的游到食物分布较多的地方。 1.人工鱼群算法原理 1.1人工鱼群算法具的特点 (1)收敛速度较快,可以用来解决有实时性要求的问题; (2)针对一些精度要求不高的情况,可以用来快速的得到一个可行解; (3)不需要问题的严格机理模型,甚至不需要问题的精确描述,这使得它的应用范围得 以扩展。 1.2人工鱼群算法常用终止条件 (1) 判断连续多次所得的均方差小于允许的误差。 (2)判断一些区域的人工鱼群的数量达到某个比率。 (3)连续多次所获取的值均不得超过已寻找的极值。 (4)迭代次数到达设定的最大次数 1.3人工鱼群算法的基本流程 人工鱼群算法演化到具体计算技术,具体流程如下:为两个体之间的距离,xp(v1,v2……vn)个体的当前位置,visual一只鱼的感知距离。 @拥挤度因子。 (1)觅食人工鱼当前位置为Xi,在可见域内随机选择一个位置Xj(d(ij) <=visual),如xj优于xi向xj前进一步,否则随机移动一步。如出现不满足约束则剪去。不变,else =随 机(0,1)}。 (2)聚群:xi可见域内共有nf1条鱼。形成集和KJi,,if KJi不为空, then (xjk属于kji) , 若:(FCc为中心食物浓度,FCi为Xi点食物浓度) 则:向中心移动:X(i+1,k)=不变, 当Xik=X(center,k)时,Xik=随机(0,1), 当Xik!=X(center,k)时,若:FCc/n - [论文网https://www.wendangku.net/doc/7a16802397.html,]f1<@FCi则:进行觅食。 (3)追尾在visual范围内,某一个体食物浓度最大则称为Xmax,若:FCmax>@FCi,则向其移动:X(i+1,k)=当X(i,k)=X(max,k)时,X(i,k)不变,当X(i,k)!=X(max,k)时, X(i,k)=随机(0,1)。 (4)公告板在运算过程中,用于记录下最优Fci 2.人工鱼群算法在各领域的应用 (1)电力系统规划中的应用。电力系统规划的重要组成部分是输电网规划,其目的是

相关文档
相关文档 最新文档