算法简介
粒子群算法,其全称为粒子群优化算法(ParticleSwarmOptimization,PSO)。它是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的搜索算法。
算法策略
粒子群算法的目标是使所有粒子在多维超体中找到最优解。
首先给空间中的所有粒子分配初始随机位置和初始随机速度。然后根据每个粒子的速度、已知空间中的最优全局位置和粒子最优位置依次推进每个粒子的位置。随着计算的推移迭代,通过探索和利用搜索空间中已知的有利位置,粒子将聚集在一个或多个最优点附近。
它的核心思想是利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的可行解。
算法流程图
名词阐释
粒子:优化问题的候选解
位置:候选解所在的位置
速度:候选解移动的速度
适应度:评价粒子优劣的值,一般设置为目标函数值
个体最佳位置:单个粒子迄今为止找到的最佳位置
群体最佳位置:所有粒子迄今为止找到的最佳位置
符号说明
符号 | 含义 |
---|---|
n | 粒子个数 |
c1 | 粒子的个体学习因子,也称为个体加速因子 |
c2 | 粒子的社会学习因子,也称为社会加速因子 |
w | 速度的惯性权重 |
vid | 第d次迭代时,第i个粒子的速度 |
xid | 第d次迭代时,第i个粒子所在的位置 |
f(x) | 在位置x时的适应度值(一般取目标函数值) |
pbestid | 到第d次迭代为止,第i个粒子经过的最好的位置 |
gbestd | 到第d次迭代为止,所有粒子经过的最好的位置 |
图像解释
核心公式
这只鸟第d步的速度=上一步自身的速度惯性+ 自我认知部分+社会认知部分
νi