用于寻找旅行商最优路径的方法技术

技术编号:14401854 阅读:71 留言:0更新日期:2017-01-11 14:22
本发明专利技术公开了一种用于寻找旅行商最优路径的方法,主要解决现有的蚁群算法在寻找旅行商最优路径时,易陷入局部最优解,最优路径长度不够准确的问题。其实现步骤为:1.输入旅行商TSPLIB数据库里城市坐标数据,参数初始化;2.设置计算全局最优路径的最大循环次数;3.设循环次数Nc=1,通过蚁群算法开始第一次循环,计算第一次最优路径长度Cb,完成信息素浓度更新;4.返回步骤3,循环次数Nc加1,本次循环完成后,记录本次最优路径长度;5.判断循次数Nc是否达到1000次,若是,循环结束,输出最终的全局最优路径长度。本发明专利技术提高了寻找旅行商最优路径的准确度,避免陷入局部最优解,可用于寻找旅行商最优路径。

【技术实现步骤摘要】

本专利技术属于数据处理
,特别涉及一种群体智能优化方法,可用于寻找旅行商的最优路径。技术背景近30年来,优化领域出现了重大变革,人工智能和人工生命技术为优化领域注入了新的活力,一系列基于仿生原理,通过模拟自然现象或过程的现代启发式优化算法相继提出。蚁群优化算法是一种模拟蚂蚁觅食行为的模拟优化算法,蚁群算法在解决旅行商TSP问题、交通运输、指派问题、以及车间调度问题等离散邻域优化问题有着自身的优势,并取得了很大的进展与收获。蚁群算法的理论研究和实际应用表明,它是一种很有前途的仿生优化算法。随着人类认识的进步和社会发展的加速,仿生智能及最优化系统理论将越来越成为科学认识和工程实践的有力工具。在当今社会中,随着人工智能和网络技术的飞速发展,科学技术与其他的多种学科相互交叉,相互渗透和融合,不仅给人们的生活、学习和工作等方面带了便利,而且也从根本上改变了人类的生活和生产。与此同时,随着人类生活空间的不断扩大和对世界认识水平的不断提高,人们又对科学技术的发展提出了更高、更多的要求,期待着更多的研究学者对它进行不断的研究和提高,其中高效的优化技术和智能计算的要求也进一步的迫切需求。众所周知,社会性昆虫如蜜蜂,蚂蚁等,虽然其单个个体的力量很小,行为方式很简单、随机,但是它们却可以凭借集体的力量进行一些复杂的社会性活动,来更好的完成单个个体很难甚至不能完成的行为或活动,如它们可以通过社会分工等方式来更快的找到食物,共同的建造巢穴和防止外敌入侵等等。这种群体所表现出来的“智能”,就可以称之为群体智能。群体智能中的群体是指“一组相互之间可以进行间接通信的主体,这组主体能够合作进行分布式问题求解”。而所谓群体智能是指“无智能的主体通过合作表现出智能行为的特性”。蚁群算法正是群体智能算法中的一个重要分支。在求解离散型组合优化的问题上,蚁群算法表现出了其他进化算法无法比拟的优越性。蚁群算法不仅具有鲁棒性、分布式计算、正反馈性、易于和其他的智能算法相结合的特点,而且还有智能搜索、全局优化等优势。该算法已经引起了众多专家和学者的注意,现在正被越来越多的研究者关注和探讨,算法的理论得到不断的完善,应用范围也普及到许多的科学技术及工程领域,是一种有良好发展前景的模拟进化算法。蚁群算法应用在旅行商TSP问题上取得了很好的效果。旅行商TSP问题是组合优化中最著名的问题之一,它易于描述而难于求解。旅行商TSP问题问题描述如下:给定n个城市和每两个城市间的距离(或给定n个城市和各个城市的坐标,这样同样可以求的任意两个城市间的距离)。一个旅行商人自某一个城市出发巡回售货,旅行商应该如何选择路线,使每个城市经过一次且仅一次,以完成一个回路,并且路径最短。意大利学者Dorigo等人提出的基本蚁群算法,在求解30个城市旅行商TSP问题,得到了非常满意的结果,并将蚁群算法与其他一些算法,如爬山法、模拟退火算法、禁忌搜索算法、遗传算法和进行规划进行了比较,结果显示对于多个不同的实例,蚁群算法比这些算法都能收敛到更好的解。这个结果使得许多学者收到了鼓舞,并纷纷加入到蚁群算法的研究中来。但是随着研究的深入,再将基本蚁群算法应用到更大规模的旅行商TSP问题上时,计算结果很不理想。这表明基本蚁群算法在求解大规模复杂问题上能力有限。面对较大规模的旅行商TSP问题时,存在很多局部极小点,单一的信息素调整方案使得基本蚁群算法较容易陷入这些局部极小点,从而出现停滞现象。同时,算法需要较长的搜索时间。在Dorigo等人提出基本的蚁群算法后,基于前面发现的问题,又提出了新的ACS算法,该算法能很好的解决之前基本蚁群算法不能解决大规模的TSP问题,在该算法中,蚂蚁数为10个,基本蚁群算法的蚂蚁数是等于城市数的。该算法的收敛速度很高,搜索时间能缩短不少,所求的最优解较基本蚁群算法有不少提升,但是这种算法不是很稳定,会陷入局部最优解,导致程序停滞,最终求得的最优路径不准确。
技术实现思路
本专利技术的目的在于克服已有技术的缺点,提出一种用于寻找旅行商最优路径的方法,避免陷入局部最优解,提高最优路径的准确性。实现上述目的技术思路是:对现有的蚁群算法进行改进,即在刚开始时为各个路径设置相同的信息素浓度,使蚂蚁按照状态转移方程选择下一条路径,直到完成一次遍历;计算出本次的最优路径;然后在蚂蚁经过的路径上增加一定量的信息素,并按照信息素新的更新方式进行更新,进入下一次循环,直到循环结束,输出最终的最优路径。根据上述思路,本专利技术的技术方案包括如下:(1)数据预处理步骤:(1a)输入旅行商TSPLIB数据库里城市坐标数据,该城市坐标数据表示x个城市的坐标位置,x为大于10的整数,用i、j分别表示n个城市中的两个不同城市,并将这两个城市的连线视为一条边(i,j);(1b)初始化边(i,j)上的信息素浓度为τij(0)=0.1,设置轨迹相对重要性参数α=1,见度的相对重要性参数β=2;(2)设置计算全局最优路径的循环次数Nmax=1000;(3)设循环次数Nc=1,通过蚁群算法开始第一次循环,计算第一次最优路径长度Cb,完成信息素浓度更新;(3a)将10个蚂蚁随机分布于10个城市;(3b)计算第一只蚂蚁路径长度:(3b1)设蚂蚁循环遍历次数N1=x;(3b2)将第1只蚂蚁访问过的城市集设置为集合U,其他未访问的城市集设置为集合A,由状态转移概率公式计算出第1只蚂蚁从当前城市i到集合A中未访问城市j的状态转移概率值Sij,(3b3)对集合A中的n个城市分别计算其状态转移概率值,得到状态转移概率集合:S={Si1,Si2…Sij…Sin本文档来自技高网
...
用于寻找旅行商最优路径的方法

【技术保护点】
用于寻找旅行商最优路径的方法,包括:(1)数据预处理步骤:(1a)输入旅行商TSPLIB数据库里城市坐标数据,该城市坐标数据表示x个城市的坐标位置,x为大于10的整数,用i、j分别表示n个城市中的两个不同城市,并将这两个城市的连线视为一条边(i,j);(1b)初始化边(i,j)上的信息素浓度为τij(0)=0.1,设置轨迹相对重要性参数α=1,见度的相对重要性参数β=2;(2)设置计算全局最优路径的循环次数Nmax=1000;(3)设循环次数Nc=1,通过蚁群算法开始第一次循环,计算第一次最优路径长度Cb,完成信息素浓度更新;(3a)将10个蚂蚁随机分布于10个城市;(3b)计算第一只蚂蚁路径长度:(3b1)设蚂蚁循环遍历次数N1=x;(3b2)将第1只蚂蚁访问过的城市集设置为集合U,其他未访问的城市集设置为集合A,由状态转移概率公式计算出第1只蚂蚁从当前城市i到集合A中未访问城市j的状态转移概率值Sij,(3b3)对集合A中的n个城市分别计算其状态转移概率值,得到状态转移概率集合:S={Si1,Si2…Sij…Sin},其中Sij表示城市i到城市j的状态转移概率值,j=1,2,…,n,n为集合A中未访问的城市的数量,n=1,2,…,x;(3b4)找出状态转移概率集合S中最大值Sik,k=1,2,…,j,则城市k为蚂蚁要移动的一下个城市;(3b5)将第一只蚂蚁移动到城市k,并在集合A中剔除城市k,在集合U中加入城市k,更新集合A和集合U;(3b6)第1只蚂蚁移动到城市k后,蚂蚁返回步骤(3b3),继续访问集合A中的第j+1个城市,直到集合A中没有城市,即N1=x,第1只蚂蚁遍历完成;(3b7)在第1只蚂蚁遍历完所有城市后,计算第1只蚂蚁所访问城市的路径总长度:其中dij表示第i个城市与第j个城市之间的距离;(3c)剩下的9只蚂蚁按照(3b)的方法遍历所有城市,计算9只蚂蚁路径总长度分别为C2,C3,C4,C5,C6,C7,C8,C9,C10,得到路径总长度集合C={C1,…Ca…C10},其中Ca表示第a个蚂蚁的路径总长度,a=1,2,…,10;(3d)找出路径总长度集合C中的最小值Cmin,并将该最小值Cmin赋给最优路径长度Cb(3e)更新边(i,j)上的信息素浓度:τij(t+m)=(1‑ρ)·τij(t)+Δτij,其中,τij(t+m)为t+m时刻边(i,j)上的信息素浓度,m=1,2,3···1000,ρ表示信息素挥发系数,1‑ρ为信息素残留因子,ρ=0.01,τij(t)为t时刻边(i,j)上信息素浓度,表示在本次循环中边(i,j)上的信息素浓度增量,其中,ca表示第a只蚂蚁路径总长度,a=1,2,…,10,Q为路径长度参数,Q=1,Cb表示最优路径长度;(3f)当完成所有边上信息素浓度更新之后,记录τij(t+m)和最优路径长度Cb;(4)循环次数Nc加1,返回步骤(3),本次循环完成后,记录本次最优路径长度Cbl,最优路径长度Cbl=min{Cb,Cbl},其中min{Cb,Cbl}表示Cb和Cbl中值较小的一个,Cbl为第Nc次循环的最优路径长度,l=1,2,…,1000;(5)判断循环次数Nc,当循环次数达到预定的循环次数1000时,循环结束,输出最终的全局最优路径长度Cb1000。...

【技术特征摘要】
1.用于寻找旅行商最优路径的方法,包括:(1)数据预处理步骤:(1a)输入旅行商TSPLIB数据库里城市坐标数据,该城市坐标数据表示x个城市的坐标位置,x为大于10的整数,用i、j分别表示n个城市中的两个不同城市,并将这两个城市的连线视为一条边(i,j);(1b)初始化边(i,j)上的信息素浓度为τij(0)=0.1,设置轨迹相对重要性参数α=1,见度的相对重要性参数β=2;(2)设置计算全局最优路径的循环次数Nmax=1000;(3)设循环次数Nc=1,通过蚁群...

【专利技术属性】
技术研发人员:刘靳袁勇朱明哲邓军赵航周永杰
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1