智能算法---粒子群算法
智能算法—粒子群算法
1 粒子群算法是一种群智能算法,那么什么是群智能? 群智能由昆虫群体或其它动物社会行为机制而激发设计出的算法或分布式解决问题的策略。生物学家研究表明:在这些群居生物中虽然每个个体的智能不高,行为简单,也不存在集中的指挥,但由这些单个个体组成的群体,似乎在某种内在规律的作用下,却表现出异常复杂而有序的群体行为。这些个体有两个特点(1)个体行为受到群体行为的影响,趋利避害。就是说个体之间是存在信息交流的;(2)群体有着很强的生存能力,但是这种能力不是单纯个体行为的叠加。
- 邻近原则(Proximity Principle):群体能够进行简单的空间和时间计算
- 质量原则(Quality Principle):群体不仅能够对时间和空间因素作出反应,而且能够响应环境中的质量因子(如事物的质量或位置的安全性)
- 多样性反应原则(Principle of Diverse Response):群体不应将自己获取资源的途径限制在过分狭窄的范围内
- 稳定性原则(Stability Principle):即群体不应随着环境的每一次变化而改变自己的行为模式
- 适应性原则(Adaptability Principle):当改变行为模式带来的回报与能量投资相比是值得的时,群体应该改变其行为模式
- 控制是分布式的,不存在中心控制
- 群体中的每个个体都能够改变环境,这是个体之间间接通信的一种方式,这种方式被称为“激发工作”(Stigmergy)
- 群体中每个个体的能力或遵循的行为规则非常简单,因而群智能的实现比较方便,具有简单性的特点
- 群体表现出来的复杂行为是通过简单个体的交互过程突现出来的智能(Emergent Intelligence),因此,群体具有自组织性
- 每个优化问题的潜在解都是搜索空间中的一只鸟,称之为“粒子”。
- 所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。
- PSO初始化为一群随机粒子,然后通过迭代找到最优解。
每个粒子给定一个初始的位置,粒子历史最佳位置就是粒子到最优点向量。全局最佳位置,就是对整个粒子群而言,有一个最佳的粒子指向最佳点的方向就是全局最佳的位置。此外粒子还有一个飞行的速度,这个速度促进每个粒子朝着最佳前进,没有速度,粒子就无法收敛。
3.2那么有关的数据之间的关系如下
速度由三个部分组成,(1)粒子本身有的动能,w为事先定义的参数。(2)粒子自我认知学习部分。是指粒子现在所在的位置指向最佳粒子的向量。自我认知部分包含随机函数是为了保证随机性,不然确定的数据很快就能达到收敛。(3)粒子社会认知部分。粒子群最佳位置减去现在所在的位置的向量。这三种共同定义速度
3.3 PSO算法的流程图
到达最佳位置,得到最优解
4.2 流程图
4.3常见的局部PSO的邻居拓扑结构
速度和位置的及算法是如下
7.2 SDPSO算法流程如下
8.1 问题描述
- 背包问题的评价函数 :采用贪心算法思想
- 在评价解时,首先按pi/ωi的降序对解中放入背包的物品进行排序;
- 优先计算pi/ωi大的物品的价值,直到满足最大容量的限度;
- 所形成的新解及该解的总价值为评价结果。
- 强的通用性,不依赖于问题信息;
- 群体搜索,具有记忆能力;
- 原理简单,容易实现;
- 协同搜索,同时利用个体信息和群体信息指导搜索。
- 局部搜索能力较差,搜索精度不够高;
- 易陷入局部最优;
- 搜索性能对参数具有一定的依赖性;
- 算法理论不完善。