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

合集下载

基于蚁群算法的TSP问题求解

基于蚁群算法的TSP问题求解
度 : 表 示本 次循 环所 有 蚂 蚁在 路径 上 (,) 释放 的信 息 素浓 度 之和 。 △ iJ 所 3问题 求 解 3 1设 定 3 城市 的坐 标位 置 . O个
C= 32 l5 5 4 : 1 : : 9 9 6 1 : 4 0 1 : 4 6 1 : [ : : :4 7 3 1 0 8 7 : :0 2 1 :7 3 1 : 2 9
在运 动过 程 中, 据各 条路 径上 的信 息素 的浓度 决定转 移方 r, ) 根 N p ( 表示在 t ,
时刻 刻蚂蚁 k从送 货 点 i 移 到送 货点 J的概率 , 转 其计 算公 式为
3 2 参数 设置 : . 最大 迭代 次数 :C m x2 0 N a= 0 : 蚂蚁 个数 := 0 m3 : 信息 素重 要程 度 :lh = : Ap a l 启发 式因子 重要 程度 :ea 5 B t= ; 信 息 素蒸 发系 数 :h = . : Ro O 1 信 息 素增加 强度 系数 := 0 : Q 10 R b s 代表 最佳路 线 :- e t 代 表最 佳路线 的 长度 。 et L bs 3 3 编制 函数
1 1 1 ; 1 6 8: 1 7 l 2 7 4 2 0; 7 9 5 9 1 4: 0 7: 0 2 9 9 2 6 1 1 1 : 5 1 1 1 2 l 1 5 1 2 1
前 行 。与此 同时释 放 出与路线 长度 有关 的信 息素 。路径越 长 , 放 的激素浓 释 度 越低 。当后 来的蚂 蚁再 次碰 到这个 路 口的时 候 , 选择 激素 浓度 较高 路径 概 率 就会相 对较 大 。这样 形成 了一个 正反 馈 。最 优路 径上 的激 素浓度 越 来越 大 而 其它 的路 径上 激素 浓度 却会 随着 时 间的流 逝而 消减 。这样 , 整个 蚁群 最 终 会 找 出最 优 路 径 。

蚁群算法在解决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 。

蚁群算法java实现以及TSP问题蚁群算法求解

蚁群算法java实现以及TSP问题蚁群算法求解

蚁群算法java实现以及TSP问题蚁群算法求解蚁群算法java实现以及TSP问题蚁群算法求解1. 蚁群算法简介蚁群算法(Ant Clony Optimization,ACO)是一种群智能算法,它是由一群无智能或有轻微智能的个体(Agent)通过相互协作而表现出智能行为,从而为求解复杂问题提供了一个新的可能性。

蚁群算法最早是由意大利学者Colorni A., Dorigo M. 等于1991年提出。

经过20多年的发展,蚁群算法在理论以及应用研究上已经得到巨大的进步。

蚁群算法是一种仿生学算法,是由自然界中蚂蚁觅食的行为而启发的。

在自然界中,蚂蚁觅食过程中,蚁群总能够按照寻找到一条从蚁巢和食物源的最优路径。

图(1)显示了这样一个觅食的过程。

图(1)蚂蚁觅食在图1(a)中,有一群蚂蚁,假如A是蚁巢,E是食物源(反之亦然)。

这群蚂蚁将沿着蚁巢和食物源之间的直线路径行驶。

假如在A和E之间突然出现了一个障碍物(图1(b)),那么,在B点(或D点)的蚂蚁将要做出决策,到底是向左行驶还是向右行驶?由于一开始路上没有前面蚂蚁留下的信息素(pheromone),蚂蚁朝着两个方向行进的概率是相等的。

但是当有蚂蚁走过时,它将会在它行进的路上释放出信息素,并且这种信息素会议一定的速率散发掉。

信息素是蚂蚁之间交流的工具之一。

它后面的蚂蚁通过路上信息素的浓度,做出决策,往左还是往右。

很明显,沿着短边的的路径上信息素将会越来越浓(图1(c)),从而吸引了越来越多的蚂蚁沿着这条路径行驶。

2. TSP问题描述蚁群算法最早用来求解TSP问题,并且表现出了很大的优越性,因为它分布式特性,鲁棒性强并且容易与其它算法结合,但是同时也存在这收敛速度慢,容易陷入局部最优(local optimal)等缺点。

TSP问题(Travel Salesperson Problem,即旅行商问题或者称为中国邮递员问题),是一种,是一种NP-hard问题,此类问题用一般的算法是很大得到最优解的,所以一般需要借助一些启发式算法求解,例如遗传算法(GA),蚁群算法(ACO),微粒群算法(PSO)等等。

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

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

还有页眉没有添加,页眉上写章标题,把我给你标注的问题改完就可以打印了摘要根据蚂蚁生态学提出的蚁群算法是一种新颖的用于求解复杂组合优化问题的模拟进化算法,具有典型的群体智能特征,表现出较强的学习能力和适应能力。

本文阐述了该算法的基本原理、算法模型和在TSP( Traveling Salesman Problem,旅行商)问题中的具体应用过程,并对算法进行了总结和展望。

关键词:蚁群算法,旅行商问题,外激素目录摘要Ⅰ目录II第一章引言 (1)第二章蚁群算法的基本原理和模型 (2)2.1 蚁群算法的基本原理 (2)2.2 蚁群算法的模型 (3)第三章基于蚁群算法的TSP求解 (5)3.1 TSP问题的描述 (5)3.2 基于蚁群算法的TSP求解 (5)3.3 蚁群算法的局限性 (6)第四章蚁群算法的改进 (8)4.1 优选参数m (8)4.2 参数 的调整 (8)4.3 信息素的更新 (8)4.4 信息素链表L 和禁忌链表TL 的构建 (9)第五章改进的算法基本流程 (10)第六章结论 (11)参考文献 (12)第一章引言研究群居性昆虫行为的科学家发现,昆虫在群落一级上的合作基本上是自组织的,在许多场合中尽管这些合作可能很简单,但它们却可以解决许多复杂的问题。

蚁群算法就是利用群集智能解决组合优化问题的典型例子。

蚁群算法(Ant Colony Algorithm, ACA)是由意大利学者M.Dorigo,V.Mzniezzo,A.Colorni 等人在20世纪90年代初首先提出来的。

它是继模拟退火算法、遗传算法、禁忌搜索算法、人工神经网络算法等元启发式搜索算法以后的又一种应用于组合优化问题的启发式搜索算法。

蚁群算法不仅能够智能搜索、全局优化,而且具有稳健性A、鲁棒性B、正反馈、分布式计算、易与其它算法结合等特点。

利用正反馈原理,可以加快进化过程;分布式计算使该算法易于并行实现,个体之间不断进行信息交流和传递,有利于找到较好的解,不容易陷入局部最优;该算法易与多种启发式算法结合,可改善算法的性能;由于鲁棒性强,故在基本蚁群算法模型的基础上进行修改,便可用于其它问题。

基于自然选择策略的蚁群算法求解TSP问题

基于自然选择策略的蚁群算法求解TSP问题

基于自然选择策略的蚁群算法求解TSP问题一、本文概述本文旨在探讨基于自然选择策略的蚁群算法在求解旅行商问题(TSP)中的应用。

旅行商问题是计算机科学和运筹学中的经典难题,其目标是在给定一系列城市和城市之间的距离后,找出一个最短的路径,使得旅行商能够访问每个城市一次并返回原点。

蚁群算法作为一种模拟自然界蚂蚁觅食行为的优化算法,具有很强的全局搜索能力和鲁棒性,因此在解决TSP问题中具有广阔的应用前景。

本文首先介绍了TSP问题的定义、特点以及求解难度,然后详细阐述了蚁群算法的基本原理和算法流程。

在此基础上,本文提出了一种基于自然选择策略的蚁群算法,该算法通过引入自然选择的思想,使得蚁群在搜索过程中能够自动适应环境变化,优化搜索策略,从而提高算法的求解效率。

本文的主要研究内容包括:分析TSP问题的数学模型和求解难点,为蚁群算法的应用奠定基础;设计并实现基于自然选择策略的蚁群算法,通过仿真实验验证算法的有效性和优越性;将算法应用于实际TSP问题中,评估其在实际应用中的性能和效果。

本文的研究不仅有助于深入理解TSP问题的求解方法和蚁群算法的优化原理,而且能够为解决其他优化问题提供新的思路和方法。

本文的研究结果也为蚁群算法在实际应用中的推广和应用提供了有力支持。

二、自然选择策略的基本原理自然选择策略,源自达尔文的进化论,是生物进化过程中的核心机制。

在自然界中,生物体通过遗传、变异和选择三个基本过程不断适应和进化。

遗传使得生物体的特征能够传递给后代,变异则引入新的遗传信息,而自然选择则决定了哪些特征在生存和繁衍中更具优势。

经过长时间的演化,适应性强的特征会得到保留和增强,而适应性弱的特征则可能逐渐消失。

将这种自然选择的思想引入算法设计,就形成了自然选择策略。

在算法中,每个解被视为一个个体,而个体的适应度则通过某种评价函数来衡量。

算法通过模拟自然选择的过程,不断迭代生成新的解,并保留适应度高的解,淘汰适应度低的解。

求解较大规模TSP问题的改进蚁群算法

求解较大规模TSP问题的改进蚁群算法

求解较大规模TSP问题的改进蚁群算法为了优化并提高传统蚁群算法求解较大规模TSP问题的计算速度,提出了一种基于有限视觉能见度机制的改进蚁群优化算法。

采用初始解优化路径中节点间邻接特征,缩小可选范围搜索求解,算法时间复杂度由O(mn2)改进为O(mn),最后对可能的冲突问题给出变异解决方案。

结合大规模TSP问题验证并加以完善,实验结果证明,新算法提高计算速度效果显著。

标签:蚁群算法ACS;TSP;有限视觉能见度引言蚁群算法是继模拟退火、禁忌搜索、遗传算法等之后的一种新型解决组合优化问题的启发式智能优化算法。

蚁群算法的优点在于:采用正反馈机制,有发现较好解的能力,具有很强的并行性和鲁棒性等。

但是收敛速度慢,计算时间较长,易过早陷入局部最优,在求解连续优化问题上没有优势。

针对这些问题,目前已有了一些改进的蚁群算法:White T等提出了ASGA(ant system with genetic algorithm)算法加入了控制参数的调整,更加优化[2],Stüzle T等提出了MMAS(max-min ant system)算法避免算法过早收敛于非全局最优解[3],张纪会、王颖等提出了自适应蚁群算法来提高全局搜索能力和搜索速度[4-5],丁建立等提出了GAAA(genetic algorithm-ant algorithm)算法融合遗传算法和蚁群算法的各自优点,来取长补短[6],尚鲜连等提出了一种智能蚁群优化算法[7],采用最近节点选择策略进行路径优化,但是未能结合较大规模TSP问题实现验证,未考虑处理实际使用中出现的特别情况。

文章主要采用有限视觉能见度机制,结合大规模TSP实际应用中的特殊情况验证并进行完善,避免在大范围搜索求解,产生较好的初始蚂蚁群,极大提高计算速度,有效解决蚁群算法求解较大规模问题时的计算时间过长这一缺陷。

1 TSP问题已知n个城市V={v1,v2,…,vn}和各城市之间的距离dij,寻找一条经过各个城市一次且仅一次的最短路径。

求解tsp问题的一种改进蚁群算法

求解tsp问题的一种改进蚁群算法

求解tsp问题的一种改进蚁群算法求解旅行商问题(TSP)一直是计算机科学领域以及应用数学研究中的热门话题,解决TSP问题的方法一直是学术界关注的重点。

本文提出了一种改进的蚁群算法(ICA),该算法利用蒙特卡洛搜索技术,模拟蚁群行为,以获得最优解决方案。

该算法采用带有多种参数控制模型,有助于提高求解TSP问题的效率,从而更好地满足客户需求。

蚁群算法蚁群算法(Ant Colony Algorithm,简称ACA)是一种仿生算法,它模拟了真实蚂蚁的行为,尝试解决TSP问题。

该算法结合了模拟退火法(SA)和遗传算法(GA)的优点,以模拟真实蚂蚁的觅食行为,以寻找最优解决方案。

它利用一组自组织的蚂蚁搜索和定期更新信息素信息,以建立一个索引,使其在搜索空间中更快地找到可行解。

在本文中,我们提出了改进的蚁群算法(ICA),它具有更高的执行效率,能够更好地求解TSP问题。

改进蚁群算法改进的蚁群算法(ICA)是基于原始蚁群算法(ACA)的新框架,它利用蒙特卡洛搜索技术,以模拟蚁群的行为,以寻找最优的解决方案。

该算法使用人工选择算法以动态选取最优路径序列,能够有效地减少求解时间。

此外,ICA利用“参数控制”技术可以调控迭代次数,以获得最优路径序列。

改进的蚁群算法的优势改进的蚁群算法(ICA)有着许多优点,其中最为明显的有:(1)改进的ICA算法在求解TSP问题时,具有更高的执行效率,使得结果更为精确;(2)ICA利用蒙特卡洛搜索技术,通过人工选择算法,以动态选取最优路径序列,有效减少了求解TSP问题的时间;(3)ICA 还采用了“参数控制”,可以有效控制算法的迭代次数,以获得最优路径序列。

实验结果为了检验改进的蚁群算法(ICA)的有效性,我们在不同的计算机环境上进行了实验,并比较了ICA与传统的蚁群算法(ACA)以及其他最新算法(如遗传算法)的性能。

结果表明,ICA要优于传统的蚁群算法。

结论本文提出了一种改进的蚁群算法(ICA),它具有更高的执行效率,能够更好地求解TSP问题。

分层递进的改进聚类蚁群算法解决TSP问题

分层递进的改进聚类蚁群算法解决TSP问题

分层递进的改进聚类蚁群算法解决TSP问题摘要:旅行商问题(TSP)是一个重要的组合优化问题,在结果中已被证明是NP难问题。

为了解决TSP问题,本文提出了一种改进的聚类蚁群算法。

该算法通过分层递进的方式进行搜索,将问题分解为多个子问题,并根据实际情况进行各个子问题的解决,最终得到整个问题的最优解。

文章通过对TSP问题的建模和算法的设计,提出了改进的聚类蚁群算法。

通过对大量实际数据的实验测试,证明了该算法在解决TSP问题中的有效性和可行性。

一、引言旅行商问题(TSP)是指一个旅行商要在N个城市中找到一条最短路径,经过每个城市一次后返回出发城市。

这是一个经典的组合优化问题,在物流、交通等领域有着广泛的应用。

由于TSP问题的复杂性,要找到最优解往往需要耗费大量的计算资源和时间。

寻找一个高效的算法来解决TSP问题就显得十分重要。

蚁群算法是一种基于模拟蚁群觅食行为的计算方法,已被证明在解决TSP问题上具有较好的效果。

传统的蚁群算法在解决TSP问题时存在一些问题,例如容易陷入局部最优解、搜索效率较低等。

为了解决这些问题,本文提出了一种改进的聚类蚁群算法。

二、算法设计改进的聚类蚁群算法主要包括两个阶段:分层聚类和递进算法。

1. 分层聚类将所有的城市分为多个簇,每个簇内的城市之间的距离较短,而不同簇之间的距离较远。

通过聚类可以将复杂的问题分解为多个简单的子问题,减小了问题的规模。

在聚类过程中,我们使用了改进的蚁群算法来选择簇中的代表城市,并在簇内使用蚁群算法求解最短路径。

2. 递进算法在递进算法中,我们依次求解每个子问题,并将子问题的解合并为整个问题的解。

具体地,我们通过蚁群算法求解每个簇内的最短路径,并记录下每个子问题的最优解和最优路径。

然后,我们选择一个子问题作为下一个要求解的子问题,并将该子问题从待解集合中移除。

继续执行蚁群算法,求解下一个子问题。

直到所有的子问题都被求解完毕,我们将各个子问题的解按照一定规则进行合并,得到整个问题的最优解和最优路径。

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

(计算智能大作业)
应用蚁群算法求解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)。

蚁群算法是继遗传算法、人工神经网络等算法之后的又一种启发式算法,它的基本原理借鉴了这样一个客观事实:蚂蚁由自组织的合作能力所产生的群体智能来寻找路径,它被认为是用于解决组合优化问题的又一种新方法。

蚁群算法是一种适应性好、鲁棒性强,具有正反馈结构的并行算法。

这些初步研究已显示出蚁群算法在求解复杂优化问题(特别是离散优化问题)方面的一些优越性,证明它是一种很有发展前景的方法。

蚂蚁算法在各个领域的应用,说明该算法有着广泛的适应性,但由于该算法出现的较晚,对其研究还处于起步阶段,远不如遗传算法、人工神经网络和模拟退火算法那样成熟。

二、蚁群算法原理
蚁群算法的基本原理来源于自然界蚂蚁觅食的最短路径原理,根据昆虫学家的观察,发现自然界的蚂蚁虽然视觉不发达,但它可以在没有任何提示的情况下找到从食物源到巢穴的最短路径,并且能在环境发生变化(如原有路径上有
了障碍物)后,自适应地搜索新的最佳路径。

蚂蚁是如何做到这一点的呢?
原来,单个的蚂蚁为了避免自己迷路,它在爬行时,同时也会释放一种特殊的分泌物——信息素(Pheromone),而且它也能觉察到一定范围内的其它蚂蚁所分泌的信息素,并由此影响它自己的行为。

当一条路上的信息素越来越多(当然,随着时间的推移会逐渐减弱),后来的蚂蚁选择这条路径的概率也就越来越大,从而进一步增加了该路径的信息素浓度,这种选择过程称为蚂蚁的自催化过程,其原理是一种正反馈机制。

这里我们可以用一个图来说明蚂蚁觅食的最短路径选择原理,如图2-1所示。

图2-1 蚁群觅食原理
如图2-1(a)所示,我们假设A点是食物,而E点是蚂
蚁的巢穴,当A、E两点间没有任何障碍物阻挡时,蚂蚁不存在路径选择的问题,这种情况最简单:由于两点间直线距离最短,蚂蚁们搬运食物时,会以直线的形式往返爬行。

但在图2-1(b)中的情形有所变化,若某时刻忽然有一个障碍物出现在蚂蚁经过的路径中,原有的路径被切断,那么从A点到E点的蚂蚁就必须在B点决定应该往左还是往右走,而从E点到A点的蚂蚁也必须在D点决定选择走哪条路径;这种决定会受到各条路径上以往蚂蚁留下的信息素浓度(即残留信息素浓度)的影响。

如果往右走的路径上的信息素浓度比较大,那么右边的路径被蚂蚁选中的可能性也就大一些;但是对障碍出现后第一个到达B点或D点的蚂蚁而言,因为没有信息素的影响,所以它们选择向左或者向右的可能性是一样的,(b)图所表示的正是此时的情况。

若以从A点到E点的蚂蚁为例进行说明(对于从E点到A点的蚂蚁而言,过程也基本是一样的),由于路径BCD比路径BHD要短,因此选择BCD路径的第一只蚂蚁要比选择BHD 的第一只蚂蚁早到达D点;此时,从D点向B点看,路径DCB 上的信息素浓度要比路径DHB上的信息素浓度大。

因此从下一时刻开始,从E点经D点到A点的蚂蚁,它们选择DCB路径的可能性要比选择DHB路径的可能性大得多,从而使路径BCD(或DCB)上信息素浓度与路径BHD(或DHB)上信息素浓度的差变大;而信息素浓度差变大的结果是选择路径BCD
(或DCB )的蚂蚁进一步增加,这又导致信息素浓度差进一步加大。

如图2-1(c )所示,随着时间的推移,几乎所有的蚂蚁都会选择路径BCD 搬运食物,而我们同时也会发现:BCD 路径也正是事实上的最短路径。

这种蚁群寻径的原理可简单理解为:对于单个的蚂蚁来说,它并没有要寻找到最短路径的主观上的故意;但对于整个蚁群系统来说,它们又确实达到了寻找到最短路径的客观上的效果。

在自然界中,蚁群的这种寻找路径的过程表现为一种正反馈的过程,与蚁群算法中人工蚁群的寻优算法极为一致。

例如,我们把只具备了简单功能的工作单元视为“蚂蚁”,那么上述寻找路径的过程可以用于解释蚁群算法中人工蚁群的寻优过程。

三、蚁群算法解决TSP问题
我们来介绍一下如何用蚁群算法求解n个城市的TSP 设d
ij 为城市i,j之间的几何距离,d ij =()()⎥⎦⎤⎢⎣⎡-+-22y y x x j i j i 2/1。

设()t b i 表示t时刻位于城市i的蚂蚁
的个数,蚂蚁总数m=()∑=n i i t b 1
,τij ()t 表示t时刻在ij连线
上残留的信息量,初始时刻各条路径上的信息量为τij ()0=C
(C为常数)。

用参数ρ表示信息量的保留度,则经过n个时刻后,路径ij上的信息量根据下式作调整:
τττρij ij ij t n t ∆+⋅=+)()( ⑴
∑=∆=∆m
k k
ij ij 1
ττ ⑵ k ij τ∆表示第k只蚂蚁在本次循环中留在路径ij上的
信息量,τij ∆表示本次循环所有经过的蚂蚁留在ij上的信
息量。

k ij τ∆=⎪⎩⎪⎨⎧当不经过时0时当第k只蚂蚁经过ijL k Q ⑶
定义ηij =1/d ij 。

蚂蚁k(k=1,2,…,m)在
运动过程中,k ij p 表示在t时刻蚂蚁k由位置i转移到位置j
的概率:
k ij p =()()⎪⎪⎩⎪⎪⎨⎧∈∑∈其他
0k allowd s is is ij ij allowed j t t k βαβαητητ ⑷ 我们用),,2,1(m k tabu k =记录蚂蚁k目前已经走过的城市集合,allow k d 表示蚂蚁k下一步允许选择的城市集合,它等
于全部的城市集合除去第k只蚂蚁已走过的集合k tabu 。

定义L k
为第k只蚂蚁在本次循环中走过的路径和。

用蚁群算法解决TSP问题是一个递推过程 ,当t=
0时,将蚂蚁放在各城市,设定每条路径上的信息量初值()0τij =C,每只蚂蚁根据公式⑷决定的概率从城市i到城市j。

()t ij τ表示曾经有多少蚂蚁经过路径(i,j);ηij
说明较近的城市有更大的可能性被选中。

α,β用来控制两者对蚂蚁选择的影响力程度。

经过一个循环后,根据公式⑴⑵⑶计算更新每条路径的信息量()t ij τ。

将所有的),,2,1(m k tabu k =复原,最后求出本次循环的最短路径min L k 。

这个过程不断重复,
直到所有的蚂蚁都选择同样的路径,或者循环次数达到预先设定的最高次数NC max 。

四、解决n个城市的TSP 问题的算法步骤
1.初始化:设定t=0,循环计数器nc=0,对每条路径设定初始信息量()0τij =C,τij ∆=0将m只蚂蚁放在n个城市上
(为了使问题简化,设定m=n)。

2.设定taub 集合的索引s=1,对k从1到m,把第k只蚂蚁放在起始位置,对应的设定集合()s tabu k
3.重复下面的步骤,直到集合tabu 满为止(这一步将重复n-1次):设定s=s+1;对k从1到m,根据公式⑷确定的概率,选择下一步移动的目标城市j{在时间t时,第k只蚂蚁所在的城市是i=()1-s tabu k };将第k只蚂
蚁移到城市j;把j加入到集合()s tabu k 中。

4.对k从1到m:将第k只蚂蚁从()n tabu k 移动到
()1tabu k ;计算第k只蚂蚁所走过的路程和L k ,并更新最小路径min L k ;对每条路径(i,j):
k ij τ∆= ⎪⎩⎪⎨⎧当不经过时0时当第k只蚂蚁经过ijL k Q
k ij
ij ij τττ∆+∆=∆ 5.对每条路径(i,j)根据τττρij ij ij t n t ∆+⋅=+)()(计算()n t ij +τ;设定t=t+n;设定NC=NC+1;对每条路径(i,j),设定ij τ∆=0。

6.如果NC<NC max
,则清空所有的集合tabu,转到第二步;否则,得出最短的路径。

算法的流程如下图:。

相关文档
最新文档