基于模拟退火算法的TSP算法
- 格式:doc
- 大小:228.50 KB
- 文档页数:19
一、概论1.1 问题概述在自然科学以及大多数科学当中和社会生活里经常出现最大或最小的问题,我们从小学开始学习大小比较,一直到高中大学时的最优解问题,都是一种名为最优化问题.最优化问题在大多是领域中都有重要的地位,例如管理科学、计算机科学、图像处理等等需要大量数据的学科中都存在着需要解决的组合优化问题。
用我们比较容易理解的说法就是已知一组固定的函数,令这组函数所对应的函数到达最大或最小值.而我们所想到的最简单的方法便是穷举法,然而这种方式存在这大量的数据计算穷举的缺点。
优化组合问题中的NP问题是一个很麻烦的问题,它解得规模会随着问题的规模增大而增大,求解所需的时间也会随问题的规模增大而成指数级增长,而当规模过大时就会因为时间的限制而失去了可行性。
旅行商问题(TSP)是优化组合问题中最为著名的一个问题,它的特点是容易描述却难于求解.这是一个经典的图论问题,假设有n个城市,用表示.城市之间距离为,i,j=1,2,3,···,n,假设所有城市之间两两连通,要求从一个城市出发,把所有城市都走一遍,而TSP问题就是恰好所有城市都走一遍,而所走路径形成回路且路径最短.将这个问题对应在一个n个顶点的完全图上,假设图为对称图,则要从个可能的解当中找到最小的解,需要的对比则要进行次,当的数值增大时,那么需要的次数也会随之以几何数倍增长,例如每秒运算一亿次的计算机,当需要的时间也只是0.0018秒,当需要的时间却是17年,可当时所需的时间却猛增到年,这个结果是我们所不想看到的。
优化组合问题的目标函数是从组合优化问题的可行解集当中求出最优解。
组合优化问题有三个基本要素:变量,约束和目标函数,在求解过程中选定的基本参数成为标量,对于变量的取值的所有限制称之为约束,表示可行的方案的标准的函数称之为目标函数。
随着问题种类的不同以及问题规模的扩大,要找到一种能够已有限代价来求解最优化问题的通用方法一直都是一个难题,建立用最大的可能性求解全局解一直是一个重要问题。
实验三10个城市的TSP问题一、问题描述旅行商问题旅行商按一定的顺序访问N个城市的每个城市,使得每个城市都能被访问且仅能被访问一次,最后回到起点,而使花费的代价最小。
二、设计思想1、算法的选择这是一个NP完全问题,穷举法显然是不可取的。
由于初始态和最终态无法界定,因此没有采用了A*算法。
通过查阅资料,发现模拟退火算法能较好地解决这一问题。
2、算法思想模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。
3、算法描述模拟退火算法与初始值无关,算法求得的解与初始解状态S(是算法迭代的起点)无关;模拟退火算法具有渐近收敛性,已在理论上被证明是一种以概率p 收敛于全局最优解的全局优化算法。
接受概率p=exp(-Δf/Ti)。
求解TSP的模拟退火算法模型可描述如下:解空间:解空间S是遍访每个城市恰好一次的所有路经,解可以表示为{w1,w2 ,……, wn},w1, ……, wn是1,2,……,n的一个排列,表明w1城市出发,依次经过w2, ……, wn城市,再返回w1城市。
初始解可选为(1,……, n) ;目标函数:目标函数为访问所有城市的路径总长度;我们要求的最优路径为目标函数为最小值时对应的路径。
新路径的产生:随机产生1和n之间的两相异数k和m,不妨假设k<m,则将原路径(w1,w2,…,wk,wk+1,…,wm,wm+1,…,wn)变为新路径:(w1,w2,…,wm,wk+1,…,wk,wm+1,…,wn)上述变换方法就是将k和m对应的两个城市在路径序列中交换位置,称为2-opt映射。
求解TSP问题的几种算法比较侯淑静【摘要】The traveling salesman problem (TSP) is an important problem for the classical discrete optimization, which is very important to study the solving algorithm. After the introduction of the greedy algorithm, taboo search algorithm, simulated annealing algorithm, genetic algorithm, the author put forward the corresponding algorithm. Aiming at the four typical examples in the test base, we realized implementation of these algorithms with procedures, and the running time and the results of these algorithms are compared. The results show that the greedy algorithm can draw the solution in a short time, the taboo search algorithm and genetic algorithm have the same effect, and the results of simulated annealing algorithm is better than those of genetic algorithm.%旅行售货商问题(简称TSP )是离散优化的一个经典的重要问题,对求解算法的研究非常重要。
TSP问题目录1实验目的 (1)2问题描述与分析 (1)3算法分析 (1)3.1回溯法 (1)3.2 动态规划 (1)3.3 模拟退火算法 (2)4程序设计 (2)4.1回溯法 (2)4.2动态规划算法 (3)4.3模拟退火算法 (4)5实验结果及分析 (5)6实验总结 (6)7源代码 (6)1实验目的1.使用搜索方法进行TSP问题的求解2.了解相关智能算法3.了解NP难问题的求解策略2问题描述与分析某售货员要到若干城市去推销商品,已知各城市之间的路程(或旅费)。
他要选定一条从驻地出发,经过每个城市一遍,最后回到驻地的路线,使总的路程(或旅费)最小。
分析:问题的本质是搜索问题,而且这个问题是NP完全问题,问题的复杂度指数增长,所以普通的搜索无法在有限的时间里完成搜索,尽管有各种优化的算法:启发式算法、深度优先搜索、动态规划、回溯等。
都无法改变复杂度。
实际上大多时候人们并不关心NP完全问题的最优解,只要得出一个近似的解就可以了,因此,人们发明了很多算法,例如粒子群算法、遗传算法、模拟退火算法,这一类算法被称为“智能算法”,但是,他们都无法求出最优解,仅能得到近似解,但这已经足够了。
在本次试验中,一共设计了三个算法:回溯法,动态规划,模拟退火算法。
3算法分析3.1回溯法回溯法采用深度优先方式系统地搜索问题的所有解,基本思路是:确定解空间的组织结构之后,从根结点出发,即第一个活结点和第一个扩展结点向纵深方向转移至一个新结点,这个结点成为新的活结点,并成为当前扩展结点。
如果在当前扩展结点处不能再向纵深方向转移,则当前扩展结点成为死结点。
此时,回溯到最近的活结点处,并使其成为当前扩展结点,回溯到以这种工作方式递归地在解空间中搜索,直到找到所求解空间中已经无活结点为止。
旅行商问题的解空间是一棵排列树.对于排列树的回溯搜索与生成1,2,……, n的所有排列的递归算法Perm类似,设开始时x=[ 1,2,… n ],则相应的排列树由x[ 1:n ]的所有排列构成.旅行商问题的回溯算法。
模拟退火算法原理及应用模拟退火算法(Simulated Annealing,SA)是一种启发式搜索算法,用于在求解优化问题中寻找全局最优解。
它的名字源自金相学中的“退火”过程,可以将物质加热至高温状态,再逐渐冷却,使其达到稳定的低能量状态。
模拟退火算法以类似的方式,通过模拟物质退火过程来搜索最优解。
模拟退火算法的基本原理是在优化过程中,允许接受较劣的解,以避免陷入局部最优解而无法跳出。
在搜索的过程中,模拟退火算法会随机选择当前解的一个邻居,计算出其解的差异,并以一定的概率接受更劣的解。
这种“接受概率”是根据一定的函数关系与当前温度进行计算,随着搜索的进行,温度会逐渐降低,接受更劣的解的概率也会逐渐降低。
最终,搜索会在温度趋近于极低值时停止。
相比于其他优化算法,模拟退火算法具有以下几个优点:第一,模拟退火算法能够克服局部最优解的问题,并寻找全局最优解。
在搜索过程的一开始,算法会接受很劣的解,以免陷入局部最优解,使得搜索方向可以不断地进行调整,从而有望跨越不同的局部最优解,发现全局最优解。
第二,模拟退火算法比其他优化算法更加灵活。
在算法的初始阶段,允许以较高概率接受劣质解,便于快速地确定搜索方向。
而在搜索过程接近尾声时,模拟退火算法会逐渐降低接受劣质解的概率,以固定最优解。
第三,在实际应用上,模拟退火算法还具有较好的可扩展性和容错性。
由于算法在全局搜索中跳过局部最优解,因此可以应对优化问题的复杂度和参数数量的增加。
模拟退火算法应用广泛,以下是几个应用场景:第一,模拟退火算法可以应用在旅行商问题(TSP)中。
旅行商问题是一种经典的组合优化问题,旨在找到一条路径,使得旅行商必须访问每个城市,且在访问完所有城市后返回原点,且路径总长度最短。
模拟退火算法可以通过随机交换路径中的城市位置,以及接受劣质的解来最终找到该问题的全局最优解。
第二,模拟退火算法还可以应用在物理学中。
例如著名的Ising 模型,它对二维晶格中带有自旋的相互作用的电子系统进行建模,是研究磁性、相变等基本物理问题的一个重要手段。
模拟退火算法在排课问题中的应用模拟退火算法(Simulated Annealing Algorithm,简称SA)是一种属于启发式的随机优化算法,它的启发式思想主要来自于物理学中的“退火”这一概念,该算法由Kirkpatrick 、Gelatt 和 Vecchi 三位作者于 1983 年提出,它利用类比物理的“退火”原理,使得算法能够从当前的解决方案(solution)进行逐步的变化,从而最终求得一个具有更高效率的解决方案。
因此,模拟退火算法在求解旅行商问题(TSP),排课问题,等离散优化问题中都有很好的应用,尤其是在复杂的排课问题中,模拟退火算法也能取得不错的效果。
排课问题(Course Scheduling Problem,CSP)是一类典型的组合优化问题,也是一种具有挑战性的复杂问题。
排课问题的目标是将一些任务(课程)排列在一个有约束的时间表上,使得课程安排满足所有的约束条件,同时可以最大程度地满足课程安排的目标。
排课问题是一个极具挑战性的组合优化问题,它需要考虑多个约束条件,需要计算量巨大,而且在搜索空间中有大量的局部最优解,而且很难从局部最优解推导出全局最优解。
模拟退火算法可以比较有效地求解排课问题,它可以解决排课问题的复杂性和约束条件。
在模拟退火算法中,主要采用退火温度(temperature)和冷却率(cooling rate)来控制算法的搜索过程,算法会从当前的解决方案开始,然后逐渐降低温度,并在一定概率下接受一个新的解决方案,同时保证该新的解决方案比当前解决方案更优,如果没有更优的解决方案,则会按照一定的概率接受当前的解决方案,并继续降低温度,直到算法到达最低温度,当温度到达最低温度时,算法便停止,并返回当前最优解。
在排课问题中,模拟退火算法可以有效地求解复杂的排课问题,该算法能够有效地解决复杂的约束条件,并在一定概率下接受一个新的解决方案,同时保证该新的解决方案比当前解决方案更优,从而可以最终求得一个具有更高效率的解决方案。
基于模拟退火算法的路由优化研究近年来,随着计算机领域的发展,网络技术也在不断地壮大,网络通信逐渐成为人们生活中不可或缺的一部分。
在网络通信中,路由优化技术起着十分重要的作用。
路由优化技术可以提高网络通信的效率和性能,降低网络通信的延迟和丢包率,从而为人们提供更加便利和高效的通信服务。
在路由优化技术中,模拟退火算法被广泛使用,因其具有高效、优化效果好的特点。
本文将从基于模拟退火算法的路由优化研究出发,介绍模拟退火算法的基本原理和优化过程,详细阐述基于模拟退火算法的路由优化技术及其相关研究。
一、模拟退火算法的基本原理模拟退火算法(Simulated Annealing Algorithm,SA)是一种全局优化算法,它基于物理退火原理,通过模拟物质的局部状态和全局状态变化过程来寻找函数全局最优解。
它不同于传统的搜索算法和局部优化算法,能够绕过局部最优解陷阱,较好地避免了优化结果受局部情况的影响。
模拟退火算法是由若干个温度值有序进行的迭代过程,其中温度初始高而逐渐下降,每个温度进行多次搜索,最终达到全局最优解。
在搜索过程中,模拟退火算法允许一定概率出现不优解的情况,以让算法能跳出局部最优解陷阱,进而达到全局最优解的目的。
SA算法主要分为初始化、状态产生、状态接受和温度下降四个步骤。
二、模拟退火算法的路由优化过程路由优化问题是一个NP难问题,常见的优化目标包括最小化网络延迟、最小化网络拥堵、最小化网络带宽等。
基于模拟退火算法的路由优化技术是一种有效的求解路由优化问题的方法,它通过模拟退火算法的优化过程,不断调整网络路由,使网络通信的效率和性能得到提升。
基于模拟退火算法的路由优化过程可分为三个主要步骤,即路由规划、路由调整和路由优化。
(一)路由规划:路由规划是指根据网络拓扑结构和需求节点之间的通信量,确定各节点之间的通信路径。
在路由规划阶段,模拟退火算法通过构建网络拓扑结构,计算网络中各节点之间通信的需求量,将网络划分为若干通信域,确定各个通信域之间的通信路径。
模拟退火算法的原理及算法在优化问题上的应用共3篇模拟退火算法的原理及算法在优化问题上的应用1模拟退火算法的原理及算法在优化问题上的应用随着计算机科学的发展,越来越多的计算问题需要用到优化算法来得到最优解,而模拟退火算法(Simulated Annealing)是一种常用的优化算法之一。
本文将介绍模拟退火算法的原理,以及它在优化问题上的应用。
一、模拟退火算法的原理模拟退火算法最早由Kirkpatrick等人在1983年提出,是一种启发式优化算法。
其思想来源于固态物理学中的模拟退火过程,也就是将物质加热后缓慢冷却的过程。
这个过程中,原子系统会从高温状态演变到低温状态,从而达到低能量状态。
模拟退火算法的基本思路是从一个初状态开始,通过改变状态来不断寻找更优的解,直到达到最优解或者达到一定的停机条件。
其核心思想是在搜索过程中不断接受差解,以避免被困在局部最优解。
具体来说,模拟退火算法主要包含以下几个步骤:1. 随机初始化一个状态。
2. 初始化一个温度T,T越高,搜索过程越接受差解。
3. 在当前状态的附近随机生成一个新状态。
4. 计算当前状态与新状态的差异性,如果新状态更优则接受新状态,否则以一定的概率接受新状态。
5. 降低温度,温度降低的速度越来越慢,直到温度降到结束条件。
6. 如果结束条件没有满足,继续从第三步开始。
模拟退火算法的核心在于如何根据当前温度,以一定的概率接受差解,这就需要引入Metropolis准则:P(solution_i→solution_j) = min{1, exp((Ei - Ej) / T)},其中P(solution_i→solution_j) 为从解i转移到解j的概率,Ei为当前解的能量,Ej为新解的能量,T为温度。
通过Metropolis准则,模拟退火算法在搜索过程中可以接受一定的差解,从而避免陷入局部最优解。
二、模拟退火算法在优化问题上的应用模拟退火算法可以应用到很多优化问题中,例如旅行商问题、最大割问题等。
第38卷第2期2021年2月控制理论与应用Control Theory&ApplicationsV ol.38No.2Feb.2021求解旅行商问题的自适应升温模拟退火算法陈科胜,鲜思东†,郭鹏(重庆邮电大学复杂系统智能分析与决策重点实验室,重庆400065)摘要:针对传统模拟退火算法在求解问题时容易陷入局部最优解的情况,本文通过设计一种自适应的升温控制因子,提出了一种求解旅行商问题(TSP)的自适应升温模拟退火算法,有效地控制局部寻优达到全局寻优能力,并证明了改进的自适应模拟退火算法收敛性.通过TSPLIB数据库对改进算法全局寻优效果的测试,结果表明改进后的算法具有全局寻优能力、泛化性强等特点:即在TSPLIB提供的绝大部分TSP问题数据中,均能找到全局最优解,且收敛速度快.关键词:自适应升温模拟退火算法;旅行商问题(TSP);TSPLIB;自适应引用格式:陈科胜,鲜思东,郭鹏.求解旅行商问题的自适应升温模拟退火算法.控制理论与应用,2021,38(2): 245–254DOI:10.7641/CTA.2020.00090Adaptive temperature rising simulated annealing algorithm fortraveling salesman problemCHEN Ke-sheng,XIAN Si-dong†,GUO Peng(Key Laboratory of Intelligent Analysis and Decision on Complex Systems,Chongqing University of Posts andTelecommunications,Chongqing400065,China)Abstract:In view of the situation that the traditional simulated annealing(SA)algorithm is easy to fall into the local optimal solution when solving the problem,this paper designs an adaptive temperature rise control factor,and proposes an adaptive temperature rise SA algorithm for solving traveling salesman problem(TSP)problem,which effectively controls the local optimization to achieve the global optimization ability,and proves the convergence of the improved adaptive SA algorithm.Through the test of TSPLIB database on the global optimization effect of the improved algorithm,the results show that the improved algorithm has the characteristics of global optimization ability and strong generalization:that is,in most of the TSP problem data provided by TSPLIB,the global optimal solution can be found,and the convergence speed is fast.Key words:adaptive temperature rise simulated annealing algorithm;travelling salesman problem(TSP);TSPLIB; adaptiveCitation:CHEN Kesheng,XIAN Sidong,GUO Peng.Adaptive temperature rising simulated annealing algorithm for traveling salesman problem.Control Theory&Applications,2021,38(2):245–2541引言旅行商问题(traveling salesman problem,TSP)是一个非确定性多项式难度的优化问题,其问题可以描述为给定一系列城市坐标集,一个旅行者从起点城市出发,如何经过各个城市一次并回到出发点的路径规划问题.其问题的解可以被描述为各个城市出现一次且仅出现一次构成的排列方案,该排列方案代表着旅行者将第一个城市作为出发点,依次按排列顺序对城市进行仿问,最后再回到第一个城市的路径规划方案. TSP问题的最优解就是旅行者所经历过的最短路径.TSP问题可以简单地描述为已知n个城市以及各个城市相互之间的距离,求出某一旅行商经过所有城收稿日期:2020−02−18;录用日期:2020−09−28.†通信作者.E-mail:************;Tel.:+86135****8518.本文责任编委:丛爽.重庆市教委研究生教学改革研究项目(YJG183074),重庆市社会科学规划项目(2018YBSH085),重庆邮电大学大学生科研训练项目(A2019–25, R2019–85).Supported by the Graduate Teaching Reform Research Program of Chongqing Municipal Education Commission(YJG183074),the Chongqing Social Science Planning Project(2018YBSH085)and the Scientific Research and Training Program for Students of Chongqing University of Posts and Telecommunications(A2019–25,R2019–85).246控制理论与应用第38卷市并回到出发点的最短路线.设d(V i,V j)为V i到V j的距离,问题可以抽象为已知一点集V={V i,1 in},寻找一个排列X={V1,···,V n}来最小化D=n∑i=1d(V i,V i+1)+d(V n,V i).(1)多年来研究人员不断地探究该问题,文献[1]梳理了许多针对TSP问题的算法方案.总体上可以将算法分为两个类别:一类是在已有成熟的启发式算法中,结合TSP问题的特点对算法机制进行改良,使得算法具有更强的寻优能力;一类是借助仿生学等思想提出新的启发式算法.其中,在改良现有启发式算法的方面,文献[2]中提出了离散型萤火虫群优化算法(discrete glowworm swarmoptimization algorithm,DGSO),文献[3]中提出的自适应离散粒子群算法(self-adaptive discrete parti-cle swarm optimization algorithm,SADPSO)及文献[4]中提出的具有变异特征的蚁群算法(ant colony algori-thm with mutation features,ACO)、文献[5]基于已有的非支配排序遗传算法–II(non-dominated sorting ge-netic algorithm–II,NSGA–II),利用平均距离将种群划分为若干个大致均匀分布的小种群保持种群多样性.文献[6]基于混沌的最大最小蚁群算法采用tent混沌映射的方法产生初始信息素当算法陷入长时间停滞状态时利用混沌映射扰动信息素的改良蚁群算法(max-min ant system algorithm,MMAS)、利用凸包的构建及构建的区域范围与凸包角提出的一种基于动态凸包引导的偏优规划蚁群算法(ant colony algorithm of partially optimal programming based on dynamic con-vex hull guidance,ACADCG);在改良遗传退火算法方面文献[7]中提出的改进遗传模拟退火(improved genetic simulatedannealing algorithm,IGSA)、文献[8]中提出的改进Metropolis(M)准则的自适应模拟退火算法(improved genetic simulated annealing algorithm, IGSAA)算法.在提出新的启发式算法方面,文献[9]中提出基于帝国竞争的政治关系思想启发提出帝国竞争算法、文献[10]中基于狼群仿生学思想提出了针对TSP问题的离散狼群算法、文献[11]提出基于蝙蝠算法的观测矩阵优化算法.这些算法相对于朴素的智能算法都能得出更优的效果,但有些基于旧算法的改进算法过于复杂、新提出的仿生算法难以应用到现有模型中.笔者经研究后,总结这些算法的特点,提出了一种能得到更优结果、收敛时间更快的简洁、轻量型的温控模拟退火算法(self-adaptive genetic simulated annealing algorithm),并针对TSP问题进行了优化,在求解TSP 问题时耗时更短,全局寻优能力更强.并使用了国际通用的TSP标准库TSPLIB的Burma14,Ulysses16,Oliver30,eil51,eil76,tsp225,St70等TSP测试数据进行了检测.2朴素模拟算法2.1模拟退火算法简介模拟退火算法在处理全局优化、离散变量优化等高度非线性化的优化问题中,在处理该类问题中具有传统经典算法无可比拟的优势.模拟退火算法的思想最早由Metropolis等人提出的.其出发点是基于物理中固体物质的退火过程与一般的组合优化问题之间的相似性.模拟退火法是一种通用的优化算法,其物理退火过程由以下3部分组成:1)加温过程:其目的是增强粒子的热运动,使其偏离平衡位置.当温度足够高时,固体将熔为液体,从而消除系统原先存在的非均匀状态.2)等温过程:对于与周围环境交换热量而温度不变的封闭系统,系统状态的自发变化总是朝自由能减少的方向进行,当自由能达到最小时,系统达到平衡状态.3)冷却过程:使粒子热运动减弱,系统能量下降,得到晶体结构.其中,加温过程对应算法的设定初温,等温过程对应算法的Metropolis抽样过程,冷却的过程对应控制参数的下降.这里能量的变化就是目标函数,要得到的最优解就是能量最低态.其中Metropolis准则是模拟退火算法收敛于全局最优解的关键所在,Metropolis准则以一定的概率接受恶化解,这样就使算法跳离局部最优的陷阱.2.2朴素模拟退火算法的实现1)设置初始温度,随机初始化一个初始解;2)开始进入循环:2a)进入新解产生流程:在城市访问排列中,以一定的规则对当前解进行随机的扰动;记录下最优解;判断是否达到新解产生的迭代次数,达到则将扰动得到的最优解作为新解.2b)按照Metropolis准则,根据扰动产生的新解X new的能量值E(X new)与扰动前的解X old的能量值E(X old)和当前温度t判断是否接受新的解,如若接受新的解,则用新解代替旧解将X new的值赋给X old.其中关于接受概率的Metropolis准则为p={1,E(X new) E(X old),e−E(X new)−E(X old)T,E(X new)>E(X old).(2)2c)温度下降.3)判断温度是否达到温度阈值,若未达到继续进行外循环.第2期陈科胜等:求解旅行商问题的自适应升温模拟退火算法2473自适应升温模拟退火算法针对传统模拟退火算法(见图1)在求解问题时容易陷入局部最优解的情况,本文设计了一种自适应的升温控制因子,使得算法能够有针对性地控制局部寻优以及全局寻优能力.其改进部分可分为初始解产生机制、新解产生机制、自适应升温因子的设计、Metropolis 函数的优化等4个部分组成.图1传统模拟退火算法流程示意图Fig.1Flow chart of traditional simulated annealing algorithm3.1初始解的产生机制在模拟退火算法中,选取恰当的初始解能够改善模拟退火算法的收敛速度,减小算法的收敛时间.初始解的生成中,本文使用了安德鲁算法(Andrew’s Algorithm)将城市的位置V ={V i ,1 i n }视为一个点集来生成凸包.在凸包的基础上,使用文献[12]介绍的三角形TSP 法.其主要思想为反复随机添加一个城市与已知的城市连接,使得添加该城市后,增加的两条路径减去一条路径的总代价最小,直到该哈密顿回路包括所有城市.如在图2中,为随机选取节点d 添加回路,分别比较已有添加方式的总代价,最后选取一个总代价最小的方案.最后将得到的哈密顿回路作为模拟退火算法的初始解.图2三角形TSP 算法示意图Fig.2Schematic diagram of triangle TSP algorithm为了测试该方法的改良效果,采用TSBLIB 中的eil51,eil76等两个TSP 问题进行测试,如表1所示.表1改良初始解测试结果Table 1Improved initial solution test resulttable测试案例项目改良前改良后eil51(初始解)1240441eil51(最优解)930438eil76(初始解)2048599eil76(最优解)1250588从图3–6的结果可以看到,对初始解的机制进行改进之后,该算法的初始解相较于改进前更接近于理论最优值,即全局最优值在在较高温度的阶段保持着初始解的值,但由于环境温度较高,该算法仍有很大概率接受差解,因此该算法仍能保持改进前的寻优能力.在改进后可以适当降低环境初始温度,减少算法的时间开销.图3SA 求解eil51过程图Fig.3Solving eil51processdiagram图4SA(改进初始解产生机制)求解eil51过程图Fig.4SA (improved initial solution)for solving eil51248控制理论与应用第38卷图5SA 求解eil76过程图Fig.5SA solving eil76processdiagram图6SA(改进初始解产生机制)求解eil76过程图Fig.6SA (improved initial solution)for solving eil763.2新解的产生机制在模拟退火算法中,新解是对已有的最优解进行一定程度的扰动来产生的.新解产生的机制是决定算法寻优能力的重要因素之一.将新解的产生过程分解为扰动操作、择优操作.扰动操作可视为一个随机过程,负责对解进行搜寻,择优操作则在一定程度上保证了产生的新解的质量.防止自适应扰动因子引入造成的不收敛问题.扰动操作:对已有旧解执行扰动的具体操作为不断的以一定的概率对旧解的城市进行调换操作,当随机调换操作停止时视为得到了一个新的解.其中随机调换操作指的是,对于当前的解X ={V 1,···,V n }随机选择其中的节点V i 与V j 的位置进行互换.换言之,即是对当前解进行一次扰动,进行扰动操作的次数服从参数为P 的幂律分布,P 为该算法的超参数.扰动操作流程如图7所示.图7扰动操作流程示意图Fig.7Disturbance operation flow diagram择优操作:在新解的产生过程中,对一个旧解进行扰动操作,得到一个扰动后的解,比较扰动后的解与扰动前的解,若扰动后的解比扰动前的解更优,则视为完成了一次择优操作.不停的进行扰动操作,当择优操作次数等于择优上限M max ,新解产生的过程结束,将最后产生的解作为产生的新解.其中M max 为引入的一个控制择优过程的参数,为M max =[k 1T ],其中k 1为择优操作参数,控制了算法的局部寻优能力.择优操作流程如图8所示.图8择优操作流程示意图Fig.8Schematic diagram of preferred operation flow3.3自适应升温因子的设计应用模拟退火算法在求解TSP 问题中,容易陷入局部最优解而导致“早熟”的现象.为了防止这一现象的发生,本文引入了一个自适应的升温控制因子,其主要思想是当模拟退火算法出现过早的收敛现象时,增高温度,根据Metropolis 准则,使得扰动的随机性增强,避免收敛于局部最优解、增加全局的寻优能力.实际应用在算法中的操作为:当N 次降温之后,仍没有获得比算法当前最优解更好的解,则使系统升高温度为到T new .其中N 与T new 为自适应扰动控制因子的参数.N 越小时,控制因子敏感度越高,反之相反.第2期陈科胜等:求解旅行商问题的自适应升温模拟退火算法249T new 越高时,扰动增加幅度越大,全局寻优的能力越强.其中参数为N =[k 2s +Tk 1T 1],(3)T new =αT old ,(4)其中:s 为升温次数;k 2为控制升温因子参数,引入k 2s的目的是保证了该算法的收敛;T old 为当前温度;α为升温系数;k 1为择优过程的次数参数,控制的是该算法的局部寻优能力;k 2为升温因子参数,控制的是该算法的全局寻优能力.该自适应升温因子使得算法在达到局部最优解时,仍能保持一定限度的搜索能力,同时升温最大次数N 的限制使得该算法能够在有限时间内结束,从理论上能够证明该算法是收敛的,且收敛性等同于一般的模拟退火算法.以求解eil51问题为例,求解过程的温度情况与最优解变化如图9所示.图9自适应升温过程中温度与解的收敛趋势图Fig.9Convergence trend diagram of temperature and solutionin adaptive heating process可以看到在自适应模拟退火算法的搜索过程中,当解接近收敛的时候,升温机制能够增强算法的搜索能力,从而在一定程度上有利于跳出局部最优解.在求解eil51问题中,该算法正是借助了这一机制,如图中虚框部分所示,对温度进行提升,增强算法的搜索能力,从而跳出了局部最优解,得到了更优的解,实际上这一解也是该eil51目前的理论最优解.3.4Metropolis 函数的优化在模拟退火算法中,决定是否接受新解与旧解的规则是Metropolis 准则.因此Metropolis 准则影响着模拟退火算法的收敛速度和寻优能力.对于不同的TSP 问题中E (X new )−E (X old )可能出现的值存在着差距很大的现象,导致了p 的值过于大或过于小,进而影响了算法的寻优能力与收敛速度.利用最小生成树构造哈密顿回路的方法来对TSP 问题的解的大小规模进行估计,从而来对能量差值E (X new )−E (X old )进行归一化,消除不同TSP 问题的路径值的不同规模对Metropolis 准则的影响.改良后的Metropolis 准则为P ={1,E (X new ) E (X old ),e−E (X new )−E (X old )AT,E (X new )>E (X old ),(5)其中:E (X new )−E (X old )表示新解与旧解能量值间的差值,在TSP 问题中能量值为解所对应的路线长度;A 表示对该TSP 问题解的规模,可视为对TSP 问题的解的一个大概估计.其中得到A 的方法为先生成一个较优的初始解,将该较优的初始解对应的长度作为A 的值.生成较优的初始解的操作为:1)将城市的位置X ={V 1,···,V n }视为一个点集,先使用了Prim 最小生成树算法来生成连接了所有城市的最小生成树.2)在获得了连接所有城市的最小生成树的基础上,对树的根节点进行先序遍历,遍历出所有的顶点构成了有序的顶点集L .3)最后将根节点添加到顶点集L 的末尾,将这个有序的顶点集L 按顺序连接起来,就得到了一条哈密顿回路,将得到的哈密顿回路作为模拟退火算法的初始解.可证明该解不超过最优解2倍.为了测试该方法的改良效果,采用TSBLIB 中的eil51,eil76等两个TSP 问题进行测试,测试结果见表2,图示见图10–11;得到改进升温模拟退火算法流程如图12所示.表2改良Metropolis 测试结果Table 2Improved Metropolis test result table测试案例项目改良前改良后eil51(最优解)427427eil76(最优解)599588图10SA(M 函数优化)求解eil51过程图Fig.10SA (M function optimization)to solve eil51processdiagram250控制理论与应用第38卷图11SA(M 函数优化)求解eil76过程图Fig.11SA (M function optimization)to solve eil76processdiagram3.5自适应升温模拟退火算法收敛性证明将该算法过程抽象为一般的离散优化问题,在具有一定的状态集中,算法能够收敛到某一个状态不再转移.因此该算法的收敛性证明可以总结为如下的证明.定理1在有限的状态集中,对于任意的初始解,自适应升温模拟退火算法一定可以转移到某个状态上并不再发生转移,即该算法具有全局收敛性.在证明定理1时,需要使用到由陈小刚等人[13]利用随机过程证明的引理1–2.引理1若某个Markov 链所对应的状态转移矩阵具有以下两个性质,则该矩阵是遍历且具有稳态的.1)该矩阵为不可约矩阵,即对应的Markov 链为不可约的.2)该矩阵的严格上三角阵趋于0,而严格下三角阵保持不变.图12改进升温模拟退火算法总流程图Fig.12General flow chart of improved simulated annealing algorithm引理2对于一般模拟退火算法的非平稳的m 阶状态转移矩阵A (t ),若存在唯一的稳态分布:π(t )=(π1(t ),π2(t ),π3(t ),···,πm (t )),(6)则有下式成立:lim t →0π(t )=(1,0,···,0).(7)此定理的证明可以通过以下步骤形成:步骤1首先,假设TSP 问题具有有限个状态,设有不可约m 阶概率矩阵P =P ij 根据Metropolis 准则以概率p 从i 状态向j 状态进行转移的概率为{1,E (j )<E (i ),s ij (t ),E (j ) E (i ),(8)其中:S ij (t )=e −k∆AT .(9)∆为E (j ),E (i )之间的差值.在传统的模拟算法中,第2期陈科胜等:求解旅行商问题的自适应升温模拟退火算法251控制温度具有t 1 t 2 ··· t n 且lim n →∞t n =0.(10)在本文提出的自适应升温模拟退火算法中,控制温度并不具有诸如t 1 t 2 ··· t n 的关系,当算法在第N 次降温之后,仍没有获得比算法当前最优解更好的解,则使系统升高温度为∆T ,其中参数由式(3)–(4)给出.因此t 并不随着n 单调递减,且仍然有lim n →∞t n =0成立.利用反证法容易证明,若不存在lim n →∞t n =0,则当n →∞时,算法进行了无穷次升温操作使得控制温度不能下降到0,即s →∞并使得N →∞,则对于t 1,t 2,···,t n 中存在着某个单调递减子序列t i ,t i +1,···,t i +N 表示某次未触发升温条件的控制温度序列,根据算法机制易知有下式成立:t i +N T 0−N∆T,(11)其中∆T 为每次下降温度值,则有lim N →∞t i +N =0,(12)与式(10)不成立矛盾,则有lim n →∞t n =0成立.证毕.至此该自适应升温模拟退火算法的收敛性证明问题等价于一般模拟退火算法收敛性的证明问题.步骤2假设某个TSP 问题中所有的状态按对应的能量值进行排列,则可以得到不可约的转移矩阵A (t )=[a ij ],其中:a ij =p ij ,i >j,p ij s ij (t ),i <j,1−∑k =ia ik (t ),i =j.(13)转移矩阵A (t )=[a ij ]当lim n →∞t n =0成立具有以下两个性质:1)该矩阵为不可约矩阵,即对应的Markov 链为不可约的.2)严格上三角阵趋于0,而严格下三角阵不变.则由定理1可以得到转移矩阵对应的Markov 链具有遍历性且具有稳态π(t )=(π1(t ),π2(t ),π3(t ),···,πm (t )),(14)则可以得到lim t →0π(t )=(1,0, 0(15)或lim t n →0π(t )=(1,0,···,0).(16)由式(15)可知当温度趋于0时均可以收敛到一个稳定状态上不再发生转移或由式(16)可知该Markov 链的状态不断地进行转移可以使得该算法以概率1转移到某个状态上不再发生改变,且该结论与初始解的选择无关,即该算法具有全局收敛性.证毕.4实验及结果分析为检验该算法的实际性能,本文使用了TSP-LIB 标准库的Burma14,Oliver30,eil51,St70,eil76,tsp225进行了检验,与普通的启发式算法进行对比,分别比较了与模拟退火算法SGA [7]、传统蚁群算法ACS [7]、粒子群算法ACO [7]的求解效果;与改进的启发式算法对比,分别比较了利用混沌映射扰动信息素的最大最小蚂蚁系统算法MMAS [11]、基于方向信息素协调的蚁群算法AADC [8]、动态凸包引导的偏优规划蚁群ACADCG 算法[9]、自适应离散粒子群算法DGSO [3]、具有变异特征的蚁群算法SADPSO [4];与同类型的改进模拟退火算法对比,分别与改进遗退火算法IGSA [7]、IGSAA 改进自适应模拟退火算法[8];与最近学者新提出的新型启发式算法进行对比,分别与帝国竞争算法ICA [9]、离散狼群算法DWPA [10]进行了对比.其中在求解各个TSP 问题时本文使用的算法参数如表3所示,其中扰动操作概率值p 设定为0.5.表3实验参数Table 3Experimental parameters测试数据集Rand 上限R 起始温度终止温度降温比例升温比例升温次数决定系数k 1Burma142810.99 1.3984k 1=10Oliver3021110.99 1.3984k 1=10eil5130610.99 1.3984k 1=10eil76102010.99 1.3984k 1=10St70101610.99 1.3984k 1=10tsp22521610.99 1.3984k 1=10使用本文算法,按照表3参数对各个TSBLIB 标准库中问题进行求解,结果如表4与图13–18所示.252控制理论与应用第38卷表4不同文献算法对比结果Table4Comparison results of different literaturealgorithms测试算法TSPLIB算法运行数据集已知最优解最优解时间/seil51SGA[7]426536132 IGSA[7]460102 ACS[7]438.74 MMAS[12]436.63AADC[14]428.74 ACADCG[15]428.19 IGSAA[13]428.87ICA[9]428.87 DWPA[10]428.87本文算法426.00eil76SGA[7]538813.00172 IGSA[7]548.00138 ACS[7]555.61 MMAS[12]552.26AADC[14]544.43 ACADCG[15]543.41 IGSAA[13]544.43ICA[9]544.37本文算法538.00110Burma14DGSO[3]30.878530.8785 SADPSO[4]30.8785 ACO[5]30.8785本文算法30.8785Oliver30DGSO[3]423.7406423.74 SADPSO[4]423.74 ACO[5]423.74 ACS[7]425.52 MMAS[12]424.86 AADC[14]426.91 ACADCG[15]423.74本文算法423.74St70ACS[7]675687.46MMAS[12]685.13 AADC[14]682.31 ACADCG[15]681.25 IGSAA[13]677.11本文算法677.11tsp225SGA[7]391613827IGSA[7]4068本文算法3972图13Burma14最优路径(30.8785)Fig.13Burma14optimal path(30.8785)图14Oliver最优路径(423.7406)Fig.14Oliver general optimal path(423.7406)图15eil51最优路径(426)Fig.15eil51general optimal path(426)第2期陈科胜等:求解旅行商问题的自适应升温模拟退火算法253图16eil76最优路径(538)Fig.16eil76general optimal path(538)图17St70最优路径(677.11)Fig.17St70general optimal path(677.11)图18tsp225最优路径(3927)Fig.18tsp225general optimal path (3927)5结论本文提出的算法在求解中规模TSP 问题时具有收敛精度高、全局寻优化能力强的特点.部分TSBLIB 的TSP 问题中均能较快地得到理论最优解,与普通的启发式算法进行对比,比较模拟退火算法SGA [7]、传统蚁群算法ACS [7]、粒子群算法ACO [7]的求解效果;与改进的启发式算法对比,分别比较了利用混沌映射扰动信息素的最大最小蚂蚁系统算法MMAS [11]、基于方向信息素协调的蚁群算法AADC [8]、动态凸包引导的偏优规划蚁群ACADCG 算法[9]、自适应离散粒子群算法DGSO [3]、具有变异特征的蚁群算法SADPSO [4];与同类型的改进模拟退火算法对比,分别与改进遗退火算法IGSA [7]、IGSAA 改进自适应模拟退火算法[8];与最近学者新提出的新型启发式算法进行对比,分别与帝国竞争算法ICA [9]、离散狼群算法DWPA [10]进行了对比,其求解效果也存在均取得了更强的寻优效果.由于朴素的模拟退火算法可由可调参数k 1,k 2来控制对应的局部寻优能力和全局寻优能力,提高了该算法的推广性与鲁棒性,但从另一方面上说,需要调整的参数较多,也一定程度地带来了使用时调参的困难,存在着进一步改良的空间.参考文献:[1]YANG Chunhua,TANG Xiaolin,ZHOU Xiaojun,et al.A discrete s-tate transition algorithm for traveling salesman problem.Control The-ory &Applications ,2013,30(8):1040–1046.(阳春华,唐小林,周晓君,等.一种求解旅行商问题的离散状态转移算法.控制理论与应用,2013,30(8):1040–1046.)[2]ZHOU Yongquan,HUANG Zhengxin,LIU Hongxia.Discrete glow-worm swarm optimization algorithm for TSP problem.Acta Electron-ica Sinica ,2012,40(6):1164–1170.(周永权,黄正新,刘洪霞.求解TSP 问题的离散型萤火虫群优化算法.电子学报,2012,40(6):1164–1170.)[3]ZHANG Changsheng,SUN Jigui,OUYANG Dantong.A self-adaptive discrete particle swarm optimization algorithm.Acta Elec-tronica Sinica ,2009,37(2):299–304.(张长胜,孙吉贵,欧阳丹彤.一种自适应离散粒子群算法及其应用研究.电子学报,2009,37(2):299–304.)[4]WU Qinghong,ZHANG Jihui,XU Xinhe.An ant colony algorithmwith mutation features.Journal of Computer Research and Develop-ment ,1999,36(10):1240–1245.(吴庆洪,张纪会,徐心和.具有变异特征的蚁群算法.计算机研究与发展,1999,36(10):1240–1245.)[5]CUI Zhihua,ZHANG Maoqing,CHANG Yu,et al.NSGA–II withaverage distance clustering.Acta Automatica Sinica ,2020:http-s:///10.16383/j.aas.c180540.(崔志华,张茂清,常宇,等.基于平均距离聚类的NSGA–II.自动化学报,2020:https:///10.16383/j.aas.c180540.)[6]GENG Zhiqiang,QIU Dahong,HAN Yongming.Max-min ant sys-tem algorithm based on chaos and its application in puter Engineering ,2016,42(3):192–197.(耿志强,邱大洪,韩永明.基于混沌的MMAS 算法及其在旅行商问题中的应用.计算机工程,2016,42(3):192–197.)[7]ZHANG Yanxiang,QI Yuxian.An improved genetic simulated an-nealing algorithm to solve TSP.Intelligent Computer and Applica-tions ,2017,7(3):52–54.(张雁翔,祁育仙.改进遗传模拟退火算法求解TSP.智能计算机与应用,2017,7(3):52–54.)254控制理论与应用第38卷[8]HE Qing,WU Yile,XU Tongwei.Application of improved geneticsimulated annealing algorithm in TSP optimization.Control and De-cision,2018,33(2):219–225.(何庆,吴意乐,徐同伟.改进遗传模拟退火算法在TSP优化中的应用.控制与决策,2018,33(2):219–225.)[9]ZHANG Xinlong,CHEN Xiuwan,XIAO Han,et al.A new impe-rialist competitive algorithm for solving TSP problem.Control and Decision,2016,31(4):586–592.(张鑫龙,陈秀万,肖汉,等.一种求解旅行商问题的新型帝国竞争算法.控制与决策,2016,31(4):586–592.)[10]WU Husheng,ZHANG Fengming,LI Hao,et al.Discrete wolf packalgorithm for traveling salesman problem.Control and Decision, 2015,30(10):1861–1867.(吴虎胜,张凤鸣,李浩,等.求解TSP问题的离散狼群算法.控制与决策,2015,30(10):1861–1867.)[11]CUI Zhihuang,ZHANG Chunmei,SHI Zhentao,et al.Privacy pro-tection based on many-objective optimization algorithm,concurren-cy and computation practice and experience.Control and Decision, 2018,33(7):1341–1344.(崔志华,张春妹,时振涛,等.基于蝙蝠算法的观测矩阵优化算法.控制与决策,2018,33(7):1341–1344.)[12]PANG Yongming,ZHONG Caiming,CHENG Kai.A TSP algorith-m based on clustering ensemble ACO and restricted solution space.Journal of University of Science and Technology of China,2016, 46(9):780–787.(庞永明,钟才明,程凯.基于聚类集成的蚁群优化与受限解空间的TSP算法.中国科学技术大学学报,2016,46(9):780–787.)[13]CHEN Xiaogang,LIN Dajian,SUN Guoliang.Generalized simulatedannealing and its convergence.Opto-Electronic Engineering,1993, 20(3):12–18.(陈小刚,林大键,孙国良.模拟退火法及其收敛性.光电工程,1993, 20(3):12–18.)[14]MENG Xiangping,PIAN Zhaoyu,SHEN Zhongyu,et al.Ant algo-rithm based on direction-coordinating.Control and Decision,2013, 28(5):782–786.(孟祥萍,片兆宇,沈中玉,等.基于方向信息素协调的蚁群算法.控制与决策,2013,28(5):782–786.)[15]SUN Lijuan,WANG Liangjun,WANG Ruchuan.Research of usingan improved ant colony algorithm to solve TSP.Journal on Commu-nications,2004,25(10):111–116.(孙力娟,王良俊,王汝传.改进的蚁群算法及其在TSP中的应用研究.通信学报,2004,25(10):111–116.)作者简介:陈科胜本科生,目前研究方向为计算理论、算法理论、高性能计算,E-mail:****************;鲜思东教授,目前研究方向为不确定决策与优化、统计分析,E-mail:************;郭鹏本科生,目前研究方向为AI算法,E-mail:muhahada ***************.。
爬⼭算法(HillClimbing)模拟退⽕(SA,SimulatedAnnealing)⼀. 爬⼭算法 ( Hill Climbing )爬⼭算法是⼀种简单的贪⼼搜索算法,该算法每次从当前解的临近解空间中选择⼀个最优解作为当前解,直到达到⼀个局部最优解。
爬⼭算法实现很简单,其主要缺点是会陷⼊局部最优解,⽽不⼀定能搜索到全局最优解。
假设C 点为当前解,爬⼭算法搜索到A点这个局部最优解就会停⽌搜索,因为在A点⽆论向那个⽅向⼩幅度移动都不能得到更优的解。
⼆. 模拟退⽕(SA,Simulated Annealing)思想在实际⽇常中,⼈们会经常遇到如下问题:在某个给定的定义域X内,求函数f(x)对应的最优值。
此处以最⼩值问题举例(最⼤值问题可以等价转化成最⼩值问题),形式化为:如果X是离散有限取值,那么可以通过穷取法获得问题的最优解;如果X连续,但f(x)是凸的,那可以通过梯度下降等⽅法获得最优解;如果X连续且f(x)⾮凸,虽说根据已有的近似求解法能够找到问题解,可解是否是最优的还有待考量,很多时候若初始值选择的不好,⾮常容易陷⼊局部最优值。
随着⽇常业务场景的复杂化,第三种问题经常遇见。
如何有效地避免局部最优的困扰?模拟退⽕算法应运⽽⽣。
其实模拟退⽕也算是启发式算法的⼀种,具体学习的是冶⾦学中⾦属加热-冷却的过程。
由S.Kirkpatrick, C.D.Gelatt和M.P.Vecchi在1983年所发明的,V.Čern在1985年也独⽴发明此演算法。
不过模拟退⽕算法到底是如何模拟⾦属退⽕的原理?主要是将热⼒学的理论套⽤到统计学上,将搜寻空间内每⼀点想像成空⽓内的分⼦;分⼦的能量,就是它本⾝的动能;⽽搜寻空间内的每⼀点,也像空⽓分⼦⼀样带有“能量”,以表⽰该点对命题的合适程度。
演算法先以搜寻空间内⼀个任意点作起始:每⼀步先选择⼀个“邻居”,然后再计算从现有位置到达“邻居”的概率。
若概率⼤于给定的阈值,则跳转到“邻居”;若概率较⼩,则停留在原位置不动。
模拟退火算法(Simulated Annealing)主要内容◆算法原理◆算法应用◆作业现代智能优化算法,主要用于求解较为复杂的优化问题。
与确定性算法相比,其特点如下:第一,目标函数与约束函数不需要连续、可微,只需提供计算点处的函数值即可;第二,约束变量可取离散值;第三,通常情况下,这些算法能求得全局最优解。
现代智能优化算法,包括禁忌搜索,模拟退火、遗传算法等,这些算法涉及生物进化、人工智能、数学和物理学、神经系统和统计力学等概念,都是以一定的直观基础构造的算法,统称为启发式算法。
启发式算法的兴起,与计算复杂性理论的形成有密切的联系,当人们不满足常规算法求解复杂问题时,现代智能优化算法开始起作用。
现代智能优化算法,自20世纪80年代初兴起,至今发展迅速,其与人工智能、计算机科学和运筹学融合,促进了复杂优化问题的分析和解决。
模拟退火算法(Simulated Annealing, SA)是一种通用的随机搜索算法,是局部搜索算法的扩展。
最早于1953年由Metropolis提出,K irkpatric等在1983年将其成功用于组合优化问题的求解。
算法的目的:解决NP复杂性问题;克服优化过程陷入局部极小;克服初值依赖性。
一、算法原理启发:物质总是趋于最低的能态。
如:水往低处流;电子向最低能级的轨道排布。
结论:最低能态是最稳定的状态。
物质会“自动”地趋于最低能态。
猜想:物质趋于最低能态与优化问题求最小值之间有相似性,能否设计一种用于求函数最小值的算法,就像物质“自动”地趋于最低能态?退火,俗称固体降温。
先把固体加热至足够高的温度,使固体中所有的粒子处于无序的状态(随机排列,此时具有最高的熵值);然后将温度缓缓降低,固体冷却,粒子渐渐有序(熵值下降,以低能状态排列)。
原则上,只要温度上升得足够高,冷却过程足够慢,则所有粒子最终会处于最低能态(此时具有最低的熵值)。
模拟退火算法就是将退火过程中系统熵值类比为优化问题的目标函数值来达到优化问题寻优的一种算法。
专业综合设计报告课程名称:电子专业综合设计设计名称:基于模拟退火算法的TSP算法姓名:学号:班级:电子0903指导教师:***起止日期:2012.11.1-2012.12.30专业综合设计任务书学生班级:电子0903 学生:学号:20095830设计名称:基于模拟退火算法的TSP算法起止日期:2012.11.1-2012.12.30指导教师专业综合设计学生日志专业综合设计考勤表专业综合设计评语表一设计目的和意义 (5)二设计原理 (5)2.1 模拟退火算法的基本原理 (5)2.2 TSP问题介绍 (6)三详细设计步骤 (8)3.1.算法流程 (8)3.2模拟退火算法实现步骤.................................................................................... 错误!未定义书签。
四设计结果及分析 (9)4.1 MATLAB程序实现及主函数 (9)4.1.1计算距离矩阵 (9)4.1.2 初始解 (10)4.1.3 生成新解 (10)4.1.4 Metropolis 准则函数................................................................................................ (10)4.1.5 画路线轨迹图 (11)4.1.6 输出路径函数 (12)4.1.7 可行解路线长度函数 (12)4.1.8 模拟退火算法的主函数 (13)4.2.仿真结果 (15)五体会 (18)六参考文献 (18)基于模拟退火算法的TSP算法一、设计目的和意义旅行商问题是组合优化领域里的一个典型的、易于描述却难以处理的NP难题,其可能的路径数目与城市数目是呈指数型增长的,求解非常困难。
首先介绍了旅行商问题,给出了其数学描述以及实际应用,进而给出解决TSP的一种比较精确的算法——模拟退火算法。
然后阐述了模拟退火算法的基本原理,重点说明了其基本思想及关键技术。
最后运用MATLAB语言实现了该算法,并将其运用到解决旅行商问题的优化之中。
数值仿真的结果表明了该方法能够对数据进行全局寻优,有效克服了基于导数的优化算法容易陷入局部最优的问题。
了解模拟退火算法的TSP算法的基本思路及原理,并应用MATLAB实现仿真,熟练掌握MATLAB的操作方式及应用,能正确书写报告。
二、设计原理2.1 模拟退火算法的基本原理模拟退火算法足2O世纪8O年代初提出的一种基于蒙特卡罗(Mente Carlo)迭代求解策略的启发式随机优化算法。
它通过Metropolis接受准则概率接受劣化解并以此跳出局部最优,通过温度更新函数的退温过程进行趋化式搜索并最终进入全局最优解集。
其出发点是基于物理中固体物质的退火过程与一搬的组合优化问题之间的相似性。
模拟退火法是一种通用的优化算法,其物理退火过程由以下三部分组成。
(1)加温过程。
其目的是增强粒子的热运动,使其偏离平衡位置。
当温度足够高时,固体将熔为液体,从而消除系统原先存在的非均匀状态。
(2)等温过程。
对于与周围环境交换热量而温度不变的密封系统,系统状态的自发变化总是朝自由能减少的方向进行的,当自由能达到最小时,系统达到平衡状态。
(3)冷却过程。
使粒子热运动减弱,系统能量下降,得到晶体结构。
其中,加热过程对应算法的设定初温,等温过程对应算法的 Metropolis 抽样过程,冷却过程对应控制参数的下降。
这里能量的变化就是目标函数,要得到的最优解就是能量最低态。
Metropolis 准则是SA算法收敛于全局最优解的关键所在,Metropolis 准则以一定的概率接受恶化解,这样就使算法跳离局部最优的陷阱。
模拟退火算法为求解传统方法难处理的TSP问题提供了一个有效的途径和通用框架,并逐渐发展成一种迭代自适应启发式概率性搜索算法。
模拟退火算法可以用以求解不同的非线性问题,对不可微甚至不连续的函数优化,能以较大的概率求的全局有化解,该算法还具有较强的鲁棒性、全局收敛性、隐含并行性及广泛的适应性,并且能处理不同类型的优化设计变量(离散的、连续的和混合型的),不需要任何的辅助信息,对目标函数和约束函数没有任何要求。
利用 Metropolis 算法并适当的控制温度下降过程,在优化问题中具有很强的竞争力,此设计即为基于模拟退火算法的TSP算法。
SA算法实现过程如下(以最小化问题为例):(1)初始化:取初始温度T0足够大,令T=T,任取初始解S1,确定每个T时的迭代次数,即Metropolis 链长L。
(2)对当前温度T和k=1,2,……,l,重复步骤(3)~(6)。
(3)对当前S1随机扰动产生一个新解S2。
(4)计算S2的增量df=f(S2)-f(S1)其中f为S1的代价函数。
(5)若df<0 ,则接受S2作为新的当前解,即S1=S2;否则计算S2的接受概率exp(-df/T),即随机产生(0,1)区间上均匀分布的随机数 rand,若exp(-df/T)>rand也接受S2作为新的当前解,S1=S2;否则保留当前解S1。
(6)如果满足终止条件Stop,则输出当前解s1为最优解,结束程序。
终止条件Stop 通常为:在连续若干个 Metropolis 链中新解s2都没有被接受时终止算法,或是设定结束温度。
否则按衰减函数衰减 T 后返回步骤(2)。
以上步骤成为 Metropolis 过程。
逐渐降低控制温度,重复 Metropolis 过程,直至满足结束准则 Stop,求出最优解。
2.2 TSP问题介绍旅行商问题(Traveling Salesman Problem,简称TSP)又名货郎担问题,是威廉·哈密尔顿爵士和英国数学家克克曼(T.P.Kirkman)于19世纪初提出的一个数学问题,也是著名的组合优化问题。
问题是这样描述的:一名商人要到若干城市去推销商品,已知城市个数和各城市间的路程(或旅费),要求找到一条从城市1出发,经过所有城市且每个城市只能访问一次,最后回到城市1的路线,使总的路程(或旅费)最小。
TSP刚提出时,不少人认为这个问题很简单。
后来人们才逐步意识到这个问题只是表述简单,易于为人们所理解,而其计算复杂性却是问题的输入规模的指数函数,属于相当难解的问题。
这个问题数学描述为:假设有n个城市,并分别编号,给定一个完全无向图G=(V,E),V={1,2,…,n},n>1。
其每一边(i,j)∈E有一非负整数耗费C i,j(即上的权记为C i,j,i,j∈V)。
G的一条巡回路线是经过V中的每个顶点恰好一次的回路。
一条巡回路线的耗费是这条路线上所有边的权值之和。
TSP问题就是要找出G的最小耗费回路。
人们在考虑解决这个问题时,一般首先想到的最原始的一种方法就是:列出每一条可供选择的路线(即对给定的城市进行排列组合),计算出每条路线的总里程,最后从中选出一条最短的路线。
假设现在给定的4个城市分别为A、B、C和D,各城市之间的耗费为己知数,如图1所示。
我们可以通过一个组合的状态空间图来表示所有的组合,如图图 1 顶点带权图图 2 TSP问题的解空间树从图中不难看出,可供选择的路线共有6条,从中很快可以选出一条总耗费最短的路线:顶点序列为(A,C,B,D,A)。
由此推算,若设城市数目为n时,那么组合路径数则为(n-1)!。
很显然,当城市数目不多时要找到最短距离的路线并不难,但随着城市数目的不断增大,组合路线数将呈指数级数规律急剧增长,以至达到无法计算的地步,这就是所谓的“组合爆炸问题”。
假设现在城市的数目增为20个,组合路径数则为(20-1)!≈1.216×1017,如此庞大的组合数目,若计算机以每秒检索1000万条路线的速度计算,也需要花上386年的时间[6]。
三、详细设计步骤3.1算法流程模拟退火算法求解流程框图如图1所示。
图3 模拟退火算法求解流程框图3.2模拟退火算法实现步骤如下:(1)控制参数的设置需要设置的主要控制参数有降温速率q、初始温度T0、结束温度T end以及链长L。
(2)初始解对于n个城市TSP问题,得到的解就是对1~n的一个排序,其中每个数字为对应城市的编号,如对10个城市的TSP问题{1,2,3,4,5,6,7,8,9,10},则|1|10|2|4|5|6|8|7|9|3就是一个合法的解,采用产生随机排列的方法产生一个初始解S。
(3)解变换生成新解通过对当前解S1进行变换,产生新的路径数组即新解,这里采用的变换是产生随机数的方法来产生将要交换的两个城市,用二邻域变换法产生新的路径,即新的可行解S2。
例如n=10时,产生两个[1,10]围的随机整数r1和r2,确定两个位置,将其对换位置,如r1=4,r2=79 5 1 6 3 8 7 10 4 2 得到的新解为9 5 1 7 3 8 6 10 4 2(4)Metropolis准则若路径长度函数为(S),新解的路径为(S2),路径差为d=(S2)-(S1),则Metropolis准则为如果df<0,则以概率1接受新路线,否则以概率exp(-df/T)接受新路线。
(5)降温利用降温速率q进行降温,即T=qT,若T小于结束温度,则停止迭代输出当前状态,否则继续迭代。
四、设计结果及分析4.1 MATLAB程序实现及主函数4.1.1 计算距离矩阵利用给出的N个城市的坐标,算出N个城市的两两之间的距离,得到距离矩阵(N N)。
计算函数为Distance,得到初始群种。
程序如下4.1.2 初始解初始解的产生直接使用MATLAB自带的函数randperm,如城市格式为N个,则产生初始解:4.1.3 生成新解解变换生成新解函数为NewAnswer,程序代码如下:4.1.4 Metropolis 准则函数Metropolis 准则函数为Metropolis,程序代码如下:4.1.5 画路线轨迹图画出给的路线的轨迹图函数为DrawPath,程序代码如下:4.1.6 输出路径函数将得到的路径输出显示在Command Window 中,函数名为OutputPath。
4.1.7 可行解路线长度函数计算可行解的路线长度函数为PathLength ,程序代码如下:4.1.8 模拟退火算法的主函数模拟退火算法参数设置如表一所列。
表一参数设定主函数代码如下:4.2仿真结果及分析优化前的一个随机路线图如图4所示:图4 总路线距离约为57.00优化以后的最优解路线如下图5:图5该优化路径的总路程近似为30.00,已为最优解。
模拟退火算法进化过程图如下图6:由图可以看出,优化前后路径长度得到很大改进,变为原来的52.4%,65代以后路径长度已经保持不变了,可以认为已经是最优解了。