粒子群算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
k 1 k vd w v cr 11 ( i d i d pd i k
x d i
k
k ) c rd 2 2p ( x g d d i
k
)
( 3 )
基本PSO是标准PSO在w = 1 时的特殊情况
加惯性权重的原因: 由基本粒子群算法模型中粒子位置的进化方程可以看出, 粒子在不同时刻的位置主要由飞行速度决定的,也就是说粒 k 1 k k 1 xid vid 子的飞行速度相当于搜索步长: xid 飞行速度的大小直接影响着算法的全局收敛性。当粒子 的飞行速度过大时,各粒子初始将会以较快的速度飞向全局 最优解邻近的区域,但是当逼近最优解时,由于粒子的飞行 速度缺乏有效的控制与约束,则将很容易飞越最优解,转而 去搜索其他区域,从而使算法很难收敛于最优解,陷入局部 最优解;当粒子的飞行速度过小时,粒子在初期向全局最优 解邻近区域靠近的搜索时间就需要很长,收敛速度慢,很难 达到最优解。
id
“认知”部分,仅考虑了粒子 自身的经验,表示粒子本身的 思考
k 1 k k k k k vid vid c1r1 ( pid xid ) c2 r2 ( pgd xid )
粒子先前的速度
“社会”部分,表示粒子间的 群体或领域内信息共享
流程图:
基本粒子群算法的流程描述如下: (1)依照初始化过程,对粒子群的随机位置和速度进行初 始设定; (2)计算每个粒子的适应值; (3)对于每个粒子,将其适应值与所经历过的最好位置 Pi 的适应值进行比较,若较好,则将其作为当前最好位置; (4)对于每个粒子,将其适应值与全局所经历过的最好位 置 Pg 的适应值进行比较,若较好,则将其作为当前的全局 最好位置; (5)根据两个迭代公式对粒子的速度和位置进行进化; (6)如未达到结束条件(通常为足够好的适应值或达到一 个预设最大迭代数(Gmax)),返回步骤(2);否则执行 步骤(7); (7)输出gbest.
例: 对将要计算邻域的粒子i,计算其与种群中其wenku.baidu.com所有粒子 的距离,该粒子与粒子l( l i )的距离记为:dist[l ] 。 最大距离记为:max_dist。 定义一个关于当前迭代次数(iter)的函数fraction(取 值为纯小数): 3.0 iter 0.6 max_ iter
方法:随着时间不断减小自我学习因子 c1 ,同时不 断增大社会学习因子 c 2 。
例:
c1 (c1 f c1i ) c2 (c2 f c2i )
iter c1i Iter _ max iter c2i Iter _ max
其中, c1i , c1 f , c2i , c2 f 为常数,分别为 c1和 c2 的初始值和最终值。Iter_max 为最大迭代次数,iter 为当前迭代次数。 经验说明:异步时变的学习因子应与线性减小 的时变权重配合使用,效果更好。
4 带有收缩因子的PSO 基本PSO有两种重要的改进版本:加入惯性权重和加入收 缩因子(constriction factor) Clerc在原始粒子群优化算法中引入收缩因子的概念,指 出该因子对于算法的收敛是必要的。
k 1 k k k k k vid K [vid c1r1d ( pid xid ) c2 r2 d ( pgd xid )]
粒子群算法
简介 基本PSO 标准PSO PSO的改进与变形 PSO的优缺点
一、 简介
1 PSO的产生
粒子群算法,也称粒子群优化算法(Particle Swarm Optimization,缩写为PSO)。它是一种进化计算技术,是 1995年由Eberhart博士和Kennedy博士提出。 Particle swarm optimization. IEEE International Conference on Neural Networks,1995. A new optimizer using particle swarm theory. The 6th International Symposium on Micro-machine and Human Science,1995.
粒子更新速度和位置公式如下:
k 1 k k k k k vid vid c1r ( p x ) c r ( p x 1d id id 2 2d gd id ) k 1 k k 1 xid xid vid
(1) (2)
r 1d , r 2 d U 0,1 1 i N ,1 d D
i 1, 2,
N
k 表示迭代次数
d 表示粒子的第d维
c1 , c2 称为学习因子(learning factor)或加速系数(acceleration
coefficient),学习因子使粒子具有自我总结和向群体中优秀个体学习的能 力,从而向自己的历史最优点以及群体内或领域内的历史最优点靠近。取 值0~4之间,通常取2。 r1d , r2 d 为两个相互独立的随机函数,取值0~1。 v Vmin ,Vmax 限制的目的是减少在进化过程中,粒子离开搜索空间的可 能性
wi w max wmax wmin
Iter _ max
iter
模糊权重 模糊权重是使用模糊系统来动态调节惯性权重。下面的 文献给出了一种模糊权重的设置方式
Shi Y, Eberhart R. Fuzzy adaptive particle swarm optimization: IEEE Int. Congress on Evolutionary Computation [C]. Piscataway, NJ: IEEE Service Center, 2001: 101-106. 随机权重 随机权重是在一定范围内随机取值。例如可以取值如下:
最大迭代次数为 学习因子取为
Iter _ max
,则第iter次迭代时的
cmax cmin iter Iter _ max
c1 c2 ci cmax
c1 和 c 2 同步线性减小
c1和 c 2
异步时变
使两个学习因子在优化过程中随时间进行不同的变化, 称之为异步时变。目的是在优化初期加强全局搜索, 搜索后期促使粒子收敛于全局最优解。
三、标准PSO
• 标准PSO公式 为了改变基本粒子群算法的收敛性能,Y.Shi与 R.C.Eberhart在1998年的IEEE国际进化计算学术会议 上发表了题为“A Modified Particle Swarm Optimization”的论文。首先在速度进化方程中引入 惯性权重(inertia weight)w,即
基于距离的拓扑结构 基于距离的拓扑结构是在每次迭代时,计算一个粒子 与种群中其他粒子之间的距离,然后根据这些距离来 确定该粒子的邻域构成。 一种动态邻域拓扑结构:在搜索开始的时候,粒子的 邻域只有其自己,即将个体最优解作为邻域最优解, 然后随着迭代次数的增加,逐渐增大邻域,直至最后 将群体中所有粒子作为自己的邻域成员。这样使初始 迭代时可以有较好的探索性能,而在迭代后期可以有 较好的开发性能。
四、PSO的改进与变形
1 惯性权重 固定权重 赋予惯性权重以一个常数值,一般来说,该值在0和1 之间。固定的惯性权重使粒子在飞行中始终具有相同的探 索和开发能力。显然,对于不同的问题,获得最好优化效 果的这个常数是不同的,要找到这个值需要大量的实验。 通过实验我们发现:种群规模越小,需要的惯性权重越大, 因为此时种群需要更好的探索能力来弥补粒子数量的不足, 否则粒子极易收敛;种群规模越大,需要的惯性权重越小, 因为每个粒子可以更专注于搜索自己附近的区域。
w 0.5 Random 2
其中,Random为0到1之间的随机数。这样,惯性权重 将在0.5到1之间随机变化,均值为0.75。
2 领域拓扑结构 基于索引号的拓扑结构 环形结构: 星型结构: 每个粒子都与种群中的其他所有粒子相连,即将整个种 群作为自己的领域,也就是粒子群算法的全局版本。这种情 况下所有粒子共享的信息是种群中表现最好的粒子的信息。
3 基本思想 每个优化问题的潜在解都是搜索空间中的一只鸟,称之 为“粒子”。所有的粒子都有一个由被优化的函数决定的适 应值(fitness value),每个粒子还有一个速度决定他们 飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解 空间中搜索,然后通过迭代找到最优解。PSO初始化为一群 随机粒子(随机解)。在每一次迭代中,粒子通过跟踪两个 “极值”来更新自己。第一个就是粒子本身所找到的最优解, 这个解称为个体极值。另一个极值是整个种群目前找到的最 优解,这个极值是全局极值。另外也可以不用整个种群而只 是用其中一部分作为粒子的邻居,那么在所有邻居中的极值 就是局部极值。
frac max_ iter
当 frac 0.9 时,满足下列条件的粒子l构成当前粒子i 的邻域: dist[l ]
当 frac 0.9 时,将种群中所有粒子当作当前粒子i的 邻域。
max_ dist frac
3 学习因子 c1 和 c2 同步时变 设学习因子 c1 和 c2 取值范围为 [cmin , cmax ] ,
二、基本PSO
1 基本模型 设群体规模为N,目标搜索空间为D维。 X i ( xi1 , xi 2 , , xiD )T 表示第i(i=1,2,„N)个粒子 的位置。 Vi (vi1 , vi 2 , , viD )T , i 1,2, , N 表示i的飞翔速度 P , piD )T 表示i自身搜索到的最好点 i ( pi1 , pi 2 , 记粒子g为种群中最好的点 Pg ( pg1, pg 2 , , pgD )T 为当前种群中粒子搜索到最好 的点(全局最优位置)
时变权重 一般来说,希望粒子群在飞行开始的时候具有较好的探 索能力,而随着迭代次数的增加,特别是在飞行的后期,希 望具有较好的开发能力。所以希望动态调节惯性权重。 例:设惯性权重的取值范围: wmin , wmax ,最大迭代次数 为Iter_max,则第iter次迭代时的惯性权重可以取为:
惯性权重的作用: 具有维护全局和局部搜索能力的平衡作用,可以使粒子保 持惯性运动,使其有扩展搜索空间的趋势,有能力探索新 的区域。 较大的w提高了寻优时粒子的全局搜索能力,有利于提高 寻优的成功率;较小的w则有利于粒子群在迭代运算时的 快速聚集,有利于提高寻优的速度。 引入惯性权重w可消除基本粒子群算法对 Vmax 的需要。当 Vmax 增加时,可通过减小w来达到平衡搜索,而w的减小可使得 所需的迭代次数变小。
2 产生背景 • 设想一个场景:一群鸟随机的分布在一个区域中,在这个 区域里只有一块食物。所有的鸟都不知道食物在哪里。但 是他们知道当前的位置离食物还有多远。那么找到食物的 最优策略是什么呢?最简单有效的方法就是追寻自己视野 中目前离食物最近的鸟。如果把食物当作最优点,而把鸟 离食物的距离当作函数的适应度,那么鸟寻觅食物的过程 就可以当作一个函数寻优的过程。由此受到启发,经过简 化提出了粒子群优化算法。
K
2 | 2 4 |
2
, c1 c2 4
当 c1 c2 2.05, 4.1 ,可得 K 0.7298 w 0.7298, c1 c2 0.7298 2.05 1.49609 在标准PSO中取参数如下:
可知,带收缩因子的PSO是标准PSO的一个特例。
五、PSO的优缺点
PSO算法是一种启发式的优化计算方法,优点:
(1)采用实数编码,易于描述,易于理解 (2)对优化问题定义的连续性无特殊要求 (3)只有非常少的参数需要调整 (4)算法实现简单,速度快 (5)相对于其他演化算法,只需要较小的演化群体 (6)算法易于收敛 (7)无集中控制约束,不会因个体的故障影响整个 问题的求解,确保了系统具备很强的鲁棒性。
x d i
k
k ) c rd 2 2p ( x g d d i
k
)
( 3 )
基本PSO是标准PSO在w = 1 时的特殊情况
加惯性权重的原因: 由基本粒子群算法模型中粒子位置的进化方程可以看出, 粒子在不同时刻的位置主要由飞行速度决定的,也就是说粒 k 1 k k 1 xid vid 子的飞行速度相当于搜索步长: xid 飞行速度的大小直接影响着算法的全局收敛性。当粒子 的飞行速度过大时,各粒子初始将会以较快的速度飞向全局 最优解邻近的区域,但是当逼近最优解时,由于粒子的飞行 速度缺乏有效的控制与约束,则将很容易飞越最优解,转而 去搜索其他区域,从而使算法很难收敛于最优解,陷入局部 最优解;当粒子的飞行速度过小时,粒子在初期向全局最优 解邻近区域靠近的搜索时间就需要很长,收敛速度慢,很难 达到最优解。
id
“认知”部分,仅考虑了粒子 自身的经验,表示粒子本身的 思考
k 1 k k k k k vid vid c1r1 ( pid xid ) c2 r2 ( pgd xid )
粒子先前的速度
“社会”部分,表示粒子间的 群体或领域内信息共享
流程图:
基本粒子群算法的流程描述如下: (1)依照初始化过程,对粒子群的随机位置和速度进行初 始设定; (2)计算每个粒子的适应值; (3)对于每个粒子,将其适应值与所经历过的最好位置 Pi 的适应值进行比较,若较好,则将其作为当前最好位置; (4)对于每个粒子,将其适应值与全局所经历过的最好位 置 Pg 的适应值进行比较,若较好,则将其作为当前的全局 最好位置; (5)根据两个迭代公式对粒子的速度和位置进行进化; (6)如未达到结束条件(通常为足够好的适应值或达到一 个预设最大迭代数(Gmax)),返回步骤(2);否则执行 步骤(7); (7)输出gbest.
例: 对将要计算邻域的粒子i,计算其与种群中其wenku.baidu.com所有粒子 的距离,该粒子与粒子l( l i )的距离记为:dist[l ] 。 最大距离记为:max_dist。 定义一个关于当前迭代次数(iter)的函数fraction(取 值为纯小数): 3.0 iter 0.6 max_ iter
方法:随着时间不断减小自我学习因子 c1 ,同时不 断增大社会学习因子 c 2 。
例:
c1 (c1 f c1i ) c2 (c2 f c2i )
iter c1i Iter _ max iter c2i Iter _ max
其中, c1i , c1 f , c2i , c2 f 为常数,分别为 c1和 c2 的初始值和最终值。Iter_max 为最大迭代次数,iter 为当前迭代次数。 经验说明:异步时变的学习因子应与线性减小 的时变权重配合使用,效果更好。
4 带有收缩因子的PSO 基本PSO有两种重要的改进版本:加入惯性权重和加入收 缩因子(constriction factor) Clerc在原始粒子群优化算法中引入收缩因子的概念,指 出该因子对于算法的收敛是必要的。
k 1 k k k k k vid K [vid c1r1d ( pid xid ) c2 r2 d ( pgd xid )]
粒子群算法
简介 基本PSO 标准PSO PSO的改进与变形 PSO的优缺点
一、 简介
1 PSO的产生
粒子群算法,也称粒子群优化算法(Particle Swarm Optimization,缩写为PSO)。它是一种进化计算技术,是 1995年由Eberhart博士和Kennedy博士提出。 Particle swarm optimization. IEEE International Conference on Neural Networks,1995. A new optimizer using particle swarm theory. The 6th International Symposium on Micro-machine and Human Science,1995.
粒子更新速度和位置公式如下:
k 1 k k k k k vid vid c1r ( p x ) c r ( p x 1d id id 2 2d gd id ) k 1 k k 1 xid xid vid
(1) (2)
r 1d , r 2 d U 0,1 1 i N ,1 d D
i 1, 2,
N
k 表示迭代次数
d 表示粒子的第d维
c1 , c2 称为学习因子(learning factor)或加速系数(acceleration
coefficient),学习因子使粒子具有自我总结和向群体中优秀个体学习的能 力,从而向自己的历史最优点以及群体内或领域内的历史最优点靠近。取 值0~4之间,通常取2。 r1d , r2 d 为两个相互独立的随机函数,取值0~1。 v Vmin ,Vmax 限制的目的是减少在进化过程中,粒子离开搜索空间的可 能性
wi w max wmax wmin
Iter _ max
iter
模糊权重 模糊权重是使用模糊系统来动态调节惯性权重。下面的 文献给出了一种模糊权重的设置方式
Shi Y, Eberhart R. Fuzzy adaptive particle swarm optimization: IEEE Int. Congress on Evolutionary Computation [C]. Piscataway, NJ: IEEE Service Center, 2001: 101-106. 随机权重 随机权重是在一定范围内随机取值。例如可以取值如下:
最大迭代次数为 学习因子取为
Iter _ max
,则第iter次迭代时的
cmax cmin iter Iter _ max
c1 c2 ci cmax
c1 和 c 2 同步线性减小
c1和 c 2
异步时变
使两个学习因子在优化过程中随时间进行不同的变化, 称之为异步时变。目的是在优化初期加强全局搜索, 搜索后期促使粒子收敛于全局最优解。
三、标准PSO
• 标准PSO公式 为了改变基本粒子群算法的收敛性能,Y.Shi与 R.C.Eberhart在1998年的IEEE国际进化计算学术会议 上发表了题为“A Modified Particle Swarm Optimization”的论文。首先在速度进化方程中引入 惯性权重(inertia weight)w,即
基于距离的拓扑结构 基于距离的拓扑结构是在每次迭代时,计算一个粒子 与种群中其他粒子之间的距离,然后根据这些距离来 确定该粒子的邻域构成。 一种动态邻域拓扑结构:在搜索开始的时候,粒子的 邻域只有其自己,即将个体最优解作为邻域最优解, 然后随着迭代次数的增加,逐渐增大邻域,直至最后 将群体中所有粒子作为自己的邻域成员。这样使初始 迭代时可以有较好的探索性能,而在迭代后期可以有 较好的开发性能。
四、PSO的改进与变形
1 惯性权重 固定权重 赋予惯性权重以一个常数值,一般来说,该值在0和1 之间。固定的惯性权重使粒子在飞行中始终具有相同的探 索和开发能力。显然,对于不同的问题,获得最好优化效 果的这个常数是不同的,要找到这个值需要大量的实验。 通过实验我们发现:种群规模越小,需要的惯性权重越大, 因为此时种群需要更好的探索能力来弥补粒子数量的不足, 否则粒子极易收敛;种群规模越大,需要的惯性权重越小, 因为每个粒子可以更专注于搜索自己附近的区域。
w 0.5 Random 2
其中,Random为0到1之间的随机数。这样,惯性权重 将在0.5到1之间随机变化,均值为0.75。
2 领域拓扑结构 基于索引号的拓扑结构 环形结构: 星型结构: 每个粒子都与种群中的其他所有粒子相连,即将整个种 群作为自己的领域,也就是粒子群算法的全局版本。这种情 况下所有粒子共享的信息是种群中表现最好的粒子的信息。
3 基本思想 每个优化问题的潜在解都是搜索空间中的一只鸟,称之 为“粒子”。所有的粒子都有一个由被优化的函数决定的适 应值(fitness value),每个粒子还有一个速度决定他们 飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解 空间中搜索,然后通过迭代找到最优解。PSO初始化为一群 随机粒子(随机解)。在每一次迭代中,粒子通过跟踪两个 “极值”来更新自己。第一个就是粒子本身所找到的最优解, 这个解称为个体极值。另一个极值是整个种群目前找到的最 优解,这个极值是全局极值。另外也可以不用整个种群而只 是用其中一部分作为粒子的邻居,那么在所有邻居中的极值 就是局部极值。
frac max_ iter
当 frac 0.9 时,满足下列条件的粒子l构成当前粒子i 的邻域: dist[l ]
当 frac 0.9 时,将种群中所有粒子当作当前粒子i的 邻域。
max_ dist frac
3 学习因子 c1 和 c2 同步时变 设学习因子 c1 和 c2 取值范围为 [cmin , cmax ] ,
二、基本PSO
1 基本模型 设群体规模为N,目标搜索空间为D维。 X i ( xi1 , xi 2 , , xiD )T 表示第i(i=1,2,„N)个粒子 的位置。 Vi (vi1 , vi 2 , , viD )T , i 1,2, , N 表示i的飞翔速度 P , piD )T 表示i自身搜索到的最好点 i ( pi1 , pi 2 , 记粒子g为种群中最好的点 Pg ( pg1, pg 2 , , pgD )T 为当前种群中粒子搜索到最好 的点(全局最优位置)
时变权重 一般来说,希望粒子群在飞行开始的时候具有较好的探 索能力,而随着迭代次数的增加,特别是在飞行的后期,希 望具有较好的开发能力。所以希望动态调节惯性权重。 例:设惯性权重的取值范围: wmin , wmax ,最大迭代次数 为Iter_max,则第iter次迭代时的惯性权重可以取为:
惯性权重的作用: 具有维护全局和局部搜索能力的平衡作用,可以使粒子保 持惯性运动,使其有扩展搜索空间的趋势,有能力探索新 的区域。 较大的w提高了寻优时粒子的全局搜索能力,有利于提高 寻优的成功率;较小的w则有利于粒子群在迭代运算时的 快速聚集,有利于提高寻优的速度。 引入惯性权重w可消除基本粒子群算法对 Vmax 的需要。当 Vmax 增加时,可通过减小w来达到平衡搜索,而w的减小可使得 所需的迭代次数变小。
2 产生背景 • 设想一个场景:一群鸟随机的分布在一个区域中,在这个 区域里只有一块食物。所有的鸟都不知道食物在哪里。但 是他们知道当前的位置离食物还有多远。那么找到食物的 最优策略是什么呢?最简单有效的方法就是追寻自己视野 中目前离食物最近的鸟。如果把食物当作最优点,而把鸟 离食物的距离当作函数的适应度,那么鸟寻觅食物的过程 就可以当作一个函数寻优的过程。由此受到启发,经过简 化提出了粒子群优化算法。
K
2 | 2 4 |
2
, c1 c2 4
当 c1 c2 2.05, 4.1 ,可得 K 0.7298 w 0.7298, c1 c2 0.7298 2.05 1.49609 在标准PSO中取参数如下:
可知,带收缩因子的PSO是标准PSO的一个特例。
五、PSO的优缺点
PSO算法是一种启发式的优化计算方法,优点:
(1)采用实数编码,易于描述,易于理解 (2)对优化问题定义的连续性无特殊要求 (3)只有非常少的参数需要调整 (4)算法实现简单,速度快 (5)相对于其他演化算法,只需要较小的演化群体 (6)算法易于收敛 (7)无集中控制约束,不会因个体的故障影响整个 问题的求解,确保了系统具备很强的鲁棒性。