MATLAB粒子群优化算法(PSO)
一、介绍
粒子群优化算法(Particle Swarm Optimization Algorithm)是一种群智能算法,为了寻求全局最优。群体迭代,粒子在解空间追随最优的粒子进行搜索。
粒子群算法的思想源于对鸟群捕食行为的研究,模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的,是一种基于Swarm Intelligence的优化方法。
马良教授在他的著作《蚁群优化算法》一书的前言中写到:“自然界的蚁群、鸟群、鱼群、羊群、牛群、蜂群等,其实时时刻刻都在给予我们以某种启示,只不过我们常常忽略了大自然对我们的最大恩赐!”
设想这样一个场景:一群鸟在随机搜索食物,已知
(1)在这块区域里只有一块食物;(2)所有的鸟都不知道食物在哪里;(3)但它们能感受到当前的位置离食物还有多远.
那么:找到食物的最优策略是什么呢?
搜寻目前离食物最近的鸟的周围区域,根据自己飞行的经验判断食物的所在。
PSO的基础: 信息的社会共享
二、算法思路
每个寻优的问题解都被想像成一只鸟,称为“粒子”。所有粒子都在一个D维空间进行搜索。
所有的粒子都由一个fitness function 确定适应值以判断目前的位置好坏。
每一个粒子必须赋予记忆功能,能记住所搜寻到的最佳位置。
每一个粒子还有一个速度以决定飞行的距离和