求解TSP问题的人工鱼群算法

摘要:人工鱼群算法在函数优化问题中取得了较好的应用,但在组合优化问题中的应用相对较少。因此,文中用人工鱼群算法来求解TSP问题,并与标准粒子群算法和基本遗传算法进行了比较分析。通过仿真实验对公认的TSP测试数据中算例Oliver30进行测试并与目前已知最优解进行了对比,结果表明,人工鱼群算法解决TSP问题时可以收敛到已知最优解,并且解的质量要优于标准粒子群算法和基本遗传算法。

关键词:旅行商问题;人工鱼群算法;聚群行为;觅食行为;追尾行为

中***分类号:TP18 文献标识码:A 文章编号:1009-3044(2014)19-4527-03

Artificial Fish Swarm Algorithm for solving TSP

CHENG Chun-ying1, LI Hai-feng2, BAO Chun-hua1

(1.College of Computer Science and Technology, Inner Mongolia University for Nationalities, Tongliao 028043, China;2. Inner Mongolia Coal Industry Technical school, Tongliao 028021, China)

Abstract: Artificial fish swarm algorithm is well applied in function optimization problems, but it is relatively less used in combinatorial optimization problem。In this paper, using artificial fish swarm algorithm to solve TSP problem, and with the standard particle swarm optimization algorithm and analyzed the basic genetic algorithm.This paper compares the experimental simulation of recognized Oliver 30 TSP test data of an example test and the known optimal solution, and the quality of the solution is better than the standard particle swarm algorithm and the basic genetic algorithm.

Key words: traveling salesman problem; artificial fish swarm algorithm; the swarming behavior; the preying behavior; the following behavior

TSP(Traveling Salesman Problem)问题,即旅行商问题,是经典的组合优化问题。 在许多工程应用问题中,如物流配送、网络布线和电路板钻孔等,都可以归结为TSP求解问题。目前,对于解决TSP问题人们提出了很多有价值的方法,如模拟退火算法[1]、遗传算法[2]、蚁群算法[3]和粒子群算法[4]等智能算法。而人工鱼群算法(Artificial Fish Swarm Algorithm, AFSA)[5-6]是李晓磊等人于2002年在对动物群体智能行为研究的基础上提出的一种新型仿生优化算法,该算法主要利用鱼群的三大基本行为分别为觅食、聚群和追尾行为,采用自上而下的寻优模式从构造个体的底层行为开始,通过鱼群中个体的局部寻优,达到全局最优值在群体中突现出来的目的。

人工鱼群算法主要应用还集中在解决函数优化问题,在组合优化问题中的应用较少,尤其是TSP问题中的应用少之又少。为此本文利用人工鱼群算法来解决TSP问题,并与标准粒子群算法和基本遗传算法进行了比较分析。

1 旅行商问题

TSP问题,即旅行商问题,是经典的组合优化问题之一。旅行商问题的基本描述是:假设有一个旅行商人要访问[n]个城市,他必须选择要走的路径,选择路径的限制条件是每个城市只能访问一次,而且最后要回到原来出发的城市。路径的选择目标是要求求出的路径为所有路径之中的最短路径。简单说,旅行商问题就是需要寻找这样的一条旅行线路:从某个城市开始,经过每个城市一次且仅一次,最终回到出发城市,使得旅游的路经总长度为最短。

TSP问题的数学模型[7]可描述为:

[minf(X)]

[s.t.g(X)≥0,X∈D] (1)

公式(1) 中,[f(X)]为目标函数,[g(X)]为约束函数,[X]为决策变量,[D]表示有限个点组成的集合。通常,一个组合优化问题可用三个参数[(D,F,f)]来表示,其中[D]表示决策变量的定义域,[F={XX∈D,g(X)≥0}],[f]表示目标函数,满足的可行解[X′]称为问题的最优解。

2 人工鱼群算法

人工鱼个体的状态可表示为向量[X=(x1,x2,...,xn)]其中[xi(i=1,2,...,n)]为要寻优的变量,人工鱼当前所在位置的食物浓度可表示为[Y=f(X)],其中[X]为目标函数值,人工鱼个体之间的距离可表示为[dij],[visual] 表示人工鱼的感知范围,[step]表示人工鱼移动的步长,[δ]表示拥挤度因子。

2.1 觅食行为

设人工鱼当前状态[Xi],在其感知范围内(即[dij

2.2聚群行为

设人工鱼当前状态为[Xi], 探索当前感知范围内(即[dij

2.3 追尾行为

人工鱼当前状态为[Xi],探索感知范围内(即[dij

2.4 随机行为

随机行为的实现较简单,就是在视野中随机选择一个状态,然后向该方向移动,其实它是觅食行为的一个缺省行为。

2.5公告板

公告板记录当前最优人工鱼个体的状态。各人工鱼个体每次行动完毕后与公告板上的人工鱼个体状态比较,如果自身优于公告板上人工鱼个体状态,就用自身状态更新公告板上人工鱼群个体状态。

3 求解TSP问题的人工鱼群算法

人工鱼群算法具有把握搜索方向和在一定程度上避免陷入局部最优解的特性,但当一部分人工鱼处于随机移动时,收敛速度就会减慢。为了克服此缺点,在算法中设立公告板以此记录最优人工鱼个体状态。每条人工鱼在行动一次以后将自身当前状态的值与公告板的当前状态进行比较,如果优于公告板,则用自身状态取代公告板状态。

3.1求解TSP问题的人工鱼群算法步骤

求解TSP问题的人工鱼群算法实现的具体步骤如下:

步骤1 产生初始化种群:定义最大迭代次数num,拥挤度因子[δ],视野范围visual,试探次数trynumber并在可行域内随机生成N条人工鱼,形成初始鱼群。

步骤2 计算初始鱼群各人工鱼当前状态的值,比较大小,最小值进入公告板,并且把对应的人工鱼状态赋值给公告板。

步骤3 按照人工鱼群算法的行为准则,进行追尾行为和聚群行为,缺省行为为觅食行为。如果进行了追尾行为和聚群行后,最好值还是没有变化就进行随机行为。

步骤4 各人工鱼进行行为选择后,检查自身的值与公告板的值,如果优于公告板,则以自身取代,同时更新公告板上的人工鱼状态。

步骤5 判断是否满足终止条件,若不满足终止条件则转到步骤3执行,进行下一步鱼群优化过程,否则转到步骤6执行。

步骤6 算法终止,输出公告板上的最优解人工鱼群状态值。

3.2算例及仿真研究

算法的参数取为最大试探次数为100,人工鱼个数为10,最大迭代次数取100,拥挤度因子0.8,感知范围为10,采用Matlab7.0为编程工具,实验环境为Intel(R)Core(TM)i3,2.13GHz CPU,2GB内存,Windows 7操作系统。为了便于比较,该文将人工鱼群算法与标准粒子群算法和基本遗传算法分别连续进行30次实验,对其结果进行比较分析。该文使用TSP问题中的标准测试算例TSPLIB[8]库中的Oliver30(30个城市),Oliver30算例的目前已知最优解为423.7406。通过仿真实验对其结果进行比较分析,仿真结果如表1所示。

标准粒子群算法中粒子数为100,惯性权重[w]从1.4线性递减到0.5,加速常数[c1=c2=1.2],最大迭代次数为1000。遗传算法中,最大代数为1000,种群为100,交叉概率为0.8,变异概率为0.05,实验结果如表1所示,人工鱼群算法的得到最优路径如***1所示,寻优曲线如***2所示。算例Oliver30如下:

City[30]={ {41,94},{37,84},{54,67},{25,62},{7, 64},{2, 99},{68,58}, {71,44},{54, 62},

{83,69},{64,60},{18,54},{22,60},{83,46},{91,38},{25,38},{24,42},{58,69},{71,71},{74,78},

{87,76},{18,40},{13, 40},{82,7},{62,32},{58,35},{45,21},{41, 26},{44,35},{4,50}}

表1 几种智能算法试验结果比较

[算法 平均值 最好值 最差值\&人工鱼群算法 424.1245 423.7406 425.6024

标准粒子群算法 450.2314 425.5416 480.1452

基本遗传算法 430.5285 427.6918 437.4521\&]

由表1中的实验结果可知,人工鱼群算法得到的最优解为423.7406,与当前已知的Oliver30问题的最优解一致。标准粒子群算法的最优解为425.5416,遗传算法的最优解为424.6918,都没有收敛到当前最优解。根据***1可知,人工鱼群算法求得的最优路径也于已知的最好解对应的路径是一致的。

***1 Oliver30问题最优路径 ***2 Oliver30问题寻优曲线

4 结论

本文将人工鱼群算法应用于解决TSP问题,并将该算法与标准粒子群算法和基本遗传算法进行了比较分析。根据仿真实验结果可知,在解决算例Oliver30问题时,该文中的人工鱼群算法能够获得已知的最优解,且解的平均值要优于标准粒子群算法和基本遗传算法。

参考文献:

[1] 邓士杰,支建庄,于贵波.栾***英基于模拟退火算法的TSP问题研究[J].价值工程,2012(28) :65-68.

[2] 谢胜利,唐敏.求解TSP问题的一种改进的遗传算法[J].计算机工程与应用,2002,38(8) :58-60.

[3] 翁国栋.蚁群优化算法与遗传算法在TSP问题上的融合[J].福建电脑,2006(2):115-116.

[4] 庄严.粒子群优化算法在TSP问题中的应用[J].科技信息,2008(30):184-185.

[5] 李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践,2002,22(11):2-38.

[6] 李晓磊.组合优化问题的人工鱼群算法应用[J].山东大学学报:工学版,2004,34(5):64-67.

[7] 邢文训,谢金星.现代优化技术方法[M].北京:清华大学出版社,1999.

[8] http://iwr.uni-heidelberg.de/iwr/comopt/soft-ware/TSPLIB95.

求解TSP问题的人工鱼群算法

转载请注明出处学文网 » 求解TSP问题的人工鱼群算法

学习

《霹雳MIT》

阅读(42)

本文为您介绍《霹雳MIT》,内容包括霹雳mit完结小说,霹雳mit原版小说。2.许万欣告诉陶老师网球社出现偷拍色狼时突然收到扑克短信,写着“你被杀死了”!

学习

微笑在我心作文700字

阅读(24)

本文为您介绍微笑在我心作文700字,内容包括微笑在心间作文700字,微笑在我心作文。生活中,人们都有各种表情,最令人欣赏的就是微笑。微笑代表着一个人的气质和修养,只有真心微笑,对方才会感受到你的那一颗温暖的心。如果一个人只擅长虚伪的微

学习

人物外貌描写

阅读(14)

本文为您介绍人物外貌描写,内容包括人物外貌描写摘抄,人物外貌描写原文。――叶辛《蹉跎岁月》

学习

“草叶”惠特曼

阅读(15)

本文为您介绍“草叶”惠特曼,内容包括惠特曼草叶集电子在线阅读,惠特曼草叶集英文原著。据说,他之所以给自己诗集取名为《草叶集》,是寓意“草叶”随处生长,最富有生命力。它象征着普通人,也象征着发展中的美国。同时,“草叶”也象征惠特曼自

学习

分子势能的变化

阅读(21)

本文为您介绍分子势能的变化,内容包括分子势能的变化曲线与原因,分子势能的进一步讲解。A.增加

学习

生态农业的主要模式及其发展研究

阅读(26)

本文为您介绍生态农业的主要模式及其发展研究,内容包括生态农业模式类型主要有哪些,桑基鱼塘生态农业模式。摘要:生态农业是一个对生态环境发展有利的农业生态经济复合系统,其对农业可持续发展具有重要意义。在实践中,各国家和地区结合当地

学习

给我一杯忘情水

阅读(14)

本文为您介绍给我一杯忘情水,内容包括给我一杯忘情水,给我一杯忘情水歌词。大陆新武侠小说的代表人物沧月在她的小说中也设定了这样一种能让人“洗去前尘”的药物“洗尘缘”,被逼服下“洗尘缘”后。深深爱着情郎的女剑客嘶吼着用剑在自己

学习

强壮身体小功法

阅读(29)

本文为您介绍强壮身体小功法,内容包括强壮前列腺的功法,道家膝盖强壮功法。身体的强壮与人体的健康密切相关,笔者运用强壮身体功练习之,发现其效果甚效,现介绍如下:

学习

佳能IXUS 95 IS与佳能IXUS85 IS

阅读(17)

本文为您介绍佳能IXUS 95 IS与佳能IXUS85 IS,内容包括佳能ixus95i与佳能ixus95is的区别,佳能ixus200与佳能ixus95is。佳能IXUS95IS

学习

孙武:兵圣传奇

阅读(49)

本文为您介绍孙武:兵圣传奇,内容包括经典传奇兵圣孙武,兵圣孙武怎么死的。生卒:不详,约公元前54-7-公元前485年

学习

阳春白雪与下里巴人

阅读(21)

本文为您介绍阳春白雪与下里巴人,内容包括下里巴人阳春白雪的意思,阳春白雪下里巴人啥意思。“阳春白雪”是战国时期楚国的一种高雅的歌曲,后来泛指那些不通俗的、比较高深的文学艺术。而“下里巴人”则是同时期同地域的民间歌曲,后来泛

学习

浅析两德统一的原因

阅读(22)

本文为您介绍浅析两德统一的原因,内容包括两德统一的历史,两德统一德国付出的代价。[关键词]东德;西德;两德统一;原因

学习

凯特·米德尔顿

阅读(20)

本文为您介绍凯特·米德尔顿,内容包括凯特·米德尔顿,凯特米德尔顿写真。平民出身端庄淑女

学习

关于对社会主义阶段性的认识

阅读(21)

本文为您介绍关于对社会主义阶段性的认识,内容包括对我国社会主义阶段的理解和认识,对当代社会主义的几点认识。摘要:任何事物的发展都是由小到大、由简到繁、由低级到高级、由量变到质变的过程。因此,发展的过程可以分为一定的阶段。社会

学习

电磁感应中感应电荷量的求解方法

阅读(21)

本文为您介绍电磁感应中感应电荷量的求解方法,内容包括电磁感应的电荷量问题,电磁感应中求电荷量的方法总结。回路中磁通量发生变化或部分导体切割磁感应线时,由于感应电场或洛伦兹力的作用使电荷发生定向移动而形成感应电流.在Δt时间内

学习

“费米估算法”的奥秘

阅读(20)

本文为您介绍“费米估算法”的奥秘,内容包括费米估算方法,费米估算法完整版。现在有一个问题:在一艘航行在太平洋的游船上,导航员称游船正航行在地球上最深的水域――马里亚纳海沟上.这时,一位游客一不小心,把一颗重5千克的水晶球掉进了海里

学习

MPSK信号一种有效的SNR估计算法

阅读(17)

摘要:对接收信号进行信噪比估计是许多通信系统要完成的重要工作。具有恒包络特性的MPSK信号是常见的调制信号,对该类信号提出了一种有效的信噪比估计算法,该算法利用信号包络的均值和方差进行估计,具有计算量小复杂度低的优点。用Matlab仿真

学习

MATPOWER平台下配电网潮流算法的应用及比较

阅读(24)

摘要:提出了配电网潮流算法在MATPOWER平台下应用的解决方案。同时基于MATPOWER平台,针对辐射状配电网,对牛顿拉夫逊法和前推回代法在收敛性、计算速度、稳定性以及网孔处理能力上进行了细致的研究比较。为配电网潮流计算系统的核心算法选取

学习

BFGS算法的最优化问题及在MATLAB中的实现

阅读(25)

本文为您介绍BFGS算法的最优化问题及在MATLAB中的实现,内容包括fpb算法matlab,matlab最佳优化计算方法。摘要:对拟牛顿方法中的BFGS算法进行阐述,基于matlab软件对非线性无约束优化问题进行了仿真研究,结果表明利用matlab软件解答非线性无

学习

现代密码算法分析

阅读(66)

本文为您介绍现代密码算法分析,内容包括密码学算法与分析,现代密码算法主要分为。摘要:随着网络技术的发展,网络安全也就成为当今网络社会的焦点,几乎没有人不在谈论网络上的安全问题,密码技术是信息安全的核心技术。本文对现代几种比较

学习

极限算法的几种特殊技巧

阅读(38)

本文为您介绍极限算法的几种特殊技巧,内容包括多种混合气体爆炸极限算法,第一重要极限算法。【摘要】极限是微积分学最重要的概念之一,是高等数学后续知识的基础.而极限的计算是微积分学的基本运算之一.本文介绍了一些特殊的极限计算方法

学习

模糊推理算法的研究

阅读(17)

本文为您介绍模糊推理算法的研究,内容包括模糊推理系统实验总结,模糊推理算法的优缺点。摘要:随着科技的快速发展,模糊推理算法逐渐成为信息技术中处理模数信息的重要工具,受到计算机科学领域的广泛关注。作为推理的重要分支,在计算机网络的