当前位置:首页 >> 信息与通信 >>

基于MATLAB的粒子群优化算法程序设计


维普资讯 http://www.cqvip.com

第2 0卷第 4期  2 0 0 5年 1 2月  











报 

V0 1 . 2 0   No . 4   De c .2 o o 5  



J o u na r l   o f   Hu  o u   T e a c h e r s   C o l l e g e  

基于 M A T L A B的粒子群 优化 算 法程 序设 计 
吴建 生 。 秦发金 
( 柳州师范高等专科学校 数学与计算机科学系, 广西 柳 州 5 4 5 0 0 4 )   摘 要: 阐述了粒子群算法的基本原理 , 探讨 了在 M A T L A B环境 中实现粒 子群 算法的编程方法 , 构建粒子群 算 

~  

法工具箱函数 , 通过仿真示例验证 了该方 法的有效性, 表明它能够对 函数进行 全局优化 。   关键 词: 粒子群 ; 优化算 法; MA T L A B; 程序设计 
中图分类号 : T P 3 0 1 、 6 文献标识码 : A 文章编号: 1 0 0 3— 7 0 2 0( 2 0 0 5 ) 0 4- 0 0 9 7一o 4  

~  

~   ~   ~  
~  

% %  ~  
1 引 言 

群体智能算法( S w a r m  I n t e l l i g e n c e   A l g o r i t h m, S I A) 的研究开始于 2 0世纪 9 0年代 , 其基本思想是模拟 自然界生 物的群体行  为来构造随机优化算 法[ 】  】 , 通常单个 自然界的生物并不是智能的, 但是整个生物 群体却表 现出处理复 杂问题的能力 , 群体  智能算法就是模仿这 些生物 的团体 行为并 把它 应用在 人工智 能问题 中 , 其 中粒子 群优 化算法 ( P a r t i c l e   S w a r m   O p t i mi z a t i o n ,   P S O) 就是群体智能算法 的一种 , 它是 由美 国社会心理学 家 J a me s   K e n n e d y和电气工程师 R u s s e l   E b e r h a r t 在1 9 9 5年 提出的 , 其  基本思想是对鸟群 、 鱼群 的觅食过程 中的迁徙 和聚集 的行 为模拟 , 并利 用 了生 物学家 F r a n k   H e p p n e r 的生 物群 体模型  。   P S O算法是~类基于群体智能 的随机优化技术 , 相对遗传算法而言 , 二者都是基于群 体的迭代搜索 , 但是 P S O算法 没有 交叉、   变异算子 , 粒子群优化算法是通过个体之间的协作来搜寻最优解 , 它利用 了生物群体 中信息共享 的思想 , 其概念简单 、 易于实  现, 同时又有深刻的智能背景 , 既适合科学研究 , 又特别适合工程应用。因此 , P S O一 提出 , 就 引起 了众 多学者的关注 , 并在短 
短几年 的时间里出现了大量的研究成果 口 . g   J 。   2  P S O基本原理 

一  
~   ~   ~  

‰  

~  

P S O算法是基于群体智能理论的优化算法 , 群体中的粒子在每次迭代搜索的过程中 , 通过跟踪群体 2个极值 : 粒子本身所  找到的最优解 P b e s t 和群体找到的最优解 G b e s t 来动态调整 自己位置和速 度  J , 完成对 问题寻优 , 对于如下的函数优化 问题 

j - m 娃 , (  
其计算 步骤如下 J :  

一 ,  )  

( 1 )  

【  t   R 1 f ≤   f ≤   ,  =1 , 2 , …, n  

( 1 ) 对粒子群 中粒子的位置和速 度进行 随机初始化。设定群体的规 模为 Ⅳ, 则随机生成 如下矩 阵 

( 2 )  

其中 {  , i = 1 , 2 , …, Ⅳ,   = 1 , 2 , …, n } 表示群体中 i 粒子 的位置为  ,  是对 应它的速度 , 二者均 为区间 [ R l 『 ,   ] 上 均匀 分布的 
随机数 。   ( 2 ) 计算每个粒子 的适 应度 ( 目标函数值) 。   ( 3 ) 计算粒子所经历 的最好 位置 p b e s t   ( t )=(   , …,   也就是粒子所 经历过 的具有最好适应度的位置 , 由下式确定 

p b e s t i ( t + 1 ) : f p b e s t l ( ‘ ), (   l ( ‘  ) , x 2 ( ‘  ) , … ,   n ( ‘  ) ) < p b e s t i ( ‘ ) ) ,  
【   i ( t + 1 )  , (   1 ( t + 1 ) ,   2 ( t + 1 ) , …,  ( t + 1 ) )  ̄ > p b e s t i ( t ) ) .  
计算群体中所有粒子经 历过最好位置 , 即全局最好位置  G b e s t j ( t )=m a x f f ( P b e s t l ( t ) ) , , ( P b e s t 2 ( t ) ) , …, , ( P b e s t , v ( t ) ) ) ,   ( 4 ) 依据下式对粒子的速度和位置进行进化 
( t +1 )- - I )  + C 1 r 1 ( P b e s t   ( t )一  ( t ) ) +c 2   r 2 ( G b e s t i ( t )一  ( t ) ) ,  
收 稿 日期 : 2 0 0 5—0 9—0 2  

( 3 )  
( 4 )  
( 5 )  

作者简介: 吴建生 ( 1 9 7 4 一) , 陕西咸阻人, 硕士 , 讲师 , 研究方 向: 神经网络应用及智能优化算法 ; 秦发金( 1 9 6 7 一) , 男, 广西临桂人 , 副教授。  
基 金 项 目: 广西 教 育 科 学 “ 十五 ” 规 划 课 题 

9 7  

维普资讯 http://www.cqvip.com

第2 0卷第 4期 











报 

2 0 0 5年 1 2月 
( 6 )  

( £ +1 )=  ( £ )  

( £ +1 ) ,  

其中c   为加速度常数( 学习速率 ) , r   : :为 [ 0 , 1 ] 均匀分布的随机数。  



( 5 ) 判断结束条件 , 目 标 函数的适应度达到 足够好或者进化到预先设定的代 数 , 否则返 回步骤( 2 ) , 继续 进行 。   3 用M A T L A B实现粒 子群算法 
MA T L A B是 Ma t h Wo r k s 公 司的产品 , 是一个 功能强大 的科学 与工 程计算软 件 , 集成 了计 算 、 可视化 和程序编制等 功能 , 其 

使用直观 、 简洁并符合人们 思维习惯的代码给 用户 提供 了一个友好 的开发环境  粒子群算法程序有很好 的优势 。  
3 . 1 粒 子群 的初 始 化 

, 利用 M A T L A B 矩 阵运算的强大功能编写 

i n i t op函数的功能是实现群体的初始化 , p p o p s i z e 表示群体 的大小 , d i ms i z e表示粒子维数 , 它由变量 的维数决定 , x m i n是变 
量的下 限, x m a x 是变量 的上 限。  
f u n c t i o n   p o p=i n i t op p ( op p s i z e , d i m s i z e )   p o p  u n i f md ( x mi n , x l n & x , p o p s i z e , 2}d i m S i z e ) ;  

3 . 2 计算粒子的适应度和确定群体的 P b e s t 和G b e s t  

C a l o b j v a l u e 函数的功能是计算 目 标 函数的适应度 , 其公式是采用本文 的示例仿真 , 用户可以根据不同的优化问题予以修改。  
f u n c t i o n   o b j v a l u e =c a l o b j v a l u e ( p o p )  
f o ri= 1: po p s i z e  

o b f u c t l=s i n ( s q r t ( p o p ( i , 1 )  

p o p ( i , 2 )  ) )   — 0 . 5 ;  

o b f u c t 2=( ’ 1 . 0+ 0 . 0 0 1}( s q r t ( x ( i , 1 )   +x ( i , 2 )  ) )  ) ;   o b j v a l u e ( i , 1 ) = 0 . 5+o b f u c t l / o b f u c t 2 ;  
e n d  


P b e s t =p oP ( : , 1 : d i m s i z e ) ;  

[ g g B e s t , x i n d e x ]=i n / i x ( o b j v a l u e ) ;  
x t e m p  p o p ( x i n d e x , 1 : d i m s i z e ) ;  
Gb e s t   x t e mp;  

3 . 3 粒子 速 度 和位 置 的更 新 

粒子速度和位置的更新是基 于式 ( 5 ) 与( 6 ) , 并生成新 的粒子群体.  
f u n c t i o n   op p 2=I  ̄ n e w ( p o p )  
f o rt= 1: o p p s i z e  

f o r   d i ml n d e x=1 : d i ms i z e  

w=w c n l / t X 一( w c n l / t X—w c mi n )}( g e n e r a t i o n / m a x g e n e r a t i o n ) ;  

s u b l =P b e s t ( t , d i m I n d e x )一 p o p ( t , d i m I n d e x ) ;  
s u b 2=G b e s t ( 1 , d i m I n d e x )一p op ( t , d i m I n d e x ) ;   t e m p V= w  p oP ( t , d i m s z i e +d i m I n d e x ) ‘ +c l} u n i f md ( 0 , 1 )} s u b l + c 2} u n i f md ( O , 1 )} s u b 2 ;  
i f   t e mp V >s p e e d ma x  

OP P ( t , d i m s z i e +d i m I n d e x )= s p e e d ma x ;   e l s e f i   t e m p V<(一 s p e e d m a x )   p o p ( t , d i m s i z e +d i m I n d e x )= 一 s p e e d ma x ;  
e l s e  

OP P ( t , d i ms z i e +d i m I n d e x )= t e m p V;  
e n d  

t e mp os p i t i o n  p o p ( t , d i m l n d e x )+p o p ( t , d i m s i z e +d i m I n d e x ) ;  
i f   t e mpp os i t i o n>x l n a . x  

oP p ( t , d i m I n d e x )=x ma x ;  
e l s e i f   t e mp p o s i t i o n<x n i f n  

OP P ( t , d i ml n d e x )=x mi n ;  
e l s e  

op p ( t , d i m l n d e x )=t e mp os p i t i o n ;  
e n d  
e n d   e n d  

3 . 4 粒子 P b e s t 和G b e s t 的 更 新 
9 8  

维普资讯 http://www.cqvip.com

吴建生, 秦发金 : 基于 M A T L A B的粒子群优化算法程序设计 
粒子在进化过程 中依据其适应度 , 调节个体最好位 置 P b e s t 和群体最好位置 G b e s t   f u n c t i o n[ P b e s t , G b e s t ]=r e g u l a t e ( p o p )  
f 0 ri =1 : op p s i z e  

o b f u c t l =s i n ( s q r t ( x ( i , 1 )  + x ( i , 2 )  ) )  — 0 . 5 ;   o b f u c t 2=( 1 . 0+ 0 . 0 0 1  ( s q r t ( x ( i , 1 )   +x ( i , 2 )  ) )  ) ;   o b j v Mu e ( i , 1 ) = 0 . 5+ o b f u c t l / o h f u c t 2 ;   o b f u c t 3=s i n ( s q r t ( p B e s t ( i , 1 )   +p B e s t ( i , 2 )  ) )  — 0 . 5 ;   o b f u c t 4=( 1 . 0+ 0 . 0 0 1   ( s q r t ( p B e s t ( i , 1 )   +p B e s t ( i , 2 )  ) )  ) ;   p v a l u e r ( i , 1 )= 0 . 5+ o b f u c t 3 / o b f u c t 4 ;  
e n d  

o b f u c t l =s i n ( s q r t ( g B e s t ( 1 )  + g B e s t ( 2 ) " 2) )  — 0 . 5 ;  

o b f u c t 2=( 1 . 0+ 0 . 0 0 1  ( s  ( g B e s t ( 1 )   +g B e s t ( 2 ) " 2) )  ) ;  
o b j v a l u e t e m p= 0 . 5+ o b f u c t l / o b f u c t 2 ;  
f 0 r   i =1 : op p s i z e  

| f   o b j v  ̄ u e r ( i , 1 )<p v a l u e r ( i , 1 )   P B e s t ( i , 1 : d i ms z i e ) :p op ( i , 1 : d i ms z i e ) ;  
e n d  

i f   o b j v a l u e r ( i , 1 )<0 b j v a l u e r t e m p   G B e s t  p o p ( i , 1 : d i m s z i e ) ;   x t e m p=p oP ( i , 1 : d i m . s i z e ) ;  
e n d   e n d  

4 示 例 仿 真 

利用上述思路在 MA T L A B中开发 P S O工具箱 , 以J . D. S c h a f e r 提出的函数  “  

』   一5 +  编
I   t 一 1 0 o ≤   <  ̄ 1 0 0 (  1 , 2 )  

,  

㈩  

为示例仿真 , 按 照上述方法编写程序, 它的最优解 m i n  (  ’ ) ) = , ( 0 , 0 ) = 0 , 此函数在距全局最优点大约 3 ? 1 4范围 内存在无 

多个 局部极小将其包 围, 并且该 函数强烈振, 一般 的算法难 以得到最优解 , 利用 P S O工具箱计算它 ? 其运行界面如下 :  

1 0 0  

1 0 0 

1 0 0  

1   l堕  l  
图 1 基于M A T L A B的P S O算法运行界面 
在运行过程中 , 为了评价算法的性能 , 采用 D e J 。 n g 提 出的在 线性能  ( o n - l i n e   p e r f o r m a n c e ) 和离线性 能 ( 。 f i - l i n e   p e r f o r m _  

明c e ) 来衡量算法性能的优劣, 在环境 e 下策略s 的在线性能  ( s ) 定义为:  

( s ) =   1   E   ( t ) ,  

(   )  
9 9  

维普资讯 http://www.cqvip.com

第2 0卷第 4期 











报 

2 0 0 5年 1 2月 

式中  ( t ) 是在环境 e 下第 t 时刻的平均 目 标 函数值或平均适应 度。算 法的在线性 能指标表示 了算 法从开始运行 一直到现在 
为止的时间段内算法性能值的平均值 , 它反映了算法的动态性能。在环境 e 下策略 s的离线性能  ( s ) 定 义为 :  

』 

r  、  
‘= 1  

( s ) : ÷ 

( t ) ,  

( 9 )  

式中   ( t ) 是在环境 e 下, 在[ 0 , 1 ] 时段内最好 的 目 标 函数值或 最大适 应度。算 法的离线性 能表示了算法 运行过程 中各进化  代的最 佳性 能的 累积平均 , 它 反映了算法的收敛性能 。   在 示例仿真 中我们取种群个数为 1 0 0 , 进化代数 1 0 0 , 学习 因子 ( 加速度常数 ) 2 , 加权 系数上 限为 0 . 9和下 限为 0 . 1 , 位置 
下 限为 一1 0 0 , 上限 1 0 0 , 速度设置与位置相 同。图 2为本文算 法求解 J . D. S c h a f e r 函数过 程中算法 的在线 性能 和离线性 能。   算法运行 1 0次 , 其全部收敛到最优解 r a i n ( , f ( X‘ ) )=  0 , 0 )=0 , 图 3是 P S O工具箱计算示 例仿真 函数在 进化过 中它的适应 
度度变化情况。  

图 2 粒子群进化过程在线 和离 线性 能 
5 结语 

图 3 粒子进化过程适应度的变化 

我们利用 M A T L A B强大的计算、 绘图 以及界面设计功能 , 开发 了基 于 M A T L A B的粒子群优化算 法工具箱 , 设计界 面友好 、   操作方便 , 具有很强的通用性 , 利用它可 以方便地解决一些 粒子 群算法 应用问题 , 可 以很 直观地看 出各种参数 的确定对进化  结 果有何影 响, 故对学 习和应用粒子群算法可以起到事半 功倍 的作用。  

参 考文 献 :  
[ 1 ] 曾建潮 , 介婧 , 崔志华 . 微粒群算法[ M] . 科学 出版社 , 2 0 0 4 .   [ 2 ] E . B o n a b e a u , M . D o r i g o , G . T h e r a u l a z . I n s p i r a t i o n   f o r   o p t i m i z a t i o n   f r o m   s o c i a l   i n s e c t   b e h a v i o r [ J ] . N a t u r e , 2 0 0 0 , 4 0 6 ( 6 ) : 3 9 —4 4 2 .   [ 3 ] E . B o n a b e a u , M . D o r i g o   G .T h e a r u l a z . S w a r m   i n t e U i g e n e e : f r o m   n a t u r a l   t o   a r t i i f c i l a   s y s t e m s [ M] . N e w   Y o r k : O x f o r d   U n i v . P r e s s , 1 9 9 9 .   [ 4 ] J . K e n n e d y , R . C ; E er b h a  ̄ . P a r t i c l e   s w a r m   o p t i m i a z t i o n [ A ] . P r o c e e d i n g   I E E E   I n t e m a t i o n l a   C o n f e r e n c e   o n   N e u r a l   N e t w o r k s [ M] . 1 9 9 5 : l 9 4 2 — 
1 9 4 8.  

[ 5 ] 张荣沂. 一种新 的集群优化方法一

粒子群优化算法 [ J ] . 黑龙江工程学 院学报 ( 自然科学版 ) , 2 0 0 4 。 1 8 ( 4 ) : 3 4 —3 7 .  

[ 6 ] 杨维 , 李岐强 . 粒 子群优化算法综述[ J ] . 中国工程科学 , 2 0 0 4 , 6 ( 5 ) : 8 7 —9 2 .   [ 7 ] R . C . E . S e r h a r t , Y . S h i . E v o l i v n g A r i t i f c i lN a e u r a l N e t w o r k s [ A ] . P r o c e e d i n g   o f I n t e r n a t i o n a l   C o f n e e r n c e   o n N e u r a l N e t w o r k s   a n d   B r a i n [ M ] , P i s .  
c a r a wa y   N J   I EE E   P r e s s , 1 9 9 8: 5 一l 3 .  

[ 8 ] 李宁 , 邹彤 , 孙德 宝. 带 时间窗车辆路径问题 的粒子群算法[ J ] . 系统 工程理论与实践 , 2 0 0 4 , 2 4 ( 4 ) : l 3 l —l 3 5 .  
[ 9 ] 张志涌. 精通 MA T L AB 6 . 5 [ M] . 北京 : 航空航天大学出版社 , 2 0 0 4 .  

[ 1 O ] 阮沈勇 , 王永利 , 桑群芳. M A T A L A B程序设计 [ M] . 北京 : 电子工业 出版 社, 2 0 0 4 .   [ 1 1 ] 王凌, 智 能优化算法及其应用 [ M ] . 北京 : 清华大学出版社 , 2 0 0 1 .   [ 1 2 ] 周明 , 孙树栋. 遗传算法原理及其应用[ M] . 国防工业 出版社 , 2 0 0 4 .  

( 责任 编辑 : 梁文 杰 )  

A  De s i g n   o f   P a r t i c l e   S wa r m  Op t i mi z a t i o n   wi t h   MAT AL B  
W_ U   J i a n - s h e n g . QI N   F a - j i n g   ( D e p a r t m e n t   o f   Ma t h e ma t i c s   a n d   C o m p u t e r   S c i e n c e , L i u z h o u   T e a c h e  ̄C o l l e g e , L i u z h o u , G u ng a x i   5 4 5 o o 4 , C h i n a )  
Abs t r a c t : Th e   p r i nc i p l e   o f   pa r t i c l e   s wa r m  o p t i mi z a t i o n   h a s   b e e n   p r e s e n t e d  a n d   i t s   r e a l i z a t i o n   wi t h   MA  n  L B 

h a s   b e e n   d i s c u s s e d. a n d   t } l e   p a r t i c l e   S W a l T I I   o p t i mi z a t i o n   t o o l   l i b r a r y   f u n c t i o n   w a s   ma d e .A   f u n c t i o n   o p t i mi z a t i o n  
p r o b l e m  h a s   b e e n   g i v e n   t o   de mo n s t r a t e   t h e   g l o b a l   o p t i mi z a t i o n   f u n c t i o n — a b i l i t y   o f   he t   MA  兀  AB  pr o g r a m.   Ke y   wo r ds : p a r t i c l e   S Wa l T I I   pt i mi z a t i o n: MATLAB; p r o ra g mmi n g  

1 0 0  


相关文章:
粒子群优化算法介绍及matlab程序
粒子群优化算法(1)—粒子群优化算法简介 PSO 算法就是模拟一群鸟寻找食物的过程...(0,1)随机数,使性能大为提高 %参照基于 MATLAB 的粒子群优化算法程序设计 %...
matlab粒子群优化算法举例分析
matlab粒子群优化算法举例分析_机械/仪表_工程科技_专业资料。对粒子群优化算法不...a)%主函数源程序(main.m) %---基本粒子群算法 (particle swarm optimization...
粒子群优化算法Matlab源程序
(i,j)=randn; %随机初始化速度 end end %---先计算各个粒子的适应度,并初始化 Pi 和 Pg---for i=1:N p(i)=fitness(x(i,:),D); y(i,:...
计算智能课程设计_粒子群优化算法求解旅行商问题_Matlab实现
本文首先介绍旅行商问题和粒子群优化算法的基本概 念。 然后构造一种基于交换子...本文以中国 31 个省会城市为例,通过 MATLAB 编程 实施对旅行商问题的求解,得到...
粒子群优化算法源程序
粒子群优化算法源程序_计算机软件及应用_IT/计算机_专业资料。介绍粒子群优化算法及其MATLAB程序粒子群优化算法源程序 1 粒子群的初始化 initpop函数的功能是实现群...
pso粒子群优化算法matlab程序
pso优化算法matlab程序 2页 2财富值 经典pso粒子群优化算法程序... 2页 2财富值 最基本的粒子群优化算法程... 2页 5财富值 基于MATLAB的粒子群优化算... ...
粒子群优化算法 简洁 c语言
粒子群优化算法 简洁 c语言_计算机软件及应用_IT/...由于学 matlab,我 C 语言长时间未碰,有点生疏。...} //---主程序---// void main(int argc,char...
基本粒子群算法的原理和matlab程序
基本粒子群算法的原理和matlab程序_计算机软件及应用_IT/计算机_专业资料。自己整理...基于MATLAB的粒子群优化... 4页 免费 蚁群算法程序(matlab) 3页 免费 matlab...
智能算法中粒子群优化研究和实现
关键词:粒子群算法优化应用;智能算法;编程语言 matlab 中图分类号:tp311 文献...目前有信号处理机器 人路径规划、模糊控制器的设计和模式识别等问题 4.4 组合...
带交叉因子的粒子群优化算法matlab源程序
带交叉因子的粒子群优化算法matlab源程序_信息与通信_工程科技_专业资料。Matlab潮流计算相关程序带交叉因子的粒子群优化算法 matlab 源程序(2009-08-28 11:05:06)...
更多相关标签:
粒子群优化算法matlab | 粒子群优化算法程序 | 粒子群算法matlab程序 | 粒子群优化算法 | 多目标粒子群优化算法 | 粒子群优化算法代码 | 粒子群优化算法实例 | 自适应粒子群优化算法 |