当前位置:   article > 正文

【路径规划】基于遗传算法结合粒子群算法求解TSP问题matlab代码_基于遗传算法特性的混合粒子群算法及tsp问题研究

基于遗传算法特性的混合粒子群算法及tsp问题研究

1 简介

遗传算法是研究TSP问题中最为广泛的一种算法,它具有全局搜索的能力.而粒子群算法收敛速度较快,但容易造成局部最优的情况.本文基于遗传算法的交叉变异设计了混合粒子群算法,通过对TSP问题求解分析,证实该方法提高了标准粒子群的搜索能力,获得了较高的收敛速度和近似最优解.

标准粒子群算法在极值寻优的过程中,根据粒子的变化状况,除了自身的属性之外只能这个群体中粒子的属性,实验发现随着迭代次数的增加,粒子之间越来越相似,导致无法跳出局部解。而混合粒子群算法在保留粒子群算法原本的性质之外,通过引入遗传算法中的交叉、变异的方式 [2],粒子与个体极值与群体极值交叉以及自身的变异来对粒子种群的多样性问题进行改进,直接对粒子携带遍历城市的信息进行交叉、变异处理,从而直接改变粒子原本想要表达的遍历方案,从而搜索最优解。

1.1 个体编码

粒子个体编码采用整数编码的方式,将粒子的呈现形式转化为在 TSP 问题中的遍历路径,根据整数的数字来对应每一个城市,编码的位置则代表整个遍历方案的实际内容,每个粒子能够表达出遍历的方式,通过粒子的编码直接解读出遍历所有城市的方案。

1.2 交叉操作

个体通过和个体极值和群体极值交叉来更新,交叉方法采用整数交叉法 。既能够一定程度上保证粒子的独立性质,又能够保证粒子所反映出的方案是可行的。若交叉后存在位置重复的情况,使用个体中未包括的城市编号去代替原本重复出现的城市。

1.3 变异操作

变异方法采用个体内部两位互换方法,通过变异的形式去实现更多不同的遍历方式,从而增加遍历方式的多样性。当变异后的粒子适应度优于原来的粒子则完成更新过程,否则保持原来的粒子状态。

2 部分代码

clc %清空命令行窗口

clear %从当前工作区中删除所有变量,并将它们从系统内

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/415903
推荐阅读
相关标签
  

闽ICP备14008679号