基于粒子群算法的寻优计算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Kennedy 和 Eberhart 用下列公式对粒子操作:
vis t 1 vis t c1r1s t pis t xis t c2 r2 s t pgs t xis t ( .1)
xis t 1 xis t vis t 1
k
D z, , R z, R or D z, R
g g g
对于所有的 k 和集合 Lo z S | f z f z0 中的 z 均成立。
其中, z, A 表示 z 到集合 A 的距离,定义为
在( .3)中 为非负数,称为动力常量,控制前一速度对当前速度的影响, 较 大时,前一速度影响较大,全局搜索能力较强; 较小时,前一速度影响较小,局部 搜索能力较强。通过调整 大小来跳出局部极小值。 终止条件根据具体问题取最大迭代次数或粒子群搜索到的最优位置满足的预定最 小适应阈值。 初始化过程如下: Ⅰ.设定群体规模 m 。 Ⅱ.对任意的 i , s ,在 xmax , xmax 内服从均匀分布产生 xis ; Ⅲ.对任意的 i , s ,在 vmax , vmax 内服从均匀分布产生 vis 。 Ⅳ.对任意的 i ,设 yi xi 。 PSO 算法步骤如下: Step1:初始化一个规模为 m 的粒子群,设定初始位置和速度。 Step2:计算每个粒子的适应值。 Step3:对每个粒子将其适应值和其经历过的最好位置 pis 的适应值进行比较,若 较好,则将其作为当前的最好位置。 Step4:对每个粒子将其适应值和全局经历过的最好位置 pgs 的适应值进行比较, 若较好,则将其作为当前的全局最好位置。 Step5:根据方程( .1) , ( .2)分别对粒子的速度和位置进行更新。 Step6:如果满足终止条件,则输出解;否则返回 Step2。
, xiS , i 1, 2,
, m ,每个粒子的位置就是一个
潜在的解。将 xi 代入一个目标函数就可以算出其适应值,根据适应值的大小衡量解的 优劣。第 i 个粒子的飞翔的速度是 S 维向量,记为 V Vi1 ,Vi1 , 迄今为止搜索到的最优位置为 P iS P iS , P iS , 最优位置为 PgS PgS , PgS ,
基于粒子群算法的寻优计算
数学物理中的许多问题常常归结为解非线性方程。非线性方程的求根问题是一个 具有重要实践意义的问题,也是多年以来数学家致力解决的问题之一。长期以来,人 们就已经找出了许多用于解决方程求根的方法。常用的方法有牛顿法、弦割法、抛物 线法。随后,又产生了许多由 Newton 法衍生出来的算法,如牛顿下山法等。但是, 这些传统算法的收敛性和最终结果与初始值的选取有较大的关系,一般都要求有相当 精度的根的近似值作为初始值,但初始值的选取依赖于人们对问题背景的认识,对于 复杂的高次方程和超越方程而言,要寻找根的近似值也是很困难的事。同时这些算法 缺乏通用性,针对一个具体问题,人们往往需要有足够多的知识去判断使用哪种方法 较为合适。因此,对于非线性方程求根这样一个古老问题,有必要探索一种高效可靠 的方法。 1995 年, Kennedy 和 Eberhart 提出了一种粒子群优化(Particle Swarm Optimization, PSO)算法,该算法具有群体智能、内在并行性、迭代格式简单、可快速收敛到最优解 所在区域等优点。因而 PSO 算法从诞生起,就引起了国内外学者的广泛关注,掀起了 该方法的研究热潮,并已经广泛应用于函数优化、神经网络训练、模糊控制系统等领 域。本章将结合工程实例进行 PSO 算法优化分析。
1
基本粒子群算法
粒子群算法(PSO)是一种基于群体的随机优化技术。与其它基于群体的进化算 法相比,它们均初始化为一组随机解,通过迭代搜寻最优解。不同的是:进化计算遵 循适者生存原则,而 PSO 模拟社会。将每个可能产生的解表述为群中的一个微粒,每 个微粒都具有自己的位置向量和速度向量,以及一个由目标函数决定的适应度。所有 微粒在搜索空间中以一定速度飞行, 通过追随当前搜索到的最优值来寻找全局最优值。 PSO 模拟社会采用了以下三条简单规则对粒子个体进行操作:①.飞离最近的个 体,以避免碰撞。②.飞向目标。③.飞向群体的中心。这是粒子群算法的基本概念 之一。 Reynolds、Boyd 和 Richerson 在研究人类的决策过程时,提出了个体学习和文化 传递的概念。根据他们的研究结果,人们在决策过程中使用两类重要信息,一是自身 的经验,二是其他人的经验。也就是说,人们根据自身的经验和他人的经验进行自己 的决策。这是粒子群算法的另一基本概念。 粒子群算法最早是在 1995 年由美国社会心理学家 James Kennedy 和电气工程师 Russell Eberhart 共同提出,其基本思想是受他们早期对许多鸟类的群体行为进行建模 与仿真研究结果的启发。 而他们的建模与仿真算法主要利用了生物学家 Frank Heppner 的模型。 Frank Heppner 的鸟类模型在反映群体行为方面与其它类模型有许多相同之处, 不 同的地方在于:鸟类被吸引飞向栖息地。在仿真中,一开始每只鸟均无特定的目标进 行飞行,直到有一只鸟飞到栖息地,当设置期望栖息比期望留在鸟群中具有较大的适 应值时,每只鸟都将离开群体而飞向栖息地,随后就自然的形成了鸟群。由于鸟类用 简单的规则确定自己的飞行方向与飞行速度(实质上,每只鸟都试图停在鸟群中而又 不相互碰撞) , 当一只鸟飞离鸟群而飞向栖息地时, 将导致它周围的其他鸟也飞向栖息 地。这些鸟一旦发现栖息地,将降落在此,驱使更多的鸟落在栖息地,直到整个鸟群 都落在栖息地。 鸟类寻找栖息地与对一个特定问题寻找解很类似,已经找到栖息地的鸟引导它周 围的鸟飞向栖息地的方式,增加了整个鸟群都找到栖息地的可能性,也符合信念社会
2
粒子群算法的收敛性
对于粒子群算法的收敛性问题。需满足如下假设: (1) f D z, f z ,并且如果 S ,则
f D z , f
随机算法的全局收敛意味着序列 f zk
k 1
应收敛于 。其中:
inf x | v( z S | f z x) 0 ,由于 Lebesgue 测度 v x | f z x 0 ,
z, A inf z, b
bA
基本粒子群算法满足(1) 。 证明:定义函数 D 为: D pgk , xik
pgk ,
f g xik f pgk
g xik , others
其中,符号 g xik 表示基本粒子群算法的更新:
Biblioteka Baidu
其中,i 1, m , s 1, S ;学习因子 c1 和 c2 是非负常数; r1 和 r2 为相互独立的
xmax , xmax 中,则可以设定 vmax kxmax , 0.1 k 1.0 。
Y.Shi 和 Eerhart 在对( .1)作了改进:
vis t 1 vis t c1r1s pis t xis t c2r2 s t pgs t xgs t ( .3)
基本粒子群算法不满足(2) 。 证明:假设②成立,则
S
t
M ik
i 1
其中, M i , k 表示在算法第 k 代时粒子 i 的支撑集。由于:
vis t 1 vis t c1r1s pis t xis t c2r2 s t pgs t xgs t
xi k 1 g xik g1 xik g2 xik g3 xik
其中:
g1 xik xik vik
g2 xik c1r1 pik xik
g3 xik c2 r2 pgk xik
xik 表示第 k 代时的粒子 i 的位置,按照函数 D ,基本粒子群算法满足①。
ViS 。记第 i 个粒子
, PgS 。
,P iS ,整个粒子群迄今为止搜索到的
不妨设 f x 为最小化的目标函数,则微粒 i 的当前最好位置由下式确定:
pi t f xi t 1 f pi t pi t 1 X i t 1 f xi t 1 f pi t
因此可以避免病态情形。 (2)对于 S 的任意 Borel 子集 A ,若其测度 v A 0 ,则有:
1 A 0
k 0 k
其中, k A 由测度 k 所得到的 A 的概率。 (3)对于任意的 zo S ,存在 0 , 1 0 ,使得:
( .2)
伪随机数,服从 0,1 上的均匀分布。 vis vmax , vmax , vmax 为常数,由用户设定。 从以上进化方程可见, c1 调节粒子飞向自身最好位置方向的步长, c2 调节粒子飞 向全局最好位置方向的步长。为了减少进化过程中粒子离开搜索空间的可能,vis 通常 限定在一个范围之中,即 vis vmax , vmax , vmax 为最大速度,如果搜索空间在
的认知观点。J.Kennedy 和 R.Eberhart 对 Frank Heppner 的模型进行了修正,以使粒子 能够飞向解空间并在最好解处降落。其关键在于如何保证粒子降落在最好解而不降落 在其它解处,这就是信念的社会性及智能性所在。 信念具有社会性的实质在于个体向它周围的成功者学习。个体和周围的其他同类 比较,并模仿优秀者的行为。要解决这一问题,关键在于在探索(寻找一个好解)和 开发(利用一个好解)之间寻找一个好的平衡。太小的探索导致算法收敛于早期遇到 的好解处,而太小的开发会使算法不收敛。 另一方面,需要在个性与社会性之间寻找平衡。也就是说:既希望个体具有个性 化,像鸟类模型中的鸟不相互碰撞,又希望其知道其它个体已经找到的好解并向它们 学习,即社会性。 J.Kennedy 与 R.Eberhart 很好的解决了这个问题, 1995 年他们在 IEEE 国际神经网 络学术会议上正式发表了题为: “Particle Swarm Optimization”的文章,标志着粒子群 算法的诞生。 粒子群算法与其它的进化类算法类似,也采用“群体”和“进化”的概念,同样 也根据个体的适应值大小进行操作。不同的是,PSO 中没有进化算子,而是将每个个 体看作搜索空间中没有重量和体积的微粒,并在搜索空间中以一定的速度飞行,该飞 行速度由个体飞行经验和群体的飞行经验进行动态调整。 示为一个 S 维的向量 xi xi1 , xi 2 , 设在一个 S 维的目标搜索空间中,有 m 个粒子组成一个群体,其中第 i 个粒子表
vis t 1 xis t vis t 1
X t 1 X t V t X t 1 2 P1 Pg2 X t X t X t 1 X t 1 2 P1 Pg2 1 1 2 X t X t 1 P1 Pg2
vis t 1 vis t c1r1s t pis t xis t c2 r2 s t pgs t xis t ( .1)
xis t 1 xis t vis t 1
k
D z, , R z, R or D z, R
g g g
对于所有的 k 和集合 Lo z S | f z f z0 中的 z 均成立。
其中, z, A 表示 z 到集合 A 的距离,定义为
在( .3)中 为非负数,称为动力常量,控制前一速度对当前速度的影响, 较 大时,前一速度影响较大,全局搜索能力较强; 较小时,前一速度影响较小,局部 搜索能力较强。通过调整 大小来跳出局部极小值。 终止条件根据具体问题取最大迭代次数或粒子群搜索到的最优位置满足的预定最 小适应阈值。 初始化过程如下: Ⅰ.设定群体规模 m 。 Ⅱ.对任意的 i , s ,在 xmax , xmax 内服从均匀分布产生 xis ; Ⅲ.对任意的 i , s ,在 vmax , vmax 内服从均匀分布产生 vis 。 Ⅳ.对任意的 i ,设 yi xi 。 PSO 算法步骤如下: Step1:初始化一个规模为 m 的粒子群,设定初始位置和速度。 Step2:计算每个粒子的适应值。 Step3:对每个粒子将其适应值和其经历过的最好位置 pis 的适应值进行比较,若 较好,则将其作为当前的最好位置。 Step4:对每个粒子将其适应值和全局经历过的最好位置 pgs 的适应值进行比较, 若较好,则将其作为当前的全局最好位置。 Step5:根据方程( .1) , ( .2)分别对粒子的速度和位置进行更新。 Step6:如果满足终止条件,则输出解;否则返回 Step2。
, xiS , i 1, 2,
, m ,每个粒子的位置就是一个
潜在的解。将 xi 代入一个目标函数就可以算出其适应值,根据适应值的大小衡量解的 优劣。第 i 个粒子的飞翔的速度是 S 维向量,记为 V Vi1 ,Vi1 , 迄今为止搜索到的最优位置为 P iS P iS , P iS , 最优位置为 PgS PgS , PgS ,
基于粒子群算法的寻优计算
数学物理中的许多问题常常归结为解非线性方程。非线性方程的求根问题是一个 具有重要实践意义的问题,也是多年以来数学家致力解决的问题之一。长期以来,人 们就已经找出了许多用于解决方程求根的方法。常用的方法有牛顿法、弦割法、抛物 线法。随后,又产生了许多由 Newton 法衍生出来的算法,如牛顿下山法等。但是, 这些传统算法的收敛性和最终结果与初始值的选取有较大的关系,一般都要求有相当 精度的根的近似值作为初始值,但初始值的选取依赖于人们对问题背景的认识,对于 复杂的高次方程和超越方程而言,要寻找根的近似值也是很困难的事。同时这些算法 缺乏通用性,针对一个具体问题,人们往往需要有足够多的知识去判断使用哪种方法 较为合适。因此,对于非线性方程求根这样一个古老问题,有必要探索一种高效可靠 的方法。 1995 年, Kennedy 和 Eberhart 提出了一种粒子群优化(Particle Swarm Optimization, PSO)算法,该算法具有群体智能、内在并行性、迭代格式简单、可快速收敛到最优解 所在区域等优点。因而 PSO 算法从诞生起,就引起了国内外学者的广泛关注,掀起了 该方法的研究热潮,并已经广泛应用于函数优化、神经网络训练、模糊控制系统等领 域。本章将结合工程实例进行 PSO 算法优化分析。
1
基本粒子群算法
粒子群算法(PSO)是一种基于群体的随机优化技术。与其它基于群体的进化算 法相比,它们均初始化为一组随机解,通过迭代搜寻最优解。不同的是:进化计算遵 循适者生存原则,而 PSO 模拟社会。将每个可能产生的解表述为群中的一个微粒,每 个微粒都具有自己的位置向量和速度向量,以及一个由目标函数决定的适应度。所有 微粒在搜索空间中以一定速度飞行, 通过追随当前搜索到的最优值来寻找全局最优值。 PSO 模拟社会采用了以下三条简单规则对粒子个体进行操作:①.飞离最近的个 体,以避免碰撞。②.飞向目标。③.飞向群体的中心。这是粒子群算法的基本概念 之一。 Reynolds、Boyd 和 Richerson 在研究人类的决策过程时,提出了个体学习和文化 传递的概念。根据他们的研究结果,人们在决策过程中使用两类重要信息,一是自身 的经验,二是其他人的经验。也就是说,人们根据自身的经验和他人的经验进行自己 的决策。这是粒子群算法的另一基本概念。 粒子群算法最早是在 1995 年由美国社会心理学家 James Kennedy 和电气工程师 Russell Eberhart 共同提出,其基本思想是受他们早期对许多鸟类的群体行为进行建模 与仿真研究结果的启发。 而他们的建模与仿真算法主要利用了生物学家 Frank Heppner 的模型。 Frank Heppner 的鸟类模型在反映群体行为方面与其它类模型有许多相同之处, 不 同的地方在于:鸟类被吸引飞向栖息地。在仿真中,一开始每只鸟均无特定的目标进 行飞行,直到有一只鸟飞到栖息地,当设置期望栖息比期望留在鸟群中具有较大的适 应值时,每只鸟都将离开群体而飞向栖息地,随后就自然的形成了鸟群。由于鸟类用 简单的规则确定自己的飞行方向与飞行速度(实质上,每只鸟都试图停在鸟群中而又 不相互碰撞) , 当一只鸟飞离鸟群而飞向栖息地时, 将导致它周围的其他鸟也飞向栖息 地。这些鸟一旦发现栖息地,将降落在此,驱使更多的鸟落在栖息地,直到整个鸟群 都落在栖息地。 鸟类寻找栖息地与对一个特定问题寻找解很类似,已经找到栖息地的鸟引导它周 围的鸟飞向栖息地的方式,增加了整个鸟群都找到栖息地的可能性,也符合信念社会
2
粒子群算法的收敛性
对于粒子群算法的收敛性问题。需满足如下假设: (1) f D z, f z ,并且如果 S ,则
f D z , f
随机算法的全局收敛意味着序列 f zk
k 1
应收敛于 。其中:
inf x | v( z S | f z x) 0 ,由于 Lebesgue 测度 v x | f z x 0 ,
z, A inf z, b
bA
基本粒子群算法满足(1) 。 证明:定义函数 D 为: D pgk , xik
pgk ,
f g xik f pgk
g xik , others
其中,符号 g xik 表示基本粒子群算法的更新:
Biblioteka Baidu
其中,i 1, m , s 1, S ;学习因子 c1 和 c2 是非负常数; r1 和 r2 为相互独立的
xmax , xmax 中,则可以设定 vmax kxmax , 0.1 k 1.0 。
Y.Shi 和 Eerhart 在对( .1)作了改进:
vis t 1 vis t c1r1s pis t xis t c2r2 s t pgs t xgs t ( .3)
基本粒子群算法不满足(2) 。 证明:假设②成立,则
S
t
M ik
i 1
其中, M i , k 表示在算法第 k 代时粒子 i 的支撑集。由于:
vis t 1 vis t c1r1s pis t xis t c2r2 s t pgs t xgs t
xi k 1 g xik g1 xik g2 xik g3 xik
其中:
g1 xik xik vik
g2 xik c1r1 pik xik
g3 xik c2 r2 pgk xik
xik 表示第 k 代时的粒子 i 的位置,按照函数 D ,基本粒子群算法满足①。
ViS 。记第 i 个粒子
, PgS 。
,P iS ,整个粒子群迄今为止搜索到的
不妨设 f x 为最小化的目标函数,则微粒 i 的当前最好位置由下式确定:
pi t f xi t 1 f pi t pi t 1 X i t 1 f xi t 1 f pi t
因此可以避免病态情形。 (2)对于 S 的任意 Borel 子集 A ,若其测度 v A 0 ,则有:
1 A 0
k 0 k
其中, k A 由测度 k 所得到的 A 的概率。 (3)对于任意的 zo S ,存在 0 , 1 0 ,使得:
( .2)
伪随机数,服从 0,1 上的均匀分布。 vis vmax , vmax , vmax 为常数,由用户设定。 从以上进化方程可见, c1 调节粒子飞向自身最好位置方向的步长, c2 调节粒子飞 向全局最好位置方向的步长。为了减少进化过程中粒子离开搜索空间的可能,vis 通常 限定在一个范围之中,即 vis vmax , vmax , vmax 为最大速度,如果搜索空间在
的认知观点。J.Kennedy 和 R.Eberhart 对 Frank Heppner 的模型进行了修正,以使粒子 能够飞向解空间并在最好解处降落。其关键在于如何保证粒子降落在最好解而不降落 在其它解处,这就是信念的社会性及智能性所在。 信念具有社会性的实质在于个体向它周围的成功者学习。个体和周围的其他同类 比较,并模仿优秀者的行为。要解决这一问题,关键在于在探索(寻找一个好解)和 开发(利用一个好解)之间寻找一个好的平衡。太小的探索导致算法收敛于早期遇到 的好解处,而太小的开发会使算法不收敛。 另一方面,需要在个性与社会性之间寻找平衡。也就是说:既希望个体具有个性 化,像鸟类模型中的鸟不相互碰撞,又希望其知道其它个体已经找到的好解并向它们 学习,即社会性。 J.Kennedy 与 R.Eberhart 很好的解决了这个问题, 1995 年他们在 IEEE 国际神经网 络学术会议上正式发表了题为: “Particle Swarm Optimization”的文章,标志着粒子群 算法的诞生。 粒子群算法与其它的进化类算法类似,也采用“群体”和“进化”的概念,同样 也根据个体的适应值大小进行操作。不同的是,PSO 中没有进化算子,而是将每个个 体看作搜索空间中没有重量和体积的微粒,并在搜索空间中以一定的速度飞行,该飞 行速度由个体飞行经验和群体的飞行经验进行动态调整。 示为一个 S 维的向量 xi xi1 , xi 2 , 设在一个 S 维的目标搜索空间中,有 m 个粒子组成一个群体,其中第 i 个粒子表
vis t 1 xis t vis t 1
X t 1 X t V t X t 1 2 P1 Pg2 X t X t X t 1 X t 1 2 P1 Pg2 1 1 2 X t X t 1 P1 Pg2