第一篇:群体智能算法简介2010
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
= +=1
c0vk + c1( pbestk − xk ) + c2 (gbest − xk ) xk + vk+1
vk :粒子速度向量;xk :当前粒子位置; pbestk :个体本身所能到的最优解的位置; gbestk :种群当前找到的最优解的位置;
如果 如果
vk vk
> vmax < −vmax
空间,粒子I 在N维空间的位置表示为矢量Xi=(x1,x2,…, xN),飞行速度表示为矢量Vi=(v1,v2,…,vN).
每个粒子都有一个由目标函数决定的适应值(fitness val ue),并且知道自己到目前为止发现的最好位置(pbest)和现 在的位置Xi。这个可以看作是粒子自己的飞行经验。除此 之外,每个粒子还知道到目前为止整个群体中所有粒子发 现的最好位置(gbest,gbest是pbest中的最好值)。这个可以 看作是粒子同伴的经验。粒子就是通过自己的经验和同伴 中最好的经验来决定下一步的运动。
设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里 只有一块食物,所有的鸟都不知道食物在那。但是它们知道自己当 前的位置距离食物还有多远。
那么找到食物的最优策略是什么? 最简单有效的就是搜寻目前离食物最近的鸟的周围区域。
1、粒子群优化算法——PSO
1、粒子群优化算法——PSO
抽象: 鸟被抽象为没有质量和体积的微粒(点),并延伸到N维
ω ω ini=0.9, end=0.4。 ω的引入使PSO算法性能有了很大提高,针对不同的搜
索问题,可以调整全局和局部搜索能力,也使得PSO算 法能成功的应用于很多实际问题。
1、粒子群优化算法——PSO
标准PSO算法的流程:
Step1:初始化一群微粒(规模为m),包括随机位置和速度; Step2:评价每个微粒的适应度; Step3:对每个微粒,将其适应值与其经过的最好位置pbest作
比较,如果较好,则将其作为当前的最好位置pbest; Step4:对每个微粒,将其适应值与其经过的最好位置gbest作
比较,如果较好,则将其作为当前的最好位置gbest; Step5:根据(2)、(3)式调整微粒速度和位置; Step6:未达到结束条件则转Step2。
1、粒子群优化算法——PSO
方程(2)和(3)中pbest和gbest分别表示微粒群的局部和全局最优位置, 当C1=0时,粒子没有了自我认知能力,而只有社会认知能力的模型(so cial-only):
称为局部PSO算法。由于个体之间没有信息的交流,整个群体相当于 多个粒子进行盲目的随机搜索,收敛速度慢,得到最优解的可能性小。
1、粒子群优化算法——PSO
参数分析
参数有:群体规模m,惯性因子 ω,学习因子c1和c2,最大速
度Vmax,迭代次数Gk。 群体规模m ——一般取20~40,对较难或特定类别的问题可以取 到100~200。
1、粒子群优化算法——PSO
下面演示一下这个算法运行一次的大概过程:
第一次初始化
第1次更新位置
1、粒子群优化算法——PSO
第2次更新位置 第21次更新位置 第30次更新位置(结果)
最后所有的点都集中在最大值的地方。
1、粒子群优化算法——PSO
粒子群算法主要分为4个大的分支: (1)标准粒子群算法的变形 在这个分支中,主要是对标准粒子群算法的惯性因子、收敛因子
最大速度Vmax ——决定当前位置与最好位置之间的区域的分辨率
(或精度)。如果太快,则粒子有可能越过极小点;如果太慢,则粒 子不能在局部极小点之外进行足够的探索,会陷入到局部极值区 域内。这种限制可以达到防止计算溢出、决定问题空间搜索的粒 度的目的。
1、粒子群优化算法——PSO
权重因子 ——包括惯性因子ω 和学习因子c1和c2。ω 使粒子保持着运动
公式的第三部分称为群体认知项,是一个从当前点 指向种群最好点的矢量,反映了粒子间的协同合作和知 识共享。粒子就是通过自己的经验和同伴中最好的经验 来决定下一步的运动。
公式(2)表示鸟的位置的变化。
1、粒子群优化算法——PSO
PSO算法中的参数说明:
(1)惯性权重c0 :使粒子保持运惯性。若 c0 = 0,速度本身没有记忆性, vk+1只取决于粒子当前位置和其历史最好位置pbest 和 gbest ,c0 大, 利于跳出局部极小点,c0 小,有利于算法收敛。
小范围; ④稳定性原则:群体不应每次随环境改变自己的模式; ⑤适应性原则:群体的模式应在计算代价值得的时候改
变。
1、粒子群优化算法——PSO
对鸟群行为的模拟:
Reynolds、Heppner和Grenader提出鸟群行为的模拟。他们发 现,鸟群在行进中会突然同步的改变方向,散开或者聚集等。那么 一定有某种潜在的能力或规则保证了这些同步的行为。这些科学家 都认为上述行为是基于不可预知的鸟类社会行为中的群体动态学。 在这些早期的模型中仅仅依赖个体间距的操作,也就是说,这种同 步是鸟群中个体之间努力保持最优的距离的结果。
c0c1c2 :群体认知数; c0 ∈ (0,1) c1c2 ∈ (0,2)
(1) (2)
vk = vmax vk = −vmax
1、粒子群优化算法——PSO
从社会学的角度来看: 公式(1)的第一部分称为记忆项,表示上次速度大小
和方向的影响; 公式第二部分称为自身认知项,是从当前点指向粒
子自身最好点的一个矢量,表示粒子的动作来源于自己 经验的部分;
第一篇的主要内容
1、粒子群优化算法——PSO (Particle Swarm Optimization)
2、蚁群优化算法——ACO (ant colony optimization)
1、粒子群优化算法——PSO
粒子群智能(swarm intelligence) 模拟系统利用局部信息,但可以产生不可预测
惯性,使其具有扩展搜索空间的趋势,有能力探索新的区域。C1和c2代 表将每个粒子推向Pbest和gbest位置的统计加速项的权值。较低的值允许 粒子在被拉回之前可以在目标区域外徘徊,较高的值导致粒子突然地冲 向或越过目标区域。
参数设置——如果c1=c2=0,粒子将一直以当前速度的飞行,直到边界。 很难找到最优解。
(约束因子)、“认知”部分的c1,“社会”部分的c2进行变化与调 节,希望获得好的效果。
第一篇:群体智能算法简介
北京科技大学 信息工程学院 付冬梅
fdm2003@ 62334967
第一篇 引子
社会组织的全局群行为是由群内个体行为以非线 性方式出现的。个体间的交互作用在构建群行为中起 到重要的作用。
从不同的群研究得到不同的应用。最引人注目的 是对鸟群和蚁群的研究。
其中粒群优化方法就是模拟鸟群的社会行为发展而来。
的群行为。 我们经常能够看到成群的鸟、鱼或者浮游生物。
这些生物的聚集行为有利于它们觅食和逃避捕食者。 它们的群落动辄以十、百、千甚至万计,并且经常 不存在一个统一的指挥者。它们是如何完成聚集、 移动这些功能呢?
1、粒子群优化算法——PSO
Millonas在开发人工生命算法时(1994年),提出群体智 能概念并提出五点原则: ①接近性原则:群体应能够实现简单的时空计算; ②优质性原则:群体能够响应环境要素; ③变化相应原则:群体不应把自己的活动限制在一狭
第一篇 引子
群智能方法易于实现,算法中仅涉及各种基本 的数学操作,其数据处理过程对CPU和内存的要求 也不高。而且,这种方法只需目标函数的输出值, 而无需其梯度信息。已完成的群智能理论和应用方 法研究证明群智能方法是一种能够有效解决大多数 全局优化问题的新方法。更为重要是,群智能潜在 的并行性和分布式特点为处理大量的以数据库形式 存在的数据提供了技术保证。无论是从理论研究还 是应用研究的角度分析,群智能理论及其应用研究 都是具有重要学术意义和现实价值的。
第一篇 引子
与大多数基于梯度的应用优化算法不同,群智能依靠 的是概率搜索算法。
虽然概率搜索算法通常要采用较多的评价函数,但是 与梯度方法及传统的演化算法相比,其优点还是显著的 , 主要表现在以下几个方面:
无集中控制约束,不会因个别个体的故障影响整个问 题的求解,确保了系统具备更强的鲁棒性 以非直接的信息交流方式确保了系统的扩展性 并行分布式算法模型,可充分利用多处理器 对问题定义的连续性无特殊要求 算法实现简单
1、粒子群优化算法——PSO
在PSO中,每个优化问题的解被看作搜索空间中的一只鸟。所有的粒 子都有一个被优化的函数决定的适应值,每个粒子还有一个速度决定它们飞 翔的方向和距离,然后粒子们就追随当前的最优粒子在解空间中搜索。
PSO初始化为一群随机粒子(解),通过迭代找到最优解。每次迭代中粒 子通过跟踪个体极值pbest、全局(局部)极值gbest,来更新自己。
Vi = ω ×Vi + c1 × rand () × ( pbesti − xi )
称为全局PSO算法。粒子有扩展搜索空间的能力,收敛速度较快,但由 于缺少局部搜索,对于复杂问题比标准PSO 更易陷入局部最优。
当C2=0时,没有社会信息,变为只有认知(cognition-only)模型:
Vi = ω ×Vi + c1 × rand () × ( pbesti − xi )
强的局部搜索能力。
1、粒子群优化算法——PSO
示例:寻找函数 y=1-cos(3 × x) × exp(-x)的在[0,4]最大值。 该函数的图形如下:
1、粒子群优化算法——PSO
当x=0.9350-0.9450,达到最大值y=1.3706。 为了得到该函数的最大值,我们在[0,4]之间随机的洒一些点, 为了演示,我们放置两个点,并且计算这两个点的函数值,同时给 这两个点设置在[0,4]之间的一个速度。下面这些点就会按照一定 的公式更改自己的位置,到达新位置后,再计算这两个点的值,然 后再按照一定的公式更新自己的位置。直到最后在=1.3706这个点 停止自己的更新。这个过程与粒子群算法作为对照如下: 这两个点就是粒子群算法中的粒子。 该函数的最大值就是鸟群中的食物 计算两个点函数值就是粒子群算法中的适应值,计算用的函数就 是粒子群算法中的适应度函数。 更新自己位置的一定公式就是粒子群算法中的位置速度更新公式
1、粒子群优化算法——PSO
1998年shi等人在进化计算的国际会议上发表了一篇 论文《A modified particle swarmoptimizer》对前面的公 式(1)进行了修正。引入惯性权重因子。
Vi = ω ×Vi + c1 × rand () × ( pbesti − xi )
(3)
如果ω =0,则速度只取决于当前位置和历史最好位置,速度本身
没有记忆性。假设一个粒子处在全局最好位置,它将保持静止,其他粒 子则飞向它的最好位置和全局最好位置的加权中心。粒子将收缩到当前 全局最好位置。在加上第一部分后,粒子有扩展搜索空间的趋势,这也
使得ω的作用表现为针对不同的搜索问题,调整算法的全局和局部搜索 能力的平衡。ω 较大时,具有较强的全局搜索能力;ω 较小时,具有较
(2)个体加常数 c1 :c1 = 0 则粒子没有认知能力,是只有“社会”的模型。
(3)全局加常数 c2 :c2 = 0 则粒子没有社会信息,是只有认知的模型。
上面的基本粒子群算法,实际上是下一页由shi等人在进化计算的国际 会议上发表了一篇论文《A modified particle swarmoptimizer》简化得到的。
+ c2 × rand () × (gbesti − xi )
ω非负,称为惯性因子。ω 值较大,全局寻优能力强,局
部寻优能力弱;值较小反之。
初始时,shi将ω 取为常数,后来实验发现,动态ω 能够 获得比固定值更好的寻优结果。动态ω 可以在PSO搜索过程
中线性变化,也可根据PSO性能的某个测度函数动态改变。
1、粒子群优化算法——PSO
目前,采用较多的是shi建议的线性递减权值(linearly decreasing weight, LDW)策略。
ω(t) =(ωini − ωend )(Gk − g) / Gk + ωend
ω ω Gk为最大进化代数, ini为初始惯性权值, end为迭代至
最大代数时惯性权值。 典型取值
c0vk + c1( pbestk − xk ) + c2 (gbest − xk ) xk + vk+1
vk :粒子速度向量;xk :当前粒子位置; pbestk :个体本身所能到的最优解的位置; gbestk :种群当前找到的最优解的位置;
如果 如果
vk vk
> vmax < −vmax
空间,粒子I 在N维空间的位置表示为矢量Xi=(x1,x2,…, xN),飞行速度表示为矢量Vi=(v1,v2,…,vN).
每个粒子都有一个由目标函数决定的适应值(fitness val ue),并且知道自己到目前为止发现的最好位置(pbest)和现 在的位置Xi。这个可以看作是粒子自己的飞行经验。除此 之外,每个粒子还知道到目前为止整个群体中所有粒子发 现的最好位置(gbest,gbest是pbest中的最好值)。这个可以 看作是粒子同伴的经验。粒子就是通过自己的经验和同伴 中最好的经验来决定下一步的运动。
设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里 只有一块食物,所有的鸟都不知道食物在那。但是它们知道自己当 前的位置距离食物还有多远。
那么找到食物的最优策略是什么? 最简单有效的就是搜寻目前离食物最近的鸟的周围区域。
1、粒子群优化算法——PSO
1、粒子群优化算法——PSO
抽象: 鸟被抽象为没有质量和体积的微粒(点),并延伸到N维
ω ω ini=0.9, end=0.4。 ω的引入使PSO算法性能有了很大提高,针对不同的搜
索问题,可以调整全局和局部搜索能力,也使得PSO算 法能成功的应用于很多实际问题。
1、粒子群优化算法——PSO
标准PSO算法的流程:
Step1:初始化一群微粒(规模为m),包括随机位置和速度; Step2:评价每个微粒的适应度; Step3:对每个微粒,将其适应值与其经过的最好位置pbest作
比较,如果较好,则将其作为当前的最好位置pbest; Step4:对每个微粒,将其适应值与其经过的最好位置gbest作
比较,如果较好,则将其作为当前的最好位置gbest; Step5:根据(2)、(3)式调整微粒速度和位置; Step6:未达到结束条件则转Step2。
1、粒子群优化算法——PSO
方程(2)和(3)中pbest和gbest分别表示微粒群的局部和全局最优位置, 当C1=0时,粒子没有了自我认知能力,而只有社会认知能力的模型(so cial-only):
称为局部PSO算法。由于个体之间没有信息的交流,整个群体相当于 多个粒子进行盲目的随机搜索,收敛速度慢,得到最优解的可能性小。
1、粒子群优化算法——PSO
参数分析
参数有:群体规模m,惯性因子 ω,学习因子c1和c2,最大速
度Vmax,迭代次数Gk。 群体规模m ——一般取20~40,对较难或特定类别的问题可以取 到100~200。
1、粒子群优化算法——PSO
下面演示一下这个算法运行一次的大概过程:
第一次初始化
第1次更新位置
1、粒子群优化算法——PSO
第2次更新位置 第21次更新位置 第30次更新位置(结果)
最后所有的点都集中在最大值的地方。
1、粒子群优化算法——PSO
粒子群算法主要分为4个大的分支: (1)标准粒子群算法的变形 在这个分支中,主要是对标准粒子群算法的惯性因子、收敛因子
最大速度Vmax ——决定当前位置与最好位置之间的区域的分辨率
(或精度)。如果太快,则粒子有可能越过极小点;如果太慢,则粒 子不能在局部极小点之外进行足够的探索,会陷入到局部极值区 域内。这种限制可以达到防止计算溢出、决定问题空间搜索的粒 度的目的。
1、粒子群优化算法——PSO
权重因子 ——包括惯性因子ω 和学习因子c1和c2。ω 使粒子保持着运动
公式的第三部分称为群体认知项,是一个从当前点 指向种群最好点的矢量,反映了粒子间的协同合作和知 识共享。粒子就是通过自己的经验和同伴中最好的经验 来决定下一步的运动。
公式(2)表示鸟的位置的变化。
1、粒子群优化算法——PSO
PSO算法中的参数说明:
(1)惯性权重c0 :使粒子保持运惯性。若 c0 = 0,速度本身没有记忆性, vk+1只取决于粒子当前位置和其历史最好位置pbest 和 gbest ,c0 大, 利于跳出局部极小点,c0 小,有利于算法收敛。
小范围; ④稳定性原则:群体不应每次随环境改变自己的模式; ⑤适应性原则:群体的模式应在计算代价值得的时候改
变。
1、粒子群优化算法——PSO
对鸟群行为的模拟:
Reynolds、Heppner和Grenader提出鸟群行为的模拟。他们发 现,鸟群在行进中会突然同步的改变方向,散开或者聚集等。那么 一定有某种潜在的能力或规则保证了这些同步的行为。这些科学家 都认为上述行为是基于不可预知的鸟类社会行为中的群体动态学。 在这些早期的模型中仅仅依赖个体间距的操作,也就是说,这种同 步是鸟群中个体之间努力保持最优的距离的结果。
c0c1c2 :群体认知数; c0 ∈ (0,1) c1c2 ∈ (0,2)
(1) (2)
vk = vmax vk = −vmax
1、粒子群优化算法——PSO
从社会学的角度来看: 公式(1)的第一部分称为记忆项,表示上次速度大小
和方向的影响; 公式第二部分称为自身认知项,是从当前点指向粒
子自身最好点的一个矢量,表示粒子的动作来源于自己 经验的部分;
第一篇的主要内容
1、粒子群优化算法——PSO (Particle Swarm Optimization)
2、蚁群优化算法——ACO (ant colony optimization)
1、粒子群优化算法——PSO
粒子群智能(swarm intelligence) 模拟系统利用局部信息,但可以产生不可预测
惯性,使其具有扩展搜索空间的趋势,有能力探索新的区域。C1和c2代 表将每个粒子推向Pbest和gbest位置的统计加速项的权值。较低的值允许 粒子在被拉回之前可以在目标区域外徘徊,较高的值导致粒子突然地冲 向或越过目标区域。
参数设置——如果c1=c2=0,粒子将一直以当前速度的飞行,直到边界。 很难找到最优解。
(约束因子)、“认知”部分的c1,“社会”部分的c2进行变化与调 节,希望获得好的效果。
第一篇:群体智能算法简介
北京科技大学 信息工程学院 付冬梅
fdm2003@ 62334967
第一篇 引子
社会组织的全局群行为是由群内个体行为以非线 性方式出现的。个体间的交互作用在构建群行为中起 到重要的作用。
从不同的群研究得到不同的应用。最引人注目的 是对鸟群和蚁群的研究。
其中粒群优化方法就是模拟鸟群的社会行为发展而来。
的群行为。 我们经常能够看到成群的鸟、鱼或者浮游生物。
这些生物的聚集行为有利于它们觅食和逃避捕食者。 它们的群落动辄以十、百、千甚至万计,并且经常 不存在一个统一的指挥者。它们是如何完成聚集、 移动这些功能呢?
1、粒子群优化算法——PSO
Millonas在开发人工生命算法时(1994年),提出群体智 能概念并提出五点原则: ①接近性原则:群体应能够实现简单的时空计算; ②优质性原则:群体能够响应环境要素; ③变化相应原则:群体不应把自己的活动限制在一狭
第一篇 引子
群智能方法易于实现,算法中仅涉及各种基本 的数学操作,其数据处理过程对CPU和内存的要求 也不高。而且,这种方法只需目标函数的输出值, 而无需其梯度信息。已完成的群智能理论和应用方 法研究证明群智能方法是一种能够有效解决大多数 全局优化问题的新方法。更为重要是,群智能潜在 的并行性和分布式特点为处理大量的以数据库形式 存在的数据提供了技术保证。无论是从理论研究还 是应用研究的角度分析,群智能理论及其应用研究 都是具有重要学术意义和现实价值的。
第一篇 引子
与大多数基于梯度的应用优化算法不同,群智能依靠 的是概率搜索算法。
虽然概率搜索算法通常要采用较多的评价函数,但是 与梯度方法及传统的演化算法相比,其优点还是显著的 , 主要表现在以下几个方面:
无集中控制约束,不会因个别个体的故障影响整个问 题的求解,确保了系统具备更强的鲁棒性 以非直接的信息交流方式确保了系统的扩展性 并行分布式算法模型,可充分利用多处理器 对问题定义的连续性无特殊要求 算法实现简单
1、粒子群优化算法——PSO
在PSO中,每个优化问题的解被看作搜索空间中的一只鸟。所有的粒 子都有一个被优化的函数决定的适应值,每个粒子还有一个速度决定它们飞 翔的方向和距离,然后粒子们就追随当前的最优粒子在解空间中搜索。
PSO初始化为一群随机粒子(解),通过迭代找到最优解。每次迭代中粒 子通过跟踪个体极值pbest、全局(局部)极值gbest,来更新自己。
Vi = ω ×Vi + c1 × rand () × ( pbesti − xi )
称为全局PSO算法。粒子有扩展搜索空间的能力,收敛速度较快,但由 于缺少局部搜索,对于复杂问题比标准PSO 更易陷入局部最优。
当C2=0时,没有社会信息,变为只有认知(cognition-only)模型:
Vi = ω ×Vi + c1 × rand () × ( pbesti − xi )
强的局部搜索能力。
1、粒子群优化算法——PSO
示例:寻找函数 y=1-cos(3 × x) × exp(-x)的在[0,4]最大值。 该函数的图形如下:
1、粒子群优化算法——PSO
当x=0.9350-0.9450,达到最大值y=1.3706。 为了得到该函数的最大值,我们在[0,4]之间随机的洒一些点, 为了演示,我们放置两个点,并且计算这两个点的函数值,同时给 这两个点设置在[0,4]之间的一个速度。下面这些点就会按照一定 的公式更改自己的位置,到达新位置后,再计算这两个点的值,然 后再按照一定的公式更新自己的位置。直到最后在=1.3706这个点 停止自己的更新。这个过程与粒子群算法作为对照如下: 这两个点就是粒子群算法中的粒子。 该函数的最大值就是鸟群中的食物 计算两个点函数值就是粒子群算法中的适应值,计算用的函数就 是粒子群算法中的适应度函数。 更新自己位置的一定公式就是粒子群算法中的位置速度更新公式
1、粒子群优化算法——PSO
1998年shi等人在进化计算的国际会议上发表了一篇 论文《A modified particle swarmoptimizer》对前面的公 式(1)进行了修正。引入惯性权重因子。
Vi = ω ×Vi + c1 × rand () × ( pbesti − xi )
(3)
如果ω =0,则速度只取决于当前位置和历史最好位置,速度本身
没有记忆性。假设一个粒子处在全局最好位置,它将保持静止,其他粒 子则飞向它的最好位置和全局最好位置的加权中心。粒子将收缩到当前 全局最好位置。在加上第一部分后,粒子有扩展搜索空间的趋势,这也
使得ω的作用表现为针对不同的搜索问题,调整算法的全局和局部搜索 能力的平衡。ω 较大时,具有较强的全局搜索能力;ω 较小时,具有较
(2)个体加常数 c1 :c1 = 0 则粒子没有认知能力,是只有“社会”的模型。
(3)全局加常数 c2 :c2 = 0 则粒子没有社会信息,是只有认知的模型。
上面的基本粒子群算法,实际上是下一页由shi等人在进化计算的国际 会议上发表了一篇论文《A modified particle swarmoptimizer》简化得到的。
+ c2 × rand () × (gbesti − xi )
ω非负,称为惯性因子。ω 值较大,全局寻优能力强,局
部寻优能力弱;值较小反之。
初始时,shi将ω 取为常数,后来实验发现,动态ω 能够 获得比固定值更好的寻优结果。动态ω 可以在PSO搜索过程
中线性变化,也可根据PSO性能的某个测度函数动态改变。
1、粒子群优化算法——PSO
目前,采用较多的是shi建议的线性递减权值(linearly decreasing weight, LDW)策略。
ω(t) =(ωini − ωend )(Gk − g) / Gk + ωend
ω ω Gk为最大进化代数, ini为初始惯性权值, end为迭代至
最大代数时惯性权值。 典型取值