蛙跳算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
混洗蛙跳算法研究及其发展现状来源: 作者: 时间:2010-08-03 点击: (一)引言
寻优不管在工程应用方面还是社会生产生活方面都具有重要作用,长期以来为了得到最优方案进行了不断的探索和研究,期望找到科学、合理的方法。通常的优化问题通常采用局部搜索方法,它们有一个共同的特点就是通过迭代来提高问题域中唯一的候选解。这就决定了常规的方法只能适用于可能解不是规模大的问题。而现实中的问题通常都有很大的搜索空间,规模庞大,因此采用常规的方法无法满足实际的需求。但是近十几年来,产生了一些新的优化算法,如模拟退火、神经网络、遗传算法、禁忌搜索,这些算法的出现对求解经典的NP完全问题或是一些新的复杂问题提供新的方法和思路。这些方法可以统称为智能优化算法或启发式算法。其中群智能算法作为一种新兴的演化技术,成为越来越多研究者的关注焦点。群智能算法是在20世纪90年代开始出现的,从自然界中以群居生活的动物、昆虫中得到启发的,用来解决分布式问题。与普通的搜索算法一样都是一种迭代算法,对问题的数学描述不要求满足可微性、凸性等条件,具有全局的、并行高效的优化性能,鲁棒性、通用性强等。1.遗传算法。由美国密西根大学的Holland教授受到自然生物种群进化机制的启发而创造出的。遗传算法基于达尔文的“适者生存”进化理论。将生物进化过程中适者生存规则与群体内部染色体地随机信息交换机制相结合的搜索算法。它在搜索之前,将变量一某种形式进行编码,不同地染色体构成一个群体,然后对每个染色体采用某种方法评估其适应值。2.人工免疫算法。Immune(免疫)是从拉丁文Immunise衍生而来的。人工免疫算法基于生物免疫系统基本机制,模仿了人体的免疫系统,从体细胞理论和网络理论得到启发,实现了类似于生物免疫系呕吐那干的抗原识别,细胞分化,记忆和自我调节的功能。具有免疫记忆特性,抗体的自我识别能力和免疫的多样性等特点。3.蚁群系统(ACS)。是由意大利学者M.Dorigo等人于20世纪90年代初提出的一种新型的模拟进化算法,它通过模拟自然界蚂蚁寻食过程中信息素的相互交流从而找到由蚁巢至食物地最短路径的现象。4.粒子群优化算法(PSO)。是由Kennedy和Eberhart在1995年提出的一种基于群智能的演化计算技术。粒子群算法源于对鸟群觅食行为的研究。研究者发现鸟群在飞行过程中经常会突然改变方向、散开、聚集,其行为不可预测,但其整体总保持一致性,个体与个体间也保持着最适宜的距离。通过对类似生物群体的行为的研究,发现生物群体中
存在着一种社会信息共享机制,它为群体的进化提供了一种优势。5.混洗蛙跳算法。2000年,Eusuff和Lansey起初只是设想模拟青蛙觅食的过程,但后来发现混洗蛙跳算法是一种非常好的优化工具。与其它进化算法相类似,混洗蛙跳算法是一种基于群体智能的后启发式计算技术。由于该算法结合基因进化的模因演化算法和基于群体行为的粒子群算法两者的优点,并且具有概念简单易于理解和参数少,全局搜索能力强等特点,算法最初应用于文献[2]水资源网络分配问题,并产生较好的结果。但是由于算法出现的时间很短,研究成果相对较少。
(二)基本模因算法和混洗进化算法1.模因算法基本原理。1989年Moscato第一次系统的、以计算机语言提出模因算法。模因算法是一种基于群体搜索的优化算法,与以往智能算法不同的是局部策略采用竞争和协作机制而不是利用交叉因子产生新的后代。最初的模因算法源于Dawkin在1976年提出meme概念,meme是藉由寄生,传播人类的思想并且改变其行为,进而复制思想和行为的,具有传染性的信息模式,而且这种信息模式只能在引起某物复制时或者是在复制到某物的情况下才能发生。Meme实际携带信息的是模因,相当于染色体上携带遗传信息的是基因。Meme仅仅作为一个可以复制思想的信息单元,比如说是一种服装潮流,一个创意等只要可以复制思想都可以成为meme。模因算法特别是应用于解决经典的大型离散优化的问题,能够解决别的算法无法解决的问题。
2.模因与基因的比较。Meme和Gene之间也具有很有相似的特点,如建立可能解,通过某种策略选择可能解,与其他的解相结合产生后代等。Meme和Gene的最根本的区别是在群体中采用不同的传播机制。在种群中通过选择Meme增强种群间的交流能力(如混合蛙跳算法中的青蛙个体)。而选择gene是为了繁殖后代。(1)Meme进化更具有灵活性,能在种群中任意个体之间进行传播策略;Gene仅可以在具有亲缘关系的个体之间进行信息传递。(2)进化速度不同。由于Gene在N代中传递,所以需要更多的时间进行传播。而meme仅需要分级速度传播。(3)变异率不同。在神经网络系统中,Meme更容易产生变异。而以双螺旋稳定结构为基础的染色体中,Gene的变异率会很低。综合以上的分析,得出结论是以Meme为传播单元比以Gene的传播速度快。
3.混洗进化算法。混洗进化算法(SCE)将随机搜索算法和适者生存的思想相结合。代写论文该算法具有以下几种特点:(1)将整个种群分为若干个并行的族群,根据定义的进化策略,将族群进行混洗,形成新的种群。这种特点通过共享从各个子种群独
立得到的信息来提高解空间质量。(2)族群中的各个成员都具有参与产生下一代的能力,在每一步进化迭代中,仅考虑族群个体。(3)根据适者生存的概念,更优秀的双亲将提供遗传信息。而子代被随机的分布在可行域中,以保证进化工程不能陷入无解或是错过可行解。新产生的子代代替族群种最差的解,而不是整个种群中最差的解,这样可使族群中每个个体都参与进化过程。
(三)混洗蛙跳算法研究许多研究人员致力于研究模拟生物群体活动,并且取得很多研究成果。如鸟群算法、鱼群算法都是模拟生物在群体活动中表现出的行为。在寻找食物过程中,群体中个体可以从其他个体上获得经验;但是在资源难以预测分布时,这种群体行为就具有决定性意义。正是基于种群间信息互享这一思想,使混洗蛙跳算法具有理论基础。这一理论的发展方向主要有:(1)个体研究小组采用不同的方法解决相同问题;(2)一些研究人员提出新的方法,并且与其他的方法进行对比;(3)大型的团队可能改变一些规范标准。但是这些研究人员有共同的研究特点都是从其他的设计中获得更好信息,反复逐步提高技术。
1.混洗蛙跳算法原理混合蛙跳算法是一种受自然生物模仿启示而产生的基于群体的协同搜索方法。这种算法模拟青蛙群体寻找食物时,按族群分类进行思想传递的过程,将全局的信息交换和局部搜索相结合,局部搜索使得局部个体间传递,混合策略使得局部间的思想得到交换。
在混合蛙跳算法中,群体有一群具有相同结构的青蛙构成。整个群体被分成多个族群,不同的族群被认为是具有不同思想的青蛙集合。族群中青蛙按照一定策略执行解空间中的局部深度搜索。在已定义的局部搜索迭代次数结束之后,思想在混合过程中进行了交换。局部搜索和混合过程一直持续到定义的收敛条件结束为止。全局交换和局部深度搜索的平衡策略使得算法能够跳出局部极值点,向着全局最优的方向进行,这也是混合蛙跳算法的主要特点。文献[2]于2003年提出混合蛙跳算(SFLA)。每只青蛙都具有自己的文化,为了达到自己的目标努力,并被定义为问题的一个解。湿地的整个青蛙群体被分为不同的子群体,每个子群体有着自己文化,执行局部搜索策略。在子群体中的每个个体有着自己的文化,并且影响着其它个体,并随着子群体的进化而进化。当子群体进化到一定阶段以后,各个子群体之间再进行思想的交流实现子群体间的混合运算,一直到所设置的条件满足为止。2.数学模型对于N维函数优化问题,第i只青蛙可表示为P(i)=(P1i,P2i,?,PDi),根据每只青蛙
适应值(位置)的大小按下降顺序排列。这样,整个青蛙群体被分为m个子群体,每个子群体包含n只青蛙,即池塘中的青蛙数目为F=m*n。在进化计算过程中,第一只青蛙进入第一个子群体,第二只青蛙进入第二个子群体,一直分配下去,直到第m只青蛙进入到第m个子群体。然后,第m+1只青蛙又进入到第一个子群体,第m+2只青蛙进入到第二个子群体等,这样循环分配下去,直到所有青蛙分配完毕。在每一个子群体中,适应值最好的个体和最差的个体记为Pb和Pw,整个青蛙群体的最优值记为Pg。在每次循环中,只提高最差个体的适应值。混合蛙跳中最差适应值(位置)青蛙的计算过程为:
蛙跳步长更新:Si=rand()×(Pb-Pw)(1)位置更新:Pw(k+1)=Pw(k)+Si(2)Smax≥Si≥-Smax,其中rand()∈[0,1](k=1,2,?,n),S是最大步长。如果计算后新的解较优,则用其替代最差个体。并且通过求全局最优解Pg。如果得到的解没有改进,那么随机生成新解取代所求个体的解,算法继续迭代直至迭代次数完毕。混洗蛙跳算法的参数:青蛙群体数P,族群数m,混合操作前族群内更新代数和混合迭代次数。3.算法流程随机产生P solutions(individuals);For each individuali E P:Sort the whole population P in descending order of theirfitness;根据每个个体的适应度按降序排列Divide the population P into m memeplexes;For each memeplex;Determine the best and worst individuals;Improve the worst individual position using Eqs.1 and2;Repeat for a specific number of iterations;End;Combine the evolved memeplexes;Sort the population P in descending order of theirfitness;Check if termination=true;End;
4.算法的改进
(1)2007年3月Elbeltagi Emad,Hegazy Tarek,GriersonDonald对原始的混合蛙跳算法进行改进,提出新的一个加速搜索范围的参数,应用于连续和离散的两类问题,阐述了新的参数对算法的改进起到积极作用。(2)2007年4月Alireza Rahimi-Vahed和Ali HosseinMirzaei对混合蛙跳算法进行改进提出一种混合多目标蛙跳算法,对流水线平衡装配线排序问题进行优化,并于12月应用于解决流水车间的优化调度问题,并且证明这个方法比其他三种多目标基因算法有效,特别适合解决大型复杂问题。(3)2007年南京航空航天大学提出的一种基于粒子群和混合蛙跳算法相结合的新的算法,提高全局搜索能力。(4)2007年由李英海、周建中等提出的一种改进算法,针对算法本身的缺点进行改进,通过5个数值函数得到验证。(5)东南大学的肖源杰、倪富健将混合蛙跳算法应用于路面养护管理决策问题上。
但是由于混合蛙跳算法出现的时间较短,所以相应的研究成果比较少。关于混合蛙跳算法的收敛性分析与证明,如何提高解空
间的搜索效率,参数的设置,局部更新策略等这些方面都是需要进一步研究。
(四)算法应用
混洗蛙跳算法作为一类新兴的基于群体智能的随机优化算法,同其他的进化算法相比,其最吸引人的特征是容易实现和更强的全局优化能力,而且算法只需要作细微的调整即广泛应用于不同场合。
混洗蛙跳最直接的应用是函数优化问题,包括多元函数优化、带约束优化问题。研究发现,混洗蛙跳算法在解决一些典型函数优化问题时,能够取得比遗传算法更好的优化效果。此外,混洗蛙跳算法还在各种复杂的优化问题,动态优化问题和多目标优化问题中得到成功应用例如,将混洗蛙跳算法应用于求解Job—shop乍间调度问题,都取得了很好的效果。
(五)总结与展望
1.算法的理论研究。与混洗蛙跳算法相应的相对鲜明的社会特性基础相比,其数学基础显得相对薄弱,缺乏深刻且具有普遍意义的理论,分析如何利用有效的数学工具对算法的收敛性、收敛速度估计、计算的复杂性、鲁棒性,以及预防陷入局部最优和参数设置影响等进行分析将是今后的研究热点之一。
2.算法的改进研究。由于实际问题的多样性和复杂性,尽管已经出现了许多改进形式的混洗蛙跳算法,但远不能满足需要。如何将混洗蛙跳算法与其他演化技术的优点相结合,构造出有特色又有实用价值的混合算法是当前算法改进的一个重要方向。
3.应用领域的拓展。虽然混洗蛙跳算法已被成功地用于函数优化及水资源处理等领域,但在更多领域的应用还处于研究阶段,因此,进一步开拓混洗蛙跳算法的新的应用领域也是一项重要的研究内容。