本发明专利技术公开了一种基于天牛须搜索算法的旅行商问题求解方法。涉及组合优化、路径规划领域;具体步骤:1、计算各个城市之间的距离,生成距离矩阵D;2、初始参数;3、初始化天牛群的位置X;4、求得当前位置中左、右须分别对应的位置;5、确定左、右须的适应度值f(X
【技术实现步骤摘要】
一种基于天牛须搜索算法的旅行商问题求解方法
本专利技术涉及组合优化、路径规划领域,具体涉及一种基于天牛须搜索算法的旅行商问题求解方法。
技术介绍
旅行商问题:TSP问题(TravelingSalesmanProblem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一;它描述了以下场景:有一名旅行商人要拜访各个城市,城市的数量为n,限制条件为每个城市仅拜访一次且所有城市必须都需要拜访,优化目标为使得在拜访完所有城市并最终回到起点的情况下旅行商人走过的总路径长度最短。经典的TSP问题中点与点之间的路径长度为点与点之间的直线距离。天牛须搜索算法:天牛须搜索算法是一种新型生物启发式智能优化算法,其模拟了天牛觅食行为,当天牛觅食时会利用左右触须来感知食物的气味强度,如果左边触须收到的气味强度大,它下一步就往气味强度大的左边飞,否则往右边飞,天牛须搜索算法中天牛的当前位置即为所求问题的可行解,食物的气味强度为适应度函数;传统的天牛须搜索算法多用于求解连续性函数的优化问题,难以求解离散型问题。
技术实现思路
针对上述问题,本专利技术提供了一种基于天牛须搜索算法的旅行商问题求解方法。本专利技术的技术方案是:一种基于天牛须搜索算法的旅行商问题求解方法,具体步骤包括如下:步骤(1.1)、初始化M个城市的坐标,计算各个城市之间的距离,生成距离矩阵D;步骤(1.2)、初始化参数;设置天牛群规模排N,最大迭代次数MAX,更新概率p1、天牛个体Xi中左、右须之间的距离d及局部搜索概率p;步骤(1.3)、初始化天牛群的位置X,计算天牛群中天牛个体Xi的适应度值f(X),记录天牛个体Xi的个体历史最优Pbst和群体历史最优Gbst;步骤(1.4)、求得当前位置中左、右须分别对应的位置:将左、右须之间的距离d作为随机变换的次数,对当前的天牛个体Xi进行d次变换,生成的新个体作为左须Xl,再对当前的天牛个体Xi进行d次变换,生成与左须Xl不同的新个体作为右须Xr;步骤(1.5)、确定左、右须的适应度值分别为f(Xl),f(Xr):如左须Xl的适应度值f(Xl)小于右须Xr的适应度值f(Xr),则计算当前个体位置位移到左须Xl的移动向量;否则计算当前个体位置位移到右须Xr的移动向量;步骤(1.6)、根据天牛个体Xi的位置更新策略,得到天牛个体Xi的新位置并对得到的新位置进行修正操作;步骤(1.7)、计算当前位置和得到的新位置的适应度值分别为f(Xi),若当前位置的适应度值f(Xi)大于新位置的适应度值则更新天牛个体Xi的当前位置,将其移动至新位置否则,则保持当前位置不变;步骤(1.8)、将天牛个体Xi移动至新位置后,再对生成(0,1)之间的随机数r2与局部搜索概率p进行对比,若随机数r2大于局部搜索概率p,则进行局部搜索操作,再进行更新个体历史最优Pbst和群体历史最优Gbst;否则,则直接进行更新个体历史最优Pbst和群体历史最优Gbst;步骤(1.9)、判断是否到达最大迭代次数;若迭代完成,则输出全局最优解及其对应位置,否则,则进行更新参数,并重新返回步骤(1.4)至步骤(1.8)。进一步的,在步骤(1.5)中,所述天牛个体Xi的左、右须的适应度值f(Xl),f(Xr),如下式所示:式中,d(Xij,Xj+1)为天牛个体Xi中第j个城市和第j+1个城市之间的距离。进一步的,在所述步骤(1.6)中,所述的位置更新策略的具体操作方法如下:(1.6.1)、遍历天牛个体Xi中的每一个元素,将生成(0,1)之间的随机数r1与更新概率p1进行对比;(1.6.2)、当随机数r1大于局更新概率p1时,则对位置中的相应元素进行更新生成临时个体位置,若小于则将当前元素置0,其具体如下式所示:式中,表示第t次迭代时的第i个天牛个体Xi,表示移动向量,表示第i个天牛个体Xi更新的位置。进一步的,在所述步骤(1.6)中,进行修正的具体操作步骤如下:(1.7.1)、将序列中未出现的城市进行随机排序;(1.7.2)、将排序后的城市,依次赋值给为0的元素,从而得到一个符合要求的序列。在所述步骤(1.8)中,进行局部搜索操作的具体操作步骤如下:(1.8.1)、产生两个随机数a,b(0<a,b<M),取a,b中的较小值最为开始位置,较大值作为结束位置,对序列进行逆序操作;(1.8.2)、计算逆序后的序列的适应度值f(X),若优于原序列,则进行更新,否则保持原序列不变。进一步的,在所述步骤(1.9)中,所述更新后的参数为天牛个体Xi当前位置中左、右两须之间的距离d,具体如下式所示:dtemp=dtemp*0.996d=floor(1+dtemp)其中,dtemp表示更新后的临时距离,floor(x)表示向下取整,即取不大于x的最小整数。本专利技术的有益效果是:本专利技术所述的一种基于天牛须搜索算法的旅行商问题求解方法,将原本应用于连续域的天牛须搜索算法应用于离散域去解决旅行商问题,同时保持了天牛须搜索算法的原有思想。附图说明图1是本专利技术的结构流程图;图2是本专利技术的实施例对比示意图。具体实施方式为了更清楚地说明本专利技术的技术方案,下面结合附图对本专利技术的技术方案做进一步的详细说明:如图1所述;一种基于天牛须搜索算法的旅行商问题求解方法,具体步骤包括如下:步骤(1.1)、初始化M个城市的坐标,计算各个城市之间的距离,生成距离矩阵D,所述的距离矩阵D=(D1,D2,...,DM);步骤(1.2)、初始化算法的参数;设置天牛群规模排N,最大迭代次数MAX,更新概率p1、天牛个体Xi中左、右须之间的距离d及局部搜索概率p;步骤(1.3)、初始化天牛群的位置X,所述X=(X1,X2,...Xi,XM),式中,Xi为天牛个体;计算天牛群中天牛个体Xi的适应度值f(X),同时记录个体历史最优Pbst和群体历史最优Gbst;步骤(1.4)、求得当前位置中左、右须分别对应的位置:将左、右须之间的距离d作为随机变换的次数,对当前的天牛个体Xi进行次变换,生成的新个体作为左须Xl,再对当前的天牛个体Xi进行d次变换,生成与左须Xl不同的新个体作为右须Xr;步骤(1.5)、确定左、右须的适应度值分别为f(Xl),f(Xr):如左须Xl的适应度值f(Xl)小于右须Xr的适应度值f(Xr),则计算当前个体位置位移到左须Xl的移动向量;否则计算当前个体位置位移到右须Xr的移动向量;步骤(1.6)、根据天牛个体Xi的位置更新策略,得到天牛个体Xi的新位置并对得到的新位置进行修正操作;步骤(1.7)、计算当前位置和得到的新位置的适应度值分别为f(Xi),若当前位置的适应度值f(Xi)大于新位置的适应度值则更新天牛个体Xi的当前位置,将其移动至新位置否本文档来自技高网...
【技术保护点】
1.一种基于天牛须搜索算法的旅行商问题求解方法,其特征在于,具体步骤包括如下:/n步骤(1.1)、初始化M个城市的坐标,计算各个城市之间的距离,生成距离矩阵D;/n步骤(1.2)、初始化参数;设置天牛群规模排N,最大迭代次数MAX,更新概率p
【技术特征摘要】
1.一种基于天牛须搜索算法的旅行商问题求解方法,其特征在于,具体步骤包括如下:
步骤(1.1)、初始化M个城市的坐标,计算各个城市之间的距离,生成距离矩阵D;
步骤(1.2)、初始化参数;设置天牛群规模排N,最大迭代次数MAX,更新概率p1、天牛个体Xi中左、右须之间的距离d及局部搜索概率p;
步骤(1.3)、初始化天牛群的位置X,计算天牛群中天牛个体Xi的适应度值f(Xi),记录天牛个体Xi的个体历史最优Pbst和群体历史最优Gbst;
步骤(1.4)、求得当前位置中左、右须分别对应的位置:将左、右须之间的距离d作为随机变换的次数,对当前的天牛个体Xi进行d次变换,生成的新个体作为左须Xl,再对当前的天牛个体Xi进行d次变换,生成与左须Xl不同的新个体作为右须Xr;
步骤(1.5)、确定左、右须的适应度值分别为f(Xl),f(Xr):如左须Xl的适应度值f(Xl)小于右须Xr的适应度值f(Xr),则计算当前个体位置位移到左须Xl的移动向量;否则计算当前个体位置位移到右须Xr的移动向量;
步骤(1.6)、根据天牛个体Xi的位置更新策略,得到天牛个体Xi的新位置并对得到的新位置进行修正操作;
步骤(1.7)、计算当前位置和得到的新位置的适应度值分别为若当前位置的适应度值f(Xi)大于新位置的适应度值则更新天牛个体Xi的当前位置,将其移动至新位置否则,则保持当前位置不变;
步骤(1.8)、将天牛个体Xi移动至新位置后,再对生成(0,1)之间的随机数r2与局部搜索概率p进行对比,若随机数r2大于局部搜索概率p,则进行局部搜索操作,再进行更新个体历史最优Pbst和群体历史最优Gbst;否则,则直接进行更新个体历史最优Pbst和群体历史最优Gbst;
步骤(1.9)、判断是否到达最大迭代次数;若迭代完成,则输出全局最优解及其对应位置,否则,则进行更新参数,并重新返回步骤(1.4)至步骤(1.8)。
2.根据权利要求1所述的一种基于天牛须搜索算法的旅行商问题求解方法,其特征在于,在步骤(1.5)中,所述天牛个体Xi的左、右须的适应度值f(Xl),f(Xr),如下...
【专利技术属性】
技术研发人员:周宁宁,周一,
申请(专利权)人:南京邮电大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。