一种基于粒子群和鱼群的混合优化算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)
xidk+1=xidk+vidk+1
(2)
其中 vidk 是第 i 个粒子在第 k 次迭代中第 d 维的速度,
wk 是压缩因子(称为惯性因子)调节算法的全局和局部搜索
能力.c1 和 c2 是加速因子(称为学习因子),分别调节粒子向 个体最好粒子和全局最好粒子方向飞行的最大步长,通常
取 c1=c2=2.rand1k 和 rand2k 是[0,1]范围内的随机量,对每个粒 子按(1)(2)迭代,直到找到满意的解为止.
第 29 卷 第 2 期(上) 2013 年 2 月
赤 峰 学 院 学 报( 自 然 科 学 版 ) Journal of Chifeng University(Natural Science Edition)
Vol. 29 No.2 Feb. 2013
一种基于粒子群和鱼群的混合优化算法
李玉毛 1,于志远 2
化算法,可有效地提高算法的寻优能力.
2 关于粒子群算法和人工鱼群算法的基本原理及其存在
的问题
2.1 粒子群优化算法原理
PSO 算法的基本原理是通过个体间的协作与竞争,实
现复杂空间中的最优解的搜索.首先,在 D 维可行解空间中
初始化一群粒子(设有 N 个),对应于优化问题在 D 维空间中
的 N 个潜在的解,然后根据下面两个值来确定它的下次迭
关键词:粒子群;鱼群;群智能 中图分类号:O6-39 文献标识码:A 文章编号:1673- 260X(2013)02- 0010- 02
1 引言
从二十世纪九十年代就产生了通过模拟生物群体行为
来解决优化问题的演化计算技术,称为群体智能[1].在 1995
年,美国学者 Kennedy 和 Eberhart 提出了粒子群优化算法
- 10 -
就影响了寻优的效率. 3 基于粒子群算法和人工鱼群算法的一种新的混合算法
本文结合鱼群算法和粒子群算法两者的优点,提出了 一种新的混合优化算法. 由于算法是粒子群和鱼群混合算 法,而粒子群算法隐含了鱼群算法中的追尾行为,故为了减 少计算量将鱼群算法中的追尾行为去掉,去掉追尾行为的 鱼群算法我们称之为简单粒子群算法(SAF).首先初始化一 群体,从同一种群出发分别用 SAF 算法和 PSO 算法进行搜 索,各自的迭代次数由各自目前找到的最优值和上次的最 优值的偏差决定,不妨设 SAF 当前找到的最优值为 BBp(p 为当前迭代次数),PSO 算法当前的最优值为 Bq (q 为当前迭 代次数),即当 |BBp-BBp-1|<Bp/10 时 PSO 停止迭代,然后进行 信息交换,如此迭代直到算法满足终止条件为止.由于混合 算法中的 PSO 算法能够保留粒子本身经过的最优状态,而 SAF 算法则由于引入拥挤度因子,可以很好的保持粒子的 多样性,从而混合优化算法便能够及时地跳出局部最优值 且快速向全局最优解靠近. 同时为了更好地发挥 SAF 算法 的全局收敛性,一般在算法中取较大的视觉范围 Visual 和 步长 Step,较小的 Try number 及 σ 拥挤度因子[6],为了不 错过最优值在 PSO 中取较小的步长. 3.1 混合优化算法流程:
(Particle Swarm Optimization),就是通过对鸟群的某些行为
的观察研究,提出的一种新颖而有效的进化算法[2].李晓磊等
在 2002 年提出的人工鱼群算法(Artificial Fish)则是通过模
拟人工鱼的觅食行为来处理优化问题.但两个算法都存在不
足,鉴于二者的关系,结合二者的优点,提出了一种混合优
(1)觅食行为:人工鱼群当前状态为 xi(i=1,2,…,N)野范围 内随机选择一个状态 xj,当该环境的状态优于原来的状态 时,则向该方向前进一步;反之,则重新选择随机状态 xj,判 断是否满足前进条件;如此反复 Try number 次后,如果仍 不满足,则随机移动一步.
(2)聚群行为:人工鱼群当前状态为 xi(i=1,2,…,N),其视 野范围内伙伴数为 nf,如果(nf/N)<h,则表明 xmax 周围不太拥 挤,则向 xmax 方向前进一步,否则执行觅食行为.
粒子群算法和人工鱼群算法都有各自的优缺点,对于 粒子群算法它的优点是收敛速度快,缺点是由于在算法初 期各粒子很快地向最优值聚拢,也就是在最优值附近粒子 群表现出强烈的“趋同性”,算法容易陷入局部最优但收敛 速度快,最终收敛到某一局部极值,即出现“早熟”现象,尤 其是当解空间是非凸集时,更易陷入局部收敛.人工鱼群算 法由于其引入了拥挤度因子[5],从而能够很好地跳出局部极 值,并尽可能地搜索到其他的极值,最终向全局极值靠拢, 却在接近最优值时往往停滞不前,而且算法对初值和各种 参数的选择也不很敏感,但是当寻优域较大或处于变化平 坦的区域时,一部分人工鱼将处于无目的的随机游动中,这
代的速度和位置:一个是每个粒子目前搜索到的最优位置,
称为个体最优极值;另一个是整个群体迄今为止搜索到的
最优位置,称为全局极值.根据这两个值来进行迭代,直到找
到满意的解为止[3].
基本的 PSO 的迭代模型如下:
vidk+1=wk×vidk+c1×rand1k×(pbidk-xidk)
+c2×rand2k×(gbdkБайду номын сангаасcidk)
(1.赤峰学院 数学与统计学院,内蒙古 赤峰 024000;2.赤峰学院 附属医院,内蒙古 赤峰 024000)
摘 要:本文通过分析和比较粒子群和人工鱼群算法的优点和缺点,提出了一种新的混合优化算法,并用此算法求解无 约束优化问题,实际仿真数值结果表明,新算法的收敛精度和收敛速度都明显优于粒子群和鱼群算法,且亦然符合动物的自 然规律,是一种很高效的优化算法.
每条人工鱼搜索当前所处环境的状态,按照“进步最快 的原则”或者“进步即可的原则”从中选择一个合适的行为, 使得各人工鱼不断向最优化方向前进,并且在公告板上记 录其每次搜索到的最值,最终全部人工鱼集结在几个局部 极值的周围,且较优的极值区域周围能集结较多的人工鱼.
根据以上对粒子群和人工鱼群的叙述可以看出,二者 均属于种群优化算法,由于二者概念简单,需要调整的参数 少,易于编程,本身没有类似求导等复杂的数学操作,且在 搜索的过程中是多个粒子同时展开搜索,具有隐含并行性, 在处理优化问题尤其是复杂问题时,已经相对于传统的优 化算法显示出了明显的优势,因而受到人们广泛的关注和 青睐,近几年已成功应用于多个领域. 2.3 两个算法存在的问题
2.2 人工鱼群算法的基本原理
在一片水域中,鱼往往能自行或尾随其他鱼找到食物
多的地方,因而鱼生存多的地方就是食物多的地方,人工鱼
群算法就是根据这一特点,通过构造人工鱼来模仿鱼群的
觅食、聚群及追尾行为,从而实现寻优.人工鱼群算法[4]具体
行为描述如下:
设 x=(x1,x2,…,xN)为人工鱼当前状态,对应优化函数中的 N 个潜在解(其中 N 表示人工鱼的个数),yi=f(xi)(i=1,2,…,N)表 示人工鱼当前的食物浓度,对应优化函数中的 N 个函数值, dij=||xi-xj|| 表示人工鱼个体之间的距离,Visual 表示人工鱼视 野范围,Step 表示移动的最大步长,σ 表示拥挤度因子.