动态自适应蚁群算法求解TSP问题

合集下载

蚁群算法在解决TSP问题中的应用

蚁群算法在解决TSP问题中的应用

蚁群算法在解决TSP问题中的应用作者:陈灵佳来源:《电子技术与软件工程》2017年第10期文章首先对蚁群算法与TSP问题进行简要介绍,在此基础上对蚁群算法在解决TSP问题中的应用进行论述。

期望通过本文的研究能够对TSP问题的解决有所帮助。

【关键词】蚁群算法 TSP问题最优解1 蚁群算法与TSP问题简介1.1 蚁群算法蚁群算法是一种随机的、概率搜索算法,它是目前求解复杂组合优化问题较为有效的手段之一,借助信息反馈机制,能够进一步加快算法的进化,从而更加快速地找到最优解。

蚁群算法可在诸多领域中应用,借助该算法能够求得TSP问题的最短路径。

蚁群寻找最短路径的过程如图1所示。

蚁群算法之所以在多个领域获得广泛应用,与其自身所具备的诸多优点有着密不可分的关联,如自组织性、正负反馈性、鲁棒性、分布式计算等等,其最为突出的优点是能够与其它算法结合使用。

但是在应用实践中发现,虽然蚁群算法的优点较多,其也或多或少地存在一定的不足,如搜索时间较长,规模越大时间越长;容易出现停滞现象等等。

1.2 TSP问题TSP是旅行商的英文缩写形式,这一术语最早出现于1932年,在1948年时,美国兰德公司(RAND)引入了TSP,由此使得TSP广为人知。

从数学领域的角度上讲,TSP问题是NP-完备组合优化问题,这是一个看似简单实则需要天文数字计算能力方可获得最优解的过程,其适用于搜索算法解决不了的复杂与非线性问题。

2 蚁群算法在解决TSP问题中的应用2.1 蚁群算法的改进(1)大量的实验结果表明,标准蚁群算法在TSP问题的求解中,很容易陷入局部最优解。

这是因为,蚁群的转移主要是由各条路径上的信息素浓度及城市间的距离来引导的,信息素浓度最强的路径是蚁群的首选目标,该路径与最优路径极为接近。

然而,各个路径上初始信息素的浓度全部相同,因此,蚁群在对第一条路径进行创建时,主要依赖于城市间的距离信息,这样一来很难确保蚁群创建的路径是最优路径,如果以此为基础,那么信息素便会在该局部最优路径上越积累越多,其上的信息素浓度将会超过其它路径,从而造成全部蚂蚁都会集中于该路径之上,由此便会造成停滞现象,不但会使搜索的时间增长,而且所求得的解也无法达到理想中的效果。

蚁群算法实现TSP

蚁群算法实现TSP

蚁群算法实现TSP蚁群算法(Ant Colony Optimization, ACO)是一种模拟蚂蚁觅食行为的算法,常被用来解决旅行商问题(Traveling Salesman Problem, TSP)。

旅行商问题是一个经典的组合优化问题,目标是找到一条最短的路径,使得旅行商能够访问所有城市并返回起始城市。

蚁群算法的基本思想是模拟蚂蚁寻找食物的行为,每只蚂蚁在过程中释放信息素,并根据信息素浓度和距离选择下一个城市。

信息素的释放和更新规则是蚁群算法的核心。

蚁群算法的实现步骤如下:1.初始化蚁群:随机放置一定数量的蚂蚁在不同城市。

2.计算路径长度:根据蚂蚁的选择规则,计算每只蚂蚁的路径长度。

3.更新信息素:根据路径长度,更新城市之间的信息素浓度。

4.更新蚂蚁的选择规则:根据信息素浓度和距离,更新蚂蚁的选择规则。

5.重复步骤2-4,直到达到指定的迭代次数或找到最优解。

在蚂蚁的选择规则中,信息素浓度和距离是两个重要的因素。

信息素浓度越高,蚂蚁越有可能选择该路径;距离越短,蚂蚁越倾向于选择该路径。

为了平衡这两个因素,通常使用一个参数来调节它们的权重。

在更新信息素时,一般采用全局信息素更新和局部信息素更新两种方式。

全局信息素更新是将所有蚂蚁路径上的信息素浓度进行更新,以加强优质路径的信息素浓度。

局部信息素更新是只更新最优路径上的信息素浓度,以加强当前最优路径的信息素浓度。

蚁群算法的优点是能够找到近似最优解,并且具有较好的鲁棒性和适应性。

然而,蚁群算法也存在一些问题,例如易陷入局部最优解、收敛速度较慢等。

针对TSP问题,蚁群算法的实现可以按照上述步骤进行。

具体来说,可以通过以下几个方面的设计来优化算法的性能:1.蚂蚁的选择规则:可以采用轮盘赌选择法,即根据信息素浓度和距离计算每个城市被选择的概率,然后根据概率选择下一个城市。

2.信息素更新:可以采用全局信息素更新和局部信息素更新相结合的方式,以平衡全局和局部的效果。

计算智能大作业--蚁群算法解决TSP问题

计算智能大作业--蚁群算法解决TSP问题

(计算智能大作业)应用蚁群算法求解TSP问题目录蚁群算法求解TSP问题 (3)摘要: (3)关键词: (3)一、引言 (3)二、蚁群算法原理 (4)三、蚁群算法解决TSP问题 (7)四、解决n个城市的TSP问题的算法步骤 (9)五、程序实现 (11)六、蚁群算法优缺点分析及展望 (18)七、总结 (18)采用蚁群算法解决TSP问题摘要:蚁群算法是通过蚂蚁觅食而发展出的一种新的启发算法,该算法已经成功的解决了诸如TSP问题。

本文简要学习探讨了蚂蚁算法和TSP问题的基本内容,尝试通过matlab 仿真解决一个实例问题。

关键词:蚁群算法;TSP问题;matlab。

一、引言TSP(Travelling Salesman Problem)又称货郎担或巡回售货员问题。

TSP问题可以描述为:有N个城市,一售货员从起始城市出发,访问所有的城市一次,最后回到起始城市,求最短路径。

TSP问题除了具有明显的实际意义外,有许多问题都可以归结为TSP问题。

目前针对这一问题已有许多解法,如穷举搜索法(Exhaustive Search Method), 贪心法(Greedy Method), 动态规划法(Dynamic Programming Method)分支界定法(Branch-And-Bound),遗传算法(Genetic Agorithm)模拟退火法(simulated annealing),禁忌搜索。

本文介绍了一种求解TSP问题的算法—蚁群算法,并通过matlab仿真求解50个城市之间的最短距离,经过仿真试验,证明是一种解决TSP问题有效的方法。

20世纪90年代,意大利学者M.Dorigo等人在新型算法研究的过程中,通过模拟自然界蚂蚁的觅食过程:即通过信息素(pheromone)的相互交流从而找到由蚁巢至食物的最短路径,提出了一种基于信息正反馈原理的新型模拟进化算法——蚁群算法(Ant Colony algorithm)。

蚁群算法在解决TSP问题中的应用

蚁群算法在解决TSP问题中的应用
径 的过 程 如 图 1所 示 。
蚁 群 算法 之所 以在 多个 领域 获得 广泛 应
2 . 2 . I 对算法进行初 始化 对所 有 城 市的坐 标进 行 获取 ,以此 为依 据 ,对距 离矩阵 Di s t ma t r i x进行计 算,同时对 随机发生器状态进行初始 化,并 以随机的形式
其 它 算 法 结合 使 用 。 但 是 在 应 用 实 践 中 发 现 ,
虽然蚁群 算法 的优点较多,其也或多或少地存 在一定 的不足 ,如搜索时间较长 ,规模越 大时
间 越 长 ; 容 易 出现 停 滞 现 象 等 等 。
1 . 2 T S P 问 题
从 n个城市 中选 出初 始的 出发城市,并将该城 优 的遍 历顺序、最优的遍历结果 以及总体运行 时 间输 出,便可完成对 T S P问题 的求解 。 市设定为 :
图1 :蚁群寻找最短路径的演 示图
蚁的数 目 = AK+ 1 。
S t e p 5 :蚂蚁个体按照 A n t — Q S y s t e ms算法 提出的状态转移概率,选择下个城市 j 并前进 。
S t e p 6 : 对 允 许 矩 阵 进 行 更 新 , 使 其 变 为
【 关键词 】蚁群 算法 T S P问题 最优解
a l l o w( A K, j ) - O ,即将蚂蚁所选 城市标号在该矩 阵中对应位置 的值 重新 设定为 0 。
S t e p 7 : 如 果 蚂 蚁 为 遍 历 集 合 C 中 的所
1蚁群算 法与T S P 问题简介
1 . 1蚁群算法
蚁群算法是一种 随机 的、概率搜索算法 , 它是 目前求解 复杂组合优化 问题较为有 效的手
S t e p 4 ,若 是遍 历所有 元素,则可执 行 S t e p 8 。

用蚁群算法解决TSP问题

用蚁群算法解决TSP问题

用蚁群算法解决TSP 问题一、引言蚁群算法是一种受自然界生物行为启发而产生的“自然”算法,产生于对蚂蚁行为的研究。

蚁群中的蚂蚁以“信息素”为媒介,间接异步的相互联系。

蚂蚁在行动中,会在他们经过的地方留下一些化学物质,称为“信息素”。

这些物质能被同一种群众后来的蚂蚁感受到,并作为一种信号影响后者的行动,具体表现在后到的蚂蚁选择有这些物质的路径的可能性比选择没有这些物质的路径的可能性大的多。

后者留下的信息素会对原有的信息素进行加强,并循环下去。

这样,经过蚂蚁多的路径,后到蚂蚁选择这条路径的可能性就越来越大。

由于在一定的时间内,越短的路径会被越多的蚂蚁访问,因而积累的信息素就越多,在下一个时间内被其他的蚂蚁选中的可能性也越大。

这个过程会持续到所有的蚂蚁都走到最短的那一条路径为止。

二、关键技术(1) 解的表达形式在应用蚁群优化算法时,只需要建立一个虚拟的始终点,相当于蚁群的巢穴和食物所在地,这样一个所经过城市的路径的排列就构成了一个解;(2) 信息素的记忆和更新在算法开始时,由于从来没有蚂蚁去寻找过路径,因此可以认为是没有任何先验信息,即每条路上的信息相等。

客观地将,信息素应该都为0,但是由于在蚁群算法中,信息素决定了蚂蚁选择这条路径的概率,因此可以认为初始信息素矩阵为:1/(*(1))0ij N N p -⎧=⎨⎩i j i j ≠=其中N 为城市数 当算法运行过程中,每次放出m 支蚂蚁,每只蚂蚁按照信息素选择路径,将其中路径最短的记录下来,对这条最短路进行信息素的加强;而对于其他路径,因为信息素的挥发,信息素浓度将会降低,更新后的信息素矩阵为: 11(1)//(1)/k ij k ij k ij p N p p ρρρ--⎧-+⎪=⎨-⎪⎩i j i j →→经过路径不经过路径其中N 为城市数,ρ为挥发系数 (3) 蚁群的规模在一般应用中,蚁群中蚂蚁的个数m 是固定数,不超过TSP 图的节点数。

三、算法实现步骤1 设定蚁群规模m ,计算次数n ,挥发系数ρ,初始化信息素矩阵,设定变量best =+∞记录全局最优解;步骤2 若n =0,推出并输出结果;否则n=n-1,分别放出m 只蚂蚁,按照信息素概率选择路径,并找出m 条路径中的当代最优路径cubest ; 步骤3 根据当代最有路径更新信息素;步骤4 如果cubest<best ,best=cubest ,执行步骤2;否则直接执行步骤2;四、结果及分析通过五个城市节点的TSP 问题的求解,其城市间的距离矩阵为:01015621008139158020156132005291550⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭蚁群算法找到的最优路径为A C B D E →→→→,总路程为43;通过试验结果发现,对于小规模的TSP问题,蚁群算法和禁忌搜索、模拟退火算法的计算结果相似,而且耗时很短,因此该算法是合理的。

计算智能大作业--蚁群算法解决TSP问题资料

计算智能大作业--蚁群算法解决TSP问题资料

(计算智能大作业)应用蚁群算法求解TSP问题目录蚁群算法求解TSP问题 (3)摘要: (3)关键词: (3)一、引言 (3)二、蚁群算法原理 (4)三、蚁群算法解决TSP问题 (7)四、解决n个城市的TSP问题的算法步骤 (9)五、程序实现 (11)六、蚁群算法优缺点分析及展望 (18)七、总结 (18)采用蚁群算法解决TSP问题摘要:蚁群算法是通过蚂蚁觅食而发展出的一种新的启发算法,该算法已经成功的解决了诸如TSP问题。

本文简要学习探讨了蚂蚁算法和TSP问题的基本内容,尝试通过matlab 仿真解决一个实例问题。

关键词:蚁群算法;TSP问题;matlab。

一、引言TSP(Travelling Salesman Problem)又称货郎担或巡回售货员问题。

TSP问题可以描述为:有N个城市,一售货员从起始城市出发,访问所有的城市一次,最后回到起始城市,求最短路径。

TSP问题除了具有明显的实际意义外,有许多问题都可以归结为TSP问题。

目前针对这一问题已有许多解法,如穷举搜索法(Exhaustive Search Method), 贪心法(Greedy Method), 动态规划法(Dynamic Programming Method)分支界定法(Branch-And-Bound),遗传算法(Genetic Agorithm)模拟退火法(simulated annealing),禁忌搜索。

本文介绍了一种求解TSP问题的算法—蚁群算法,并通过matlab仿真求解50个城市之间的最短距离,经过仿真试验,证明是一种解决TSP问题有效的方法。

20世纪90年代,意大利学者M.Dorigo等人在新型算法研究的过程中,通过模拟自然界蚂蚁的觅食过程:即通过信息素(pheromone)的相互交流从而找到由蚁巢至食物的最短路径,提出了一种基于信息正反馈原理的新型模拟进化算法——蚁群算法(Ant Colony algorithm)。

蚁群算法(ACO)解决TSP问题

蚁群算法(ACO)解决TSP问题

蚁群算法(ACO)解决TSP问题⼀、蚁群算法1.基本原理蚁群算法(Ant Colony Optimization,ACO)是⼀种基于种群寻优的启发式搜索算法,有意⼤利学者M.Dorigo等⼈于1991年⾸先提出。

该算法受到⾃然界真实蚁群集体在觅⾷过程中⾏为的启发,利⽤真实蚁群通过个体间的信息传递、搜索从蚁⽳到⾷物间的最短路径等集体寻优特征,来解决⼀些离散系统优化中的困难问题。

经过观察发现,蚂蚁在寻找⾷物的过程中,会在它所经过的路径上留下⼀种被称为信息素的化学物质,信息素能够沉积在路径上,并且随着时间逐步挥发。

在蚂蚁的觅⾷过程中,同⼀蚁群中的其他蚂蚁能够感知到这种物质的存在及其强度,后续的蚂蚁会根据信息素浓度的⾼低来选择⾃⼰的⾏动⽅向,蚂蚁总会倾向于向信息素浓度⾼的⽅向⾏进,⽽蚂蚁在⾏进过程中留下的信息素⼜会对原有的信息素浓度予以加强,因此,经过蚂蚁越多的路径上的信息素浓度会越强,⽽后续的蚂蚁选择该路径的可能性就越⼤。

通常在单位时间内,越短的路径会被越多的蚂蚁所访问,该路径上的信息素强度也越来越强,因此,后续的蚂蚁选择该短路径的概率也就越⼤。

经过⼀段时间的搜索后,所有的蚂蚁都将选择这条最短的路径,也就是说,当蚁巢与⾷物之间存在多条路径时,整个蚁群能够通过搜索蚂蚁个体留下的信息素痕迹,寻找到蚁巢和⾷物之间的最短路径。

蚁群算法中,蚂蚁个体作为每⼀个优化问题的可⾏解。

⾸先随机⽣成初始种群,包括确定解的个数、信息素挥发系数、构造解的结构等。

然后构造蚁群算法所特有的信息素矩阵每只妈蚁执⾏蚂蚊移动算⼦后,对整个群体的蚂蚁做⼀评价,记录最优的蚂蚁。

之后算法根据信息素更新算⼦更新信息素矩阵,⾄此种群的⼀次选代过程完成。

整个蚂蚁群体执⾏⼀定次数的选代后退出循环、输出最优解。

2.术语介绍(1)蚂蚁个体。

每只蚂蚁称为⼀个单独的个体,在算法中作为⼀个问题的解。

(2)蚂蚁群体。

⼀定数量的蚂蚁个体组合在⼀起构成⼀个群体,蚂蚁是群体的基本单位。

蚁群算法的TSP问题求解策略分析研究

蚁群算法的TSP问题求解策略分析研究

基于蚁群算法的TSP问题求解策略研究摘要TSP问题是计算机网络、路由规划中的经典问题。

而蚁群优化算法作为高效的计算智能的方法,在离散优化领域有着十分广泛的应用,其中最为经典的是最优回路求解问题。

因此,本文在分析蚁群算法发展现状的基础上,针对TSP问题的求解策略,来深入分析蚁群基数的设置对收敛效率的影响。

最后通过MATlAB编程工具运行相关代码,并得到相应的TSP问题解。

实验结果表明:随着蚁群基数的增加,TSP问题求解的时间也会线性增加;当蚁群基数大于等于TSP问题的结点个数的时候,TSP问题的解才会保持稳定且趋近于蚁群基数与节点个数相等时的TSP问题的解。

关键字蚁群算法蚁群基数 TSPResearch on the TSP Solution based on Ant Colony Optimization [Abstract]The TSP problem is a classic problem in computer network, route planning.And the ant colony optimization algorithm as an efficient method of computational intelligence, has the extremely widespread application in the field of discrete optimization, the most classic is the optimal circuit to solve the problem. Therefore, this article on the basis of analyzing the current situation of the development of ant colony algorithm, TSP problem solving strategy, to analyze ant colony base Settings affect the convergence efficiency. Finally through MATlAB programming tools run the code, and get the corresponding TSP problem solution. The experimental results show that with the increase of base of ant colony, TSP problem solving linear time will also grow。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0 引 言
组合优化是运筹学的重要分支 , 主要通过对数 学方法的研究寻找离散事件的最优编排 、 分组 、 次序 或筛选等 . 这类问题通常随着规模的扩大 ,问题空间 呈现组合爆炸特征 ,无法用常规方法求解 . 旅行商问 题 ( TSP )就是一个经典的组合优化问题 , 要求解一 条遍历所有城市的最短回路 ,是一个 NP难题 . 随着科学技术的发展 , 人们已对如何解决 TSP 问题进行大量研究 , 一些模拟进化算法在解决该问
基金项目 : 上海市教育委员会科研项目 ( 05FZ06) ; 上海海事大学重点学科建设项目 ( XL0105) 作者简介 : 付 宇 ( 1976 2) ,男 ,辽宁开原人 ,在读硕士 ,研究方向为智能优化 、 计算机仿真等 , ( E 2 mail) fuyu7612@163. com
第 4期
τ 的信息量 ;Δ ij ( t) 表示本次循环中路径 ij上信息量 的增量 .
Q , 若蚂蚁 k 在本次循环中经过 ij
Δ τ = Lk ij ( t)
k
0, 否则
( 4)
式中 : Q 是常数 ; L k 表示第 k 只蚂蚁在本次循环中所 走路径的长度 ; Q , n, α, β , ρ根据问题求解规模确定 其取值 .
2
mn
最优值时间 / s
到最优值的最快迭代次数为 81 代 (见图 1 ) ,大大减 少蚁群算法的迭代次数 , 达到最优值的运行时间仅 为 3. 718 s, 说明该算法不仅使搜索能力得到提高 , 而且运行速度也很快 , 能同时兼顾搜索能力和运行 速度 . 在 10 次运算中 ,有 4 次找到最优值 15 404,而 且其余的解大部分也都在 15 426 ~15 440 之间 , 此 外还经过多次运算 ,所得结果也大体相当 ,这说明改 进后的算法性能非常稳定 , 总是能迅速找到较好的 解 . 从平均值上也可以看出 ,最优值与平均值的差异 较小 ,这也说明算法的性能很稳定 .
Abstract: A dynam ic and adap tive ant colony algorithm is p resented in accordance with the defect of early variety and stagnation. The contribution of the algorithm includes an adap tive strategy of pheromone, the li m ited range of pheromone, and a local updating for pheromone dynam ically . This m ethod is able to re2 strain stagnation during the iteration p rocess effectively, and enhance the capability of search. The exper2 i m ental results for solving China Traveling Sales m an Problem ( CTSP ) and Eil50 are p roved to be effec2 tive. Key words: ant colony algorithm; com binatorial op tim ization; traveling sales m an p roblem ( TSP )
2. 2 将信息素 τ 限制在一定范围内
式中 : allowedk = { 0, 1, …, n - 1 } - tabuk 表示蚂蚁 k 下一步允许选择的城市 ; α, β分别表示蚂蚁在运动 过程中所积累的信息及启发式因子在选择路径时所 起的不同作用 ; 参数 1 - ρ表示信息的残留系数 , 其 中ρ 称为信息素挥发因子 . 经过 n 个时刻 , 蚂蚁完成 一次循环 , 各路径上信息量要根据下式作调整 : τ )τ τ ( 2) = (1 - ρ ij ( t + n ) ij ( t) +Δ ij ( t)
m
为了防止出现早熟收敛 , 避免出现一些路径上 的信息素浓度远高于其他边的情况 , 参考 MMAS中 的信息素限制方法来约束算法中的信息素浓度 . 本文规定 τ∈ [τ m in , τ m ax ]. 在传统的 MMAS 中 τ m ax设置为渐进的最大值估计 , 并且随着解的变化 而变化 . 笔者经过多次实验 , 发现只要 τ max和 τ m in的 限制范围适当 , 采用固定的 τ max和 τ m in与采用变化的
2006 年
τ m ax和 τ m in对于信息素的限制作用大体相同 , 因此本 文算法中 τ max和 τ m in取值固定 .
2. 3 动态增加信息素局部更新方式
最优值 / km 最差值 / km 平均值 / km 最优值代数
本文算法
15 404 15 458 15 423. 6 81 3. 718
15 426 15 620 15 548 1 467 42. 437
信息素的更新方式采取在线延迟更新方式 . 在 每一次迭代中 ,信息素按下式进行局部更新 : τ( i, j) = ( 1 - ξ )・ τ( i, j) +ξ ( 5) ・< ( t) 其中 ξ 与ρ 取值一样 , 同时也采用自适应调整策略 ; < ( t) 是一个随迭代次数的增加而变化的函数 , 在搜 索的起始阶段 , 为了提高算法的搜索能力使所得结 果接近最优 , < ( t) 需要小一些 ; 在过程中间 , < ( t) 适 当增大以保证搜索速度 ; 过程的最后 , 路径基本确 定 , 这时 < ( t) 继续加大 , 使算法迅速收敛 . τ m in , ω ∈ ( 1, < ( t) = τ 0, ω ∈ (
第 15 卷 第 4 期 2006 年 12 月
文章编号 : 1006 2 0871 ( 2006) 04 2 0010 2 04
计 算 机 辅 助 工 程
COM PUTER A I D ED ENGI N EER I NG
Vol . 15 No. 4 Dec. 2006
动态自适应蚁群算法求解 TSP问题
付 宇 ,等 : 动态自适应蚁群算法求解 TSP 问题
11
但该方法也存在一些缺陷 ,如搜索时间长 、 容易 出现停滞现象等 . 针对这些缺点 ,人们又对基本蚁群 算法做了改进 ,其中比较典型的有 DOR IGO 等人提 [4] 出的 Ant Colony System (ACS)和 THOMAS等人提 [5] 出的 M ax2 M in Ant System (MMAS) . 通过对基本蚁群算法缺陷的分析 , 本文提出一 种动态自适应蚁群算法 : 通过引入信息素的自适应 调整策略 、 限制信息素范围 、 动态增加信息素的局部 更新方式 ,有效抑制收敛过程中的停滞现象 ,提高算 法的搜索能力 ,再与 ACS和 MMAS在中国旅行商问 题 ( China Traveling Salesman Problem , CTSP )和 Eil50 问题上的实验结果进行对比 ,证明该算法性能良好 .
2 改进的蚁群算法
针对基本蚁群算法容易出现早熟和停滞现象的 缺点 ,本文对其进行改进 .
2. 1 自适应调整信息素挥发因子 ρ
1 蚁群算法的基本原理
蚁群算法的提出借鉴和吸收了自然界中蚂蚁种 群的行为特征 : 蚂蚁在觅食过程中会释放信息素 ( Pheromone ) ,后面的蚂蚁会根据前面蚂蚁所释放的 信息素选择下一条路径 . 一条路径上的信息素越高 , 表明通过的蚂蚁越多 , 说明该路径被选择的次数越 多 ,即该路径的性能更好 ,从而导致后来蚂蚁选择该 条路径的概率越高 . 这样就产生一个学习信息的正 [6] 反馈过程 ,蚂蚁正是基于此建立最短路径 . 以基本蚁群算法为例说明蚁群算法在 TSP 问 题上的描述 . 设 m 为蚁群中蚂蚁的数量 , dij ( i, j = 1, 2, …, n ) 表示城市 i和 j之间的距离 , ηij表示由 i转移到 j的 期望程度 ,ηij = 1 / dij , τ ij ( t) 表示 t时刻在 i和 j连线 上残留的信息量 . 初始时刻 , 各条路径上的信息量相 等 ,设 τ ij ( 0 ) = C ( C 为常数 ) . 蚂蚁 k ( k = 1, 2, …, m ) 在运动过程中 , 根据各条路径上的信息量决定其转 k 移方向 , pij ( t) 表示在 t时刻蚂蚁 k 由位置 i转移到 位置 j的概率 : α β τ j ∈ a llowedk , ij ( t)η ij ( t) , k α β s ∈ a llowedk ( 1 ) pij ( t) = ∑ τ is ( t)η is ( t)
Δ τ = ij ( t)
k
k =1
Δ τ ij ( t) ∑
k
( 3)
Δ τ ij ( t) 表示第 k 只蚂蚁在本次循环中留在路径 ij上
12
计 算 机 辅 助 工 程
表 1 CTSP问题的结果对比
ACS MMAS 15 409 15 458 15 424. 9 390 11. 672
D ynam ic and adaptive an t colony a lgor ithm for solv i n g TSP problem s
FU Yu, X I AO J ianmei
(Logistics Eng . College, Shanghai M aritim e Univ . , Shanghai 200135, China )
0, 否则
由于 ρ 的存在 , 那些从未被搜索到的路径上的 信息素会逐渐消失
[7]
, 导致这些路径被选择的概率
减小 ,而信息素增加的非最优路径被选择的概率却 增大 ,进而算法陷入局部最优 . 因此要提高算法的全 局搜索能力 ,使算法尽量找到最优解 ,就必须适当减 少已选择路径上的信息素数量 , 使蚂蚁在下一步选 择时综合考虑信息素和城市距离这两种因素 , 而不 是一味地依靠信息素的多少来决定下一个城市 , 因 此ρ 的值不能太小 . 但 ρ 的值也不能太大 ,否则蚂蚁 会失去信息素的引导作用 ,倾向于贪婪式算法 ,偏离 最优路径 . 实验表明 ,蚂蚁在一定的迭代次数内所得 解大体接近 ,即使每次都改变信息素的强度也不会 使解改进太大 ,反而使算法的搜索时间增加 ,因此本 文没有在每次迭代时都改变 ρ的值 , 只在一定迭代 次数完成后 ,解的质量没有明显改进的情况下才改 变ρ 的值 . 设 ρ 的初始值为 ρ( 0 ) = 0. 1,每当迭代次 数达到 N 次时 , 就保留最优解 , 然后当算法求得的 最优值在下一个 N 次迭代后没有明显改进时 ,ρ变 ρ( t - 1 ) , 这样可以在搜索即将陷 为 :ρ( t) = 1. 05 × 入停滞时增加 ρ ,以达到增大搜索能力的目的 , N 取 50,同时为了防止算法的收敛速度过低 , 还需要为 ρ 设一个上限 ,针对不同的问题 ,上限可以不同 .
相关文档
最新文档