粒子群优化算法PSO

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
就是Gbest的次数
ENDFOR
21
3.粒子群算法
• Coello et al.于2004年提出了的MOPSO具有里程碑意义,它最早 发表在国际顶级期刊的MOPSO。MOPSO中,外部粒子群用来 指导该群体外其它粒子的飞行,并将自适应网格法用于外部粒子 群的维护。
• 这是最早发表在国际顶级期刊上的多目标粒子群算法
18
3.粒子群算法
粒子群P中粒子i的自身最好位置Pbesti, 显然Gbest为N个Pbesti中的最好解 以上过程不是每一代都进行,而是
每隔g代做一次
exp10i 1 N 1 1
Pci 0.05 0.45
exp10 1
19
3.粒子群算法
• CLPSO的详细步骤
c1 0,粒子只有群体经验,收敛速度较快,但容易陷入局部最优 c2 0,粒子没有群体信息共享,相当于粒子各自飞行 通常取c1 c2
• 惯性权重,描述粒子上一代速度对当前代速度的影响权重较小, 倾向于局部探索,精细搜索目前的小区域,权重较大,扩展新的 搜索区域,利于全局搜索
9
• 最大速度:速度钳制 • 在于维护算法的探索能力与开发能力的平衡 • 较大时,探索能力增强,但粒子容易飞过最优解 • 较小时,开发能力增强,但容易陷入局部最优
Pbesti : 粒子i所经过的最好位置
Gbest : 种群所经过的最好位置
Vmax ,vi Vmax ,Vmax ,vi超过边界就取边界值
7
3.粒子群算法
區域 最佳解
運動向量
pg
慣性向量
全域 最佳解
8
3.粒子群算法
• 学习因子:分别调节向Pbest和Gbest方向飞行的最大步长,决定 粒子个体经验和群体经验对粒子运行轨迹的影响,反映粒子群之 间的信息交流。
• Heppner:新的鸟类模型(1990): 受栖息地吸引的特性 • 1995年R.C. Eberhart和J.Kennedy提出粒子群算法
Eberhart, R.C. and Kennedy, J. (1995) A New Optimizer Using Particles Swarm Theory. Proceedings of the 6th International Symposium on Micro Machine and Human Science, Nagoya, 4-6 October 1995, 39-43.

c1 r1
Pbestikd xikd
c2 r2 Gbestdk xikd
xk 1 id

xikdwk.baidu.com

vk 1 id
Shi, Y.H. and Eberhart, R.C. (1998) A modified particle swarm optimizer. IEEE International Conference on Evolu-tionary Computation, 4-9 May 1998, Anchorage, 69-73.
3
3.粒子群算法
• 起源和背景
• 设设想一个场景:一群鸟随机的分布在一个区域中,在这个区
域里只有一块食物。所有的鸟都不知道食物在哪里。但是他们知

。那么找到食物的最优策略是什么
呢?设想这样一个场景:一群鸟在随机搜索食物想这样一个场景:
一搜群寻鸟目在前随离机食搜物索最食近物的鸟的周围区域,根据自己飞行的经验判
粒子群优化算法
雷德明 武汉理工大学自动化学院
1
3.粒子群算法
• 群智能优化算法
蚁群算法
人工蜂群算法
蛙跳算法
2
3.粒子群算法
• 起源和背景 •Reynolds于1987年使用计算机图形动画对复杂的群体行为进行仿 真,仿真中采用三个简单规则,成功地模拟了飞行的鸟群。 避免碰撞:飞离最近的个体,以避免碰撞 速度一致:向目标前进,和邻近个体的平均速度保持一致 :向邻近个体的平均位置移动,向群体的中心运动
Evaluate particle i and set Pbesti = Xi
end for
Gbest = min {Pbesti}
while not stop
for i=1 to N
Update the velocity and position of particle i
Evaluate particle i
• 局部最优PSO
vk1 id

vikd
c1 r1
Pbestikd xikd
c2 r2 Gbestdk xikd
i
Gbest为粒子i的邻域内的粒子到目前为止发现的最好位置
11
3.粒子群算法
全局模型
局部模型
粒子自己历 史最优值
粒子群体的 全局最优值
Pbest 粒子自己历 史最优值
Gbest 粒子邻域内粒 子的最优值
收敛速度快
容易陷入局 部最优解
收敛速度慢
不易陷入局 部最优解
3.粒子群算法
• 流程图 • 和算法描述
开始 随机初始化每个粒子 评估每个粒子并得到全局最优
是 满足结束条件 否
更新每个粒子的速度和位置
评估每个粒子的函数适应值
Else, vid = wk vid + r Pbestid xid
vid min Vmax d ,max Vmax d ,vid
xid = xid + vid EndFor
If xi X min , X max ,计算粒子i的适应度值,更新Gbest,Pbest,记录粒子的Pbest
其中K

2c
2 c2 4c
,c c1 c2
4
收缩因子法控制系统行为最终收敛,且可以有效搜索不同区域,能 使PSO得到较高质量的解
16
3.粒子群算法
• 拓扑结构的改进 • 拓扑结构直接决定了粒子学习对象的选择,提出了多种不同的邻
居拓扑结构
• 前两种拓扑结构为全局PSO和局部PSO的拓扑结构,第3种为小 世界结构
1初始化粒子群,随机产生粒子的初始速度和位置,计算粒子的适应度值 粒子i的当前位置为其Pbesti ,确定Gbest ,Vmax 0.25 X max X min 2 k 1,wk w0 w1 m _ gen k m _ gen w1,w0 0.9,w1 0.2 3每隔10代,对每个粒子i产生一个长度为D的0数组ai ,bi,随机生成一个1 到m的排列rc,ai rc j 1,rc j 为从排列中选取的第j个元素,bi rand 1,D 1 Pc fi rand 1,D N rand 1,D表示长度为D随机数的数组,k为当前代数,m _ gen最大代数
17
3.粒子群算法
• 几种典型PSO
• 全面学习PSO(CLPSO)
粒子向全局最好位置Gbest、粒子自身最好位置Pbest和其它粒子的Pbest学习
vk1 id

w vikd
cr
Pbest
k fid

xikd
fi r N ,r为0,1内随机数,N为种群规模
Coello CAC, Pulido GT and Lechuga MS. Handling multiple objectives with particle swarm optimization. IEEE Transactions on Evolutionary Computation. 2004,8(3):256-279.
即对于每个粒子i需要确定一个fi
Liang J.J. Qin A.K., Suganthan P.N., Baskar S. Comprehensive learning particle swarm optimizer for global optimization of multimodal functions. IEEE Transactions on Evolutionary Computation. 10(3), 281-295, 2006
断食物的所在。PSO正是从这种模型中得到了启发
PSO的基础是信息的社会分享
4
3.粒子群算法
• 基本思想
• 所有的粒子都由一个Fitness Function 确定适应值以判断目前的 位置好坏。
• 每一个粒子必须赋予记忆功能,能记住所搜寻到的最佳位置。 • 每一个粒子还有一个速度以决定飞行的距离和方向。这个速度根
if fit (Xi) < fit (Pbesti)
Pbesti = Xi;
if fit(Pbesti) < fit ( Gbest)
Gbest =Pbesti;
end for
end while
print Gbest
13
end procedure
3.粒子群算法
PSO收敛速度快,特别是在算法的早期,但也存在着精度较低, 易发散等缺点。若加速系数、最大速度等参数太大,粒子群可能 错过最优解,算法不收敛;
w wmax wmax wmin gen m _ gen
wmax ,wmin分别表示最大惯性权重和最小惯性权重,当前代数为gen
15
3.粒子群算法
• 收缩因子法
1999年Clerc引入收缩因子以保证算法的收敛性 速度更新公式为
vid K vid c1r1 Pbestid xid c2r2 Gbestd xid
20
3.粒子群算法
4 For i 1to N
For d 1 to N
If ai d = 1, vid = wk vid + r Gbestd xid
Else if bi d = 1, vid = wk vid + r Pbest fidd xid
据它本身的飞行经验以及同伴的飞行经验进行动态调整。
5
3.粒子群算法
PSO基本模型
假设在N维空间搜索,粒子i的位置为xi xi1,xi2 , vi vi1 ,vi2 , viN T
粒子的速度和位置更新公式如下:
xiN T ,速度为
vk1 id

w vikd
22
3.粒子群算法
• 自适应网格法的基本思想是利用外部档案保存所有非劣解,然后
将目标空间分割成很多网格如图所示,当插入到档案中的个体位
于网格的现有边界之外,则重新分割网格和计算每个网格中个体
数。
f2
加入新解(11,0.9)
f2
10
10
8
8
6
6
4
4
2
2
0 2 4 6 8 10 f1
而在收敛的情况下,由于所有的粒子都向最优解的方向飞去, 所以粒子趋向同一化(失去了多样性),使得后期收敛速度明显 变慢,同时算法收敛到一定精度时,无法继续优化,所能达到的 精度也不高。
改进策略
14
3.粒子群算法
• 线性递减惯性权重 • 较大的惯性权重有较好的全局收敛能力,较小的惯性权重则有较
强的局部收敛能力。因此,搜索早期惯性权重较大,随着迭代次 数的增加,惯性权重应不断减少,从而使得粒子群算法在初期具 有较强的全局收敛能力,而晚期具有较强的局部收敛能力。
更新每个粒子历史最优位置 更新群体的全局最优位置
结束
//功能:粒子群优化算法伪代码 //说明:本例以求问题最小值为目标 //参数:N为群体规模
procedure PSO
for each particle i
Initialize velocity Vi and position Xi for particle i
6
3.粒子群算法
“认知”部分,仅考虑了粒子自身的 经验,表示粒子本身的思考
vk1 id

w vikd

c1 r1
Pbestikd xikd
c2 r2 Gbestdk xikd
粒子先前的速度
“社会”部分,表示粒子间的 群体或邻域内信息共享
惯性权重w,学习因子c1,c2 ,随机数r1,r2
• 拓扑结构 • 1.将群体内所有个体都作为粒子的邻域 • 2.只将群体中的部分个体作为粒子的邻域
10
3.粒子群算法
• 全局最优PSO

vk1 id

vikd
c1 r1
Pbestikd xikd
c2 r2 Gbestdk xikd
Gbest为所有粒子到目前为止发现的最好位置
相关文档
最新文档