欧亿体育
工作动态
我的位置: 首页 > 工作动态
MATLAB智能优化算法 - 粒子群算法及MATLAB实例仿真
发布时间:2024-01-15 01:03
  |  
阅读量:
  |  
作者:
欧亿体育

一、粒子群算法理论

粒子群算法来源于鸟类集体活动的规律性,进而利用群体智能建立简化模型。它模拟的是鸟类的觅食行为,将求解问题的空间比作鸟类飞行的时间,每只鸟抽象成没有体积和质量的粒子,来表征一个问题的可行解。

1.1 粒子群算法建模

粒子群算法首先在给定的解空间中随机初始化粒子群,待优化问题的变量数决定了解空间的维数。每个粒子有了初始位置与初始速度,然后迭代寻优。每一次迭代中,每个粒子通过跟踪两个极值来更新自己的解空间中的位置和速度,一个是单个粒子本身在迭代中找到的最优粒子(个体极值),一个是所有粒子在迭代过程中的最优解粒子(全局极值)。

1.2 粒子群算法特点

(1)基于群体智能理论的优化算法,高效的并行算法。

(2)粒子群算法随机初始化种群,使用适应值来评价个体的优劣程度,进行一系列的随机搜索。但粒子群算法根自己的速度来决定搜索,不需要进行交叉变异等操作,避免了复杂的操作。

(3)每个粒子在算法结束时仍保持个体极值,所以除了得到问题的最优解以外,还能得到若干次优解,给出更多方案。

(4)粒子群算法特有的记忆使其可以动态的跟踪当前搜索情况并调整搜索方向。

二、粒子群算法种类

2.1 基本粒子群算法

假设在一个D维的目标搜索空间中,有N个粒子组成群落,其中第i个粒子表示为一个D维向量:

第i个粒子飞行速度也是一个D维向量:

第i个粒子迄今为止搜索到最优位置称为个体极值:

整个粒子群迄今为止搜索到的最优位置为全局极值:

在找到这两个最优值后,粒子群更新自己的速度和位置:

其中,c1,c2 是学习因子(加速常数);r1,r2 为[0,1]范围内的均匀随机数;vij⊆[−vmax,vmax] 是粒子速度; r1,r2 增加了粒子飞行的随机性。更新速度的式子由三部分组成,第一部分为‘惯性’,反应了粒子群运动的‘习惯’;第二部分是‘认知’,反映了对自身历史经验的记忆;第三部分是‘社会’,反映了粒子间协同合作知识共享的群体历史经验。

2.2 标准粒子算法

引入了两个新的概念:

探索:指粒子在一定程度上离开原先的轨迹,向新的方向搜索,体现了开拓未知区域的能力,探索能力是全局搜索能力。

开发:指粒子在一定程度上继续在原先的轨迹上进行进一步搜索,是局部搜索能力。

1998年,Shi Yuhui等人提出了带有惯性权重的改进粒子群算法:

第一个式子有三个部分,第一部分保证算法的全局收敛性,第二、三部分保证局部收敛能力。w较大,全局收敛能力强局部收敛能力减弱;w较小,全局收敛能力减弱,局部收敛能力较强。当w=1时,与基本粒子算法相同,实验结果表明:w在0.8~1.2之间有更快的收敛速度,w>1.2时,容易陷入局部极值。

在搜索时还可以对w进行动态调整,采用较多的是Shi提出的线性递减权值策略:

Tmax 表示最大进化代数;wmax 表示惯性最大权重;wmin 表示惯性最小权重。

2.3 压缩粒子群算法

Clerc等人利用约束因子来控制最终的收敛,可以有效搜索不同区域:

λ 为压缩因子:

实验结果表明:与使用惯性权重的粒子群算法比较,使用具有压缩因子的粒子群算法有更快的收敛速度。

2.4 离散粒子群算法

Kennefy和Eberhart提出了离散二进制版的粒子群算法。将离散的问题映射到了连续的粒子运动空间,计算上扔保留速度-位置更新的运算规则。粒子在空间状态的取值只限于0,1两个值,而速度的每一维 vij 代表每一位 xij 取值为1的可能性,因此 vij 的公式保持不变,但是 pbest 和 gbest 只能在[0,1]之间取值: