基于邻域正交交叉算子的混合蛙跳算法

合集下载

基于自适应变异因子策略的混合蛙跳算法

基于自适应变异因子策略的混合蛙跳算法

基于自适应变异因子策略的混合蛙跳算法赵付青;陈自豪【摘要】由于基本混合蛙跳算法在对问题的优化求解中存在着收敛速度慢、优化精度低且容易陷入局部最优等问题,因此提出了一种新的混合蛙跳算法.对基本混合蛙跳算法的组内更新策略进行重新设计,引入自适应变异因子来控制青蛙的移动步长;在算法中将改进的粒子群优化算法有机地嵌入其中,这样算法在搜索过程中就增加了发现新解的概率,维持了种群的多样性,从而使算法不易陷入局部最优.通过对标准函数进行优化测试,结果证明其具有良好的优化性能.【期刊名称】《甘肃科学学报》【年(卷),期】2016(028)001【总页数】6页(P6-11)【关键词】混合蛙跳算法;自适应变异因子;移动步长;粒子群优化算法【作者】赵付青;陈自豪【作者单位】兰州理工大学计算机与通信学院,甘肃兰州 730050;西北工业大学现代设计与集制造技术教育部重点实验室,陕西西安710072;兰州理工大学计算机与通信学院,甘肃兰州 730050【正文语种】中文【中图分类】TP391混合蛙跳算法(SFLA,shuffled frog leaping algorithm)是2003年由Eusuff和Lansey提出的一种基于群体智能的生物进化算法[1]。

它具有参数少、概念简单、计算速度快、全局寻优能力强及易于实现等特点。

目前该算法在改进和应用方面都得到了相应提高,并且利用它解决了许多实际优化问题,如函数优化、水资源网络分配问题、成品油管网优化设计、车间调度问题、旅行商问题等[2-4]。

然而它还是存在着许多缺点,如收敛速度较慢、优化精度相对低、易陷入局部最优等,尤其在解决高维函数问题时,这些缺点表现的更明显,从而算法的效率非常低。

因此改进基本混合蛙跳算法,提高算法性能就变得非常急切。

目前,研究者们用不同的方法对算法的各个过程进行改进。

文献[5-10]中介绍了国内和国外学者们对基本混合算法进行的改进,确实提高了算法的优化性能。

一种改进标准混合蛙跳算法的方法[发明专利]

一种改进标准混合蛙跳算法的方法[发明专利]

专利名称:一种改进标准混合蛙跳算法的方法专利类型:发明专利
发明人:杜江,袁中华
申请号:CN201610145791.6
申请日:20160315
公开号:CN105786759A
公开日:
20160720
专利内容由知识产权出版社提供
摘要:本发明一种改进标准混合蛙跳算法的方法,步骤是:参数初始化;计算每只青蛙个体的适应值,找出该青蛙种群的全局最优青蛙个体的适应值及其位置;对青蛙种群降优排序;划分青蛙子种群;找出每个青蛙子种群最优与最差青蛙个体位置;对每个青蛙子种群的最差青蛙个体的位置进行更新操作;计算每个青蛙子种群中被更新位置的青蛙个体的适应值,并找出此时青蛙种群全局最优适应值及其位置;实现下次迭代后青蛙种群最优适应值的预测,进而调整移动步长变异系数dj及步骤间的跳转;判断是否满足结束条件。

本发明方法克服了标准混合蛙跳算法存在的进化后期收敛速度严重减慢、收敛精度不足和易陷入局部最优的缺陷。

申请人:河北工业大学
地址:300130 天津市红桥区丁字沽光荣道8号河北工业大学东院330#
国籍:CN
代理机构:天津翰林知识产权代理事务所(普通合伙)
代理人:胡安朋
更多信息请下载全文后查看。

基于邻域搜索的穴盘苗移钵路径优化蛙跳算法

基于邻域搜索的穴盘苗移钵路径优化蛙跳算法

基于邻域搜索的穴盘苗移钵路径优化蛙跳算法徐守江;罗竹青【摘要】在农业钵苗培育环节中常出现漏栽或钵苗不健康的情况,补种作业利用钵苗移栽机器人末端执行器从原点出发,从移栽穴盘中选取健康钵苗逐一补种到目的穴盘中,最后回到出发点的过程.本文基于混合蛙跳算法提出了一套解决补种作业过程中自动移钵问题的模型算法,较好解决了末端执行器在补种作业中的路径优化问题.针对自动移钵问题的特殊性,蛙跳算法模型融入了邻域搜索策略、交换因子、交换序和交叉操作等思想,算法简单且稳定性好.本算法有效解决了自动移钵路径的优化问题,移钵路径长度得到了大幅度的优化,提高了移栽效率.%In the cultivation of agricultural seedlings,there are often cases of missing or unhealthy seedling.The replan-ting operation refers to the use of end-effecters from the origin,and the selection of the seedlings from the transplanting tray to the goal tray,and finally back to the starting point.In this paper, a new method is developed for optimization of seedling transplanting path based on the hybrid frog leaping algorithm.The frog leaping algorithm model is integrated with the neighborhood search strategy, exchanging factor, exchanging order and crossover operation.The algorithm is simple and stable.The algorithm effectively solves the optimization problem of automatic seedling transplanting,and the length of the path is greatly optimized and the transplanting efficiency is improved.【期刊名称】《农机化研究》【年(卷),期】2018(040)011【总页数】5页(P208-212)【关键词】混合蛙跳算法;穴盘苗;移钵路径;邻域搜索【作者】徐守江;罗竹青【作者单位】江苏食品药品职业技术学院信息工程学院,江苏淮安 223003;江苏食品药品职业技术学院校企合作办公室,江苏淮安 223003【正文语种】中文【中图分类】S223.9;S240 引言在穴盘苗培育过程中,常出现穴盘内育苗不成功的情况,主要是由于漏栽和钵苗发育不正常引起,成苗率在90%左右[1]。

基于混合蛙跳算法的移动机器人路径规划

基于混合蛙跳算法的移动机器人路径规划

基于混合蛙跳算法的移动机器人路径规划潘翔;唐春晖;张仁杰【摘要】针对移动机器人路径规划中算法搜索能力不强且易陷入停滞的问题,文中提出了一种基于混合蛙跳算法的移动机器人路径规划方法.首先利用蚁群算法在栅格地图中生成一定数量的路径,然后引入混合蛙疏算法,子群内进行Memetic进化,最坏青蛙根据与子群最优青蛙或全局最优青蛙的路径交点栅格进行路径更新,并对最终生成的最优路径进行优化处理,以消除不必要的拐点,保证机器人路径运行的安全性.二维环境下的仿真实验表明,提出的混合蛙跳算法能在有效避开障碍物的同时快速地规划出一条通往目标点的优化路径,且效果令人满意.【期刊名称】《电子科技》【年(卷),期】2015(028)011【总页数】5页(P29-32,36)【关键词】移动机器人;栅格地图;混合蛙跳算法;路径规划【作者】潘翔;唐春晖;张仁杰【作者单位】上海理工大学光电信息与计算机工程学院,上海200093;上海理工大学光电信息与计算机工程学院,上海200093;上海理工大学光电信息与计算机工程学院,上海200093【正文语种】中文【中图分类】TP24移动机器人的路径规划技术,就是机器人根据自身传感器对环境的感知,自行规划出一条安全的运行路线,同时高效地完成作业任务。

移动机器人的路径规划主要解决3 个问题[1]:(1)使机器人能从初始点运动到目标点。

(2)用一定的算法使机器人能够绕开障碍物,并经过某些必须经过的点完成相应的作业任务。

(3)在完成以上任务的前提下,尽量优化机器人的运行轨迹。

目前,国内外学者对移动机器人的路径规划问题进行了广泛而深入的研究,就传统方法而言主要有人工势场法[2]、可视图法[3]、栅格法[4]等。

这些方法各有优缺点,例如人工势场法是利用目标点对机器人的引力和障碍物对机器人斥力的综合作用来进行路径规划的,这种方法描述简单,便于实现实时控制,且可生成较为光滑的路径,但其也存在当目标点附近存在障碍物从而使机器人无法到达目标点,或者在两个相近的障碍物前易产生振荡等缺点;可视图法是以起始点、目标点和所有多边形障碍物顶点间的可行直线连线为路径范围来搜索最短路径的,可视图法的优点是直观,且可求得三维空间以下的最短路径,但其缺点是当起始点和目标点发生改变时就需要重新构造可视图,因此缺乏灵活性。

一种改进的混合蛙跳算法

一种改进的混合蛙跳算法

一种改进的混合蛙跳算法赵红星;常小刚【摘要】针对混合蛙跳算法后期收敛速度慢、精度低并易陷入局部最优的问题,提出一种改进的混合蛙跳算法.在改进的混合蛙跳算法中,对青蛙的觅食机制和进化迭代公式重新定义,青蛙的第一跳向模因组其它青蛙单维搜索,第二跳向模因组内最优青蛙单维搜索,第三跳向全局最优青蛙单维搜索,通过青蛙的三跳协同搜索,能够使算法的全局搜索能力和局部搜索能力得到显著改善.通过7个测试函数与ABC算法和标准混合蛙跳算法实验对比,实验结果表明改进的混合蛙跳算法具有比ABC算法和混合蛙跳算法更优秀的搜索性能,在收敛速度和收敛精度方面具有明显的优势.%To solve the problem of slow convergence speed,low precision and easy to fall into local optimum of SFLA algorithm,an improved shuffled frog leaping algorithm (BCSFLA) is proposed.The searching mechanism and the evolutionary iteration formula of frogs are redefined.In the frog's first and second jump search,it's learning toward the other frogs and the optimal frog in the model group,and in the frog's third jump search,it's learning toward the global optimal frog.Through the cooperation of the three jump search,the global search ability and local search ability of the algorithm are improved significantly.Experiments are conducted on a set of 7 benchmark functions and compared with ABC algorithm and SFLAalgorithm.Finally,the result demonstrates a good performance of BCSFLA algorithm.【期刊名称】《兰州交通大学学报》【年(卷),期】2017(036)001【总页数】6页(P51-56)【关键词】混合蛙跳算法;人工蜂群算法;全局搜索;函数优化【作者】赵红星;常小刚【作者单位】兰州交通大学交通运输学院,甘肃兰州 730070;兰州交通大学现代信息技术与教育中心,甘肃兰州 730070;兰州交通大学现代信息技术与教育中心,甘肃兰州 730070【正文语种】中文【中图分类】TP301.6混合蛙跳算法(shuffled frog leaping algorithm,SFLA)[1]是Eusuff和Lansty依据群智能思想于2000年提出的一种亚启发式算法,该算法结合了模因算法(MA)[2]和粒子群算法(particle swarm optimization,PSO)[3]的优点,通过模拟青蛙群体的觅食过程,以局部搜索和全局信息交流的方式,在搜索范围内寻找最优解.SFLA因算法简单、易于理解、控制参数少且具有相对较优的搜索能力而得到了学者的广泛关注.文献[4]建立了SFLA的Markov链数学分析模型.文献[5]将人工鱼群算法(artificial bee colony algorithm,ABC)与SFLA结合提出了混合算法CSFLA(composite shuffled frog leaping algorithm).文献[6] 改进了SFLA的进化计算公式,使进化计算受到模因组内的最优个体、全局最优个体和干扰因子三者共同的影响,并成功解决了无线传感网的定位问题.文献[7]提出了基于惯性因子的SFLA.文献[8]将自适应粒子群(SAPSO)算法与SFLA相互结合,成功解决了配电网的重构问题.文献[9]将幂律极值动力学优化与SFLA融合,分析了容量约束车辆路径问题,并通过实例证明了算法的有效性.文献[10]引入模拟退火(SA)、免疫接种(IV)、高斯变异和混沌扰动算子以提高SFLA算法的深度搜索能力和广度搜索能力,改进后的SFLA算法成功优化了支持向量机(SVM)的参数.针对SFLA的全局收搜索能力和深度搜索能力的不足之处,提出了一种改进的混合蛙跳算法(bee colony shuffled frog leaping algorithm,BCSFLA),在BCSFLA的寻优过程中,结合了人工蜂群算法的单维搜索机制,并且根据模因组的最坏青蛙进化情况决定是否由模因组的最优青蛙进行精细化搜索,通过对青蛙觅食过程的重新定义,使BCSFLA的全局搜索能力和精度搜索能力同时得到提高.利用7个60维的测试函数,进行了BCSFLA、ABC、SFLA的计算试验对比,结果表明BCSFLA在函数优化方面具有比ABC和SFLA更明显的优势.SFLA是模拟青蛙觅食过程中的信息交流特点在SFLA中,每个模因组的局部搜索首先是由该模因组的最坏青蛙在该模因组的最优青蛙或者全局最优青蛙的启发下计算进化,如果产生的新个体优于该模因组的最坏青蛙,则利用新个体代替该模因组的最坏青蛙,在下一次计算时,新的最坏青蛙必然优于之前的最坏青蛙,经过多次计算,从而使整个模因组实现进化.如果该模因组的最坏青蛙在进化计算时产生的新个体不优于当前的最坏青蛙,则在搜索范围内随机产生新个体代替当前的最坏青蛙,从而拓展了算法的全局搜索能力.在标准的SFLA算法中,青蛙的第一跳和第二跳是由模因组最坏青蛙向该模因组最优青蛙或者全局最优青蛙方向搜索,在算法的后期,如果部分较优秀的青蛙始终保持不变,将导致整个群体只向少部分较为优秀的青蛙方向搜索,从而使算法的广度搜索能力有所减弱.同时,随着算法的不断进化,模因组的最坏青蛙本身也携带了较为优秀的信息,此时模因组内的最坏青蛙很难通过前两跳得到改善,那么青蛙的第三跳将对模因组最坏青蛙随机处理,便不可避免地使最坏青蛙出现退化现象,影响了算法的搜索速度和搜索深度.为了提高蛙群的全局搜索能力,青蛙在第一跳的时候可以利用模因组内其它青蛙的启发信息,使模因组最坏青蛙可以朝着多个方向搜索.同时,为了使蛙群的整体质量得到快速提高,可以规定青蛙的第二跳向所在模因组内的最优青蛙学习,通过最坏青蛙的不断改善,将使模因组内的所有青蛙质量得到快速提高.在标准的SFLA 中,所有的搜索都是由模因组最坏青蛙完成的,缺乏对优秀个体周围充分的精细化搜索,使后期收敛速度慢. 故此,青蛙的第三跳可以由模因组最优个体进行精细化搜索,使算法的深度搜索能力得到提高.同时,为了避免BCSFLA在搜索时由于迭代空间过大,降低搜索性能,特借鉴了ABC的单维度计算方法,使BCSFLA以较小的搜索范围进行寻优迭代,进一步保证了算法的精细化搜索能力.BCSFLA的详细流程如图2所示.在BCSFLA算法的蛙群寻优过程中,青蛙的第一跳操作如果可以改善当前最坏青蛙,则算法直接进行下一次局部搜索判断,如果通过青蛙的第一跳操作没有使最坏青蛙得到改善,说明此时倾向广度搜索操作难以找到更加优秀的个体,则此时由最坏青蛙向模因组的最优青蛙方向搜索,以达到快速提高群体的整体质量的目的,如果此时最坏青蛙得到了改善,则进入下一次的局部搜索判断,否则青蛙进入第三跳操作,在第三跳的操作过程中,说明当前模因组的整体质量很难由最坏青蛙的搜索而得到改善,则此时应该由当前模因组内的最优青蛙进行精细化搜索,从而提高算法的搜索深度.在以上蛙群搜索过程中,青蛙的第一跳操作可以保证算法有较强的全局搜索能力,而第二跳操作可以快速改善蛙群的整体质量,使得第三跳精细化搜索更加高效.BCSFLA是通过分析SFLA的寻优进程,在SFLA算法框架基础之上结合人工蜂群算法的寻优机制,从而对SFLA的进化计算公式进行了重新定义.SFLA算法时间和空间复杂度分别为O(M×N×D×G)和O(M×N×D),其中:M为模因组个数;N 为每个模因组个体数;D为优化问题维度;G为算法全局迭代次数.BCSFLA相对只是更改了SFLA算法的进化计算公式,由原来的D维变成了单维计算,并且在单维计算中只是参照了人工蜂群算法的进化策略,并未影响SFLA算法的时间复杂度和空间复杂度.因此,BCSFLA算法基本未增加运算时间和空间开销.为了测试BCSFLA的收敛性能,本文选用文献[11-13]中的7个60维的测试函数进行实验分析.各函数的表达式、搜索范围以及理论最优值如表1所列.同时,为了验证BCSFLA的性能优势,选择具有比遗传算法(genetic algorithm,GA)、PSO、差分算法(differential evolution algorithm, DE)更具优势的ABC[13-14],以及标准SFLA算法进行性能对比,各算法的参数设置如下:BCSFLA:蛙群大小SN=100,模因组个数M=10,每个模因组包含青蛙个数N=10,模因组的局部搜索次数l=10;ABC算法:蜂群大小SN=100,参照文献[15]设置lim it=0.3×SN×D,D为具体问题的搜索维度;SFLA:蛙群大小SN=100,模因组个数M=10,每个模因组包含青蛙个数N=10,模因组的局部搜索次数l=10.三种算法搜索的终止条件为全局迭代次数G=3 000,所有实验均在内存为4 Gbyte,处理器Intel(R)Core i5-3750 3.40 GHz计算机上,采用VC++6.0实现. 为了使实验结果更加客观,使所有实验独立运行30次,统计30次实验结果的平均值和方差如表2所列.从表2的实验结果可以看出,在优化函数f3和f5时,BCSFLA和ABC同时获得了全局最优解,而在其它函数优化实验中,BCSFLA具有比ABC和SFLA更优秀的结果,而且优势较为明显.这是由于在进化计算时,青蛙的第一跳搜索侧重于广度搜索,能够增强算法的全局搜索能力,青蛙的第二跳搜索能够使模因组内的所有青蛙得到快速改善,从而改善了群体的整体质量,青蛙的第三跳则使蛙群具有了精细化搜索能力,通过模因组内的最优青蛙向全局最优青蛙的学习,使算法的收敛精度得到了有效提高.同时,从实验结果可以看出,ABC比SFLA更具优势,ABC算法通过雇佣蜂和侦察蜂的搜索提升了算法的全局搜索能力,而观察蜂更加倾向于选择优秀个体进化,提高了算法的深度搜索能力.在SFLA中,算法的搜索总是由模因组内的最坏青蛙向模因组内最优青蛙和全局最优青蛙学习,或者进行随机搜索,导致了算法的搜索性能低下.为了比较三种算法对各函数随迭代次数的收敛速度,三种算法对各函数30次收敛的平均过程如图3所示.从三种算法对各函数30次收敛的平均过程可以看出,BCSFLA随迭代次数的变化,总能够以较快的速度发现比ABC算法和SFLA更好的解,这是因为BCSFLA通过青蛙的三跳操作,有效地均衡了算法的全局搜索和深度搜索机会,在提升算法的搜索覆盖范围的同时,能够开发部分优秀青蛙的领域,减少了青蛙学习的方向的盲目性,借鉴ABC算法的进化计算公式,提高了青蛙能够以更高的效率向其它优秀青蛙进行学习.针对SFLA全局搜索能力和深度搜索能力的不足,提出了BCSFLA,重新定义了青蛙的三跳寻优机制,通过青蛙三跳搜索的互相协作,均衡了算法的全局搜索和深度搜索机会.通过常用的7个60维测试函数的试验对比分析表明:BCSFLA在函数优化方面具有比ABC和SFLA更好的收敛性能.。

混合蛙跳算法 基本原理

混合蛙跳算法 基本原理

混合蛙跳算法基本原理
嘿,朋友们!今天咱们来聊聊超有意思的混合蛙跳算法的基本原理!
你想想啊,就好比一群青蛙在一个大大的池塘里蹦跶(这就像算法中各种可能的解)。

它们有的蹦得远,有的蹦得近,但是它们都在努力寻找最好的位置。

混合蛙跳算法呢,就是让这些青蛙们分成小组(可以类比为不同的解集群)。

每个小组里的青蛙们会一起交流,互相学习,然后各自根据学到的东西蹦一蹦(调整解)。

比如说,有一只青蛙发现旁边那只蹦得挺不错,它就会跟人家学学,也试着往那个方向多蹦一点。

然后呢,各个小组之间还会交换信息(这就像是不同解集群之间的交互)!哎呀,这多棒啊!这样就可以让大家都能知道其他小组找到的好地方,都朝着更好的方向去努力。

就好像一群小伙伴一起玩游戏,互相分享经验,然后一起进步!
那这个算法到底有啥用呢?这么说吧,假如你要规划一条最优的物流路线,那它就能帮你找到最合适的那条路,能省好多时间和成本呢!这不就像你找路的时候有人给你指了一条明路一样吗?
再比如,在设计一个复杂的系统时,它能让你快速找到最佳的参数组合。

这不就相当于有个超级聪明的助手帮你把一切都安排得妥妥当当嘛!
我觉得混合蛙跳算法真的太神奇了,就像给我们打开了一扇通往高效解决问题的大门。

它让我们能在各种复杂的情况下都能找到最好的办法,难道不是很了不起吗?朋友们,你们说呢!
观点结论:混合蛙跳算法是一种非常有创意和实用的算法,能帮助我们高效地解决各种问题,具有很大的价值和潜力。

混合蛙跳算法

混合蛙跳算法

混合蛙跳算法
混合蛙跳算法(Hybrid Firefly Algorithm,简称HFA)是一种
基于萤火虫算法的优化算法。

在优化问题中,HFA能够有效地搜索到全局最优解,并且收敛速度较快。

这种算法的核心思想是将不同策略的
蛙跳算法进行混合,以达到更好的优化效果。

HFA继承了萤火虫算法的局部搜索策略和蛙跳算法的全局搜索策略。

在HFA中,每个萤火虫代表一个潜在的解决方案。

萤火虫根据当
前的解决方案和邻域解决方案的亮度来更新自己的位置,从而在优化
空间中进行搜索。

萤火虫之间的相互吸引和排斥影响它们的移动方向,达到全局搜索的目的。

蛙跳算法的特点是通过交叉和变异的方式生成新的可行解来进行
搜索。

在HFA中,蛙跳算法被用来增加全局搜索的多样性。

蛙跳算法
的每个个体代表一个解,通过随机交叉和变异操作,产生新的解来覆
盖整个搜索空间。

这样可以避免算法陷入局部最优解,并且加快算法
的收敛速度。

总的来说,HFA综合了萤火虫算法和蛙跳算法的优势,能够同时
进行全局搜索和局部搜索,并且具有很强的适应性和鲁棒性。

在许多
实际问题中,HFA都能够得到很好的优化效果,并且用于解决优化问题的应用具有广泛的前景。

SFLA混合蛙跳算法

SFLA混合蛙跳算法

SFLA混合蛙跳算法SFLA=SCE+PSOSCE: shuffled complex evolution algorithm(Duan 1992) = CRS(controlled radom search Price 1978)+Competive evolution(Holland 1975)+shuffling⼀、前⾔1.1 SCE(混合复杂进化⽅法)的⼀些重要特征SCE算法背后的理念是将全局搜索作为⾃然进化的过程。

⼈⼝被划分为⼏个社区(综合体),每个社区都被允许独⽴发展。

经过定义的进化数量后,复合体被迫混合,新的群落通过洗牌过程形成。

这⼀策略有助于通过共享每个社区独⽴获得的信息和属性来改进解决⽅案。

⼀个社区的每⼀个成员(complex)都是⼀个潜在的⽗母,有能⼒参与到⼀个繁殖过程中。

在每⼀个进化步骤中,只考虑复杂的⼦集(complex),即所谓的⼦复合体(subcomplexes)。

⼦复合体就像⼀对⽗母,除⾮有两个以上的成员。

为了确保进化过程具有竞争性,需要有更⾼的可能性,让更好的⽗母为下⼀代后代做出贡献。

三⾓形概率分布(triangular probability distribution)的使⽤确保了这⼀公平。

单纯型算法(Nelder和Mead 1965)是⼀种直接搜索⽅法,⽤来⽣成后代,例如进化⼦复合体(subcomplexes)。

这个策略使⽤包含在⼦复合体中的信息来指导改进⽅向的进化。

后代也会在可⾏的空间内随机地引⼊,以确保进化过程不会被困在贫穷地区,或错过解决⽅案空间的有希望的区域。

每⼀个新的后代都取代了⽬前最坏的⼦复合体(subcomplex),⽽不是整个种群中最糟糕的⼀点。

这种替换确保每个社区成员⾄少有⼀个机会在被丢弃或替换之前进⾏改进。

因此,社区中所包含的信息都没有被忽略。

SCE⽅法的设计是为了改进CRS⽅法(即全局采样和复杂演化)的最佳特征,通过整合竞争进化和复杂洗牌法的强⼤概念。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基金项目:甘肃省教育信息化发展战略研究项目(2007-08) 作者简介: 孟庆莹(1984-),女,在读硕士研究生,主要研 究方向为农业信息技术。

王联国,教授、硕士生导师,主要 研究方向为计算智能及其工程应用,智能信息处理。

基于邻域正交交叉算子的混合蛙跳算法孟庆莹1 王联国2(1.甘肃农业大学工学院,兰州,730070 2.甘肃农业大学信息学院,兰州,730070)摘要:混合蛙跳算法(SFLA)是一种全新的群体智能优化算法。

针对基本混合蛙跳算法优化精度低、收敛速度慢的缺点,引入邻域正交交叉算子的概念,提出了一种基于邻域正交交叉算子的混合蛙跳算法(SFLA-OCO)。

通过对基准函数进行测试,实验结果证明改进的算法提高了算法的收敛速度,增强了算法的寻优能力。

关键词:混合蛙跳算法;群体智能;正交交叉算子Shuffled Frog Leaping Algorithm based on LocalOrthogonal Crossover OperatorMeng Qingying1 Wang Lianguo2(1. College of Engineering, Gansu Agricultural University, Lanzhou 730070, China2. College of Information Science Technology, Gansu Agricultural University, Lanzhou 730070, China)Abstract: Shuffled Frog Leaping Algorithm(SFLA) is a new swarm intelligence optimization algorithm.Since basic Shuffled Frog Leaping Algorithm has low optimization precision and slow convergence speed ,this paper proposes a Shuffled Frog Leaping Algorithm based on local orthogonal crossover operator (SFLA-OCO ). The test of benchmark function shows that the new algorithm improved not only the convergence speed but also the abilities of searching the global excellent result.Keywords:Shuffled Frog Leaping Algorithm;Swarm Intelligence;Orthogonal Crossover Operator1 引言混合蛙跳算法(Shuffled Frog Leaping Algorithm ,SFLA )是2003年由 Eusuff 和 Lansey 提出,根据模拟青蛙觅食过程中信息共享和交流的特点而产生的一种基于群体智能的算法。

作为一种全新的生物进化算法,它结合了基于基因进化的模因演算法(Memetic Algorithm,MA )和基于群体行为的粒子群算法(Particle Swarm Optimization,PSO )两者的优点,具有概念简单,参数少(具有比 PSO 更少的算法参数),计算速度快,全局寻优能力强,易于实现的特点。

目前该算法已经不断得到完善和应用,如水资源网络分配问题[1-3]、车间调度问题[4]、函数优化[5-6]、旅行商问题[7-9]、成品油管网优化设计[10]等。

然而在基本混合蛙跳算法的求解过程中,对于一些复杂的问题依然存在着收敛速度较慢、优化精度较低的缺点,而且随着维数的增加,这种变化就越大,最终影响了算法的效率。

因此研究者用不同的方法进行了相应的改进,如文献[5]提出了一种基于阈值选择策略的改进混合蛙跳算法,在一定程度上改善了基本混合蛙跳算法的性能;文献[6]利用生物学中的吸引排斥思想更新策略,一定程度上提高了算法的收敛速度。

本文将邻域正交交叉算子引入到基本混合蛙跳算法中,提出了一种基于邻域正交交叉算子的混合蛙跳算法(Shuffled Frog Leaping Algorithm based on Local Orthogonal Crossover Operator ,SFLA-OCO),提高了算法的优化精度。

2 混合蛙跳算法基本原理2.1 行为描述在一片湿地中生活着一群青蛙,湿地内离散地分布着许多石头,青蛙通过寻找不同的石头进行跳跃去找到食物较多的地方。

每个青蛙通过寻找不同的石头提高自己寻找食物的能力,而青蛙个体之间通过思想的交流实现信息的交换。

在子群体中的每个个体有自己的文化,并被定义为问题的一个解,影响着其它个体,并随着子群体的进化而进化。

当子群体进化到一定阶段以后,各个子群体之间再进行思想的交流实现子群体间的混合运算,一直到所设置的条件满足为止。

在混合蛙跳算法中,群体(解集)由一群具有相同结构的青蛙(解)组成。

整个群体被分为多个子群体,不同的子群体被认为是具有不同思想的青蛙的集合。

族群中青蛙按照一定策略执行解空间中的局部深度搜索。

在已定义的局部搜索迭代次数结束之后,思想在混合过程中进行了交换。

局部搜索和混合过程一直持续到定义的收敛条件结束为止。

全局信息交换和局部深度搜索的平衡策略使得算法能够跳出局部极值点向着全局最优的方向进行,这也成为混合蛙跳算法最主要的特点。

2.2 数学模型随机生成F 只青蛙(问题的解)组成初始群体,第i 只青蛙表示问题的解为X i =(x i1,x i2,…,x is ),其中 s 表示变量的个数即解空间的维数。

在生成初始群体之后,将种群内青蛙个体按适应度降序排列。

然后将整个青蛙群体分成m 个族群,每个族群包含 n 只青蛙,满足关系F=m×n 。

其中,第1只青蛙分入第1族群,第2只青蛙分入第2族群,第m 只青蛙分入第m 族群,第m+1只青蛙分入第1族群,第 m+2只青蛙分入第 2族群,依次类推,直到全部青蛙划分完毕。

对于每一个族群,具有最好适应度的解表示为X b ,最差适应度的解表示为X w ,而所有族群中具有全局最好适应度的解表示为X g 。

然后对每个族群进行局部深度搜索,即对族群中的X w 循环进行更新操作,更新策略为:)(()w b j X X rand D -⨯=(1) j w w D oldX newX +=(2)D max ≥D j ≥-D max ,其中,D j 表示分量 j 上移动的距离,rand( )表示0和1之间的随机数,D max 表示青蛙所允许改变位置的最大值。

在经过更新后,如果得到的解newX w 优于原来的解oldX w ,则取代原来族群中的解。

如果没有改进,则用X g 取代X b 重复执行更新策略(1)、(2)。

如果仍然没有改进,则随机产生一个新的解取代原来的X w 。

重复这种更新操作,直到设定的迭代次数。

当所有族群的局部深度搜索完成后,将所有族群的青蛙重新混合并排序和划分族群,然后再进行局部深度搜索,如此反复直到满足终止条件。

3 基于邻域正交交叉算子的混合蛙跳算法3.1 正交试验原理正交试验设计(Orthogonal experimental design)是数理统计中的一个重要内容,正交设计是利用预先编制好的正交表来合理的安排多因素试验,以便通过少量的试验次数来获得满意的结果,同时对试验数据进行统计分析,是一种高效率、快速、经济的实验设计方法。

正交交叉算子是文献[11]提出的一种新的算子,用较少的试验次数来产生新的较优个体,它具有均衡分散性和整齐可比性。

在数学上把均衡分散性和整齐可比性称为正交性,凡具有这特性的试验设计方法都称为正交设计法。

正交表是一整套规则的设计表格,它遵循概率统计规律,依照一定的原则(如正交拉丁)生成的,通常表示成L a (t q ), 其中L 表示正交表的代号,a 表示试验的次数,t 表示因素的水平数,q 表示正交表的列数,即正交表最多能安排的因素数。

3.2 邻域正交交叉算子定义1 设个体进行N-1点交叉运算,则交叉的个体分量个数为N,将这N 个分量看成N 个因素。

定义2 将个体的每一个交叉分量,设置为同一水平,这样两个个体的交叉运算,就是一个N 因素、2水平试验。

定义3 用N 因素、2水平正交试验表安排某个体与邻域极值个体的分量交叉,得到2N 个子个体,通过适应度函数选取一个适应度最大的子个体,代替该个体,而极值个体保持不变。

该过程称为邻域正交交叉算子。

本文对该正交交叉算子进行了简化,随机将邻域极值中的一部分分量与最差个体中的对应的分量进行交叉,形成新的个体,并用新个体代替原来的个体[12]。

设X w =(x w1,x w2,…x wD )为最差个体X w 在D 维空间中的当前位置,X b =(x b1,x b2,…x bD )为邻域最优极值,首先从邻域最优极值X b 中随机选择其中的一部分分量和最差个体X w 中的对应的分量进行交叉,得到交叉后的个体X w ′,然后计算其适应度,从中选择交叉后适应度最优的个体X w ′来代替个体X w 。

最差个体X w ′在D 维空间中的当前位置X w ′=(x w1′,x w2′,…x wD ′)按(3)式产生。

⎩⎨⎧>≤=pcU x pc U x xkb k w kw )1,0()1,0(,,',(3)其中,k=1,2,…,D ;pc 为k 维分量交叉的概率;U(0,1)为[0,1]上的随机数。

3.3 算法流程Step1: 随机产生种群F=m ⨯n 只青蛙,设置混合迭代次数G 和族群内迭代次数N ;Step2: 对每只青蛙,计算其适应度,找出全局最优个体X g ;Step3: 将F 只青蛙按照适应度将序排列,划分为m 个子群体,每个子群体中包含n 只青蛙, 找出每个子群体中的最优个体X b 和最差个体X w ;Step4: 根据新的局部更新策略,按照公式(1)和公式(2)更新X w 值;Step5: 按照邻域正交交叉概率pc ,根据公式(3)对最差个体X w 执行正交交叉算子;Step6:判断终止条件是否满足? 如果满足,结束迭代,输出最优解X g ,否则转Step2。

4 实验与仿真以求5个基准测试函数的最小值为例,进行仿真实验,测试软件平台为Visual C++和Windows XP ,机器主频为P4 (1.99Ghz),内存为1GB 。

)12.512.5()(121<<-=∑=i ni i x x x f )12.512.5()10)2cos(10()(122<<-+-=∑=i i ni i x x x x f π)6006001)cos(40001)(1123<<-+-=∏∑==i n i i ni i x i x x x f ( )3232(20)2cos 301exp(3012.0exp 20)(1124<<-++-⎪⎪⎭⎫ ⎝⎛--=∑∑==i ni i n i i x e x x x f π )100100(]1))(50([sin )()(1.0212225.0211125<<-+++=++-=∑i i i i n i i x x x x x x f算法性能评价采用如下方法:(1)固定进化迭代次数,评价算法的收敛速度和精度;(2)固定收敛精度,评价算法达到该精度所需要的迭代次数。

相关文档
最新文档