- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
混合蛙跳算法改进与`其对旅行商问题求解
混合蛙跳算法改进及其对旅行商问题的求解 摘要:针对混合蛙跳算法在进化过程中容易陷入局部最优的问题,使用群体适应度值判断算法在进化过程中是否陷入局部最优,如果陷入局部最优,则对整个种群的当前最优解Gb进行贪婪倒位变异,如果变异后的Gb(新)要优于Gb(旧),则使用Gb (新);否则,使用模拟退火算法判断是否接受Gb (旧)。通过实验,将改进前后的混合蛙跳算法用于对旅行商问题的求解,并通过对比,验证了改进后的算法较未改进的算法更有效
关键词:混合蛙跳算法;旅行商问题;组合优化问题
DOIDOI:10.11907/rjdk.161741
中图分类号:TP312
文献标识码:A文章编号2016)010004102
0引言
混合蛙跳算法(Shuffled Frog Leaping Algorithm,SFLA)由Eusuff和Lansey在2003年第一次提出,是一种全新的启发式群体智能进化算法,最初用于解决管道网络扩充中管道尺寸的最小化问题[1]。随后,混合蛙跳算法以自身参数设置少、全局搜索寻优能力强、计算强度小、简单易于实现等优势被国内外学者所关注。目前主要用于解决组合优化问题,如水资源分布安排[2]、电力系统的调度[3]、云计算环境下资源分配问题[4]等
组合优化问题是从组合问题的可行解中求出最优解。旅行商问题属于一种典型的组合优化问题,是NP难题。旅行商问题的具体描述是:以一个城市为出发点,在N个城市各经历一次,最后回到出发点,使得所经过的路程达到最短。如果不考虑方向性和周期性,则总共存在的闭合路径数目是(N-1)!2。当N选取的数目很大时,计算量将特别大,在求解最优路径时很困难,因为该问题算法在运行过程中,需要很长的运行时间和很大的存储空间,以至于根本不可能在计算机中得到实现,产生了所谓的“组合爆炸”问题。如果采用传统算法(如穷举搜索算法、贪心算法和动态规划算法等),就会遇到上述问题。现代智能算法的出现解决了上述问题,如遗传算法、蚁群算法、粒子群算法等。鉴于此,本文将采用混合蛙跳算法对旅行商问题进行求解
本文对旅行商问题使用混合蛙跳算法进行求解并针对混合蛙跳算法存在容易陷入局部最优的问题,使用了贪婪倒位变异对当前的全局最优解进行变异,从而使得混合蛙跳算法跳出局部最优,从而向最优解逼近。使用改进前后的混合蛙跳算法分别对旅行商问题进行仿真实验,验证了改进后算法的有效性
1混合蛙跳算法
混合蛙跳算法是模拟青蛙觅食过程中群体信息共享和交流机制而产生的一种群智能算法。算法中每只青蛙被定义为问题的一个解。对所有青蛙进行模因分组,分为不同的子群体,青蛙在分组内共享自身的觅食经验和信息,当分组内信息交换到一定阶段后,再将所有分组混合进行分组间的信息交换。不断重复上述过程,一直向着食物源的位置逼近。混合蛙跳算法按照分组分类进行信息的传递,将这种局部进化和重新混合的过程相间进行,有效地将全局信息交互和局部进化搜索进行相互结合,具有高效的计算性能和优良的全局搜索性能
混合蛙跳算法的具体描述[5]:
随机生成F只青蛙,当问题维度为d时,第i只青蛙表示为X(i)=(X1i,X2i,...,Xdi),其评价函数为f(X(i))。按照评价函数的降序对青蛙进行排序,将青蛙分成m个组(子种群),每个组有n只青蛙,则F=m*n。将分组后的第一只青蛙放到第一组,第二只青蛙放到第二组,以此类推,直到放到第m组,如果有剩余青蛙,将第m+1只青蛙放到第m+1组,直到所有青蛙都放到分组中
整个种群的最优解记作Gb,子种群中的最优解和最差解分别记作Pb、Pw。在子种群中的寻优过程是以对Pb和Gb作为参考,对Pw的位置进行更新,更新公式如下:
其中,rand()为0~1的随机数,Dmax为允许青蛙移动的最大步长。如果更新后Pw(新)要好于Pw(旧),则用Pw(新)代替Pw(旧)。否则,用Gb代替式(1)中的Pb,重新执行对Pw的更新。如果还得不到更好的解,则随机生成一个个体来替代Pw。多次执行上述更新过程,直到更新结果满足约定条件(迭代次数)。当所有子种群更新完成后,再对所有青蛙进行全局混合、排序,继续进行子种群中的更新。反复执行上述过程,直到达到最大迭代次数或者找到最优解
2混合蛙跳算法改进
根据文中混合蛙跳算法所描述,在子种群的更新过程中,使用Pb和Gb作为Pw更新的参考。但是在子种群的更新过程中,Pb和Gb的状态是不会改变的,使得每次的更新范围不会超过Pb和Gb,这样算法就容易陷入局部最优。为了能跳出局部最优,可以在Pw得不到更好解的情况下对Pb和Gb进行变异,增加Pw取得更好解的可能性,并能够加速向全局最优解收敛。本文将贪婪倒位变异和模拟退火算法相结合对Gb进行变
您可能关注的文档
最近下载
- 六年级下册道德与法治知识点选择题100道.docx
- 设备质量保证措施.docx VIP
- 研究人工智能在电力系统故障诊断与处理中的应用.docx VIP
- 设备质量保证措施.pdf VIP
- 数学教案_两位数减一位数不退位整十数教学设计.docx
- GZ-2022062 健康与社会照护赛项正式赛卷完整版包括附件-2022年全国职业院校技能大赛赛项正式赛卷.docx
- 信息技术在乡村学校教学中的应用研究教学研究课题报告.docx
- 2024-2025学年小学劳动二年级下册粤教版(主编:徐长发)教学设计合集.docx
- 教师党课讲稿:不忘初心,继续前进最新.doc VIP
- (word精品)2022年甘肃省兰州市诊断考试(一诊)数学试题(附答案).docx
文档评论(0)