随着牛顿法、梯度共轭、单纯形法等传统优化方法无法满足计算需求,群智能优化算法作为现代智能计算的一类重要方法已经受到越来越多的关注。群智能优化通过模拟社会性昆虫的各种群体行为,利用群体中个体之间的信息交互和合作实现寻优。比较有名的群智能方法包括蚁群算法、粒子群算法等,笔者在此主要介绍粒子群算法相关。
首先介绍典型的粒子群算法(单目标优化问题),稍后将介绍多目标粒子群算法(多目标优化问题)。
典型的粒子群算法
PSO算法就是模拟一群鸟寻找食物的过程,每个鸟就是PSO中的粒子,也就是我们需要求解问题的可能解,在寻找食物(最优解)的过程中,这些鸟不停改变自己飞行的位置与速度(也即在迭代过程中可能解X不断改变,以期得到更优的解,直到找到最优解)。从整体上来看,一群鸟在开始的时候在空间上是很分散的,然后随着不断寻找,最终聚集到食物的附近。具体到优化问题上,在整体上,开始的粒子(即可能解)是随机的很分散的,然后随着迭代寻优的进行,这些粒子不断在搜索空间中改变,最终聚集到最优解附近。
对于一个最优化问题: min f(X)
PSO的基本步骤是:
①初始化:设置参数(粒子数n,最大迭代数iteration,更新公式中的各系数);
随机产生n个初始粒子{X1,X2,…Xn};
②评价各粒子,计算各粒子的适应值{ f(X1),f(X2),…f(Xn) };
③更新每个粒子的局部最优{Pbest1,Pbest2&#x