算法篇----粒子群优化(PSO)算法回顾(一)
·
前言
学习粒子群算法有7个多月了,总结一下。温故而知新,希望可以再进一步。毕竟人蠢,理解能力有限,仅供参考!
先说背景:1995年,由Kennedy和Eberhart提出,有鸟群觅食行为、进化理论和人工生命的影子。
1 粒子群算法(PSO)概述
首先,给出Particle Swarm Optimization 概念:一种基于群体的进化计算技术,将可能解视作一个粒子,粒子有位置向量、速度向量和适应度值,粒子间会相互协作,在搜索空间里搜索全局最优值。这种算法主要用于非线性方程的求解。
数学描述:
(1)适应度函数。粒子群优化算法的适应度函数选取比较简单,一般情况下可以直接把所要求解问题的目标函数作为适应度函数。不过,也可以对目标函数进行适当的变换。
(2) 粒子速度公式:
v[i] = v[i] + c1 * r1 * (pbest[i] - present[i]) + c2 * r2 * (gbest - present[i])
v[i] = v[i] + c1 * r1 * (pbest[i] - present[i]) + c2 * r2 * (gbest - present[i])
引入权重w后,改进的速度公式(比较常用):
v[i] = w * v[i] + c1 * r1 * (pbest[i] - present[i]) + c2 * r2 * (gbest - present[i])
(3) 粒子位置公式:present[i] = present[i] + v[i]
符号解释:
c1、c2:加速常数(学习因子);
r1、r2 :随机数;
v[i]:第i个粒子的速度;
present[i]:粒子的当前位置;
pbest[i]:单个粒子最优位置;
gbest:全局粒子最优位置;
w:权重。
2 PSO的具体步骤
step1:初始化一个规模为M的粒子群,设定初始位置和深度
step2:计算每个粒子的适应度值
step3:将粒子的适应度值和其最好位置P(is)的适应度值比较,取最好的值
step4:比较每个粒子的适应度值和全局最好位置P(gs)的适应度值,取最好的作为全局最优值
step5:根据速度公式和位置公式,更新粒子速度及位置
step6:满足终止条件则输出,否者返回step2(条件:输出结果可满足预定的最小适应阈值)
3 PSO的改进方法及不同版本
粒子群的改进策略如下:
(1)引入惯性权重,提高全局搜索能力;
(2)带邻域操作,克服在搜索后期随着搜索增加结果无改进的缺点;
(3)应用拉伸技术,避免陷入局部最小值;
(4)采用适应度定标的方法,提高粒子间适应度差异;
(5)协同,将粒子群再分成K个相互独立的子群在不同维度上搜索。
粒子群的种类:
(1)原始粒子群算法
(2)标准粒子群算法
(3)基于动态邻居和广义学习的粒子群算法
(4)基于K均值聚类的动态多种群粒子群算法
(5)多群体协同进化粒子群优化算法
(6)自适应网格和拥挤距离的多目标粒子群算法
(7)基于ε优的自适应多目标粒子群算法
(8)..............
更多推荐

所有评论(0)