粒子群算法求TSP问题.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能优化算法第三次作业 一分析 1、基本思想 粒子群算法简称PSO,它的基本思想是模拟鸟群的捕食行为。设想这样一个场景:一群鸟在随机搜索食物。在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。 PSO 初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest。另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。 粒子公式 在找到这两个最优值时,粒子根据如下的公式来更新自己的速度和新的位置: v[i] = w * v[i] + c1 * rand() * (pbest[i] - present[i]) + c2 * rand() * (gbest - present[i]) ? ? present[i] = present[i] + v[i]? 其中v[i]代表第i个粒子的速度,w代表惯性权值,c1和c2表示学习参数,rand()表示在0-1之间的随机数,pbest[i]代表第i个粒子搜索到的最优值,gbest代表整个集群搜索到的最优值,present[i]代表第i个粒子的当前位置 算法步骤: (i) 初始化粒子群,给每一个粒子一个初始解idx和随机的交换序idv。 (ii) 判断是否达到最大迭代次数1000。若是,算法结束,输出结果;若不是,转到(iii)。 (iii) 根据粒子当前位置计算下一个新解: (a) 计算A,A是一个基本交换序,表示A作用于idx得到idp; (b) 计算B=?,B是一个基本交换序; (c) 按照公式v=v^A^B更新速度和位置。 (d) 如果得到了更好的个体位置,更新。 (iv) 如果得到了更好的群体位置,更新。 生成初始种群: 适应度计算 当前最优粒子位子序列 全局最优位置序列 更新速度 更新位置 找到最优路径 二、结果: 源码:/*问题:用粒子群算法求解TSP问题:为保证有解 用完全图做样例*/ /*洪文杰 2016-3-25. 智能优化算法 第三次作业*/ #includeiostream #includestdlib.h #includetime.h using namespace std; //--------------------------------宏定义----------------------------------// #define NUMBER 50 //种群规模 #define GENE_NUMBER 1000 //迭代次数 #define G 20 //图的顶点个数 #define M 0.45 //局部最优解选择概率 #define N 0.65 //全局最优解选择概率 //-------------------------------全局变量定义-----------------------------// int Figure[G][G]; //保存图信息 int Unit[NUMBER][G]; //保存初始种群 static struct{ int a; int b; }v[NUMBER][G],A[NUMBER][G],B[NUMBER][G],V[NUMBER][3*G]; //保存种群初始速度,序列A,序列B,更新后的速度。 //int Pbest[NUMBER][G];

文档评论(0)

131****9843 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档