本节是关于粒子群优化算法的介绍。
粒子群优化算法(Particle Swarm Optimization, PSO)最初用于模拟鸟群或鱼群的社会行为,是一种基于群体协作的随机优化技术,现已被广泛应用于包括纳米光子设计在内的各种优化问题中[1][2]。粒子群优化算法的核心是通过群体中个体之间的协作和信息共享来寻找最优解。
在粒子群算法寻求最优解的过程中,每个粒子都存在个体行为和群体行为,每个粒子都会学习同伴的飞行经验和借鉴自己的飞行经验去寻求最优解。每个粒子都会向两个值学习,一个值是个体的历史最优值;另一个值是群体的全局最优值。粒子会根据这两个值来调整自身的速度和位置,而每个位置的优劣都是根据适应度值来确定的。适应度函数是优化的目标函数。
在一个维的目标搜索空间中,有个粒子组成一个粒子群,其中每个粒子都是一个维向量,其空间位置可以表示为:
粒子群的空间位置是目标优化问题中的一个解,将其代入适应度函数可以计算出适应度值,根据适应度值的大小衡量粒子的优劣。
第个粒子的飞行速度也是一个维向量,记为:
粒子的位置和速度的均值都在给定的范围内随机生成。
第i个粒子经历过的具有最优适应度值的位置称为个体历史最优位置,记为:
整个粒子群经历过的最优位置称为全局历史最优位置,记为:
粒子群的位置更新操作可用速度更新公式和位置更新公式表示。
速度更新公式为:
位置更新公式为:
其中,下标表示粒子的第维,下标表示第个粒子,表示当前迭代次数,与为加速常量,通常在区间内取值,与为两个相互独立的随机数,在区间内取值。从上述方程可以看出,与将粒子向个体学习和向群体学习联合起来,使得粒子能够借鉴自身的和群体的搜索经验。
粒子群优化算法的流程如下:
Robinson J , Rahmat-Samii Y .Particle Swarm Optimization in Electromagnetics. IEEE Trans. on Antennas and Propagation 52(2), 397-407[J].IEEE Transactions on Antennas and Propagation, 2004, 52(2):397-407. ↩︎
Parsopoulos K E , Vrahatis M N .Particle Swarm Optimization and Intelligence (Advances and Applications) || Applications in Bioinformatics and Medical Informatics[J]. 2010, 10.4018/978-1-61520-666-7(chapter 9):204-221. ↩︎