matlab优化算法案例分析与应用_工程优化设计与Matlab实现——粒子群优化算法

I leave no trace of wings in the air but I am glad I have had my flight.

——Rabindranath TagoreStray Birds

粒子群优化算法(PSO)

Point 1 粒子群优化算法的自然界原型

鸟群在食物存在的空间内飞行觅食,食物在空间内的分布是不均匀的。每只鸟可能会凭借着自己的经验或是直觉,飞往它所觉得比较好的地方寻找食物。当一些鸟发现了更好的觅食地点时,鸟群间会有某种类似广播的沟通行为,渐渐地将整个鸟群引领至较佳的地点。

鸟类的这种通过群体协作而进行的觅食行为,是利用了社会中存在的相互影响的概念,来引领所有个体朝向最佳位置。还有其他生物群体(鱼群)都有这种社会性的行为,这种行为被抽象成了粒子群优化算法。

Point 2 粒子群优化算法的基本原理

粒子群中的每一个粒子(可以直接当成鸟)都是n维解空间中的一个点

每个粒子有自己的位置、速度

每个粒子在不同的位置都具有对应于目标函数的个体适应度(个体适应度相当于一个评价标准,对于鸟来说就是这个地方食物的多少,对于函数极值问题就是函数值的大小)

对于每个粒子来说,在其所经历过的所有位置中,会有一个位置为最佳位置(个体最优解),记为

对于粒子群体来说,所有粒子所处的位置中,会有一个位置为最佳位置(全局最优解),记为

一开始先给定各粒子的初始位置和速度,并计算出个体最优解

与全局最优解

不断更新按照以下公式更新粒子的速度和位置:

6a2b4caf5b132203b4ea0d51acd84702.png

每次更新完位置之后,再次确定每个粒子的适应度,更新各粒子的个体最优解

,更新粒子群体的全局最优解

每个粒子根据不断更新的个体最优解和全局最优解来更新自己的位置。

可理解为粒子的惯性,反映了粒子有维持自己先前运动的趋势。
可理解为粒子基于自我认知做出的判断,
可理解为粒子在协同合作中共享信息做出的判断。

Point 3 粒子群优化算法的实现

4f7dd8bc80ece0b78a5dadfa98ec49c9.png

Point 4 粒子群优化解决函数优化问题代表性栗子——Rastrigin测试函数

Rastrigin测试函数

其函数图像如下:

4baf0486d649db959f82563aacbad120.png

使用PSO求解其极值,过程如下:

a573e7a80accdd911381fdcb782f071a.gif
PSO求解Rastrigin函数1-80次迭代

在1~80次迭代中,由上图可以看出收敛速度较快,但是在80次之后收敛速度就比较缓慢。这是因为PSO算法的趋同性,导致后期粒子之间距离接近,越往后速度越慢。

Rastrigin函数定义如下:

function

作二维Rastrigin图像程序如下:

n

Point 5 粒子群优化解决函数优化问题栗子

利用粒子群优化算法求:

的极值点,

目标函数定义如下:

function

主程序:

clc

计算结果如下:

638ff86de1cb250f01f27aa5d9d7bb6c.png

8afdacf7b477c1087036a942548177ff.gif
1-30次的个体最优解变化

23c1ea954102ced65064d6986fe146c1.png
1-100次的总体最优解适应度收敛
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值