在基本PSO中,先在可行解空间中随机初始化 N 个粒子构成初始种群,并为每个粒子随机初始化一个速度,每个粒子都对应优化问题的一个解,并由目标函数为之确定一个适应值,而速度用来决定粒子在解空间中的运动。在算法的每次迭代中,粒子将跟踪自身当前找到的最优解和种群当前找到的最优解,逐代搜索,直到最后得到最优解。在 D 维搜索空间中,记第 i 个粒子的位置 xi=xi1,xi2,…,xiD′ ,其“飞行”速度为 vi=vi1,vi2,…,viD′ 。每个粒子当前找到的极值为 pi=pi1,pi2,…,piD′ ,种群当前找到的全局极值为 pg=pg1,pg2,…,pgD′ 。下一代粒子的位置和速度为:
xi+1=xi+vi2.15
vi+1=wvi+c1r1pi-xi+c2r2pg-xi2.16
式中, d=1,2,…,D , i=1,2,…,N , N 是粒子个数; k 表示迭代的次数;w是惯性权重,它是微粒保持运动的惯性,使其有能力探索新的区域; c1 , c2 为学习因子,它是一个正常数,它们使每个微粒向pBest和gBest位置加速运动; r1,r2 是[0,1]之间的随机数。此外,粒子的速度 Vi 被一最大速度 Vmax 所限制。如果当前对粒子的加速导致它在某维的速度 Vid 超过了该维的最大速度 Vmax d ,则该维的速度被限制为该维的最大速度 Vmax d 。最大速度限制决定了粒子在解空间的搜索精度,如果 Vmax 太高,粒子可能会飞过最优解,如果 Vmax 太小,粒子则会陷入局部搜索空间而无法进行全局搜索。