1、萤火虫算法及其应用研究摘 要萤火虫算法(Firefly Algorithm,FA)是受自然界中的萤火虫通过荧光进行信息交流这种群体行为的启发演变而来。它是由剑桥大学的Xin-She Yang教授在2009年提出的,它作为一种新颖的仿生群智能优化算法,有较大的研究空间。近几十年来随着越来越多的仿生群智能算法的提出,人们对于这些算法的认识和研究也逐步加深。本文先介绍群智能优化算法的理论概念,然后着重通过对萤火虫算法仿生原理的了解,从数学的角度对萤火虫算法进行合理的描述和过程的定义,最后编写该算法的matlab代码实现对3个峰值函数进行仿真测试,得出其测试结果。同时用遗传算法对同样的测试函数也进行仿
2、真测试,得出其测试结果。最后通过测试结果比较萤火虫算法和遗传算法分别在对峰值函数寻优结果的精确度。在比较过程中,可以根据测试结果发现,萤火虫算法在对峰值函数的寻优结果的精确度优于遗传算法。这表明了萤火虫算法在连续空间优化的可行性和有效性,同时也表明了萤火虫算法具有良好的应用前景。关键词: 萤火虫算法,仿生群智能优化算法,优化分析,遗传算法ABSTRACTThe Firefly Algorithm (FA) is affected by the nature of the Firefly exchange of information through a fluorescence inspire
3、d this kind of crowd behavior has evolved. It is made by Xin - She Yang professor at the university of Cambridge in 2009, 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 g
4、radually 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 d
5、escriptions 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.
6、 Finally 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
7、of peak function 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 optimizat
8、ion algorithm, Optimization analysis, genetic algorithm第一章 绪论一、 研究的背景及意义在现实生活中,许多优化问题要求人们不仅要计算出其极值,还要得出其最优值。这类问题对传统的算法造成的严峻的挑战。在这种情况下,越来越多的群智能算法相继的提出,其中萤火虫算法就是近几年来提出的一种新颖的仿生群智能优化算法。萤火虫算法是模拟自然界中萤火虫成虫发光的生物学特发展而来,也是基于群体搜索的随机优化算法。关于萤火虫算法目前文献有两种版本。一种是印度学者Krishnanand等人提出,称为GSO(glowworm swarm optimization)
9、;另一种由剑桥学者Xin-She Yang提出,称为FA(firefly algorithm)。两种算法的仿生原理相同,但在具体实现方面有一定差异。本文着重研究由剑桥学者Yang提出的萤火虫算法(firefly algorithm,FA)。萤火虫算法经过近几年的发展,在连续空间的寻优过程和一些生产调度方面具有良好的应用前景。二、 群智能优化算法的研究现状近几十年来,国内外学者通过研究或模仿群体生活的昆虫、动物的社会行为特征,提出了一系列模拟生物系统中群体生活习性的群智能优化算法。其中较具有代表性的群智能优化算法主要有遗传算法、蚁群算法、粒子群算法、蜂群算法、人工鱼群算法、萤火虫算法等。1975
10、年,美国的J.Holland教授借鉴生物界的进化规律提出的遗传算法(Genetic Algorithm,GA)。遗传算法目前已被广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。1991年,意大利学者Dorigo M.等人通过模拟蚂蚁的群体行为提出了蚁群算法(Ant Colony Algorithm, ACA),并用于解决复杂的组合优化问题。1995年,Kennedy和Eberhart等人提出了粒子群优化算法(Particle Swarm Optimization,PSO)。粒子群算法可应用于非线性复杂约束规划、作业调度优化、经济分配和数据挖掘等。1995年,Theraul
11、az提出了蜜蜂通过与环境之间的信息交互实现安排工作的模型,即蜂群算法(Wasp Colony Algorithm,WCA)。该算法可用于解决作业车间调度问题等。2002年,李晓磊等人通过观察鱼类在水中游弋觅食的行为特点提出人工鱼群算法(Artificial Fish-swarm Algorithm,AFSA)。人工鱼群算法目前已用于组合优化、参数估计、PID控制器的参数整定、神经网络优化等。2005年,印度学者K.N. Krishnanand和D. Ghose提出一种新的群智能优化算法,人工萤火虫群优化(Glowworm Swarm Optimization, GSO)算法。迄今为止,人工萤火
12、虫群优化算法在多模态函数优化问题、多信号源追踪问题、多信号源定位问题、有害气体泄漏定位问题、组合优化等方面得到成功的应用,且表现出良好的性能。2009年,剑桥学者Xin-She Yang根据自然界中萤火虫的发光行为提出萤火虫算法(Firefly algorithm,FA)。萤火虫算法在生产调度、路径规划等方面具有良好的应用前景。三、 本论文的内容和结构本论文的主要内容有以下几个方面:1、对群智能优化算法的基本介绍。2、研究萤火虫算法的基本原理。3、通过数学角度对萤火虫算法的描述和分析。4、用萤火虫算法编写matlab算法对3个经典函数进行测试,并与遗传算法进行比较。5、通过测试数据分析得出结论
13、。本论文共五章,其内容编排结构如下:第一章绪论本章主要是简单的介绍下本论文的研究背景及意义、群智能优化算法的研究现状,最后又介绍了本论文的内容和结构。第二章 群智能优化理论本章先是对群智能优化算法进行概述,然后对模拟退火算法、遗传算法、蚁群算法、粒子群算法、人工萤火虫群优化算法、人工鱼群算法进行原理的了解和阐述。第三章 萤火虫算法本章先是对萤火虫算法进行概念介绍,然后再对萤火虫算法的优化机理进行阐述,其中包括萤火虫算法国内外研究现状和萤火虫算法的仿生原理两个方面,然后用数学角度对萤火虫算法进行描述与分析,接着对萤火虫算法的流程进行优化,最后完成萤火虫算法matlab代码的实现。第四章 仿真实验
14、与分析本章先是对3个测试函数的介绍,然后分别用萤火虫算法和遗传算法编写matlab代码对这3个测试函数进行测试,得出相应的结果,最后比较分析这两种算法的测试结果,得出结论。结论本章通过第四章测试结果分析,得出了萤火虫算法在连续空间优化的可行性和有效性的结论,这表明了萤火虫算法具有良好的应用前景。第二章 群智能优化理论一、 群智能优化算法的概述群智能优化算法是近年来计算智能领域出现一种新型的优化技术,这种技术具有良好的优化效果和简洁的数学理论,越来越受到人们极大的关注。群智能优化作为优化算法的方向之一,其主要的思想是源自于模拟自然界各种社会性动物、植物等的群体行为,利用群体个体之间的共同协助和信
15、息交换来实现最终寻优的目的。相对于传统的优化算法,群智能优化算法的特点是理论简单、易于实现、寻优效果更优等优点。虽然群智能优化算法在近些年的研究中有了很大发展,但总体来说,这种新型的优化算法仍然存在很多不足,还有很多问题有待于进一步研究解决,如数学理论支撑薄弱、如何使得算法的优化效果更好和寻优速度更快,以及怎么样能更广泛的应用到实际问题中去等等。以下对几种典型的群智能优化算法进行简要的概述。二、 模拟退火算法模拟退火算法7(Simulated Annealing,SA)是1983年由Kirkpatrick首次提出的一种组合优化算法。该算法来源于固体退火原来,将固体加温至充分高,再让其徐徐冷却,
16、加温时,固体内部粒子随温度上升变为无序状态,内能增大。而徐徐冷却时粒子渐趋有序,每个温度都达到平衡状态,最后在常温时达到基态,内能减为最小。模拟退火算法借鉴热力学中的能量方程,同时又引入了Metropolis准则,粒子在温度T时趋于平衡的概率为:,其中E为温度T时的内能,为其改变量,k为Boltzmann常数。算法的基本思想是从一个给定解开始,从领域中随机产生另一个解,接受准则允许目标函数在有限范围内变换,以一定概率接受较差的解。用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生
17、新解计算目标函数差接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,模拟退火算法已经被证明是一种依赖于概率1收敛于全局最优解的优化方法。模拟退火算法的迭代搜索过程以Boltzmann分布概率接受函数目标的“劣化解”,所以模拟退火算法具有脱离局部最优陷阱的能力,而且具有高效、鲁棒、通用、灵活的优点。但其参数难以控制,如初始温度T的设置太大,算法要花费大量的时间,设置太小,则全局搜索性能可能受到影响。还有退火速度问题,也要做合理的设置。模拟退火算法的应用很广泛,在求解最大截问题(Max Cut Problem)、0-1背包问题(Zero One Knapsack Probl
18、em)、图着色问题(Graph Colouring Problem)、调度问题(Scheduling Problem)等方面效率较高。三、 遗传算法遗传算法8(Genetic Algorithm,GA)是群智能优化算法中思想起源较早的算法之一。它是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法。1975年,美国Michigam大学的J.Holland教授参照“适者生存”的生物进化法则和种群的思想提出一些解决复杂优化问题的理论和方法。遗传算法模拟生物进化的基本过程,用数码串来类比生物中的染色个体,通过选择、交叉、变异等遗传算子来仿真生物的基本进化过程,利用适应度函数来表示染色体所蕴涵问题解
19、的质量的优劣,通过种群的不断“更新换代”,从而提高每代种群的平均适应度,通过适应度函数引导种群的进化方向,并在此基础上,使得最优个体所代表的问题解逼近问题的全局最优解。遗传算法求解问题的基本思想是维持由一群个体组成的种群p(t) (t代表遗传代数),每一个体均代表问题的一个潜在解,每一个体都被评论优劣并得到其适应值。个体通过遗传算子产生新的个体,新产生的个体继续被评论优劣,从父代种群和子代种群中选择比较优秀的个体形成新的种群。在若干代以后,算法收敛到一个最优个体,该个体很可能代表着问题的最优解或次优解。在遗传算法中,每个问题的可行解对应于一个染色体。通常可以用特定编码方式(如二进制编码)生成的
20、编码串来表示染色体,而其中每一个编码单元则成为基因。采用遗传算法求解问题时,首先需要将问题的解用染色体来表示。完成编码表示之后,在染色体的表示空间中随机产生一个初始种群,然后通过迭代的选择操作、基因重组操作和变异操作对染色体集合进行进化。在达到终止条件后对最优的染色体进行编码,便可以得到待求解问题的最优解或者相似最优解。遗传算法的流程包括下列六个步骤。第一步:初始化过程。该步骤首先初始化算法的参数,包括搜索空间的范围、种群的大小,以及交叉率和变异率等。然后在搜索空间中随机生成一个初始种群。第二步:适应度评估。这一步对初始种群进行适应度评估。个体的适应度体现了该个体的优劣程度,是执行后续选择操作
21、的依据。适应度函数通常由问题的优化目标确定。例如在求函数最大值时,可以直接将目标函数值作为适应度函数。这样,函数值越大,相应的适应度也越大。不过在实际的应用中,为了提高算法的搜索效率,通常需要对目标函数进行相应的处理,如执行缩放变换和平移变换等。对于没有显示数学表达公式的问题(TSP问题等组合问题),可以通过对解建模,从而求得一个函数值作为适应度(如计算解路径的长度等)。第三步:选择操作。选择是优胜劣汰的过程。在计算出每个个体的适应度后,较优的个体将以较大的概率生存下来,而较差的个体将很可能被淘汰掉。为了实现这个目标,通常有轮盘赌选择法和锦标赛选择法这两种经典选择策略。第四步:交叉操作。交叉操
22、作是父代基因重新组合的过程。基因重组的方式有单点交叉、多点交叉和均匀交叉等多种方式。第五步:变异操作。个体的基因在进化过程中会以很小的概率发生变异。变异操作给染色体种群带来了新的基因,是保证算法找到最优解以及使得算法以渐进的形式逼近最优解的重要操作。第六步:评估新种群的适应度。这一步骤对新生成的种群重新进行适应度评估。此时若达到算法的终止条件则停止算法,否则返回第三步继续操作。遗传算法是具有“生成+检测”(generate-and-test)的迭代过程的搜索算法,遗传操作算子使遗传算法具有了与传统的其他搜索算法如爬山法、分支界定法、禁忌搜索算法等不同的工作机理,当遇到较大规模的问题时,遗传算法
23、有着不可替代的优异性:如遗传算法并不是对问题的待优化参数本身进行操作,而是通过由这些参数所编码形成的染色体进行交叉、变异和选择等操作。遗传算法操作的对象不限于一个,而是对由大量对象形成的种群进行操作,这种做法使得参与操作的信息量大,速度快,效果好,使得整个优化过程容易跳出局部最优。遗传算法不依赖于问题领域的信息来指导搜索,其实现简单,效果良好,通用性好,鲁棒性强等。虽然遗传算法具有上述优点,但由于遗传算法本质上是一种基于概率的启发式随机搜索方法,遗传算法也有自身的缺陷:如遗传算法是对种群进行概率性操作,所以,在全局寻优上效果良好,而在局部寻优上存在不足;在算法进行的前期搜索效果良好,而在算法进
24、行的后期搜索速度缓慢;遗传算法虽然实现简单,但实现的效果很大程度上取决于问题的多种参数,如果这些参数设置不好,此时的遗传算法类似随机搜索算法,甚至会出现“早熟收敛”现象。与传统方法相比,遗传算法具有隐式并行性和全局搜索性两大主要特点,作为强有力且应用广泛的随机搜索和优化方法,遗传算法可能是当今影响最广泛的进化计算方法之一。近几十年来,遗传算法主要在复杂优化问题求解和工业工程领域应用方面,取得了一些令人信服的结果,遗传算法成功的应用包括:函数优化、机器学习、组合优化、人工神经元网络训练、自动程序设计、专家系统、作业调度与排序、可靠性设计、车辆路径选择与调度、成组技术、设备布置与分配等等。四、 蚁
25、群算法人工蚁群算法9是受到人们对自然界中真实的蚁群集体行为研究成果的启发而提出的一种基于蚁群的模拟进化算法,属于随机搜索算法,由意大利学者M.Dorigo等人于1991年首先提出。仿生学家经过大量细致观察研究发现,蚂蚁个体之间是通过一种称之为外激素(pheromone)的物质进行信息传递,从而能互相协作,完成复杂的任务。蚁群之所以表现出复杂有序的行为,个体之间的信息交流与相互协作起着重要的作用。蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且蚂蚁在运动过程中能够感知这种物质的存在及其强度,并以此指导自己的运动方向,蚂蚁倾向于朝着该物质强度高的方向移动。因此,由大量蚂蚁组成的蚁群的集体
26、行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。蚂蚁个体之间就是通过这种信息的交流达到搜索食物的目的。蚁群算法正是模拟了这样的优化机制,即通过个体之间的信息交流与相互协作最终找到最优解。以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以前所走过的城市,集合tabuk随着进化过程作动态调整。经过n个时刻,蚂蚁
27、完成一次循环,每只蚂蚁所走过的路径就是一个解。此时,要根据下面公式对各路径上的信息量做更新:由上述可知,蚁群算法优化过程的本质在于:1、选择机制。信息量越大的路径,被选择的概率越大。2、更新机制。路径上面的信息量会随蚂蚁的经过而增长,同时也随着时间的推移逐渐减小。3、协调机制。蚂蚁之间实际上是通过信息量来互相通信、协同工作的,这样的机制使得蚁群算法具有很强的发现较好解的能力。但是,蚁群算法也有一些缺陷。例如,由于蚁群中多个个体的运动是随机的,当群体规模较大时,要找出一条较好的路径需要较长的搜索时间等。意大利学者M.Dorigo等人充分利用蚁群搜索食物的过程与旅行商问题(TSP)之间的相似性,解
28、决了TSP问题,取得了很好的结果。随后,蚁群算法被用来求解分配问题、网络路由问题、指派问题、车间作业调度问题、电力系统故障诊断等NP完全问题,显示出蚁群算法在求解复杂优化问题方面的优越性。五、 粒子群优化算法动物世界的群体行为神秘而有趣。无论是天空的飞鸟还是湖泊中的鱼群,它们在迁徙、觅食等过程中所表现出来的高度组织性和规律性一直吸引着各领域的学者对它们展开研究。粒子群优化算法3(Particle Swarm Optimization,PSO)正是在这种研究气氛中诞生的一种新型启发式进化算法。粒子群优化算法最早是由Kenney与Eberhart于1995年提出的。它是模拟鸟群的捕食行为,让一群鸟
29、在空间里自由飞翔觅食,每个鸟都能记住它曾经飞过最高的位置,然后就随机的靠近那个位置,不同的鸟之间可以互相交流,它们都尽量靠近整个鸟群中曾经飞过的最高点,这样,经过一段时间就可以找到近似的最高点。粒子群优化算法后俩经过多次的改进,去除了原来算法中一些无关的或冗余的变量,又加入了一些随机变化的量,使得鸟群的运动更像空间微粒的运动,所以称之为粒子群算法。粒子群优化算法求解问题的基本思想是随机产生一粒子群作为初始解,用粒子的位置表示待优化问题的解,每个粒子性能的优劣程度取决于待优化问题目标函数确定的适应值,微粒尽量靠近最优点并且有随机的变化发生,使得微粒不会停留在最优点不动,而是尽量靠近,同时保持创新
30、性。每个微粒记录它自己的最优位置(pbest),还要记录所有微粒的最优位置(gbest),然后通过比较当前位置和两个最优位置的差别来调整速度以确定下一步的位置。每个粒子由一个速度矢量决定其飞行方向和速率大小,通过改变速度的大小和方向使随机的初始解“飞向”最优解。粒子群优化算法流程如下:第一步:随机产生N个粒子,初始化每个的速度和位置,并评估所有初始化粒子的适应度。将当前个体设为历史最优pBest,而全局最优个体设为gBest。第二步:更新每个粒子的速度和位置。假设当前粒子的位置信息和速度信息分别为和,其中D为问题的维数。则更新后的粒子的位置和速度分别为:第三步:评估所有粒子的适应度。第四步:更
31、新所有粒子的历史最优信息pBest。如果粒子当前的适应度比其pBest的适应度要好,则用当前粒子替换掉pBest。第五步:更新全局最优信息gBest。如果粒子当前的适应度比其gBest的适应度要好,则要当前粒子替换掉gBest。第六步:若达到结束条件则结束,否则返回第二步继续执行。粒子群优化算法与遗传算法都属于进化算法,但粒子群优化算法避免了二进制编码的麻烦,而且操作更加直观,粒子群优化算法流程简单易实现,算法参数简洁,无需复杂的调整。粒子群优化算法的缺点是:初始化过程是随机的,这虽然可保证初始解群分布均匀,但个体的质量不能保证。其次,粒子利用自身、个体及全局信息来更新自己的速度和位置,这是一
32、个正反馈过程,当自身信息及个体信息占优势时,算法易陷入局部最优。目前,许多学者针对基本粒子群优化算法提出了很多种改进算法,这些改进的粒子群优化算法已广泛应用于函数优化、系统识别、神经网络训练、信号处理和机器人等实际应用领域,取得了丰富的成果。六、 人工萤火虫群优化算法 人工萤火虫群优化算法(Glowworm Swarm Optimization,GSO)是源于模拟自然界萤火虫在晚上的群聚活动的自然现象而提出的,在萤火虫的群聚活动中,每只萤火虫通过散发荧光素与同伴进行寻觅食物以及求偶等信息交流。一般来说,荧光素越亮的萤火虫其号召力也就越强,最终会出现很多萤火虫聚集在一些荧光素较亮的萤火虫周围。人工萤火虫算法就是根据这种现象而提出的一种新型的仿生群智能优化算法。在人工萤火虫群优化算法中,每只萤火虫被视为解空间的一个解,萤火虫种群作为初始解随机的分布在搜索空间中,然后根据自然界萤火虫的移动方式进行解空间中每只萤火虫的移动。通过每一代的移动,最终使的萤火虫聚集到较好的萤火虫周围,也即是找到多个极值点,从而达到种群寻优的目的。在基本GSO中,把n个萤火虫个
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2