1. 基本概念

       粒子群优化,又称微粒群算法,来源于对—个简化社会模型的模拟,主要用于求解优化问题。

       粒子群优化算法是 Kennedy和 Eberhart受人工生命硏究结果的启发,通过模拟鸟群觅食过程中的迁徙和群聚行为而提出的一种基于群体智能的全局随机搜索算法。与遗传算法一样,它也是基于“种群”和“进化”的概念,通过个体间的协作与竞争,实现复杂空间最优解的搜索。但是,粒子群优化并不需要对个体进行选择、交叉、变异等进化操作,而是将种群中的个体看成是D维搜索空间中没有质量和体积的粒子,每个粒子以一定的速度在解空间运动,并向粒子本身历史最佳位置和种群历史最佳位置靠拢,以实现对候选解的进化。

       这种模型最开始来自于对鸟群觅食的观察。设想这样一种场景:一群鸟在随机搜索食物,已知在这块区域只有一块食物,并且这些鸟都不知道食物在哪里,但它们能感受到食物的位置离当前有多远,那么找到食物的最优策略是什么呢?首先,搜索目前离食物最近的鸟的周围区域;其次,根据自己飞行的经验判断食物的所在。粒子群优化算法正是从这种模型中得到的启发,

2. 实现步骤

算法的基本流程,主要分为六步。

        第一步:初始化粒子群,包括群体规模,每个粒子的位置和速度,设置惯性权重、最大速度、加速度常数、最大迭代次数等初始值。

       第二步:设计适应度函数,并计算每个粒子的适应度值。

       第三步:对每个粒子,用它的适应度值和该粒子历史最佳 pbest比较,如果前者大于后者,则更新pbest。

       第四步:对每粒子的 pbest,用它的最大值与种群历史最佳 gbest比较,如果前者大于后者,则更新 gbest

      第五步:根据更新公式,更新每粒子的速度和位置。

      第六步:如果满足结束条件则退出,否则转入第二步。

3. 代码实现 

     补充。。。