蚁群算法在TSP问题上的应用研究Word文档格式.docx
- 文档编号:20421838
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:18
- 大小:266.12KB
蚁群算法在TSP问题上的应用研究Word文档格式.docx
《蚁群算法在TSP问题上的应用研究Word文档格式.docx》由会员分享,可在线阅读,更多相关《蚁群算法在TSP问题上的应用研究Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
年月日
摘要1
Abstract1
1.引言2
2.TSP问题简介2
2.1TSP问题的概述2
2.2TSP问题意义2
3.蚁群算法简介3
3.1蚁群算法的起源3
3.2蚁群算法的发展3
3.3蚁群算法的特点3
4.基本蚁群算法的原理4
.4.1蚁群行为描述4
4.2基本蚁群算法的机制原理5
4.3基本蚁群算法的系统学特征6
4.3.1分布式6
4.3.2正反馈7
4.3.3自组织7
4.4蚁群算法的数学模型7
4.5基本蚁群算法求解TSP的实现流程9
4.5.1基本蚁群算法的实现步骤9
4.5.2基本蚁群算法的结构流程10
4.6基本蚁群算法运行结果11
5.关键参数设置对于路径的影响11
5.1关键参数介绍11
5.2信息挥发度的设置对结果的影响12
5.3启发因子的设置对结果的影响12
5.4蚂蚁数量的设置对结果的影响13
结论14
致15
参考文献16
摘要:
随着二十一世纪的到来。
计算机已经成为人们生活不可缺少的一部分,越来越多的难题问题通过计算机迎刃而解,从而也引发出一批智能算法,蚁群算法就是其中的代表之一,本文研究了基于蚁群算法解决TSP问题的原理,算法流程。
论文首先简单回顾了蚁群算法的历史、发展以及应用,然后详细介绍了基本蚁群算法的原理,包括基本蚁群算法的行为描述和机制原理。
其次从基本蚁群算法的系统学特征出发,讨论它具有分布式,自组织,正反馈等特征。
接着引出了基本蚁群算法解决的TSP问题,从TSP问题的定义,实用价值,理论意义的角度对TSP问题进行阐述。
给出了求解TSP问题的数学模型,实现步骤,描述了蚁群算法的优缺点。
本文主要运用VS2008为开发工具,以C++作为编程语言,对蚁群算法解决TSP问题进行研究,对其主要参数进行了详细的讨论,并且给出了优化的参数选择,解决了算法中存在的不足。
论文实现了基于蚁群算法对TSP问题的求解和仿真。
关键字:
蚁群算法,参数,TSP问题,自组织,正反馈。
AntColonyAlgorithmForTheTSPProblemAppliedResearc
Abstract:
Withtheadventofthetwenty-firstcentury,Thecomputerhasbecomeanindispensablepartofpeople'
slives,Moreandmoretheproblemissolvedbycomputer.Whichalsoledtoanumberofintelligentalgorithm,Antcolonyalgorithmisoneoftherepresentativesof,Inthispaper,theprinciplebasedonantcolonyalgorithmtosolveTSPproblems.Algorithmprocesses.
Firstly,abriefreviewofthehistoryoftheantcolonyalgorithm.Developmentandapplicationof,Thendescribedindetailthebasicprincipleofantcolonyalgorithm,Behavioraldescriptionofthebasicantcolonyalgorithmandmechanismsprinciple.Secondly,startingfromthesystemcharacteristicsofthebasicantcolonyalgorithm,Discussitwithadistributed,self-organizingpositivefeedbackcharacteristics.ThenleadstothebasicantcolonyalgorithmtosolveTSPproblems,FromthedefinitionoftheTSP,Practicalvalue,TheoreticalsignificanceoftheperspectiveoftheTSPproblemsdescribed.giveThemathematicalmodelforTSP,Implementationsteps,Describestheadvantagesanddisadvantagesoftheantcolonyalgorithm
Inthispaper,usetheVS2008fordevelopmenttools,C++asprogramminglanguage,TheantcolonyalgorithmtosolveTSP,Itsmainparametersarediscussedindetail,Andgivestheoptimizedparameterselection,Addressthedeficienciesinthealgorithm.PapertoachievetheTSPproblemsolvingandsimulationbasedonantcolonyalgorithm
KeyWord:
AntColonyAlgorithmParameterTSPproblemSelf-organizationPositivefeedback。
1.引言
自然界一直是人类创造了的丰富源泉,人类认识事物的能力来源于与自然界的相互作用之中,自然界的许多的自适应优化形象不断的给人以启示:
生物体和自然生态系统成千上万年的不断进化,不但向人民展示出大自然的无限创造力和无穷的智慧,而且人类通过对生物的生理结构和行为规律的研究,为许多在人类看来高度复杂的问题提供很好解决办法。
近些年来一些与经典数学规划原理截然不同的,试图通过模拟自然生态系统机制以求解复杂优化问题的仿生学算法相继出现,而蚁群算法就是其中的代表之一,生物学家通过对蚂蚁的长期观察研究发现,每只蚂蚁的智商不高,看起来没有集中指挥,但他们却能依靠群体能力完成协同工作,集中食物,建立蚁穴等一系列复杂的群体协同工作。
蚁群算法作为一种新发展的模拟昆虫中蚂蚁智能行为的仿生学算法,它的诞生源于一个著名的数学问题——TSP问题(旅行商问题),TSP问题是一个局部最优的最优化问题,人们为了解决这问题想了许多方法,渐渐的人们发现在解决这个问题时,计算机具有人脑是不具备的优势,并发展出许多算法,蚁群算法具有较强的鲁棒性,优良的分布式计算机制,易于与其他算法结合的有点,从而使这种新兴的算法展现出勃勃生机和广阔的发展前景
2.TSP问题简介
2.1TSP问题的概述
旅行商问题,即TSP问题(TravelingSalesmanProblem)是数学领域中著名问题之一。
简单来说它是:
假设有一个旅行商人要拜访N个城市,必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。
路径的选择目标是要求得的路径路程为所有路径之中的最小值。
TSP的历史很久,最早的描述是1759年欧拉研究的骑士周游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点。
1948年由美国RAND公司引入TSP问题,该公司的声誉以及线形规划这一新方法的出现使得TSP成为一个知名且流行的问题。
2.2TSP问题意义
TSP问题广泛的存在于许多领域,而且问题规模(城市的数目)都很大。
比如说,电路板钻孔问题,X射线结晶学问题,VLSL(超大规模集成电路)制造问题等等。
总之,凡是可以抽象成为遍历全部城市一次且仅一次,求代价最小的路径的问题,都可以当作TSP问题来解决.
同实用价值相比,TSP问题的理论意义更加重大。
事实上,该问题是作为所有组合优化问题的例而存在的[11]。
它己经成为并将继续成为测试新算法的标准问题。
这是因为,TSP问题展示了组合优化的所有方面。
它从概念上来讲非常简单,但是其求解的难度是很大的。
如果针对TSP问题提出的某种算法能够取得比较好的实算效果,那么对其进行修改,就可以应用于其它类型的组合优化问题并取得良好的效果。
基于上述原因,该问题吸引了许多不同领域的研究者。
3.蚁群算法简介
3.1蚁群算法的起源
蚂蚁:
大自然中一种渺小却又让人敬畏的生物,它们个体很小,头脑也很简单但却依靠群体生活在残酷的大自然中获得极大的成功,成为世界上数量最多的生物也是最成功的物种之一,它们没有一个领导者指挥,却行动一致,井然有序,在寻找食物等方面表现出极高的效率,和令人惊叹的能力。
从而吸引许多科学家对其的兴趣。
MarcoDorigo在长时间通过对蚂蚁的个体和群体行为进行长时间的观察和研究后,于1992年在他的博士论文中提出蚁群算法(antcolonyoptimization,ACO)。
3.2蚁群算法的发展
蚁群算法又称蚂蚁算法,蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质.针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进行了比较,数值仿真结果表明,蚁群算法具有一种新的模拟进化优化方法的有效性和应用价值
蚁群优化算法最初用于解决TSP问题,经过多年的发展,已经陆续渗透到其他领域中,如,图着色问题、大规模集成电路设计、通讯网络中的路由问题以及负载平衡问题、车辆调度问题等。
蚁群算法在若干领域己获得成功的应用,其中最成功的是在组合优化问题中的应用。
在网络路由处理中,网络的流量分布不断变化,网络链路或结点也会随机地失效或重新加入。
蚁群的自身催化与正向反馈机制正好符合了这类问题的求解特点,因而,蚁群算法在网络领域得到一定应用。
蚁群觅食行为所呈现出的并行与分布特性使得算法特别适合于并行化处理。
因而,实现算法的并行化执行对于大量复杂的实际应用问题的求解来说是极具潜力的。
在某群体中若存在众多无智能的个体,它们通过相互之间的简单合作所表现出来的智能行为即称为集群智能(SwarmIntelligence)。
互联网上的交流,不过是更多的神经元连接(人脑)通过互联网相互作用的结果,光缆和路由器不过是轴突和突触的延伸。
从自组织现象的角度上看,人脑的智能和蚁群也没有本质上的区别,单个神经元没有智能可言,单个蚂蚁也没有,但是通过连接形成的体系,是一个智能体。
3.3蚁群算法的特点
蚁群算法是一种自组织的算法,在系统论中,自组织和它组织是组织的两个基本分类,其区别在于组织力或组织指令是来自于系统的部还是来自于系统的外部,来自于系统部的是自组织,来自于系统外部的是他组织。
如果系统在获得空间的、时间的或者功能结构的过程中,没有外界的特定干预,我们便说系统是自组织的。
在抽象意义上讲,自组织就是在没有外界作用下使得系统墒增加的过程(即是系统从无序到有序的变化过程)。
蚁群算法充分休现了这个过程,以蚂蚁群体优化为例子说明。
当算法开始的初期,单个的人工蚂蚁无序的寻找解,算法经过一段时间的演化,人工蚂蚁间通过信息激素的作用,自发的越来越趋向于寻找到接近最优解的一些解,这就是一个无序到有序的过程。
蚁群算法是一种本质上并行的算法每只蚂蚁搜索的过程彼此独立,仅通过信息激素进行通信。
所以蚁群算法则可以看作是一个分布式的多agent系统,它在问题空间的多点同时开始进行独立的解搜索,不仅增加了算法的可靠性,也使得算法具有较强的全局搜索能力。
蚁群算法是一种正反馈的算法从真实蚂蚁的觅食过程中我们不难看出,蚂蚁能够最终找到最短路径,直接依赖于最短路径上信息激素的堆积,而信息激素的堆积却是一个正反馈的过程。
对蚁群算法来说,初始时刻在环境中存在完全相同的信息激素,给予系统一个微小扰动,使得各个边上的轨迹浓度不相同,蚂蚁构造的解就存在了优劣,算法采用的反馈方式是在较优的解经过的路径留下更多的信息激素,而更多的信息激素又吸引了更多的蚂蚁,这个正反馈的过程使得初始的不同得到不断的扩大,同时又引导整个系统向最优解的方向进化。
因此,正反馈是蚂蚁算法的重要特征,它使得算法演化过程得以进行。
蚁群算法具有较强的鲁棒性相对于其它算法,蚁群算法对初始路线要求不高,即蚁群算法的求解结果不依赖子初始路线的选择,而且在搜索过程中不需要进行人工的调整。
其次,蚁群算法的参数数目少,设置简单,易于蚁群算法应用到其它组合优化问题的求解。
4.基本蚁群算法的原理
.4.1蚁群行为描述
根据仿生学家的长期研究发现:
蚂蚁虽然没有视觉,但运动时会通过在路径上释放出一种特殊的分泌物——信息素来寻找路径。
当它们碰到一个还没有走过的路口的时,就随机的挑选一条路径前行,同时释放出与路径长度有关的信息素。
蚂蚁走的路径越长,则释放的信息量越小。
当后来的蚂蚁再次碰到这个路口的时候,选择信息量较大路径的概率相对较大,这样便形成了一个正反馈机制。
最优路径上的信息量越来越大,而其他路径上的信息量却会随着时间的流逝而逐渐消减,最终整个蚁群会找出最优路径。
同时蚁群还能够适应环境的变化,当蚁群的运动路径上突然出现障碍物时,蚂蚁也能很快的重新找到最优路径。
可见,在整个寻径过程中,虽然单只蚂蚁的选择能力有限,但是通过信息素的作用使整个蚁群行为找出最优路径。
这里用人工蚂蚁觅食图来描述蚁群搜索原理。
如图a设A点是蚁巢,D点是食物源,EF之间区域是障碍物。
由于障碍物的存在蚂蚁只能经由A经E或F到达D,或由D到达A,各点之间的距离如图所示。
假设每个时间单位有30只蚂蚁由A到达D点,有30只蚂蚁由D到达A点,蚂蚁过后留下的信息量为1。
为了方便起见,设该物质停留时间为1。
在初始时刻,由于路径BF、FC、BE、EC上均无信息存在,位于A和D的蚂蚁可以随机选择路径,从统计学的角度可以认为蚂蚁以相同的概率选择BE、FC、BE、EC,如图b所示。
经过一个时间单位后,在路径BFC上的信息量是路径BEC上的信息量的2倍。
又经过一段时间,将有20只蚂蚁由B、F和C点到达D,如图c所示。
随着时间的推移,蚂蚁将会以越来越大的概率选择路径BFC,最终将会完全选择BFC,从而找到由蚁巢到食物源的最短路径。
4.2基本蚁群算法的机制原理
模拟蚂蚁群体觅食行为的蚁群算法是作为一种新的计算智能模式引入,该算法基于以下基本假设:
1.蚂蚁之间通过信息素和环境进行通信。
每只蚂蚁仅根据其周围的局部环境作出反应,也只对其周围的局部环境产生影响。
2.蚂蚁对环境的反应由其部模式决定。
因为蚂蚁是基因生物,蚂蚁的行为实际上是其基因的适应性表现,即蚂蚁是反应型适应性主体。
3.在个体水平上,每只蚂蚁仅根据环境做出独立选择;
在群体水平上,单只蚂蚁的行为是随机的,但蚁群可通过自组织过程形成高度有序的群体行为。
由上述假设和分析可见,基本蚁群算法的寻优机制包含两个基本阶段:
适应阶段和协作阶段。
在适应阶段,各候选解根据积累的信息不断调整自身结构,路径上经过的蚂蚁越多,信息量越大,则该路径越容易被选择;
时间越长,信息量会越小;
在协作阶段,候选解之间通过信息交流,以期望产生性能更好的解。
蚁群算法实际上是一类智能多主体系统,其自组织机制使得蚁群算法不需要对所求的问题的每一方面都有详尽的认识。
自组织本质上体现了从无序到有序的动态演化,其逻辑结构如下图所示。
基本蚁群算法的逻辑结构
由上图可见,先将具体的组合优化问题表述成规的格式,然后利用蚁群算法在“探索”和“利用”之间根据信息素这一反馈载体确定决策点,同时按照相应的信息素更新规则对每只蚂蚁个体的信息素进行增量构建,随后从整体角度规划出蚁群活动的行为方向,周而复始,即可求出组合优化的最优解。
4.3基本蚁群算法的系统学特征
基本蚁群算法在系统学上表现以下三个特征:
分布式,自组织,正反馈。
三者表现出一个整体,相辅相成。
4.3.1分布式
自然界中的真实蚁群行为也出现了分布式。
当蚁群需要完成某项工作时,其中的许多蚂蚁都为共同目的进行着同样的工作,而最终任务的完成不会由于某些个体的的缺陷而受到影响。
蚁群算法作为对蚁群觅食行为的抽象,也体现了群体行为的分布式特征。
每只人工蚂蚁
从抽象意义上讲,自组织就是在没有外界作用下使得系统从无序到有序的进化过程。
基本蚁群算法体现了这一过程,以蚁群优化为例,当算法开始的初期,单只人工蚂蚁无序地寻找解,经过一段时间的算法演化,人工蚂蚁越来越趋向于寻找到接近最优解的一些解,这恰恰体现了从无序到有序的自组织进化。
自组织大大增强了算法的鲁棒性[5](在这里可以理解为算法抗干扰性,就是指不是针对具体问题算法也同样可以求解,极大的体现了蚁群算法的抗干扰能力),传统的算法都是针对某一具体问题而设计的,这往往建立在对该问题有了全面清晰认识的基础上,通常很难适应其他问题。
而自组织的蚁群算法不需要对待求解问题的所有问题的所有方面都有所认识,因而较容易应用到一类问题中。
4.3.2正反馈
反馈是控制论中的重要概念,它代表信息输入对输出的反作用。
在系统学上认为,反馈就是把系统现在的行为作为影响系统未来行为的原因。
反馈分正反馈和负反馈两种,前者指的是以现在的行为去加强未来的行为,而后者则是以现在的行为去削弱未来的行为。
由自然界中真实蚂蚁的觅食行为可见,蚂蚁能够最终找到最短路径,直接依赖于最短路在问题空间的多个点同时开始相互独立地构造问题解,而整个问题的求解不会因为某只人工蚂蚁无法成功获得解而受到影响。
具体到不同的优化问题而言,蚁群算法体现出的分布式特征就具有了更加现实的意义。
因为所有的仿生优化算法均可看做按照一定规则的问题解空间搜索最优解的过程,所以搜索点的初始选取就直接关系到算法求解结果的优劣和算法寻优效率。
当求解许多复杂问题时,从一点出发的搜索受到局部特征的限制,可得不到所求问题的满意解;
而基本蚁群算法则可看做是一个分布式的多智能系统,它在问题空间的多点同时独立地进行解搜索,不仅使得算法具有较强的全局搜索能力,也增加了算法的可靠性。
4.3.3自组织
基本蚁群算法的另一个重要特征是自组织。
自组织的概念是随着系统科学的发展而建立起来的。
通常把系统论中的组织行为分为自组织和他组织两大类。
其根本区别在于组织力或组织指令是来自于系统部还是来自于系统外部,前者称为自组织,而后者即为他组织。
如果系统在获得时间的、空间的或者功能的结果过程中,没有外界的特定干预,则称为系统是自组织的。
径上信息素的堆积,而信息素的堆积却是一个正反馈的过程,对于基本蚁群算法而言,初始时在环境中存在完全相同的信息量,给系统一个微小的扰动,使得各个边上的信息量大小不同,蚂蚁构造的解就存在了优劣。
算法采用的反馈方式是在较优解经过的路径留下更多的信息素,更多的信息素又吸引了更多的蚂蚁,这个正反馈的过程使得初始值不断地扩大,同时又引导整个系统向着最优解的方向进化。
单一的正反馈或者负反馈存在于线形系统之中,是无法实现系统的自我组织的。
自组织系统通过正反馈和负反馈机制,它体现于蚁群算法在构造问题解的过程中用到了概率搜索技术,通过该技术增加了生成解的随机性。
随机性的影响就在于接受了解在一定程度上的退化,另一方面又使得搜索围得以在一段时间保持足够大。
这样正反馈缩小搜索围,保证算法朝着最优解的方向进行;
而负反馈保持搜索围,避免算法过早收敛于不好的结果。
恰恰是在正反馈和负反馈共同作用影响下,基本蚁群算法得以自组织地进化,从而得到问题在一.定程度上的满意解。
4.4蚁群算法的数学模型
设τij(t)为t时刻路径(i,j)上的信息量,n表示TSP规模,m为蚁群中蚂蚁的总数目。
在初始时刻各条路径上的信息量相等,并设τij(0)=const。
蚂蚁k(k=1,2,…,m)在运动过程中,根据各条路径上的信息量决定其转移方向,这里用禁忌表tabuk(k=1,2,…,m)来记录蚂蚁k当前所走过的城市,集合随着tabuk进化过程作动态调整。
在搜索过程中,蚂蚁根据各条路径上的信息量及路径的启发信息来计算状态转移概率。
pijk(t)表示在t蚂蚁k由城市i转移到城市j的状态转移概率
(公式一)
式中,allowedk表示蚂蚁k下一步允许选择的城市;
α为信息启发式因子,表示轨迹的相对重要性,反映了蚂蚁在运动过程中所积累的信息在蚂蚁运动时的所起的作用,其值越大,则该蚂蚁越倾向于选择其他蚂蚁经过的路径,蚂蚁之间的协作性越强;
β为期望启发式因子,表示能见度的相对重要性,反映了蚂蚁在运动过程中启发信息在蚂蚁选择路径中的受重视程度,其值越大,则该状态转移概率越接近于贪心规则[;
ηij(t)为启发函数,其表达式如下
ηij(t)=1/dij(公式二)
式中,dij表示相邻两个城市之间的距离。
对蚂蚁k而言,dij越小,则ηij(t)越大,pijk(t)也就越大。
显然,该启发函数表示蚂蚁从城市i转移到城市j的期望程度。
为了避免残留信息素过多引起残留信息淹没启发信息,在每只蚂蚁走完一步或者完成对所有n个城市遍历(也即一个循环结束)后,要对残留信息进行更新处理。
这种更新策略模仿了人类大脑记忆的特点,在新信息不断存入大脑的同时,存储在大脑中的旧信息随着时间的推移逐渐淡化,甚至忘记。
由此,t+n时刻在路径(i,j)上的信息量可按如下规则进行调整
(公式三),(公式四)
式中,ρ表示信息素挥发系数,则1-ρ表示信息素残留因子,为了防止信息的无限积累,ρ的取值围为:
ρ⊂[0,1);
Δτij(t)表示本次循环中路径(i,j)上的信息素增量,初始时刻Δτij(0)=0,Δτijk(t)表示第k只蚂蚁在本次循环中留在路径(i,j)上的信息量。
根据信息素更新策略的不同,DorigoM提出了三种不同的基本蚁群算法模型,分别称之为Ant-Cycle模型、Ant-Quantity模型及Ant-Density模型,其差别在于Δτijk(t)求法的不同。
在Ant-Cycle模型中
(公式五)
式中,Q表示信息素强度,它在一定程度上影响算法的收敛程度;
Lk表示第k只蚂蚁在本次循环中所走过路径的总长度。
在Ant-Quantity模型中
(公式六)
在Ant-Density模型中
(公式七)
公式(公式六)和(公式七)中利用的是局部信息,即蚂蚁完成一步后更新路径上的信息素;
而公式(公式一)中利用的是整体信息,即蚂蚁完成一次循环后更新所有路径上的信息素,在求解TSP时性能较好,因此通常采用公式(公式五)作为蚁群算法的基
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 TSP 问题 应用 研究