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

合集下载
相关主题
  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 Local

Orthogonal Crossover Operator

Meng Qingying1 Wang Lianguo2

(1. College of Engineering, Gansu Agricultural University, Lanzhou 730070, China

2. 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 Operator

1 引言

混合蛙跳算法(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 个子个体,通过适应度函数选取一个适应度最大的子个体,代替该个体,而极值个体保持不变。该过程称为邻域正交交叉算子。

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

相关文档
最新文档