粒子群算法学习笔记_第1页
粒子群算法学习笔记_第2页
粒子群算法学习笔记_第3页
粒子群算法学习笔记_第4页
粒子群算法学习笔记_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学习好资料欢迎下载粒子群优化(PSO近来,人们把粒子群群作为一种优化技术与其他演化算法进了比较,发现pso算法对各种优化问题非常有效。鸟群和鱼群的社会行为性激发Eberhart和Kennedy创立了群体智能。PSO算法模拟粒子集合,其中的粒子相互都是N维空间的(N是解向量的维数),用一个非常简单的的公式集实现群集的行为,即粒子具有一定的自由区搜索N维搜索空间,但也通过追踪当前具有最佳性能的粒子来限制群集的行为表现。集群中的粒子可看成一个对象,它包含向量(与解空间具有相同的维数,可以简单地理解为粒子当前的位置,既位置向量)、速度(向量中每个元素都有对应的速度,从而形成向量速度)、适应度(当前向量

2、)和一个表示迄今为止找到的最好位置向量。(如下图)群集中的粒子移动受到两个参数的影响。第一个是该粒子自身最好位置(位置向量)第二个是群集中任何粒子找到的全局最好位置。每个参数对粒子的影响都是可调的。利用pso算法实现通用函数最大化问题的求解。PSO算法基本流程如下:1、随机产生粒子向量及其速度向量作为粒子种群(最初这些例子是随机分布的,并随机移动,但随着算法的执行,群行为渐渐呈现出来,并引导粒子探索多维空间);2、当随机设置粒子时,计算出对应的适应度并作为当前适应度存储下来,同时记录具有最好适应度的全局最优粒子(这个粒子从一定程度上看是整个群集的中心);3、记录每个粒子的历史最优向量到最有位置

3、;4、设置终止准则,如果找到满意解或达到最大迭代次数,算法结束,并显示迄今找到的全局最优解。5、如果算法未达到其终止准则,更新粒子的速度和位置(给定当前位置和当前速度),重新计算每个粒子的适应度,检查是否达到终止准则;6、重复这些过程直到达到终止准则。粒子位置更新公式:Xn = Xn + V n ?tYn = Yn + V n ?tX方向加上其增量Y方向加上其增量粒子速度更新公式:Vn =Vn + (C1 ?R1 ?(GXn -PXn) + (C 2 ?R2 ?(PBXn - PXn)由上公式可知,速度的改变受到两个相互独立的参数的影响:全局最优粒子(G%)和自身最好位置(PBXn)。每一项都

4、有一个加速常数(G和0)来决定全局最优解和自身最优解对速度公式的影响。与此同时,为增强可变性,生成两个服从随机分布的随机数(Ri和R2)应用在这两项中。通过对这两个随机数取不同的值,可以强化两项中的某一项(全局或者自身)对速度的影响,这样做是为了有更大的可变性来探测解空间。适应度函数:(适应度代表着对最佳解的接近程度,适应度越高越好)Z=sin(x)?sin(y)?Z=一?适应度定义为粒子当前位置向量的函数算法实现:#include<stdio.h>#include"pso.h"#include"math.h"typedefstructdou

5、blex;doubley;vec_t;typedefstructvec_tcoord;/位置向量vec_tvelocity;/速度向量doublefitness;/适应度vec_tbest_coord;/粒子自身历史最佳位置doublefitness_best;/最佳适应度particle_t;/粒子的描述#defineMAX_PARTICLES10/粒子总数#defineMAX_ITERATIONS30/迭代次数particleparticlesMAX_PARTICLES;种群表示particle_tgbest;/全局最好位置doubleci=(double)0.3;/加速常数cidoubl

6、ec2=(double)0.i;/加速常数c2doubledt=(double)0.05;/时间问隔doublecompute_fitness(vec_t*vec_p)/计算适应度一一一doublex,y;doublefitness;/*Cachethecoordinatestosimplythefunction.*/x=vec_p->x;y=vec_p->y;/*Boundthelocationoftheparticle*/if(x<-10.0)|(x>10.0)|(y<-10.0)|(y>10.0)fitness=0.0;else/*Equation7.

7、5*/fitness=(sin(x)/x)*(sin(y)/y)*(double)10.0;returnfitness;voidupdate_particle(particle_t*particle_p)/更新粒子一一一/*Updatetheparticle'sposition(Equation7.8)*/particle_p->coord.x+=(particle_p->velocity.x*dt);particle_p->coord.y+=(particle_p->velocity.y*dt);/*Evaluatetheparticle'sfitne

8、ss*/particle_p->fitness=compute_fitness(&particle_p->coord);/*Ifthefitnessisbetterthanthepersonalbest,thensaveit.*/if(particle_p->fitness>particle_p->fitness_best)particle_p->fitness_best=particle_p->fitness;particle_p->best_coord.x=particle_p->coord.x;particle_p->b

9、est_coord.y=particle_p->coord.y;/*Ifthefitnessisbetterthantheglobalbest,thensaveit.*/if(particle_p->fitness_best>gbest.fitness)gbest.fitness=particle_p->fitness_best;gbest.coord.x=particle_p->coord.x;gbest.coord.y=particle_p->coord.y;/*Updatethevelocityvector(Equation7.9)*/particle

10、_p->velocity.x+=(c1*RANDOM()*(gbest.coord.x-particle_p->coord.x)+(c2*RANDOM()*(particle_p->best_coord.x-particle_p->coord.x);particle_p->velocity.y+=(c1*RANDOM()*(gbest.coord.y-particle_p->coord.y)+(c2*RANDOM()*(particle_p->best_coord.y-particle_p->coord.y);return;voidinit_po

11、pulation(void)/初始化种群.inti;for(i=0;i<MAX_PARTICLES;i+)particlesi.coord.x=(RANDOM()*20.0-10.0);particlesi.coord.y=(RANDOM()*20.0-10.0);particlesi.fitness=compute_fitness(&particlesi.coord);/*Initializetheparticle'svelocity*/particlesi.velocity.x=(RANDOM()/10.0);particlesi.velocity.y=(RANDOM

12、()/10.0);/*Storethecurrentbestforthisparticle*/particlesi.best_coord.x=particlesi.coord.x;particlesi.best_coord.y=particlesi.coord.y;particlesi.fitness_best=particlesi.fitness;.gbest.fitness=0.0;return;intmain()inti,j;RANDINIT();init_population();for(i=0;i<MAX_ITERATIONS;i+)for(j=0;j<MAX_PARTI

13、CLES;j+)update_particle(&particlesj);printf("CurrentBest:%g%g=%gn",gbest.coord.x,gbest.coord.y,gbest由tness);return0;Current;CurrentBest:CurrentBet:CurrentBest:CurrentCurrentBe«t:CurrentBe升;Current:CurrentBet;CurrentBest:CurrentBest:CurrentBest:CurrentBest:CurrentBest:CurrentBe5t:C

14、urrentBest:CurrentBest:CurrentBe«t:CurrentBest;CurrentBest:CurrentBest:CurrentB与t:CurrentBest:Current:PressanukeL-1.11621-0.493307士7.72655-1.115叫-0.492758=L72366-1.11468-0.4922097.73277-1.11391-0,491661=7.73588diIP111111i2613390165808701-0.491112-7.73899-0,496564=7.7421-OH90015=7,7H52他489467-7.7483-0*488918=7.751H-0.488369:7.7545-0487821=7.7576-9,-487272-T.7E070.8981460,599485=3.196420.2182820.156079=9.880559.2182820.156079=9.38Q55-0,G21M15-0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论