资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
本站首页管理页面 写新日志 退出November 2010日一二三四五六123456789101112131415161718192021222324252627282930公告 生命中永远不要说太迟了! 世界上没有不可逾越的高墙! 蛋蛋,加油!我的分类(专题)首页(36)实验室进度(2)励志成才(0)职业规划(1)心情故事(0)休闲娱乐(0)编程学习(27)日志更新pso程序的源代码-粒子群优化算法基本程给年轻工程师的十大忠告Visual C+6.0实现动态曲线4vc+动态曲线基于Visual C+的Winsock有关数据类型转换的整理如何让你的发言语出惊人一问一答流利面试英语 你掌握了吗?人工智能智能机器人控制概述面向对象设计的经验原则PostMessage和SendMess无闪烁刷屏技术的实现在视类下:OnDraw()与OnPain开始阅读程序第三遍关于在VC+ 6.0中如何添加OnIn阅读决策程序第一遍CString 操作指南INI文件编程定义消息的发送与接收的方法实现虚函数:从零开始总结最全的内存管理文章C+ 函数模板学习总结visual C+ 6.0开发工具与Visual C+6.0 API函数操如何使用 MFC 和类型库创建自动化项目回调函数几个时间控制函数有关数据类型转换的整理API函数C/C+数组名与指针区别利用多线程技术实现线程之间的通信如何实现进程间的通信windows实用命令集合一个很炫的定时器STL实践指南最新评论回复:windows实用命令集合回复:windows实用命令集合回复:windows实用命令集合回复:C+函数模板学习总结回复:如何让你的发言语出惊人回复:一问一答流利面试英语你掌握了吗?留言板签写新留言链接http:/blog.163.com/april_wang0410/ Blog信息blog名称:日志总数:36评论数量:23留言数量:0访问次数:55385建立时间:2006年12月7日 编程学习pso程序的源代码-粒子群优化算法基本程序网上资源,科学研究蛋蛋 发表于 2007-12-14 10:23:36 pso程序的源代码pso程序的源代码-粒子群优化算法源程序作者:FashionXu一个pso程序的源代码。在vc.net2003下面通过。建议:看代码之前,请先弄明白pso是怎么回事。然后请对应着来:程序中用Agent代表一只鸟,PSO代表鸟群。阅读源代码,不要顺着看,先看main(),然后按照出现的东西的顺序,一个一个得来,呵呵,纯粹是建议。/PSO.cpp:定义控制台应用程序的入口点。/粒子群优化算法基本程序/你可以使用本代码,如果感到对你有用的话,请通知作者,作者会很高兴。/通讯地址:fashionxu163.com/byFashionXu/本程序在vc+.net2003下面通过,你如果要在vc6.0下面使用,请查阅相关资料修改,或者联系作者#includestdafx.h#includeiostream#define_USE_MATH_DEFINES#includemath.h#includeconstintiAgentDim=20;/优化函数的维数constdoubleiRangL=-30;/函数的取值范围constdoubleiRangR=30;constintiPSONum=20;/粒子数intiStep=10000;/跌代次数/下面的值,要具体程序中具体的修改,根据你优化的函数来修改doublew=0.9;/惯性系数constdoubledelta1=1;/1.494;/加速度constdoubledelta2=1;/1.494;#definernd(low,uper)(rand()/(double)RAND_MAX)*(uper)-(low)+(low)/这个东西,返回low,uper之间的一个值doublegbestiAgentDim;/globalbestfitness保留全局最优值的坐标usingnamespacestd;classAgent/这个类表示单个的粒子,也就是一只鸟:)public:doubledposiAgentDim;/位置,也就是各个维数的值doubledpbestiAgentDim;/维护一个“自己”找到的最优值的解doubledviAgentDim;/速度doublem_dFitness;/agentsfitness当前算出的一个值doublem_dBestfitness;/agentsbestfitness自己已经找到的最好值Agent()/初始化srand(unsigned)(time(NULL)+rand();inti=0;for(;idposi=rnd(iRangL,iRangR);dvi=dpbesti=dposi;voidUpdateFitness()/*calculatethefitnessandfindoutthebestfitness,record*/doublesum1=0;doublesum2=0;/*AckleyFuntion*/for(inti=0;isum1+=(dposi*dposi);sum2+=cos(2*M_PI*dposi);m_dFitness=(-20*exp(-0.2*(sqrt(1.0/(double)iAgentDim*sum1)-exp(1.0/(double)iAgentDim)*sum2)+20+M_E);/TheRastriginfunction/inti=0;/for(;i/sum1+=(dposi*dposi)-3.0*cos(2*M_PI*dposi);/m_dFitness=3.0*iAgentDim+sum1;/找到一个更好的值后,更新m_dBestfitnessif(m_dFitnessm_dBestfitness=m_dFitness;inti=0;for(;idpbesti=dposi;voidUpdatePos()/agentmovinginti=0;for(;i/basipsodvi=w*dvi+delta1*rnd(0,1)*(dpbesti-dposi)+delta2*rnd(0,1)*(gbesti-dposi);dposi+=dvi;classPSO/这是粒子群,也就是鸟群了private:AgentagentsiPSONum;doublem_dBestFitness;/鸟群找到的最优值intm_iTempPos;public:voidInit();voidSearch();voidPSO:Search()intk=0;while(km_iTempPos=999;inti;for(i=0;i/此处是找找鸟群中有没有更好的解,如果有,记录下来if(m_dBestFitnessagentsi.m_dBestfitness)m_dBestFitness=agentsi.m_dBestfitness;m_iTempPos=i;/找到到的最好解的位置if(m_iTempPos!=999)intj;for(j=0;jgbestj=agentsm_iTempPos.dposj;/记录全局最优解的各个坐标/printf(Thebestis%fn,m_dBestFitness);/下一次跌代for(i=0;iagentsi.UpdatePos();agentsi.UpdateFitness();k+;printf(Thebestresultis:%2.15fafter%dstep.n,m_dBestFitness,k);for(inti=0;iprintf(%2.15f,gbesti);voidPSO:Init()/初始化,inti=0;m_dBestFitness=100000;srand(unsigned)(time(NULL)+rand();for(;iagentsi.m_dBestfitness=100000;/将m_dBestfitness赋值为一个大的值,目的是找最小值,agentsi.UpdateFitness();intmain(intargc,char*argv)PSOpso;pso.Init();pso.Search();printf(n);charc;scanf(%c,&c);return0;阅读全文(889) | 回复(0) | 编辑 | 精华发表评论:窗体顶端昵称:密码: (游客无须输入密码)主页: 标题: 验证码: (不区分大小写,请仔细填写,输错需重写评论内容!)窗体底端站点首页 | 联系我们 | 博客注册 | 博客登陆Sponsored By W3CHINAW3CHINA Blog 0.8Processed in 0.218 second(s), page refreshed 130609199 times.全国人大常委会关于维护互联网
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号