萤火虫算法及其应用研究报告Matlab

上传人:沈*** 文档编号:91693183 上传时间:2022-05-17 格式:DOC 页数:33 大小:395.50KB
收藏 版权申诉 举报 下载
萤火虫算法及其应用研究报告Matlab_第1页
第1页 / 共33页
萤火虫算法及其应用研究报告Matlab_第2页
第2页 / 共33页
萤火虫算法及其应用研究报告Matlab_第3页
第3页 / 共33页
资源描述:

《萤火虫算法及其应用研究报告Matlab》由会员分享,可在线阅读,更多相关《萤火虫算法及其应用研究报告Matlab(33页珍藏版)》请在装配图网上搜索。

1、. .摘 要萤火虫算法(Firefly Algorithm,FA)是受自然界中的萤火虫通过荧光进展信息交流这种群体行为的启发演变而来。它是由剑桥大学的Xin-She Yang教授在2021年提出的,它作为一种新颖的仿生群智能优化算法,有较大的研究空间。近几十年来随着越来越多的仿生群智能算法的提出,人们对于这些算法的认识和研究也逐步加深。本文先介绍群智能优化算法的理论概念,然后着重通过对萤火虫算法仿生原理的了解,从数学的角度对萤火虫算法进展合理的描述和过程的定义,最后编写该算法的matlab代码实现对3个峰值函数进展仿真测试,得出其测试结果。同时用遗传算法对同样的测试函数也进展仿真测试,得出其测

2、试结果。最后通过测试结果比较萤火虫算法和遗传算法分别在对峰值函数寻优结果的准确度。在比较过程中,可以根据测试结果发现,萤火虫算法在对峰值函数的寻优结果的准确度优于遗传算法。这说明了萤火虫算法在连续空间优化的可行性和有效性,同时也说明了萤火虫算法具有良好的应用前景。关键词: 萤火虫算法,仿生群智能优化算法,优化分析,遗传算法ABSTRACTThe Firefly Algorithm (FA) is affected by the nature of the Firefly exchange of information through a fluorescence inspired this k

3、ind of crowd behavior has evolved. It is made by Xin - She Yang professor at the university of Cambridge in 2021, as a novel bionic swarm intelligent optimization algorithm, has a large research space. In recent decades as more bionic swarm intelligent algorithm is put forward, people also gradually

4、 deepen to the understanding and research of those algorithms. First,it is introduced in this paper theoretical concepts of swarm intelligence optimization algorithm, and then emphatically through the understanding of firefly algorithm bionic principle, from the perspective of mathematical descripti

5、ons of firefly algorithm is reasonable and the definition of the process, finally ,writes matlab code of the algorithm to realize the three peak function simulation test, to test results. At the same time with the genetic algorithm on the same test function, simulation test, to test results. Finally

6、 by comparing test results of firefly algorithm and genetic algorithm in the accuracy of the optimization results of peak function respectively. In the process of comparison, according to the result of test,it can shows that the firefly algorithm on the accuracy of the optimization results of peak f

7、unction is superior to genetic algorithm. It shows that the feasibility and effectiveness of firefly algorithm in the continuous space optimization, but also shows that the firefly algorithm has a good application prospect. Keywords:firefly algorithm,The bionic swarm intelligent optimization algorit

8、hm, Optimization analysis, genetic algorithm目 录摘要IABSTRACTII目录III第一章绪论1一、研究的背景及意义1二、群智能优化算法的研究现状1三、本论文的容和构造2第二章群智能优化理论4一、群智能优化算法的概述4二、模拟退火算法4三、遗传算法5四、蚁群算法7五、粒子群优化算法8六、人工萤火虫群优化算法9七、人工鱼群算法11第三章萤火虫算法13一、萤火虫算法的概念13二、萤火虫算法的国外研究现状13三、萤火虫算法的仿生原理14四、萤火虫算法的数学描述与分析15五、萤火虫算法的流程16六、实现萤火虫算法的matlab代码16第四章仿真实验与分析2

9、2一、三个测试函数的介绍22二、 FA和GA对F1(x)的仿真测试22三、 FA和GA对F2(x)的仿真测试25四、 FA和GA对F3(x)的仿真测试27五、测试结果分析30结论31致32参考文献33优选. -第一章 绪论一、 研究的背景及意义在现实生活中,许多优化问题要求人们不仅要计算出其极值,还要得出其最优值。这类问题对传统的算法造成的严峻的挑战。在这种情况下,越来越多的群智能算法相继的提出,其中萤火虫算法就是近几年来提出的一种新颖的仿生群智能优化算法。萤火虫算法是模拟自然界中萤火虫成虫发光的生物学特开展而来,也是基于群体搜索的随机优化算法。关于萤火虫算法目前文献有两种版本。一种是印度学者

10、Krishnanand等人提出,称为GSO(glowworm swarm optimization);另一种由剑桥学者Xin-She Yang提出,称为FA(firefly algorithm)。两种算法的仿生原理一样,但在具体实现方面有一定差异。本文着重研究由剑桥学者Yang提出的萤火虫算法(firefly algorithm,FA)。萤火虫算法经过近几年的开展,在连续空间的寻优过程和一些生产调度方面具有良好的应用前景。二、 群智能优化算法的研究现状近几十年来,国外学者通过研究或模仿群体生活的昆虫、动物的社会行为特征,提出了一系列模拟生物系统中群体生活习性的群智能优化算法。其中较具有代表性的

11、群智能优化算法主要有遗传算法、蚁群算法、粒子群算法、蜂群算法、人工鱼群算法、萤火虫算法等。1975年,美国的J.Holland教授借鉴生物界的进化规律提出的遗传算法(Genetic Algorithm,GA)。遗传算法目前已被广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。1991年,意大利学者Dorigo M.等人通过模拟蚂蚁的群体行为提出了蚁群算法(Ant Colony Algorithm, ACA),并用于解决复杂的组合优化问题。1995年,Kennedy和Eberhart等人提出了粒子群优化算法(Particle Swarm Optimization,PSO)。粒

12、子群算法可应用于非线性复杂约束规划、作业调度优化、经济分配和数据挖掘等。1995年,Theraulaz提出了蜜蜂通过与环境之间的信息交互实现安排工作的模型,即蜂群算法(Wasp Colony Algorithm,WCA)。该算法可用于解决作业车间调度问题等。2002年,晓磊等人通过观察鱼类在水中游弋觅食的行为特点提出人工鱼群算法(Artificial Fish-swarm Algorithm,AFSA)。人工鱼群算法目前已用于组合优化、参数估计、PID控制器的参数整定、神经网络优化等。2005年,印度学者K.N. Krishnanand和D. Ghose提出一种新的群智能优化算法,人工萤火虫群

13、优化(Glowworm Swarm Optimization, GSO)算法。迄今为止,人工萤火虫群优化算法在多模态函数优化问题、多信号源追踪问题、多信号源定位问题、有害气体泄漏定位问题、组合优化等方面得到成功的应用,且表现出良好的性能。2021年,剑桥学者Xin-She Yang根据自然界中萤火虫的发光行为提出萤火虫算法(Firefly algorithm,FA)。萤火虫算法在生产调度、路径规划等方面具有良好的应用前景。三、 本论文的容和构造本论文的主要容有以下几个方面:1、 对群智能优化算法的根本介绍。2、 研究萤火虫算法的根本原理。3、 通过数学角度对萤火虫算法的描述和分析。4、用萤火虫

14、算法编写matlab算法对3个经典函数进展测试,并与遗传算法进展比较。5、 通过测试数据分析得出结论。本论文共五章,其容编排构造如下:第一章 绪论本章主要是简单的介绍下本论文的研究背景及意义、群智能优化算法的研究现状,最后又介绍了本论文的容和构造。第二章 群智能优化理论本章先是对群智能优化算法进展概述,然后对模拟退火算法、遗传算法、蚁群算法、粒子群算法、人工萤火虫群优化算法、人工鱼群算法进展原理的了解和阐述。第三章 萤火虫算法本章先是对萤火虫算法进展概念介绍,然后再对萤火虫算法的优化机理进展阐述,其中包括萤火虫算法国外研究现状和萤火虫算法的仿生原理两个方面,然后用数学角度对萤火虫算法进展描述与

15、分析,接着对萤火虫算法的流程进展优化,最后完成萤火虫算法matlab代码的实现。第四章 仿真实验与分析本章先是对3个测试函数的介绍,然后分别用萤火虫算法和遗传算法编写matlab代码对这3个测试函数进展测试,得出相应的结果,最后比较分析这两种算法的测试结果,得出结论。结论本章通过第四章测试结果分析,得出了萤火虫算法在连续空间优化的可行性和有效性的结论,这说明了萤火虫算法具有良好的应用前景。第二章 群智能优化理论一、 群智能优化算法的概述群智能优化算法是近年来计算智能领域出现一种新型的优化技术,这种技术具有良好的优化效果和简洁的数学理论,越来越受到人们极大的关注。群智能优化作为优化算法的方向之一

16、,其主要的思想是源自于模拟自然界各种社会性动物、植物等的群体行为,利用群体个体之间的共同协助和信息交换来实现最终寻优的目的。相对于传统的优化算法,群智能优化算法的特点是理论简单、易于实现、寻优效果更优等优点。虽然群智能优化算法在近些年的研究中有了很大开展,但总体来说,这种新型的优化算法仍然存在很多缺乏,还有很多问题有待于进一步研究解决,如数学理论支撑薄弱、如何使得算法的优化效果更好和寻优速度更快,以及怎么样能更广泛的应用到实际问题中去等等。以下对几种典型的群智能优化算法进展简要的概述。二、 模拟退火算法模拟退火算法7(Simulated Annealing,SA)是1983年由Kirkpatr

17、ick首次提出的一种组合优化算法。该算法来源于固体退火原来,将固体加温至充分高,再让其徐徐冷却,加温时,固体部粒子随温度上升变为无序状态,能增大。而徐徐冷却时粒子渐趋有序,每个温度都到达平衡状态,最后在常温时到达基态,能减为最小。模拟退火算法借鉴热力学中的能量方程,同时又引入了Metropolis准那么,粒子在温度T时趋于平衡的概率为:,其中E为温度T时的能,为其改变量,k为Boltzmann常数。算法的根本思想是从一个给定解开场,从领域中随机产生另一个解,承受准那么允许目标函数在有限围变换,以一定概率承受较差的解。用固体退火模拟组合优化问题,将能E模拟为目标函数值f,温度T演化成控制参数t,

18、即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开场,对当前解重复产生新解计算目标函数差承受或舍弃的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,模拟退火算法已经被证明是一种依赖于概率1收敛于全局最优解的优化方法。模拟退火算法的迭代搜索过程以Boltzmann分布概率承受函数目标的劣化解,所以模拟退火算法具有脱离局部最优陷阱的能力,而且具有高效、鲁棒、通用、灵活的优点。但其参数难以控制,如初始温度T的设置太大,算法要花费大量的时间,设置太小,那么全局搜索性能可能受到影响。还有退火速度问题,也要做合理的设置。模拟退火算法的应用很广泛,在求解最大截问题(Max Cut

19、Problem)、0-1背包问题(Zero One Knapsack Problem)、图着色问题(Graph Colouring Problem)、调度问题(Scheduling Problem)等方面效率较高。三、 遗传算法遗传算法8(Genetic Algorithm,GA)是群智能优化算法中思想起源较早的算法之一。它是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法。1975年,美国Michigam大学的J.Holland教授参照适者生存的生物进化法那么和种群的思想提出一些解决复杂优化问题的理论和方法。遗传算法模拟生物进化的根本过程,用数码串来类比生物中的染色个体,通过选择、穿插、

20、变异等遗传算子来仿真生物的根本进化过程,利用适应度函数来表示染色体所蕴涵问题解的质量的优劣,通过种群的不断更新换代,从而提高每代种群的平均适应度,通过适应度函数引导种群的进化方向,并在此根底上,使得最优个体所代表的问题解逼近问题的全局最优解。遗传算法求解问题的根本思想是维持由一群个体组成的种群p(t) (t代表遗传代数),每一个体均代表问题的一个潜在解,每一个体都被评论优劣并得到其适应值。个体通过遗传算子产生新的个体,新产生的个体继续被评论优劣,从父代种群和子代种群中选择比较优秀的个体形成新的种群。在假设干代以后,算法收敛到一个最优个体,该个体很可能代表着问题的最优解或次优解。在遗传算法中,每

21、个问题的可行解对应于一个染色体。通常可以用特定编码方式如二进制编码生成的编码串来表示染色体,而其中每一个编码单元那么成为基因。采用遗传算法求解问题时,首先需要将问题的解用染色体来表示。完成编码表示之后,在染色体的表示空间中随机产生一个初始种群,然后通过迭代的选择操作、基因重组操作和变异操作对染色体集合进展进化。在到达终止条件后对最优的染色体进展编码,便可以得到待求解问题的最优解或者相似最优解。遗传算法的流程包括以下六个步骤。第一步:初始化过程。该步骤首先初始化算法的参数,包括搜索空间的围、种群的大小,以及穿插率和变异率等。然后在搜索空间中随机生成一个初始种群。第二步:适应度评估。这一步对初始种

22、群进展适应度评估。个体的适应度表达了该个体的优劣程度,是执行后续选择操作的依据。适应度函数通常由问题的优化目标确定。例如在求函数最大值时,可以直接将目标函数值作为适应度函数。这样,函数值越大,相应的适应度也越大。不过在实际的应用中,为了提高算法的搜索效率,通常需要对目标函数进展相应的处理,如执行缩放变换和平移变换等。对于没有显示数学表达公式的问题TSP问题等组合问题,可以通过对解建模,从而求得一个函数值作为适应度如计算解路径的长度等。第三步:选择操作。选择是优胜劣汰的过程。在计算出每个个体的适应度后,较优的个体将以较大的概率生存下来,而较差的个体将很可能被淘汰掉。为了实现这个目标,通常有轮盘赌

23、选择法和锦标赛选择法这两种经典选择策略。第四步:穿插操作。穿插操作是父代基因重新组合的过程。基因重组的方式有单点穿插、多点穿插和均匀穿插等多种方式。第五步:变异操作。个体的基因在进化过程中会以很小的概率发生变异。变异操作给染色体种群带来了新的基因,是保证算法找到最优解以及使得算法以渐进的形式逼近最优解的重要操作。第六步:评估新种群的适应度。这一步骤对新生成的种群重新进展适应度评估。此时假设到达算法的终止条件那么停顿算法,否那么返回第三步继续操作。遗传算法是具有生成+检测(generate-and-test)的迭代过程的搜索算法,遗传操作算子使遗传算法具有了与传统的其他搜索算法如爬山法、分支界定

24、法、禁忌搜索算法等不同的工作机理,当遇到较大规模的问题时,遗传算法有着不可替代的优异性:如遗传算法并不是对问题的待优化参数本身进展操作,而是通过由这些参数所编码形成的染色体进展穿插、变异和选择等操作。遗传算法操作的对象不限于一个,而是对由大量对象形成的种群进展操作,这种做法使得参与操作的信息量大,速度快,效果好,使得整个优化过程容易跳出局部最优。遗传算法不依赖于问题领域的信息来指导搜索,其实现简单,效果良好,通用性好,鲁棒性强等。虽然遗传算法具有上述优点,但由于遗传算法本质上是一种基于概率的启发式随机搜索方法,遗传算法也有自身的缺陷:如遗传算法是对种群进展概率性操作,所以,在全局寻优上效果良好

25、,而在局部寻优上存在缺乏;在算法进展的前期搜索效果良好,而在算法进展的后期搜索速度缓慢;遗传算法虽然实现简单,但实现的效果很大程度上取决于问题的多种参数,如果这些参数设置不好,此时的遗传算法类似随机搜索算法,甚至会出现早熟收敛现象。与传统方法相比,遗传算法具有隐式并行性和全局搜索性两大主要特点,作为强有力且应用广泛的随机搜索和优化方法,遗传算法可能是当今影响最广泛的进化计算方法之一。近几十年来,遗传算法主要在复杂优化问题求解和工业工程领域应用方面,取得了一些令人信服的结果,遗传算法成功的应用包括:函数优化、机器学习、组合优化、人工神经元网络训练、自动程序设计、专家系统、作业调度与排序、可靠性设

26、计、车辆路径选择与调度、成组技术、设备布置与分配等等。四、 蚁群算法人工蚁群算法9是受到人们对自然界中真实的蚁群集体行为研究成果的启发而提出的一种基于蚁群的模拟进化算法,属于随机搜索算法,由意大利学者M.Dorigo等人于1991年首先提出。仿生学家经过大量细致观察研究发现,蚂蚁个体之间是通过一种称之为外激素(pheromone)的物质进展信息传递,从而能互相协作,完成复杂的任务。蚁群之所以表现出复杂有序的行为,个体之间的信息交流与相互协作起着重要的作用。蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且蚂蚁在运动过程中能够感知这种物质的存在及其强度,并以此指导自己的运动方向,蚂蚁倾向

27、于朝着该物质强度高的方向移动。因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反响现象:某一路径上走过的蚂蚁越多,那么后来者选择该路径的概率就越大。蚂蚁个体之间就是通过这种信息的交流到达搜索食物的目的。蚁群算是模拟了这样的优化机制,即通过个体之间的信息交流与相互协作最终找到最优解。以TSP问题为例,设有n个城市,m只蚂蚁,(i,j=1,2,n)表示城市i和j间的距离,表示在t时刻城市i和j之间的信息量,那么在t时刻蚂蚁k在i节点选择j节点的转移概率为:其中,allowedk=0,1,n-1-tabuk,表示蚂蚁k下一步允许选择的城市,tabuk(k=1,2,m)用以记录蚂蚁k以前所走过的

28、城市,集合tabuk随着进化过程作动态调整。经过n个时刻,蚂蚁完成一次循环,每只蚂蚁所走过的路径就是一个解。此时,要根据下面公式对各路径上的信息量做更新:由上述可知,蚁群算法优化过程的本质在于:1、选择机制。信息量越大的路径,被选择的概率越大。2、更新机制。路径上面的信息量会随蚂蚁的经过而增长,同时也随着时间的推移逐渐减小。3、协调机制。蚂蚁之间实际上是通过信息量来互相通信、协同工作的,这样的机制使得蚁群算法具有很强的发现较好解的能力。但是,蚁群算法也有一些缺陷。例如,由于蚁群中多个个体的运动是随机的,当群体规模较大时,要找出一条较好的路径需要较长的搜索时间等。意大利学者M.Dorigo等人充

29、分利用蚁群搜索食物的过程与旅行商问题(TSP)之间的相似性,解决了TSP问题,取得了很好的结果。随后,蚁群算法被用来求解分配问题、网络路由问题、指派问题、车间作业调度问题、电力系统故障诊断等NP完全问题,显示出蚁群算法在求解复杂优化问题方面的优越性。五、 粒子群优化算法动物世界的群体行为神秘而有趣。无论是天空的飞鸟还是湖泊中的鱼群,它们在迁徙、觅食等过程中所表现出来的高度组织性和规律性一直吸引着各领域的学者对它们展开研究。粒子群优化算法3(Particle Swarm Optimization,PSO)正是在这种研究气氛中诞生的一种新型启发式进化算法。粒子群优化算法最早是由Kenney与Ebe

30、rhart于1995年提出的。它是模拟鸟群的捕食行为,让一群鸟在空间里自由飞翔觅食,每个鸟都能记住它曾经飞过最高的位置,然后就随机的靠近那个位置,不同的鸟之间可以互相交流,它们都尽量靠近整个鸟群中曾经飞过的最高点,这样,经过一段时间就可以找到近似的最高点。粒子群优化算法后俩经过屡次的改进,去除了原来算法中一些无关的或冗余的变量,又参加了一些随机变化的量,使得鸟群的运动更像空间微粒的运动,所以称之为粒子群算法。粒子群优化算法求解问题的根本思想是随机产生一粒子群作为初始解,用粒子的位置表示待优化问题的解,每个粒子性能的优劣程度取决于待优化问题目标函数确定的适应值,微粒尽量靠近最优点并且有随机的变化

31、发生,使得微粒不会停留在最优点不动,而是尽量靠近,同时保持创新性。每个微粒记录它自己的最优位置(pbest),还要记录所有微粒的最优位置(gbest),然后通过比较当前位置和两个最优位置的差异来调整速度以确定下一步的位置。每个粒子由一个速度矢量决定其飞行方向和速率大小,通过改变速度的大小和方向使随机的初始解飞向最优解。粒子群优化算法流程如下:第一步:随机产生N个粒子,初始化每个的速度和位置,并评估所有初始化粒子的适应度。将当前个体设为历史最优pBest,而全局最优个体设为gBest。第二步:更新每个粒子的速度和位置。假设当前粒子的位置信息和速度信息分别为和,其中D为问题的维数。那么更新后的粒子

32、的位置和速度分别为:第三步:评估所有粒子的适应度。第四步:更新所有粒子的历史最优信息pBest。如果粒子当前的适应度比其pBest的适应度要好,那么用当前粒子替换掉pBest。第五步:更新全局最优信息gBest。如果粒子当前的适应度比其gBest的适应度要好,那么要当前粒子替换掉gBest。第六步:假设到达完毕条件那么完毕,否那么返回第二步继续执行。粒子群优化算法与遗传算法都属于进化算法,但粒子群优化算法防止了二进制编码的麻烦,而且操作更加直观,粒子群优化算法流程简单易实现,算法参数简洁,无需复杂的调整。粒子群优化算法的缺点是:初始化过程是随机的,这虽然可保证初始解群分布均匀,但个体的质量不能

33、保证。其次,粒子利用自身、个体及全局信息来更新自己的速度和位置,这是一个正反响过程,当自身信息及个体信息占优势时,算法易陷入局部最优。目前,许多学者针对根本粒子群优化算法提出了很多种改进算法,这些改进的粒子群优化算法已广泛应用于函数优化、系统识别、神经网络训练、信号处理和机器人等实际应用领域,取得了丰富的成果。六、 人工萤火虫群优化算法 人工萤火虫群优化算法(Glowworm Swarm Optimization,GSO)是源于模拟自然界萤火虫在晚上的群聚活动的自然现象而提出的,在萤火虫的群聚活动中,每只萤火虫通过散发荧光素与同伴进展寻觅食物以及求偶等信息交流。一般来说,荧光素越亮的萤火虫其号

34、召力也就越强,最终会出现很多萤火虫聚集在一些荧光素较亮的萤火虫周围。人工萤火虫算法就是根据这种现象而提出的一种新型的仿生群智能优化算法。在人工萤火虫群优化算法中,每只萤火虫被视为解空间的一个解,萤火虫种群作为初始解随机的分布在搜索空间中,然后根据自然界萤火虫的移动方式进展解空间中每只萤火虫的移动。通过每一代的移动,最终使的萤火虫聚集到较好的萤火虫周围,也即是找到多个极值点,从而到达种群寻优的目的。在根本GSO中,把n个萤火虫个体随机分布在一个D维目标搜索空间中,每个萤火虫都携带了萤光素li。萤火虫个体都发出一定量的萤光相互影响周围的萤火虫个体,并且拥有各自的决策域。萤火虫个体的萤光素大小与自己

35、所在位置的目标函数有关,荧光素越大,越亮的萤火虫表示它所在的位置越好,即有较好的目标值,反之那么目标值较差。决策域半径的大小会受到邻域个体的数量的影响,邻域萤火虫密度越小,萤火虫的决策域半径会加大,以便找到更多的邻居;反之,那么萤火虫的决策域半径会缩小。最后,大局部萤火虫会聚集在多个位置上。初始萤火虫时,每个萤火虫个体都携带了一样的萤光素浓度和感知半径。定义1 荧光素更新 式(1)其中,为每只萤火虫i在t迭代的位置对应的目标函数值;代表当前萤火虫的荧光素值;为荧光素更新率。定义2 概率选择 选择移向领域集个体j的概率: 式(2)其中,领域集,,为萤火虫个体的感知半径。定义3 位置更新 式(3)

36、 其中s为移动步长。定义4 动态决策域半径更新 式(4) 算法流程描述如下:步骤1:初始化各个参数。步骤2:随机初始化第i(i=1,2,n)个萤火虫在目标函数搜索围的位置。步骤3:使用公式(1)把萤火虫i在第t次迭代的位置对应的目标函数值转化为荧光素值。步骤4:每只萤火虫在其动态决策域半径,选择荧光素值比自己高的个体组成其邻域集,其中。为萤火虫个体的感知半径。步骤5:利用公式(2)计算萤火虫i移向邻域集个体j的概率。步骤6:利用轮盘赌的方法选择个体j,然后移动,根据公式(3)更新位置。步骤7:根据公式(4)更新动态决策域半径的值。步骤8:是否到达指定的代数,如果到达那么转向步骤9, 否那么转向

37、步骤4。步骤9:输出结果,程序完毕。七、 人工鱼群算法人工鱼群算法12(Artificial Fish Swarm Algorithm,AFSA)是晓磊等人于2002年在对动物群体智能行为研究的根底上提出的一种新型仿生优化算法,该算法根据水域中鱼生存数目最多的地方一般就是本水域中富含营养物质最多的地方这一特点来模仿鱼群的觅食行为而实现寻优。人工鱼群算法主要利用鱼的三大根本行为:觅食、聚群和追尾行为,采用自上而下的寻优模式从构造个体的 底层行为开场,通过鱼群中各个体的局部寻优,到达全局最优值在群体中突现出来的目的。人工鱼群算法就是一种基于动物行为的自治体寻优模式,它是基于鱼类的活动特点构建起来的

38、新型智能仿生算法。通常人们可以观察到如下的鱼类行为:1、觅食行为:这是鱼趋向食物的一种活动,一般认为它是通过视觉或味觉来感知水中的食物量或食物浓度来选择行动方向的。2、聚群行为:大量或少量的鱼聚集成群,进展集体觅食和躲避敌害,这是它们在进化过程中形成的一种生存方式。3、追尾行为:当某一条鱼或者几条鱼发现食物时,它们附近的鱼会尾随而来,导致更远处的鱼也尾随过来。4、随机行为:鱼在水中随机的自由游动,目的是为了更大围的寻觅食物或者同伴。觅食行为主要认为就是循着食物多的方向游动的一种行为,在寻优中那么是向较优方向进展的迭代方式。聚群行为能够很好地跳出局部极值,并尽可能搜索到其他的极值,最终搜索到全局

39、极值。追尾行为有助于快速的向某个极值方向前进,加快寻优的速度,并防止人工鱼在局部振荡而停滞不前。鱼群算法在对以上行为进展评价后,自动选择适宜的行为,从而形成一种高效快速的寻优策略。人工鱼群算法的行为描述:1、觅食行为:设人工鱼当前状态为,在其感知围随机选择一个状态,如果,那么向方向前进一步;反之,再重新随机选择状态,判断是否满足前进的条件;反复几次后,如果仍不满足前进条件,那么随机移动一步。2、聚群行为:人工鱼当前状态为,探索当前领域(即)的伙伴数目及中心位置,如果且,说明伙伴中心有较多的食物并且不太拥挤,那么朝伙伴中心位置方向前进一步;否那么执行觅食行为。如果=0,也执行觅食行为。3、追尾行

40、为:人工鱼当前状态为,探索当前领域(即)的伙伴中适应度值最大的伙伴,且,说明伙伴的状态具有较高的食物浓度并且周围不太拥挤,朝伙伴的方向前进一步;否那么执行觅食行为。如果=0,也执行觅食行为。4、随机行为:随机行为的实现比较简单,就是在视野中随机选择一个状态,然后向该方向移动,其实它是觅食行为的一个缺省行为。基于以上描述的人工鱼行为,每条人工鱼根据自身当前的目标函数变化情况和它的伙伴目标函数的变化情况,依照行为选择机制,选择一种较优行为移动,最终,多数人工鱼会集结在几个局部极值的周围。一般情况下,在讨论求极小问题时,拥有较小适应度函数值的人工鱼一般处于值较小的极值区域周围,这有助于判断并获取全局

41、极值。人工鱼群算法是模仿鱼类行为方式提出的一种基于动物自治体的优化方法,是仿生智能思想的一个具体应用,从总体的设计理念到具体的实施算法,都不同于传统的设计和解决方法,同时它又具有与传统方法相融合的根底。该算法已在组合优化、参数估计、电力系统无功优化、边坡稳定、前向神经网络优化、输电网规划、非线性方程求解等方面得到了很好的应用,并且都取得了很好的效果。第三章 萤火虫算法一、 萤火虫算法的概念萤火虫算法(Firely Algorithm,FA)是一种启发式算法,这种算法启发于晚上萤火虫发光的行为。萤火虫的闪光,其主要目的是作为一个信号系统,以吸引其他的萤火虫。剑桥大学的Xin-She Yang教授

42、在2021年提出了萤火虫算法,其假设为:1、萤火虫不分性别,它将会被吸引到所有其他比它更亮的萤火虫那去;2、萤火虫的吸引力和亮度成正比,对于任何两只萤火虫,其中一只会向着比它更亮的另一只移动,然而,亮度是随着距离的增加而减少的;3、如果没有找到一个比给定的萤火虫更亮,它会随机移动。二、 萤火虫算法的国外研究现状萤火虫算法是剑桥大学的Xin-She Yang教授于2021年提出的一种新型的群智能优化算法。目前,国外关于萤火虫算法的研究工作主要有:1、在2021年,剑桥大学的Xin-She Yang教授根据自然界中萤火虫的行为首次提出一种新型的群智能优化算法萤火虫算法。2、在2021年4月,Xin

43、-She Yang发表对于萤火虫算法的随机优化的研究报告。3、在2021年5月,Xin-She Yang发表研究了萤火虫算法的多模优化问题。4、在2021年11月,Theofanis Apostolopoulos和Aristidis Vlachos发表研究了应用萤火虫算法解决经济排放负荷调度问题。5、在2021年1月,Mohammad Asif Zaman和Md. Abdul Matin发表研究了基于萤火虫算法的非均匀间隔的线性阵列天线设计。6、在2021年10月,Surafel Luleseged Tilahun和Hong Choon Ong提出萤火虫算法的优化问题。国关于萤火虫算法的研究工

44、作主要有:1、在2021年7月,王迎菊和周永权提出了一种基于荧光素扩散的 人工萤火虫算法。2、在2021年9月,长平和叶春明发表介绍了萤火虫算法。3、在2021年3月,伟和汪镭提出了基于萤火虫算法的神经网络CPI预测模型。4、在2021年6月,长平和叶春明发表了置换流水车间调度问题的萤火虫算法求解。5、在2021年6月,周季华和叶春明发表了应用萤火虫算法求解PFSP问题。6、在2021年8月,袁际军发表基于多目标萤火虫算法的可调节产品族优化设计。7、在2021年9月,娇和叶春明发表了应用新型萤火虫算法求解Job-shop调度问题。8、在2021年1月,周季华和叶春明提出了应用萤火虫算法求解置换

45、流水线问题。9、在2021年3月,曾冰、明富、翼等人发表了基于萤火虫算法的装配序列规划研究。10、在2021年4月,铁、晔等人发表了基于改进型人工萤火虫算法的云计算资源研究。从萤火虫算法的国外研究现状来看,萤火虫算法不断进展优化改进并已经逐步应用于各种领域。但毕竟萤火虫算法是近几年刚刚提出的,在许多方面也有待于改进完善。三、 萤火虫算法的仿生原理自然界中约有2000种萤火虫,多数种类的萤火虫会发出短促、有节奏的荧光,不同种类的萤火虫发光目的不同,其真实原因仍在探讨当中。一般认为,萤火虫成虫发光的生物学意义是利用物种特有的闪光信号来定位并吸引异性,借此完成求偶交配及繁殖的使命;少数萤火虫利用闪光

46、信号进展捕食;还有一种作用是作为戒备信号,即当萤火虫受到刺激时会发出亮光。萤火虫优化算法就是模拟自然界中萤火虫的发光行为构造出的随机优化算法,但在算法中舍弃了萤火虫发光的一些生物学意义,只利用其发光特性来根据其搜索区域寻找伙伴,并向邻域构造位置较优的萤火虫移动,从而实现位置进化。 在该算法中,萤火虫彼此吸引的原因取决于两个要素,即自身亮度和吸引度。其中,萤火虫发出荧光的亮度取决于自身所在位置的目标值,亮度越高表示所处的位置越好,即目标值越佳。吸引度与亮度相关,越亮的萤火虫拥有越高的吸引力,可以吸引视线围亮度比其弱的萤火虫往这个方向移动。如果发光亮度一样,那么萤火虫各自随机移动。亮度和吸引度与萤

47、火虫之间的距离成反比,都随着距离的增加而减小,这相当于模拟了荧光在空间传播时被传播媒介吸收而逐渐衰减的特性。萤火虫算法是通过模拟萤火虫的群体行为构造出的一类随机优化算法。其仿生原理是:用搜索空间中的点模拟自然界中的萤火虫个体,将搜索和优化过程模拟成萤火虫个体的吸引和移动过程,将求解问题的目标函数度量成个体所处位置的优劣,将个体的优胜劣汰过程类比为搜索和优化过程中用好的可行解取代较差可行解的迭代过程。四、 萤火虫算法的数学描述与分析如上所述,萤火虫算法包含两个要素,即亮度和吸引度。亮度表达了萤火虫所处位置的优劣并决定其移动方向,吸引度决定了萤火虫移动的距离,通过亮度和吸引度的不断更新,从而实现目

48、标优化。从数学角度对萤火虫算法的优化机理进展如下描述:定义5 萤火虫的相对荧光亮度为 式(5)其中:为萤火虫的最大萤光亮度,即自身(r =0处)荧光亮度,与目标函数值相关,目标函数值越优自身亮度越高;为光强吸收系数,因为荧光会随着距离的增加和传播媒介的吸收逐渐减弱,所以设置光强吸收系数以表达此特性,可设为常数;为萤火虫i与j之间的空间距离。定义6 萤火虫的吸引度为 式(6)其中:为最大吸引度,即光源处(r=0处)的吸引度;为光强吸收系数,因为荧光会随着距离的增加和传播媒介的吸收逐渐减弱,所以设置光强吸收系数以表达此特性,可设为常数;为萤火虫i与j之间的空间距离。定义7 萤火虫i被吸引向萤火虫j

49、移动的位置更新由公式(7)决定: 式(7)其中,、为萤火虫i和j所处的空间位置;为步长因子,是上的常数;rand为上服从均匀分布的随机因子。算法实现优化的过程是:先将萤火虫群体随机散布在解空间,每一只萤火虫因为所处位置不同发出的荧光亮度也不同,通过比较(根据式(5),亮度高的萤火虫可以吸引亮度低的萤火虫向自己移动,移动的距离主要取决于吸引度的大小(根据式(6)。为了加大搜索区域,防止过早陷入局部最优,在位置更新过程中增加了扰动项,根据式(7)来计算更新后的位置。这样通过屡次移动后,所有个体都将聚集在亮度最高的萤火虫的位置上,从而实现寻优。五、 萤火虫算法的流程 综上所述,萤火虫优化算法流程如下

50、: 1、初始化算法根本参数。设置萤火虫数目n,最大吸引度,光强吸收系数,步长因子,最大迭代次数MaxGeneration或搜索精度。 2、随机初始化萤火虫的位置,计算萤火虫的目标函数值作为各自最大萤光亮度。 3、由式(5)、(6)计算群体中萤火虫的相对亮度和吸引度,根据相对亮度决定萤火虫的移动方向。 4、根据式(7)更新萤火虫的空间位置,对处在最正确位置的萤火虫进展随机扰动。 5、根据更新后萤火虫的位置,重新计算萤火虫的亮度。 6、当满足搜索精度或到达最大搜索次数那么转下一步;否那么,搜索次数增加1,转第三步,进展下一次搜索。 7、输出全局极值点和最优个体值。算法的时间复杂度为,n是萤火虫数目

51、。六、 实现萤火虫算法的matlab代码参数的设置:萤火虫数目n=12;光吸收强度系数=1.0;步长因子=0.2;最大吸引度=1.0;迭代次数MaxGeneration=100。测试函数为:用萤火虫算法求解函数的最优解的matlab代码为如下:% Firefly Algorithm by X S Yang (Cambridge University)%Usage:ffa_demo(number_of_fireflies,MaxGeneration)% eg: ffa_demo(12,100);function best=firefly_simple(instr)% n=number of fi

52、reflies% MaxGeneration=number of pseudo time stepsif nargin1, instr=12 100; endn=instr(1); MaxGeneration=instr(2);rand(state,0); % Reset the random generator% - Four peak functions -str1=exp(-(x-4)2-(y-4)2)+exp(-(x+4)2-(y-4)2);str2=+2*exp(-x2-(y+4)2)+2*exp(-x2-y2);funstr=strcat(str1,str2);% Converti

53、ng to an inline functionf=vectorize(inline(funstr);% range=xmin xmax ymin ymax;range=-5 5 -5 5;% -alpha=0.2; % Randomness 0-1 (highly random)gamma=1.0; % Absorption coefficient% -% Grid values are used for display onlyNgrid=100;dx=(range(2)-range(1)/Ngrid;dy=(range(4)-range(3)/Ngrid;x,y=meshgrid(ran

54、ge(1):dx:range(2),.range(3):dy:range(4);z=f(x,y);% Display the shape of the objective functionfigure(1);surfc(x,y,z);% -% generating the initial locations of n firefliesxn,yn,Lightn=init_ffa(n,range);% Display the paths of fireflies in a figure with% contours of the function to be optimizedfigure(2)

55、;% Iterations or pseudo time marchingfor i=1:MaxGeneration, % start iterations% Show the contours of the functioncontour(x,y,z,15); hold on;% Evaluate new solutionszn=f(xn,yn);% Ranking the fireflies by their light intensityLightn,Index=sort(zn);xn=xn(Index); yn=yn(Index);xo=xn;yo=yn; Lighto=Lightn;

56、% Trace the paths of all roaming firefliesplot(xn,yn,.,markersize,10,markerfacecolor,g);% Move all fireflies to the better locationsxn,yn=ffa_move(xn,yn,Lightn,xo,yo,.Lighto,alpha,gamma,range);drawnow;% Use hold on to show the paths of fireflieshold off;end % end of iterationsbest(:,1)=xo;best(:,2)=

57、yo; best(:,3)=Lighto;% - All subfunctions are listed here -% The initial locations of n firefliesfunction xn,yn,Lightn=init_ffa(n,range)xrange=range(2)-range(1);yrange=range(4)-range(3);xn=rand(1,n)*xrange+range(1);yn=rand(1,n)*yrange+range(3);Lightn=zeros(size(yn);% Move all fireflies toward bright

58、er onesfunction xn,yn=ffa_move(xn,yn,Lightn,xo,yo,.Lighto,alpha,gamma,range)ni=size(yn,2); nj=size(yo,2);for i=1:ni,% The attractiveness parameter beta=exp(-gamma*r)for j=1:nj,r=sqrt(xn(i)-xo(j)2+(yn(i)-yo(j)2);if Lightn(i)Lighto(j), % Brighter and more attractivebeta0=1; beta=beta0*exp(-gamma*r.2);

59、xn(i)=xn(i).*(1-beta)+xo(j).*beta+alpha.*(rand-0.5);yn(i)=yn(i).*(1-beta)+yo(j).*beta+alpha.*(rand-0.5);endend % end for jend % end for ixn,yn=findrange(xn,yn,range);% Make sure the fireflies are within the rangefunction xn,yn=findrange(xn,yn,range)for i=1:length(yn),if xn(i)=range(2), xn(i)=range(2

60、); endif yn(i)=range(4), yn(i)=range(4); endend运行的结果如以下列图所示,其中图3.1为萤火虫算法求解的运行结果;图3.2为测试函数的三维效果图;图3.3为测试函数的三维效果图的底面截图;图3.4为萤火虫算法对寻优的结果。图3.1 萤火虫算法求解F(x)的运行结果图3.2 F(x)的三维效果图图3.3 F(x)的三维效果图的底面截图图3.4 萤火虫算法对F(x)寻优的结果从图3.1中可以得出:在中,当x1= 0.00049980229880,x2=0.00取得最大值,即此时=1.99999278890496。第四章 仿真实验与分析一、 三个测试函数

61、的介绍本文用萤火虫算法和遗传算法对以下三个函数进展仿真测试:上述三个函数中,是在的围中具有两个峰值的函数,是在的围中具有四个峰值的函数,而是在的围中具有多个峰值的函数。二、FA和GA对F1(x)的仿真测试参数设置:萤火虫算法中,萤火虫数目n=12;光吸收强度系数=1.0;步长因子=0.2;最大吸引度=1.0。遗传算法中,群体规模N=12;穿插变异概率pc=0.8,pm=0.05。两种算法分别在迭代次数T=50、100、200时,各自独立运行10次。萤火虫算法和遗传算法对F1(x)的测试结果分析如表4.1所示。表4.1FA和GA对F1(x)的测试结果分析维数峰值数迭代次数平均最大值(FA)平均最

62、大值(GA)F1(x)22500.999735571677931000.999990037569432000.999993714680800.99983470781850 从表4.1中可以看出:萤火虫算法和遗传算法在对峰值数为2的函数F1(x)进展测试求解时,在一样的迭代次数下,用萤火虫算法所求得最大值的准确度要高于用遗传算法所求得的最大值。萤火虫算法运行的结果(独立运行10次,每次的结果都一样,故只取其中一个结果)如表4.2所示。表4.2 萤火虫算法求解F1(x)运行的结果T=50T=100T=200最大值0.999735571677930.999990037569430.9999937146

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!