之前我们已介绍了基于生物 演化的遗传算法,现在我们来看看另外一个灵感来自于自然界的算法 ——
粒子群算法 。
粒子群算法(Particle Swarm Optimization,简称PSO)是1995年Eberhart博士和Kennedy博士一起提出的。粒子群算法是通过模拟鸟群捕食行为设计的一种群智能算法。将每个寻优的问题解都想象成一只鸟,称之为“粒子”,所有鸟群(粒子)都在一个D维空间进行搜索,区域内有大大小小不同的食物源,鸟群的任务是找到最大的食物源(全局最优解)。鸟群在整个搜寻的过程中,通过相互传递各自位置的信息,让其他的鸟知道食物源的位置最终,整个鸟群都能聚集在食物源周围,即我们所说的找到了最优解,问题收敛。粒子群算法和遗传算法是十分类似的,同样
基于群种的迭代,但并没有遗传算法的交叉和变异操作,而是在解空间内追随最优的粒子进行搜索。那么下面来介绍下在MATLAB中的具体原理与操作(内含代码~)
1、初始化粒子群
PS:一般来说,粒子的位置和速度都是在连续的实数空间内进行取值。
粒子群的另一个特点就是记录每个个体的历史最优和种群的历史最优,因此而二者对应的最优位置和最优值也需要初始化。其中每个个体的历史最优位