一种求解TSP的蚁群算法.doc

上传人:新** 文档编号:544826590 上传时间:2023-09-27 格式:DOC 页数:5 大小:160.51KB
返回 下载 相关 举报
一种求解TSP的蚁群算法.doc_第1页
第1页 / 共5页
一种求解TSP的蚁群算法.doc_第2页
第2页 / 共5页
一种求解TSP的蚁群算法.doc_第3页
第3页 / 共5页
一种求解TSP的蚁群算法.doc_第4页
第4页 / 共5页
一种求解TSP的蚁群算法.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《一种求解TSP的蚁群算法.doc》由会员分享,可在线阅读,更多相关《一种求解TSP的蚁群算法.doc(5页珍藏版)》请在金锄头文库上搜索。

1、一种求解TSP的蚁群算法林家恒 贺庆 (山东大学控制科学与工程学院,济南250061)提要 本文提出了一种求解TSP问题的算法蚁群算法,该算法通过模拟蚁群搜索食物的过程,可求解TSP问题,算法的主要特点是:正反馈、分布式计算、与某种启发式算法相结合。正反馈过程使得该方法能很快发现较好解;分布式计算使得该方法易于并行实现;与启发式算法相结合,使得该方法易于发现较好解。计算机仿真结果表明了该算法的有效性。关键词 TSP ,蚁群算法,一 、引言 TSP(Travelling Salesman Problem)又称货郎担或巡回售货员问题,在运筹学、管理科学及工程实际中具有广泛的用途。及工程实际中具有广

2、泛的用途。TSP问题是组合优化中的著名难题,一直受到人们的极大关注。由于其NP难题性质,至今尚未完全解决。 TSP问题可以描述为:有N个城市,一售货员从起始城市出发,访问所有的城市一次,最后回到起始城市,求最短路径。TSP问题除了具有明显的实际意义外,有许多问题都可以归结为TSP问题。目前针对这一问题已有许多解法,如穷举搜索法(Exhaustive Search Method), 贪心法(Greedy Method), 动态规划法(Dynamic Programming Method)分支界定法(Branch-And-Bound),遗传算法(Genetic Agorithm)等。本文介绍了一种

3、求解TSP问题的算法蚁群算法,该算法是一种新型的模拟进化算法,该算法比较容易实现,而且比较灵活,经过仿真试验,证明是一种解决TSP问题有效的方法。二、蚁群算法原理蚁群算法是受到对真实的蚁群行为的研究启发而提出的,像蚁群、蜜蜂等群居昆虫,虽然单个昆虫的行为很简单,但是组成的群体却表现出极其复杂的行为。仿生学家经过大量细致观察研究发现,蚂蚁个体之间是通过一种称为外激素的物质进行信息传递的,蚂蚁在运动过程中,能够在它所经过的路径上留下外激素,而且蚂蚁在运动过程中能够感知这种物质,并且以此指导自己的运动方向,所以,大量的蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象。我们并不想完全模拟蚁群,而是对

4、使用人工蚁群方法来解决优化问题感兴趣因此,我们的蚁群与实际的蚁群有三个主要的区别: E人工蚁群具有记忆性,人工蚁群不是完全盲目的, D人工蚁群处在离散的时间环境中。 H C 虽然有区别,我们仍然可以用蚂蚁群的行为来形象地说明人工蚁群 B 算法的原理。如图所示,设,0.5。我们假定在每个离散的等时间间隔:,有个 A蚂蚁从到达,同时有个蚂蚁从到,每只蚂蚁的速度为 图,并且,每有一只蚂蚁经过时,在时间留下信息素密度为。 蚂蚁在选择路径时,那些有更多蚂蚁曾经选择过的路径(也就是具有更高信息素密度的路径),被再次选中的可能性最大。当时,没有信息素,有只蚂蚁分别在和。蚂蚁走哪条道路是完全随机的。因此,在每

5、个点上蚂蚁将有只经过,另外只经过。当时有只蚂蚁从到,它们发现指向道路上的信息素密度是,是由从出发的蚂蚁留下的;指向道路上的信息素密度是,其中是由出发蚂蚁留下,另外是从出发经过已经到达的蚂蚁留下。因此,选择经过到的可能性就更大,从出发到的只蚂蚁也面临着同样的选择,由此产生一个正反馈过程,选择经过的蚂蚁越来越多,直到所有的蚂蚁都选择这条较近的道路。蚁群算法就是利用蚂蚁的这一特性,解决最优化问题。三、蚁群算法解决问题我们来介绍一下如何用蚁群算法求解个城市的问题。设为城市,之间的几何距离,。设 表示时刻位于城市的蚂蚁的个数,蚂蚁总数,表示时刻在连线上残留的信息量,初始时刻各条路径上的信息量为(为常数)

6、。用参数表示信息量的保留度,则经过个时刻后,路径上的信息量根据下式作调整: 表示第只蚂蚁在本次循环中留在路径上的信息量,表示本次循环所有经过的蚂蚁留在上的信息量。 定义。蚂蚁(,)在运动过程中,表示在时刻蚂蚁由位置转移到位置的概率: 我们用记录蚂蚁目前已经走过的城市集合,allow表示蚂蚁下一步允许选择的城市集合,它等于全部的城市集合除去第只蚂蚁已走过的集合。 定义为第只蚂蚁在本次循环中走过的路径和。 用蚁群算法解决问题是一个递推过程 ,当时,将蚂蚁放在各城市,设定每条路径上的信息量初值,每只蚂蚁根据公式决定的概率从城市到城市。表示曾经有多少蚂蚁经过路径(,);说明较近的城市有更大的可能性被选

7、中。,用来控制两者对蚂蚁选择的影响力程度。经过一个循环后,根据公式计算更新每条路径的信息量。将所有的复原,最后求出本次循环的最短路径。这个过程不断重复,直到所有的蚂蚁都选择同样的路径,或者循环次数达到预先设定的最高次数。解决个城市的问题算法设计如下: 初始化: 设定,循环计数器,对每条路径设定初始信息量C,将只蚂蚁放在个城市上(为了使问题简化,设定)。 设定集合的索引,对从到,把第只蚂蚁放在起始位置,对应的设定集合 重复下面的步骤,直到集合tabu满为止(这一步将重复次):设定;对从到,根据公式确定的概率,选择下一步移动的目标城市在时间时,第只蚂蚁所在的城市是;将第只蚂蚁移到城市;把加入到集合

8、中。 对从到:将第只蚂蚁从移动到;计算第只蚂蚁所走过的路程和,并更新最小路径;对每条路径(,):; 对每条路径(,)根据计算;设定;设定;对每条路径(,),设定。 如果,则清空所有的集合转到第二步;否则,得出最短的路径。在这儿我们用的是ant-cycle算法,这种算法,每当结束一个循环后,根据公式计算。另外还有两种蚁群算法,不需要等到循环结束,每一步都更新,一种称为ant-density,公式:=另一种称为ant-quantity,公式:=四、仿真结果及分析我们采用ant-cycle算法,以三十个城市为例,在pentium550pc机上运行通过,我们对各参数分别设如下值进行仿真0,0.5,1,

9、2,5,0,1,2,5,0.3,0.5,0.8,0.9,100,1000,2000.3000,1,100,1000。取有代表性的结果列表如下:行号最优路径和0.31500623.4810.520.51200242.7940.520.510200242.8840.520.5100200241.766150.5100200202.196150.5100500196.652150.51001000193.941通过大量的实验我们发现各参数影响如下:决定信息量对路径选择的影响程度,决定路径的长度对选择的影响程度。经过试验发现当,时可以取得较好解;的值对结果并没有多大的影响;循环次数越多,最优化结果越好,但是达到次以后,在提高循环次数就没有太多的影响。当=1,=5,=1000时,所得出的模拟结果图型如下:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号