- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
粒子群算法原理及简单案例[python]介绍
粒子群算法(Particleswarmoptimization,PSO)是模拟群体智能所建立起来的一种优化算法,主要用于解决最优化问题(optimizationproblems)。1995年由Eberhart和Kennedy提出,是基于对鸟群觅食行为的研究和模拟而来的。
假设一群鸟在觅食,在觅食范围内,只在一个地方有食物,所有鸟儿都看不到食物(即不知道食物的具体位置。当然不知道了,知道了就不用觅食了),但是能闻到食物的味道(即能知道食物距离自己是远是近。鸟的嗅觉是很灵敏的)。
假设鸟与鸟之间能共享信息(即互相知道每个鸟离食物多远。这个是人工假定,实际上鸟们肯定不会也不愿意),那么最好的策略就是结合自己离食物最近的位置和鸟群中其他鸟距离食物最近的位置这2个因素综合考虑找到最好的有哪些信誉好的足球投注网站位置。
粒子群算法与《遗传算法》等进化算法有很多相似之处。也需要初始化种群,计算适应度值,通过进化进行迭代等。但是与遗传算法不同,它没有交叉,变异等进化操作。与遗传算法比较,PSO的优势在于很容易编码,需要调整的参数也很少。
一、基本概念
与遗传算法类似,PSO也有几个核心概念。粒子(particle):一只鸟。类似于遗传算法中的个体。
1.种群(population):一群鸟。类似于遗传算法中的种群。
2.位置(position):一个粒子(鸟)当前所在的位置。
3.经验(best):一个粒子(鸟)自身曾经离食物最近的位置。
4.速度(velocity):一个粒子(鸟)飞行的速度。
5.适应度(fitness):一个粒子(鸟)距离食物的远近。与遗传算法中的适应度类似。
二、粒子群算法的过程
可以看出,粒子群算法的过程比遗传算法还要简单。
1)根据问题需要,随机生成粒子,粒子的数量可自行控制。
2)将粒子组成一个种群。这前2个过程一般合并在一起。
3)计算粒子适应度值。
4)更新种群中每个粒子的位置和速度。
5)满足退出条件就退出,不满足就转向步骤3)。
三、核心——“速度更新”
从上面PSO的算法流程中可以看出,核心步骤是更新种群中每个粒子的位置和速度,而速度的更新又是核心中的核心。
下面直接给出速度更新公式:
new_v=w*v+c1*rand()*(pbest-position)+c2*rand()*(gbest-position)
v为粒子当前的速度,w为惯性因子(有速度就有运动惯性)。rand()为随机数生成函数,能够生成0-1之间的随机数。position为粒子当前的位置,pbest为本粒子历史上最好的位置,gbest为种群中所有粒子中当前最好的位置。c1和c2表示学习因子,分别向本粒子历史最好位置和种群中当前最好位置进行学习。
参数好像也有很多,需要设置的是3个,w,c1和c2,但实际上一般都设置c1=c2=1,w一般设在0.5左右。所以也没什么好设置的。
从物理原理上来解释这个速度更新公式,该公式由加号分割为3个部分:
第一部分是惯性保持部分,粒子沿着当前的速度和方向惯性飞行,不会偏移,直来直去。(牛顿运动学第一定理)。
第二部分是自我认知部分,粒子受到自身历史最好位置的吸引力,有回到自身历史最好位置的意愿。(牛顿运动学第二定理)。
第三部分是社会认知部分,粒子处在一个社会中(种群中),社会上有更好的粒子(成功人士),粒子受到成功人士的吸引力,有去社会中成功人士位置的意愿。(牛顿运动学第二定理)。
速度更新公式的意义就是粒子在自身惯性和2种外力作用下,速度和方向发生的改变。
注意这3部分都有重要含义。没有惯性部分,粒子们将很快向当前的自身最优位置和全局最优粒子位置靠拢,变成了一个局部算法了。有了惯性,不同粒子将有在空间中自由飞行的趋势,能够在整个有哪些信誉好的足球投注网站区域内寻找食物(最优解)。而没有自我认知部分,粒子们将向当前的全局最优粒子位置靠拢,容易陷入局部最优。没有社会认知部分,粒子们各自向自身最优位置靠拢,各自陷入自身最优,整个有哪些信誉好的足球投注网站过程都不收敛了。
最后,有了速度更新公式,位置更新就简单了:
new_position=position+new_v*t
t一般默认取1。
四、代码实现
(1)
#-*-coding:utf-8-*-
粒子群算法求解函数最大值(最小值)
f(x)=x+10*sin5x+7*cos4x
importnumpyasnp
importmatplotlib.pyplotasplt
#粒子(鸟)
classParticle:
def__init__(self):
self.p=0#粒子当前位置
self.v=0#粒子当前速度
s
您可能关注的文档
最近下载
- 简易钢楼梯设计.doc VIP
- 【钢梯大样图】简易钢楼梯做法详图.pdf VIP
- 学科教学三种境界.ppt
- 中频感应电炉培训教材.ppt
- 第5.2课《学习工匠事迹,领略工匠风采》(课件)-【中职专用】高二语文同步精品课件(高教版2023·职业模块).pptx
- 铁路机车驾驶人员资格认证-HXN5型内燃机车专业知识考试题库(含答案).docx
- 初中数学项目化活动设计项目化学习活动作业方案案例设计.pptx VIP
- 初中数学项目化学习活动作业方案案例设计.pptx VIP
- 第5.2课+学习工匠事迹+领略工匠风采(高教版中职语文2023·职业模块).pptx VIP
- 无水印 scratch3.0编程校本课程.docx
文档评论(0)