欢迎来到天天文库
浏览记录
ID:15402350
大小:160.50 KB
页数:5页
时间:2018-08-03
《一种求解tsp的蚁群算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一种求解TSP的蚁群算法林家恒贺庆(山东大学控制科学与工程学院,济南250061)提要本文提出了一种求解TSP问题的算法—蚁群算法,该算法通过模拟蚁群搜索食物的过程,可求解TSP问题,算法的主要特点是:正反馈、分布式计算、与某种启发式算法相结合。正反馈过程使得该方法能很快发现较好解;分布式计算使得该方法易于并行实现;与启发式算法相结合,使得该方法易于发现较好解。计算机仿真结果表明了该算法的有效性。关键词TSP,蚁群算法,一、引言TSP(TravellingSalesmanProblem)又称货郎担或巡回售货员问题,在运筹学、管理科学及工程实际中具有广泛的用途。及工程实际中
2、具有广泛的用途。TSP问题是组合优化中的著名难题,一直受到人们的极大关注。由于其NP难题性质,至今尚未完全解决。TSP问题可以描述为:有N个城市,一售货员从起始城市出发,访问所有的城市一次,最后回到起始城市,求最短路径。TSP问题除了具有明显的实际意义外,有许多问题都可以归结为TSP问题。目前针对这一问题已有许多解法,如穷举搜索法(ExhaustiveSearchMethod),贪心法(GreedyMethod),动态规划法(DynamicProgrammingMethod)分支界定法(Branch-And-Bound),遗传算法(GeneticAgorithm)等。本文
3、介绍了一种求解TSP问题的算法—蚁群算法,该算法是一种新型的模拟进化算法,该算法比较容易实现,而且比较灵活,经过仿真试验,证明是一种解决TSP问题有效的方法。二、蚁群算法原理蚁群算法是受到对真实的蚁群行为的研究启发而提出的,像蚁群、蜜蜂等群居昆虫,虽然单个昆虫的行为很简单,但是组成的群体却表现出极其复杂的行为。仿生学家经过大量细致观察研究发现,蚂蚁个体之间是通过一种称为外激素的物质进行信息传递的,蚂蚁在运动过程中,能够在它所经过的路径上留下外激素,而且蚂蚁在运动过程中能够感知这种物质,并且以此指导自己的运动方向,所以,大量的蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现
4、象。我们并不想完全模拟蚁群,而是对使用人工蚁群方法来解决优化问题感兴趣因此,我们的蚁群与实际的蚁群有三个主要的区别:E•••人工蚁群具有记忆性,•人工蚁群不是完全盲目的,D•人工蚁群处在离散的时间环境中。HC虽然有区别,我们仍然可以用蚂蚁群的行为来形象地说明人工蚁群B算法的原理。如图⑴所示,设DH=HB=1,DC=CB=0.5。我们假定在每个离散的等时间间隔:t=0,1,2,……有30个A蚂蚁从A到达B,同时有30个蚂蚁从E到D,每只蚂蚁的速度为图⑴1/S,并且,每有一只蚂蚁经过时,在时间t留下信息素密度为1。蚂蚁在选择路径时,那些有更多蚂蚁曾经选择过的路径(也就是具有更
5、高信息素密度的路径),被再次选中的可能性最大。当t=0时,没有信息素,有30只蚂蚁分别在B和D。蚂蚁走哪条道路是完全随机的。因此,在每个点上蚂蚁将有15只经过H,另外15只经过C。当t=1时有30只蚂蚁从A到B,它们发现指向H道路上的信息素密度是15,是由从B出发的蚂蚁留下的;指向C道路上的信息素密度是30,其中15是由B出发蚂蚁留下,另外15是从D出发经过C已经到达B的蚂蚁留下。因此,选择经过C到D的可能性就更大,从E出发到D的30只蚂蚁也面临着同样的选择,由此产生一个正反馈过程,选择经过C的蚂蚁越来越多,直到所有的蚂蚁都选择这条较近的道路。蚁群算法就是利用蚂蚁的这一特
6、性,解决最优化问题。三、蚁群算法解决TSP问题我们来介绍一下如何用蚁群算法求解n个城市的TSP问题。设为城市i,j之间的几何距离,=。设表示t时刻位于城市i的蚂蚁的个数,蚂蚁总数m=,表示t时刻在ij连线上残留的信息量,初始时刻各条路径上的信息量为=C(C为常数)。用参数表示信息量的保留度,则经过n个时刻后,路径ij上的信息量根据下式作调整:⑴⑵表示第k只蚂蚁在本次循环中留在路径ij上的信息量,表示本次循环所有经过的蚂蚁留在ij上的信息量。=⑶定义=1/。蚂蚁k(k=1,2,…,m)在运动过程中,表示在t时刻蚂蚁k由位置i转移到位置j的概率:=⑷我们用记录蚂蚁k目前已经走
7、过的城市集合,allow表示蚂蚁k下一步允许选择的城市集合,它等于全部的城市集合除去第k只蚂蚁已走过的集合。定义为第k只蚂蚁在本次循环中走过的路径和。用蚁群算法解决TSP问题是一个递推过程,当t=0时,将蚂蚁放在各城市,设定每条路径上的信息量初值=C,每只蚂蚁根据公式⑷决定的概率从城市i到城市j。表示曾经有多少蚂蚁经过路径(i,j);说明较近的城市有更大的可能性被选中。α,β用来控制两者对蚂蚁选择的影响力程度。经过一个循环后,根据公式⑴⑵⑶计算更新每条路径的信息量。将所有的复原,最后求出本次循环的最短路径min。这个过程不断重
此文档下载收益归作者所有