




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录 摘要 .II 关键词 .II AbstractII Keywords.II 引言 1 1 旅行商问题和模拟退火算法 2 1.1 旅行商问题 .2 1.1.1 旅行商问题的描述 2 1.1.2 旅行商问题的应用 3 1.2 模拟退火算法 .3 1.2.1 基本思想 3 1.2.2 关键技术 4 1.3 小结 .4 2 TSP 模 拟退火算法的实现 .5 2.1 TSP 算法实现 5 2.1.1 TSP 算法描述 .5 2.1.2 TSP 算法流程 .5 2.2 TSP 的 MATLAB 实现 .6 2.2.1 加载数据文件 6 2.2.2 计算总距离的函数 7 2.2.3 绘制路线的函数 7 2.2.4 交换城市的函数 8 2.2.5 执行模拟退火的函数 8 2.3 小结 .9 3 仿真实例 10 3.1 仿真分析与评价 .10 3.2 结论 .12 总结与展望 12 致谢 13 参考文献 13 I 基于模拟退火算法的旅行商问题求解 光信息科学与技术 董铸祥 指导教师 张明强 摘要: 旅行商问题是组合优化领域里的一个典型的、易于描述却难以处理的 NP 难题,其可能的路 径数目与城市数目是呈指数型增长的,求解非常困难。首先介绍了旅行商问题,给出了其数学描述 以及实际应用,进而给出解决 TSP 的一种比较精确的算法 模拟退火算法。然后阐述了模拟退 火算法的基本原理,重点说明了其基本思想及关键技术。最后运用 MATLAB 语言实现了该算法, 并将其运用到解决旅行商问题的优化之中。数值仿真的结果表明了该方法能够对数据进行全局寻优, 有效克服了基于导数的优化算法容易陷入局部最优的问题。 关键词: 模拟退火 旅行商 NP 组合优化 Solution of Travelling Salesman ProblemBaced on Simulated Annealing Algorithm Optical Information Science and Technology Dong Zhuxiang Tutor Zhang Mingqiang Abstract: Travelling Salesman Problem is one of the typical NP-hard problems in combinatorial optimization, which is easy to be described but hard to be solved. Its possible amounts of path increase exponentially with the amounts of city, so it is very difficult to solve it. First this paper introduces Travelling Salesman Problem, gives TSP mathematical description and practical application.In turn, a precise algorithmsimulated annealing algorithmthe to the address of TSP is given. And then this paper describes the basic principle of simulated annealing, highlights the basic ideas and key technology. Finally, we use MATLAB language to implement the algorithm, and applied it to solve the traveling salesman problem into the optimization. Numerical simulation results show that this method can globally optimizes data, effectively overcomes the problem of derivative-based optimization algorithm which is easy fall into local optimum. Keywords: simulated annealing; travelling salesman problem;Non-deterministicPolynomial; combinatorial optimization 0 引言 旅行商问题(Traveling Salesman Problem,TSP),也称为货郎担问题,是由爱尔兰数 学家 Sir William Rowan Hamilton 和英国数学家 Thomas Penyngton Kirkman 在 19 世纪 提出的数学问题,它是指给定 n 个城市并给出每两个城市之间的距离,旅行商必须以 最短路径访问所有的城市一次且仅一次,并回到原出发地,现已证明它属于 NP(Non- deterministic Polynomial-非确定多项式 )难题 1。历史上的第一个正式用来解决 TSP 问 题的算法诞生于 1954 年,它被用来计算 49 个城市的 TSP 问题。到现在为止,运用目前最 先进的计算机技术可解决找出游历 24978 个城市的 TSP 问题。TSP 的历史很久,最早 的描述是 1759 年欧拉研究的骑士周游问题,即对于国际象棋棋盘中的 64 个方格,走 访 64 个方格一次且仅一次,并且最终返回到起始点。旅行商问题(TSP)由美国 RAND 公司于 1948 年引入,该公司的声誉以及线性规划这一新方法的出现使得 TSP 成为一个 知名且流行的问题 2。 旅行商问题是一个经典的图论问题:设有 n 个城市,用 Ci,j =1,2,n 表示。 城市 Ci,j 之间的距离为 di,j,i,j=1,2,n,设所有城市间两两连通,旅行商需要跑 遍 n 个城市去推销他的商品,而这些城市之间的距离都不一样,这推销员需要从其中 一个城市出发,而他老板规定他必须把所有城市跑一遍,则 TSP 问题就是寻找让旅行 商遍访每个城市一次且恰好一次的一条回路,且要求其路径总长度为最短。该问题也 可以归结为:有 N 个城市由公路相互连通,从任一城市到另外城市都要支付相应的费 用,一个销售商从其中一城市出发,访问其他 N 1 个城市且仅一次,如何规划一条路 径,使该旅行商的花费最少 3。当城市数量较小时,通过枚举法就可以找出最短的路径, 然而随着问题规模的增加,很难找到一个多项式时间复杂度的算法来求解该问题。TSP 是一个典型的组合优化问题,是诸多领域内出现的多种复杂问题的集中概括和简化形 式,并且已成为各种启发式的搜索、优化算法的间接比较标准。因此,快速、有效地 解决 TSP 有着重要的理论价值和极高的实际应用价值。旅行商问题代表的一类组合优 化问题,在物流配送、计算机网络、电子地图、交通诱导、电气布线、VLSI 单元布局等 方面都有重要的工程和理论价值,引起了许多学者的关注。 TSP 是典型的组合优化问题,并且是一个 NP-hard 问题。TSP 描述起来很简单, 早期的研究者使用精确算法求解该问题,TSP 问题最简单的求解方法是枚举法。它的 解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是 n 个点的所有 排列的集合,大小为(n-1)!。可以形象地把解空间看成是一个无穷大的丘陵地带, 各山峰或山谷的高度即是问题的极值。求解 TSP,则是在此不能穷尽的丘陵地带中攀 登以达到山顶或谷底的过程 2。常用的方法包括:分枝定界法、线性规划法和动态规划 法等,但可能的路径总数随城市数目 n 是成指数型增长的,所以当城市数目在 100 个 以上一般很难精确的求出其全局最优解。随着人工智能的发展,出现了许多独立于问 题的智能优化算法,如蚁群算法、遗传算法、模拟退火、禁忌搜索、神经网络、粒子 群优化算法、免疫算法等,通过模拟或解释某些自然现象或过程而得以发展,为解决 复杂组合优化问题提供了新的思路和方法 4。模拟退火算法在迭代搜索过程以 Boltzmann 分布概率接受目标函数的“ 劣化解”,具有突出的具有脱离局域最优陷阱的能 力,同时具有较强的局部搜索能力,从而可以获取目标函数的全局最优解。因为模拟 退火算法具有高效、通用、灵活的优点,将模拟退火算法引入 TSP 求解,可以避免在 求解过程中陷入 TSP 的局部最优解 5。 本文首先介绍传统的 TSP 问题,先对其进行数学描述,又列举 TSP 问题的应用。 之后介绍模拟退火算法,主要介绍其基本思想和关键技术,在此基础上将模拟退火的 思想引入 TSP 的求解,设计出 TSP 的一种模拟退火算法并用 MATLAB 语言编程予以 实现。 1 1 旅行商问题和模拟退火算法 1.1 旅行商问题 1.1.1 旅行商问题的描述 旅行商问题(Traveling Salesman Problem,简称 TSP)又名货郎担问题,是威 廉哈密尔顿爵士和英国数学家克克曼(T.P.Kirkman)于 19 世纪初提出的一个数学问题, 也是著名的组合优化问题。问题是这样描述的:一名商人要到若干城市去推销商品, 已知城市个数和各城市间的路程(或旅费) ,要求找到一条从城市 1 出发,经过所有城 市且每个城市只能访问一次,最后回到城市 1 的路线,使总的路程(或旅费)最小。 TSP 刚提出时,不少人认为这个问题很简单。后来人们才逐步意识到这个问题只是表 述简单,易于为人们所理解,而其计算复杂性却是问题的输入规模的指数函数,属于 相当难解的问题。这个问题数学描述为:假设有 n 个城市,并分别编号,给定一个完 全无向图 G=(V,E) ,V=1,2,n,n1。其每一边(i,j) E 有一非负整数耗费 Ci,j(即上的权记为 Ci,j,i,j V)。并设 1,ij0ijX边 ( , ) 在 最 优 线 路 上, 其 他 G 的一条巡回路线是经过 V 中的每个顶点恰好一次的回路。一条巡回路线的耗费 是这条路线上所有边的权值之和。TSP 问题就是要找出 G 的最小耗费回路。 人们在考虑解决这个问题时,一般首先想到的最原始的一种方法就是:列出每一条 可供选择的路线( 即对给定的城市进行排列组合),计算出每条路线的总里程,最后从中 选出一条最短的路线。假设现在给定的 4 个城市分别为 A、B 、C 和 D,各城市之间的 耗费为己知数,如图 1 所示。我们可以通过一个组合的状态空间图来表示所有的组合, 如图 图 1-1 顶点带权图 图 1-2 TSP 问题的解空间树 ( 1-) 2 从图中不难看出,可供选择的路线共有 6 条,从中很快可以选出一条总耗费最短 的路线:顶点序列为(A,C,B,D,A) 。由此推算,若设城市数目为 n 时,那么组合路径 数则为(n-1)!。很显然,当城市数目不多时要找到最短距离的路线并不难,但随着城市 数目的不断增大,组合路线数将呈指数级数规律急剧增长,以至达到无法计算的地步, 这就是所谓的“ 组合爆炸问题 ”。假设现在城市的数目增为 20 个,组合路径数则为(20-1)! 1.2161017,如此庞大的组合数目,若计算机以每秒检索 1000 万条路线的速度计算, 也需要花上 386 年的时间 6。 1.1.2 旅行商问题的应用 TSP 是最有代表性的优化组合问题之一,其应用已逐步渗透到各个技术领域和我 们的日常生活中。它一开始是为交通运输而提出的,比如飞机航线安排、送邮件、快 递服务、设计校车行进路线等等。实际上其应用范围扩展到了许多其他领域,如在 VLSI 芯片设计、电路板布局、机器人控制、车辆选路、物流配送等方面,下面举几个 实例。 1电路板钻孔进度的安排。机器在电路板上钻孔的调度问题是 TSP 应用的经典例 子,在一电路板上打成百上千个孔,转头在这些孔之间移动,相当于对所有的孔进行 一次巡游。把这个问题转化为 TSP,孔相当于城市,转头从一个孔移到另一个孔所耗 的时间相当于 TSP 中的旅费。 2车辆选路。一个经典的路由问题是在一个网络上发现从源节点到一个目的节点 的最佳交通线路,使与距离成比例的流动费用降低到最小。这个问题的关键是在交通 网络上计算从源节点到目的节点之间的最短路径。对这个最小费用流动问题进行扩展, 就构成 TSP 问题,在这个问题中,车辆从源点出发访问多个目的地并且最后回到源点。 3.基因测序。Cnoocdre 是一种求解旅行商问题的程序。美国国家卫生机构的研究 人员利用这一程序来进行基因测序。在这一应用中,DNA 片断作为城市,它们之间的 相似程度作为城市与城市的距离。研究人员试图寻找一种可能性最高的连接方式把这 些 DNA 片断合成为整张 DNA。 更重要的是,TSP 提供了一个研究组合优化问题的理想平台。很多组合优化问题, 比如背包问题、分配问题、车间调度问题,和 TSP 同属 NP-Hard 类,它们难度同等, 如果其中一个能用多项式确定性算法解决,那么其他所有的 NP-Hard 类问题也能用多 项式确定性算法解决。很多方法都是从 TSP 发展起来的,后来推广到其他 NP-Hard 类 问题上去。 1.2 模拟退火算法 模拟退火算法由 KirkPatrick 于 1982 提出 7,他将退火思想引入到组合优化领域,提 出一种求解大规模组合优化问题的方法,对于 NP-完全组合优化问题尤其有效。模拟 退火算法来源于固体退火原理,将固体加温至充分高,再让其缓慢降温(即退火),使之 达到能量最低点。反之,如果急速降温(即淬火)则不能达到最低点。加温时,固体内部 粒子随温升变为无序状,内能增大,而缓慢降温时粒子渐趋有序,在每个温度上都达 到平衡态,最后在常温时达到基态,内能减为最小。根据 Metropolis 准则,粒子在温 度 T 时趋于平衡的概率为 exp(-E/(kT),其中 E 为温度 T 时的内能 , E 为其改变 量,k 为 Boltzmann 常数。用固体退火模拟组合优化问题,将内能 E 模拟为目标函数值 f,温度 T 演化成控制参数 t,即得到解组合优化问题的模拟退火算法:由初始解 i 和控 制参数初值 t 开始,对当前解重复产生“新解计算目标函数差接受或舍弃”的迭代, 并逐步衰减 t 值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求 3 解法的一种启发式随机搜索过程。退火过程由冷却进度表(Cooling Schedule)控制,包 括控制参数的初值 t 及其衰减因子 a、每个 t 值时的迭代次数 L 和停止条件 C。 1.2.1 基本思想 模拟退火算法可以分解为解空间、目标函数和初始解 3 部分。其基本思想是: (1)初始化:初始温度 T(充分大),初始解状态 s(是算法迭代的起点 ),每个 T 值的 迭代次数 L; (2)对 k=1, ,L 做第(3)至第 6 步; (3)产生新解 s; (4)计算增量 cost=cost(s)-cost(s),其中 cost(s)为评价函数; (5)若 t 0 则接受 s作为新的当前解,否则以概率 exp(-t/T)接受 s作为新的当前解; (6)如果满足终止条件则输出当前解作为最优解,结束程序。终止条件通常取为连 续若干个新解都没有被接受时终止算法; (7)T 逐渐减少,且 T 趋于 0,然后转第 2 步运算。 1.2.2 关键技术 (1)新解的产生和接受 模拟退火算法新解的产生和接受可分为如下 4 个步骤:由一个函数从当前解产 生一个位于解空间的新解。为便于后续的计算和接受,减少算法耗时,常选择由当前 新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、 互换等。产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的选取 有一定的影响。计算与新解所对应的目标函数差。因为目标函数差仅由变换部分产 生,所以目标函数差的计算最好按增量计算。事实表明,对大多数应用而言,这是计 算目标函数差的最快方法。判断新解是否被接受。判断的依据是一个接受准则,最 常用的接受准则是 Metropo1is 准则:若 t 0 则接受 S作为新的当前解 S,否则以概率 exp(-t/T)接受 S作为新的当前解 S。当新解被确定接受时,用新解代替当前解。这 只需将当前解中对应于产生新解时的变换部分予以实现,同时修正目标函数值即可。 此时,当前解实现了一次迭代,可在此基础上开始下一轮试验。而当新解被判定为舍 弃时,则在原当前解的基础上继续下一轮试验。 模拟退火算法与初始值无关,算法求得的解与初始解状态 S(是算法迭代的起点) 无 关;模拟退火算法具有渐近收敛性,已在理论上被证明是一种以概率收敛于全局最优 解的全局优化算法;模拟退火算法具有并行性。 (2)参数控制问题 模拟退火算法的应用很广泛,可以求解 NP 完全问题,但其参数难以控制,其主要 问题有以下 3 点 7:温度 T 的初始值设置。温度 T 的初始值设置是影响模拟退火算 法全局搜索性能的重要因素之一。初始温度高,则搜索到全局最优解的可能性大,但 因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索性能可能受到影 响。实际应用过程中,初始温度一般需要依据实验结果进行若干次调整。温度衰减 函数的选取。衰减函数用于控制温度的退火速度,一个常用的函数为: (1)()Ttt 式中是一个非常接近于 1 的常数,t 为降温的次数。 马尔可夫链长度 L 的选取。 通常的原则是:在衰减参数 T 的衰减函数已选定的前提下, L 的选取应遵循在控制参 数的每一取值上都能恢复准平衡的原则。 1.3 小结 ( 1-2) 4 本章而要的介绍了旅行商问题与模拟退火算法,首先对旅行商问题做了描述并举 例其应用,然后介绍了模拟退火算法的来源,重点介绍了模拟退火算法的基本思想和 关键技术。通过本章的分析,使我们理解了模拟退火算法的基本原理并且知道了 TSP 问题的数学描述,为下面将该算法其应用于旅行商问题做了准备。 2 TSP 模拟 退火算法的实现 TSP 是典型的组合优化问题,模拟退火算法是一种随机性解决组合优化方法。将 TSP 与模拟退火算法相结合,以实现对其求解。 2.1 TSP 算法实现 2.1.1 TSP 算法 描述 (1)TSP 问题的解空间和初始解 TSP 的解空间 S 是遍访每个城市恰好一次的所有回路,是所有城市排列的集合。 TSP 问题的解空间 S 可表示为 1,2,n的所有排列的集合,即 S = (c1,c2,cn) | (c1,c2,cn)为1,2,n 的排列) ,其中每一个排列 Si 表示遍访 n 个城市的一个路径, ci= j 表示在第 i 次访问城市 j。模拟退火算法的最优解与初始状态无关,故初始解为随 机函数生成一个1,2,n的随机排列作为 S0。 (2)目标函数 TSP 问题的目标函数即为访问所有城市的路径总长度,也可称为代价函数: 112 11, ,ni niCccdcdc, 现在 TSP 问题的求解就是通过模拟退火算法求出目标函数 C(c1,c2,cn)的最小值, 相应地,s *= (c*1,c*2,c*n)即为 TSP 问题的最优解。 (3)新解产生 新解的产生对问题的求解非常重要。新解可通过分别或者交替用以下 2 种方法产生: 二变换法:任选序号 u,v(设 uv n),交换 u 和 v 之间的访问顺序,若交换前 的解为 si= (c1,c2,cu,cv,cn),交换后的路径为新路径,即: si= (c1,cu-1,cv,cv-1,cu+1,cu,cv+1,cn) 三变换法:任选序号 u,v 和 (uv),将 u 和 v 之间的路径插到 之后访问, 若交换前的解为 si= (c1,c2,cu,cv,c,cn),交换后的路径为的新路径为: si= (c1,cu-1,cv+1,c,cu,cv,c+1,cn) (4)目标函数差 计算变换前的解和变换后目标函数的差值: c= c(si)- c(si) (5)Metropolis 接受准则 根据目标函数的差值和概率 exp(-C/T)接受 si作为新的当前解 si,接受准则: 1,0exp(/)ccT 2.1.2 TSP 算法流程 根据以上对 TSP 的算法描述,可以写出用模拟退火算法解 TSP 问题的流程图 2-1 所示: ( -1)( 2-) 5 图 2-1 TSP 的模拟退火流程 2.2 TSP 的 MATLAB 实现 2.2.1 加载数据文件 下面是加载数据文件的一个例子: 6 function d = datafile() cities =0.6606,0.9695,0.5906,0.2124,0.0398,0.1367,0.9536,0.6091,0.8767,. 0.8148,0.3876,0.7041,0.0213,0.3429,0.7471,0.5449,0.9464,0.1247,0.1636,. 0.8668,;0.9500,0.6740,0.5029,0.8274,0.9697,0.5979,0.2184,0.7148,0.2395,. 0.2867,0.8200,0.3296,0.1649,0.3025,0.8192,0.9392,0.8191,0.4351,0.8646,. 0.6768; save cities.mat cities -V6; 当调用数据文件函数时,包含城市坐标信息的矩阵载入到 cities.mat 的文件中。该 数据文件的第一列通常是城市数量,之后两列为城市的坐标。初始化函数,根据直角 坐标生成城市距离矩阵。 2.2.2 计算总距离的函数 这是一个城市间计算距离的函数,根据给定路径计算该路径对应总路程。 function d = distance(inputcities) % DISTANCE % d = DISTANCE(inputcities)按照要求计算 TSP 问题中 n 个城市的距离。 % 输入参数有两行和 n 列,其中 n 为城市的数目,列为对应城市的坐标。 d = 0; for n = 1 : length(inputcities) if n = length(inputcities) d = d + norm(inputcities(:,n) - inputcities(:,1); else d = d + norm(inputcities(:,n) - inputcities(:,n+1); end end TSP 问题的成本函数是城市之间的距离。调用此函数将计算 n 个城市之间的距离。 2.2.3 绘制路线的函数 这是一个绘制路线的函数,根据给定的城市坐标生成的城市矩阵绘制城市的坐标, 根据给定的路线绘制线路。 function f = plotcities(inputcities) % PLOTCITIES % PLOTCITIES(inputcities)从 inputcities 参数中绘制城市的位置。 %inputcities 参数有两行和 n 列,其中 n 为城市的数量。位置和对称路径都被绘制。 temp_1 = plot(inputcities(1,:),inputcities(2,:),b*); set(temp_1,erasemode,none); temp_2 = line(inputcities(1,:),inputcities(2,:),Marker,*); set(temp_2,color,r); x = inputcities(1,1) inputcities(1,length(inputcities); y = inputcities(2,1) inputcities(2,length(inputcities); x1 = 10*round(max(inputcities(1,:)/10); y1 = 10*round(max(inputcities(2,:)/10); 7 if x1 = 0 x1 = 1; end if y1 = 0 y1 = 1; end axis(0 x1 0 y1); temp_3 = line(x,y); set(temp_3,color,r); dist = distance(inputcities); distance_print = sprintf(.The roundtrip length for %d cities is % 4.6f units. ,length(inputcities),dist); text(x1/15,1.05*y1,distance_print,fontweight,bold); drawnow; 2.2.4 交换城市的函数 这是一个用于城市交换的函数,它从某路径的邻域中随机的选择一个新的路径。 function s = swapcities(inputcities,n) % SWAPCITIES % s = SWAPCITIES(inputcities,n)n 个城市随机的交换返回一组 m 个城市 s = inputcities; for i = 1 : n city_1 = round(length(inputcities)*rand(1); if city_1 = 10 temperature = cooling_rate*temperature; complete_temperature_iterations = 0; end numberofcitiestoswap = round(numberofcitiestoswap. *exp(-diff/(iterations*temperature); if numberofcitiestoswap = 0 numberofcitiestoswap = 1; end iterations = iterations + 1; complete_temperature_iterations = complete_temperature_iterations + 1; else if rand(1) exp(-diff/(temperature) inputcities = temp_cities; plotcities(inputcities); numberofcitiestoswap = round(numberofcitiestoswap. *exp(-diff/(iterations*temperature); if numberofcitiestoswap = 0 numberofcitiestoswap = 1; end complete_temperature_iterations = complete_temperature_iterations + 1; iterations = iterations + 1; end end clc fprintf(tttIterations = %dn,iterations); fprintf(tttTemperature = %3.8fn,temperature); fprintf(tttIn current temperature for %d timesn,. complete_temperature_iterations); end previous_distance 输入参数:inputcities 的作用是将 n 个城市的坐标表示两行和 n 列,并且传递给 simulatedannealing 作为新的参数。initial_temperature 则是开始模拟退火过程的起始温 度。cooling_rate 是模拟退火过程的冷却速率,冷却速率应该始终低于 1。threshold 是 模拟退火的停止条件,并且它是 n 个城市的可接受的距离。numberofcitiestoswap 指定 用于交换城市对数量的最大值。随着温度的降低,用于交换的城市对也减少,最终达 到一对城市。 2.3 小结 9 本章对旅行商问题的模拟退火求解做了分析说明,首先用模拟退火的基本原理对 旅行商问题做了理论描述,重点介绍了其解空间、目标函数、新解、以及接收准则, 并且给出了 TSP 的实现流程图。之后用 MATLAB 实现,分析了各个函数的用途并附 有部分源代码。通过本章,我们用 MATLAB 实现了基于模拟退火算法的旅行商问题的 求解。 10 3 仿真实例 3.1 仿真分析与评价 为了验证用 MATLAB 实现的模拟退火算法的有效性,选择 29 个点作为仿真研究 对象,它们在坐标平面的坐标(Location)如表 3-1 所示。 表 3-1 29 个城市的坐标 城市序号 1 2 3 4 5 6 7 8 9 10 X 坐标 1150.0 630.0 40.0 750.0 750.0 1030.0 1650.0 1490.0 790.0 710.0 Y 坐标 1760.0 1660.0 2090.0 1100.0 2030.0 2070.0 650.0 1630.0 2260.0 1310.0 城市序号 11 12 13 14 15 16 17 18 19 20 X 坐标 840.0 1170.0 970.0 510.0 750.0 1280.0 230.0 460.0 1040.0 590.0 Y 坐标 550.0 2300.0 1340.0 700.0 900.0 1200.0 590.0 860.0 950.0 1390.0 城市序号 21 22 23 24 25 26 27 28 29 X 坐标 830.0 490.0 1840.0 1260.0 1280.0 490.0 1460.0 1260.0 360.0 Y 坐标 1770.0 500.0 1240.0 1500.0 790.0 2130.0 1420.0 1910.0 1980.0 运行结果如图 3-1: 11 初始温度为 2000,交换城市数为 2,冷却速率为 0.97,29 个城市的 TSP 运行结果 如上图,该优化路径的总路程近似为 9122。 初始温度为 2000,交换城市数为 2,冷却速率为 0.97,29 个城市的 TSP 运行结果 如上图,该优化路径的总路程近似为 9703。 初始温度为 2000,交换城市数为 2,冷却速率为 0.97,29 个城市的 TSP 运行结果 如上图,该优化路径的总路程近似为 9077。 图 3-1 TSP 的模拟退火运行界面 12 上图为用模拟退火算法解决 TSP 的 GUI(Graphics User Interface,图形用户界面) 。 这是由 29 个城市构成的一个对称 TSP 实例,利用上述算法对该实例进行模拟退火求解, 设定初始温度 T0=2000,冷却速率为 0.97,互换城市数为 2。经过 20 次仿真,得到的 最优解与已知最优解非常接近,所需时间也令人满意。 3.2 结论 本节使用 MATIAB 对求解 TSP 问题的模拟退火算法程序进行了仿真。平均结果结 果表明,首先该算法能够找到 TSP 问题的最优解,说明算法的正确性。其次算法对 TSP 问题的求解时间并不呈指数增长,说明了算法的有效性。 总结与展望 模拟退火算法是依据 Metropolis 准则接受新解,该准则除了接受优化解外,还在 一定的限定范围内接受劣解,这正是模拟退火算法与局部搜索法的本质区别,在避免 陷入局部极小值、提高解空间的搜索能力和扩大搜索范围方面具有明显的优越性 8。本 文给出了一种 TSP 的求解算法,并用 MATLAB 语言编程实现了算法。算法实验结果 表明,对大多数组合优化问题而言,模拟退火算法在求最优解和求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年舷外机行业当前发展趋势与投资机遇洞察报告
- 2025年膜产业行业当前发展趋势与投资机遇洞察报告
- 播音主持课件
- 2025教师师德师风知识竞赛题库及答案
- 2025年社会工作者之初级社会综合能力通关试题库(有答案)
- 2025年铁路防洪及抢修技术工职业资格知识试题与答案
- 2025消费金融经理个人贷款试题库(含答案)
- 2025年施工员之土建施工基础知识考试题库(含答案)
- 2025年社会工作者之初级社会工作实务题库综合试卷B卷附答案
- 2025年黑龙江省龙东地区中考语文试题(含答案)
- 2025年版房屋租赁合同模板下载
- 2025年第三类医疗器械培训试卷(含答案)
- 2025年医德医风培训试题(附参考答案)
- 二人合伙开店的合同协议
- 北师大版五年级数学下册常考题:分数除法(单元测试)含答案
- 2026届高考生物一轮复习:人教版必修1《分子与细胞》知识点考点背诵提纲
- 2025年全国青少年“学宪法、讲宪法”知识竞赛题库及答案
- 2025广西文化产业集团有限公司春季招聘36人笔试参考题库附带答案详解(10套)
- 2025年4月自考00840第二外语(日语)试题
- 2025年征兵心理测试题及答案
- 2024年北京客运资格从业证考试内容
评论
0/150
提交评论