人工智能优化算法
粒子群算法(PSO)是由美国社会心理学家J.Kennedy和电气工程师R.Eberhart于1995年共同提出的。起源于对简单社会系统的模拟,因此它既保持了传统进化算法的群体智慧背景,同时又具有良好的优化性能。关注公众号获取源代码回复“PSO”或“粒子群算法”。
01 算法理论基础
PSO算法的基本思想受到许多对鸟类的群体行为进行建模与仿真研究结果的启发,最初设想是模拟鸟群觅食的过程。“如一群鸟随机分布在一个区域,且此区域中只有一块食物,但是所有的鸟都不知道这块食物具体方位,只知道自己当前位置距离食物还有多远”。找到食物最简单有效的方式就是搜索目前到食物最近鸟的周围区域。如果把食物当作最优点,而把鸟到食物的距离当作函数的适应度,那么鸟寻觅食物的过程就可以当作函数寻优的过程。由此受到启发,提出了PSO算法。
02 算法实现
PSO算法中没有进化算子,而是将每个个体看作搜索空间中一个没有重量和体积的微粒,并在搜索空间中以一定的速度飞行,该飞行速度由个体飞行经验和群体的飞行经验进行动态调整。
其中 X_i 第i个粒子的n维位置向量,由适应度函数计算出粒子的适应度值;v_i为粒子第i 的飞行速度; Pbest_i为粒子的最优位置。
若 f(X)为最小化的目标函数,微粒 i 则是当前最好位置。
其中, j表示为粒子的第j 维,j =1,2,....,n ; i表示为第 i个粒子; t 是迭代次数; r_1 和 r_2 为 [0,1]的随机数; c_1 和 c_2 为加速因子, c_1 调节粒子向自身最好位置方向移动的步长,c_2 调节粒子向全局最好位置方向移动的步长,这两个参数对粒子群算法收敛起的作用不是很大,但是适当调整这两个参数,可使粒子群算法收敛速度变快。
03 粒子群算法流程图
粒子群算法流程图,如下图所示:
图1 粒子群算法流程图
04 参考文献
[1] Kennedy J, Eberhart R C. Particle Swarm Optimization[C]. IEEE Conference on Neural Networks, Piscataway, NJ: IEEE Service Center, 1995: 1942-1948.
领取专属 10元无门槛券
私享最新 技术干货