优化算法笔记(四)粒子群算法(2)
最编程
2024-02-11 16:43:05
...
(已合并本篇内容至粒子群算法(1))
3.粒子群算法模型
介绍完了粒子群算法的流程,再来详细介绍一下粒子群算法的模型。
鸟群有三个决定其搜索结果的参数
C1:自我学习因子
C2:全局学习因子
W:惯性系数
maxV:最大速率。
对于每只鸟,有两个属性:
位置:。
速度:。
其中t表示第t次迭代(第t次开会),i表是这只鸟的序号是i,D表示搜索空间的维度,对于鸟群来说D=2(在平面内搜寻)。
其速度更新公式如下:
表示均匀分布在(0,1)内的随机数。
位置更新公式如下:
4.实验初步
上面都是些什么鬼,完全看不懂……,很正常,下面我们来个例子看看上面那些都是什么东西。
C1:自我学习因子,就是一只鸟飞向自己到过的最优位置的权重,可以理解为C1越大,该鸟飞向自己到过的最优位置的意愿越强烈。
C2:全局学习因子,也叫社会学习因子,即一只鸟飞向群体到过的最优位置的权重, C2越大,该鸟飞向群体到过的最优位置的意愿越强烈。
如上图,假设随机变量r1=r2=1,如果该鸟当前速度V=0,C1=C2=1时,,则该鸟的速度为A->B,它将飞到B点,若C1=0,C2=1,则该鸟将飞到G点,若C1=1,C2=0,则鸟将飞到P点。
一般,取C1=C2=2,由于r1和r2为(0-1)的随机数,在速度V=0的情况下,该鸟可能从点A飞到平行四边形ADEC内的任一位置,其中AG=GD,AP=PC。点B为该鸟飞向的期望位置。
W为惯性系数,即鸟在下一次飞行时将会以上一次的速度为基础,根据自己的意愿的出最终的速度。
举个简单的例子,搜索平面内距点M最近的点。这是一个二维的问题,假设M的坐标为(a,b),我们可以该问题转化为求使的值最小的一组解,那么粒子群算法的适应度函数为。
实验开始了
参数 | 值 |
---|---|
问题维度(维度) | 2 |
鸟的数量(种群数) | 20 |
开会次数(最大迭代次数) | 50 |
C1 | 2 |
C2 | 2 |
W | 1 |
maxV | 5 |
取值范围 | (-100,100) |
为了方便求解我们设M点为原点,即a=b=0。
此时问题为在上图的区域内寻找距原点最近的点的坐标。我们看一下粒子群算法的寻找过程。
可以发现所有的小鸟都向着我们的目标点不断的靠近。它们最终收敛在了一个很小的范围内。我们所得到的最终的结果是(0.01559301434688,-0.113289020661651),该点距原点距离为的平方为0.014876507,虽然很近了,但这可不是一个较好的结果。
虽然小鸟们已经聚集在了最优点附近的小范围内,但却没有进一步向原点靠近。这是为什么呢,下一节我们一起来研究一下。
目录
上一篇 优化算法笔记(三)粒子群算法(1)
下一篇 优化算法笔记(五)粒子群算法(3)
推荐阅读
-
用Python实现粒子群优化算法(附详细教程和示例代码) - 第四部分:算法实战
-
改进算法学习笔记系列第三部分:粒子群优化算法详解(一)
-
使用粒子群与NSGA2智能算法解决多目标优化问题的实例教程及Matlab实现代码
-
简单易懂版 - 什么是粒子群算法(PSO)?" - PSO 是这样工作的: 想象一群小鸟寻找食物,它们会互相学习、竞争并跟随最优秀的伙伴。这就是模仿群体智慧(Swarm Intelligence,SI)的粒子群优化算法,由 Eberhart 博士和 Kennedy 博士创造,属于多智能体优化系统(MAOS)的一员。 - 数学背后的逻辑: - 每只“鸟”(粒子)依据邻居过去的发现来飞得更好: 1. 受到激励的好位置(Pbest) 2. 与附近伙伴的成绩对比 3. 阿婆姨领先者的模仿 - 模型简化来说,每个粒子像 D 维空间的理想点,按特定速度飞行,速度随自身经验和同伴表现实时调整。我们用 Xi 表示 D 个粒子的集合,其中 Pi 存储过最佳位置,Pg 是群体中最优的位置,Vi 是粒子的速度。 - 更新规则: - **速度更新**:有点像梯度下降法中的导数概念,但因鸟群数量大,能有效跳出局部最优区域,引导群体朝全局最优方向前进。 - **位置更新**:在固定的时间内,新移动的距离就是 Vi(即速度向量在单位时间内的累积效果)。 - 参数简述:粒子群算法涉及多个参数,如粒子数量、学习因子(影响对过去经验的重视程度)、加速常数(控制探索与利用之间的平衡),这些参数的选择会影响算法的实际性能和收敛速度。
-
优化算法笔记(四)粒子群算法(2)