粒子群优化算法(Particle Swarm Optimization,简称PSO), 是1995年Eberhart博士和Kennedy博士一起提出的,它是源于对鸟群捕食行为的研究。粒子群优化算法的基本核心是利用群体中的个体对信息的共享从而使得整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的最优解。
当然这是一种比较正式的说法,对于我们这些数模小白来说肯定希望有一种更加直观形象的解释。
我们不妨假设自己是一只身处鸟群中的鸟,现在要跟随头领去森林里找食物,我们每一只鸟都知道自己离食物的距离,却又不知道食物在哪个方向,
所以,我们在森林里漫无目地的飞着,每隔一段时间,大家会在微信群里共享一次各自与食物的距离。然后鸟A发现自己与食物的距离是5公里,而群里鸟Z距离食物最近,只有50米的距离。鸟A当机立断,在群里说:“我要去那看看!”然后一呼百应,鸟B、鸟C等都往鸟Z方向飞去,在鸟Z的周围寻找食物。
就这样,本来大家都在沿着自己的方向飞,现在都要向鸟Z的位置靠拢,所以大家需要修改自己的飞行速度和方向。但是,当所有鸟儿准备调整自己的飞行轨迹时,鸟H突然想到:虽然现在鸟Z离食物只有50米,但是自己曾经路过点P,那个位置离食物只有40米,所以它不知道自己是应该往点P方向还是往鸟Z的位置飞去。鸟H就把自己的纠结发到了微信群里,然后大家一致决定,还是两者平衡一下,对两个位置进行矢量相加,所以大家共同商量出了速度更新公式
![](https://i-blog.csdnimg.cn/blog_migrate/3dd6600bd3f411b846d9d9f80c5c1897.png)