模拟退火算法的旅行商问题
模拟退火算法解决优化问题
模拟退火算法解决优化问题模拟退火算法(Simulated Annealing,SA)是一种基于模拟固体退火过程的全局优化算法,被广泛应用于解决各种优化问题。
它的基本思想源于固体退火过程中的原子热运动,通过模拟原子在退火过程中的状态变化,寻找全局最优解。
本文将介绍模拟退火算法的基本原理、算法流程以及在解决优化问题中的应用。
一、模拟退火算法的基本原理模拟退火算法的基本原理来自于固体物理学中的固体退火过程。
在固体退火过程中,固体在高温下加热后逐渐冷却,原子会随着温度的降低而逐渐趋于稳定状态。
类比到优化问题中,算法在搜索过程中允许一定概率接受比当前解更差的解,以避免陷入局部最优解,最终达到全局最优解。
二、模拟退火算法的基本步骤1. 初始化:随机生成初始解,并设定初始温度和终止条件。
2. 选择邻域解:根据当前解生成邻域解。
3. 接受准则:根据一定概率接受邻域解,更新当前解。
4. 降温策略:根据降温策略逐渐降低温度。
5. 终止条件:达到终止条件时停止搜索,输出最优解。
三、模拟退火算法的应用模拟退火算法在解决各种优化问题中都有广泛的应用,包括组合优化、函数优化、图像处理等领域。
下面以组合优化问题为例,介绍模拟退火算法的具体应用。
1. 旅行商问题(TSP):旅行商问题是一个经典的组合优化问题,目标是找到一条最短路径经过所有城市并回到起点。
模拟退火算法可以通过不断调整路径来寻找最优解。
2. 排课问题:在学校排课过程中,需要合理安排老师和班级的上课时间,避免冲突和空闲时间过长。
模拟退火算法可以优化排课方案,使得课程安排更加合理。
3. 装箱问题:在物流领域中,需要将不同大小的物品合理装箱,使得装箱空间利用率最大化。
模拟退火算法可以帮助优化装箱方案,减少空间浪费。
四、总结模拟退火算法作为一种全局优化算法,具有较好的全局搜索能力和收敛性。
通过模拟退火算法,可以有效解决各种优化问题,得到较优的解决方案。
在实际应用中,可以根据具体问题的特点调整算法参数和策略,进一步提高算法的效率和准确性。
用模拟退火算法求解旅行商问题的近似解
用模拟退火算法求解旅行商问题的近似解概述旅行商问题是一个经典的组合优化问题,即在给定一组城市和它们之间的距离矩阵的情况下,找到一条最短路径,使得每个城市仅被访问一次,并且最后回到起始城市。
由于该问题的复杂性,很难找到最优解,因此常常使用近似算法来求解。
模拟退火算法模拟退火算法是一种基于概率的全局优化算法,通过模拟金属冶炼中的退火过程而得名。
它模拟了固体金属在高温下慢慢冷却的过程,以寻找使能量最小的晶格结构。
在求解旅行商问题时,我们可以将问题转化为在状态空间中寻找最优路径的问题,然后使用模拟退火算法进行求解。
近似解的求解步骤以下是使用模拟退火算法求解旅行商问题近似解的一般步骤:1. 初始化问题:随机选择一个初始解作为当前最优解,设定初始温度和终止温度,并设置其他参数。
2. 迭代优化:根据当前温度,对当前解进行一定数量的迭代次数。
- 生成邻域解:通过交换、插入或翻转城市顺序等方式生成一个邻域解。
- 计算评价函数:计算邻域解的路径长度。
- 接受新解:根据一定的概率接受邻域解,如果它比当前最优解更优秀,则接受它;否则,根据温度和评价函数值决定是否接受。
3. 降温策略:通过逐渐降低温度的方式探索解空间。
4. 终止条件:达到终止温度或其他终止条件后停止迭代。
5. 输出结果:返回找到的近似最优解。
优点和局限性模拟退火算法在求解旅行商问题的近似解方面具有一些优点:- 全局性:模拟退火算法能够跳出局部最优解,寻找到更好的解。
- 灵活性:该算法可以适应不同规模和复杂度的问题,并且对问题的约束条件没有严格要求。
然而,模拟退火算法也存在一些局限性:- 近似解:由于模拟退火是一种启发式算法,它无法保证找到问题的最优解,只能提供一个近似解。
- 参数选择:算法的性能很大程度上依赖于参数的选择,不同的参数设置可能会得到不同的解。
结论模拟退火算法是一种常用的求解旅行商问题近似解的算法。
通过合理设置参数和适当的降温策略,该算法能够找到较优的解。
模拟退火与蚁群混合并行算法解旅行商问题
模拟退火 与蚁 群混合并行算法解旅行商 问题
许智宏 ,宋 勃 ,郭艳艳
(河北 工 业 大 学 计算 机 科 学 与 软件 学 院 ,天 津 3 0 0 ) 04 1
摘要 求解 T P问 的智能优化算法主要 包括蚁群算法和模 拟退火算 法等 ,这些算法求解 T P问题 的速度比传 S 题 S 统 的精确求解算法有很 大改进 ,但在 问题 的求解空 间逐渐增加 时,串行执行速度往往还是无法满足人们 的需求. 针对此 问题,研 究了蚁群算法、模拟退火算法以及 两者 的混合算法的并行 实现方法 ,建立 了 P C机 群实验平 台, 基于 MP I环境对蚁群算法、模拟 退火算法以及混合 算法的并行算法进行 了测试.根据 理论研究和 实际测试的结
Ab t a t T ei tl g n p i iai n ag r h r o v n S i l cu e n o o y ag rtm n i l tda - sr c h e l e t t z t lo t ms o li g T P man yi l d t l n l o i n i o m o i f s n a c h a dsmu ae n n ai g t.Th s l o i ms a es n f a t d a tg s n n f se a a i o a x c l o t ms e l ,ec n e e g rt a h v i i c n v n a e dr tr h nt d t n l a t g r h .Bu ,t es e d h g i a a u a t r i e a i t h p e i o e o sb et e e p e e d a h c l f P i ce s r d al .F rt ep o lm, t i a e ic s e s f ni t mp s i l me t o l ’ n e s e s ae o o p S t TS r a eg a u l n y o r be h h s p rd s u s d p h a a l h d t ep r l l t o s oi lme t h n oo y ag r h e me t mp e n ea t l n lo t m,t e i ltd a n a i ga dt eh b dag rt ,e t b ih d t c i h mu a e e l n y r l o i s n n h i m h sa l e s acu tro Css se l se fP y t m,a dt se ep al l l o i si P . Ba e n t et e r t n r ci a t d ,t ep r n t d t a l g rt e h r ea m h M I n s d o o ei a dp a t l u y h e - h h c c s f r n c i e e c sb t e a a ll l o t msa d ta i o a l o i ms r n lz d h e f a i i t f r c e i g o ma ed f r n e e we np r l g r h dt n l g rt ea i n r i a h ea a y e ,t e s l y o p o e dn we b i p r l l l o i ov P i l se f Cs s i u s da ds me a al g r h t s l eTS cu t r P s s e n ea t m o n o wa d c o a i g u o cu i n b u a al l f ce c me n n f l n l so s o t r l i i n y c a p ee wee a h e e . r c iv d Ke r s T P i l td a e l ga g r h ;a t o o y a g rt ;h b da g rt m;p r l l o u i g y wo d S ;smu ae n ai lo tm n i n l n l o h c im y r l o i i h a a l mp t ec n
TSP问题的求解
(1)优点:算法稳定,易得标准值 (2)缺点:针对 TSP 问题,需要先计算出第 i 个城市到其余城市的距离, 当城市数目较多时计算复杂。
关键词:TSP 问题 模拟退火算法 线性规划 遗传算法
一、问题重述
1.1 引言 TSP 是典型的组合优化问题, 并且是一个 NP-hard 问题,TSP 简单描述为:
一名商人欲到 n 个不同的城市去推销商品, 每 2 个城市 i 和 j 之间的距离为 d ij , 如何选择一条路径使得商人每个城市走一遍后回到起点, 所走的路径最短。用数 学符号表示为:设 n 维向量 s =(c1 , c2 , …, cn )表示一条路经, 目标函数为:min
小可以不断变化。在该题中,取温度的衰减系数α=0.9,其中固定温度下最大迭 代次数为:100 次,固定温度下目标函数值允许的最大连续未改进次数为 5 次, 即当算法搜索到的最优值连续若干步保持不变时停止迭代。
④最短路径的确定
借助 Matlab 通过模拟退火算法得出最短路径为:27—26—25—24—15— 14—8—7—11—10—21—20—19—18—9—3—2—1—6—5—4—13—12—30—23 —22—17—16—29—28—27,最短路径图如下图 1
图1 最短距离为:423.7406
(2)法二:遗传算法 优化过程如下图 2 所示:
图2 初始种群中的一个随机值(初始路径):
22—6—3—16—11—30—7—28—17—14—8—5—29—21—25—27—26—19 —15—1—23—2—4—18—24—13—9—20—10—12—22
模拟退火算法的旅行商问题
人工智能原理实验报告模拟退火算法解决TSP问题目录1 旅行商问题和模拟退火算法 (1)1.1 旅行商问题 (1)1.1.1 旅行商问题的描述 (1)1.2 模拟退火算法 (1)1.2.1 基本思想 (1)2 TSP模拟退火算法的实现 (2)2.1 TSP算法实现 (2)2.1.1 TSP算法描述 (2)2.1.2 TSP算法流程 (3)2.2 TSP的C实现 (5)2.2.1 加载数据文件 (5)2.2.2 计算总距离的函数 (5)2.2.3 交换城市的函数 (5)2.2.4 执行模拟退火的函数 (5)2.3实验结果 (7)2.4小结 (7)3源代码 (8)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},n>1。
其每一边(i,j)∈E 有一非负整数耗费 C i,j (即上的权记为C i,j ,i ,j ∈V)。
并设1,i j 0{ij X =边(,)在最优线路上, 其他G 的一条巡回路线是经过V 中的每个顶点恰好一次的回路。
一条巡回路线的耗费是这条路线上所有边的权值之和。
TSP的几种求解方法及其优缺点
v1.0 可编辑可修改TSP的几种求解方法及其优缺点一、什么是TSP问题旅行商问题,简称TSP,即给定n个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路线。
其图论描述为:给定图G=(V,A),其中V为顶点集,A为各顶点相互连接组成的边集,设D=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,要求确定一条长度最短的Hamilton回路,即遍历所有顶点当且仅当一次的最短距离。
旅行商问题可分为如下两类:1)对称旅行商问题(dij=dji,Πi,j=1,2,3,⋯,n);2)非对称旅行商问题(dij≠dji,ϖi,j=1,2,3,⋯,n)。
非对称旅行商问题较难求解,我们一般是探讨对称旅行商问题的求解。
若对于城市V={v1,v2,v3,⋯,v n}的一个访问顺序为T={t1,t2,t3,⋯,t i,⋯,t n},其中t i∈V(i=1,2,3,⋯,n),且记t n+1=t1,则旅行商问题的数学模型为:minL=。
TSP是一个典型的组合优化问题,并且是一个NP完全难题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准。
因此,快速、有效地解决TSP有着重要的理论价值和极高的实际应用价值。
二、主要求解方法基于TSP的问题特性,构造型算法成为最先开发的求解算法,如最近邻点、最近合并、最近插入、最远插入、最近添加、贪婪插入等。
但是,由于构造型算法优化质量较差,迄今为止已开发了许多性能较好的改进型搜索算法,主要有:1)模拟退火算法2)禁忌搜索算法3)Hopfield神经网络优化算法4)蚁群算法5)遗传算法6)混合优化策略模拟退火算法方法1)编码选择:采用描述TSP解的最常用的一种策略——路径编码。
2)SA状态产生函数的设计:对于基于路径编码的SA状态产生函数操作,可将其设计为:①互换操作(SWAP);②逆序操作(INV);③插入操作(INS)。
用模拟退火算法解决TSP问题
用模拟退火算法解决TSP问题旅行商问题(Traveling Salesman Problem,TSP)是指一个旅行商要在不重复地经过全部的指定城市之后回到起点,所需要走的最短路径长度是多少。
由于TSP问题具有NP难度,因此传统的精确算法要花费大量的计算资源,得到的结果往往也只能是近似最优解。
而模拟退火算法是一种集合随机性和概率思想的启发式方法,可以快速地在解空间中搜索到一个较优的解。
一、模拟退火算法的原理及过程模拟退火算法是一种以概率为基础的全局优化算法,它的基本思想是利用随机性来逃离局部最优解,让搜索过程在解空间中跳跃,最终逐渐接近全局最优解。
模拟退火算法的过程可以分为三个阶段:初始化阶段、搜索阶段和收敛阶段。
初始化阶段:首先需要对问题进行建模,将问题转化为算法可处理的形式。
在TSP问题中,需要建立一个城市间距离矩阵。
然后随机生成一个初始解,通常是一个随机序列,表示旅行商经过城市的顺序。
搜索阶段:对生成的初始解进行扰动,得到一个新的解,并计算新解的目标函数值。
如果新解比原解更优,则直接接受该解。
如果新解比原解更劣,则有一定的概率接受该解,概率随着时间的推移逐渐降低。
收敛阶段:在搜索过程中,随着温度的不断下降,概率接受劣解的概率越来越小,这时算法逐渐收敛到一个局部最优解,也可能是全局最优解。
二、TSP问题的建模及求解TSP问题可以建立一张城市距离矩阵,然后用随机序列来表示旅行商经过城市的顺序。
目标函数可以定义为旅行商经过所有城市的总路径长度。
假设有n个城市,城市之间的距离矩阵为D,表示第i个城市和第j个城市之间的距离。
而旅行商经过城市的顺序可以用一个长度为n的序列{1,2,...,n}来表示,表示旅行商先经过第1个城市,然后是第2个城市,一直到第n个城市,然后再回到原点。
设目前的解序列为s={s1,s2,...,sn},则其总路径长度为:L(s) = ∑i=1n D(si,si+1) + D(sn,1)其中D(si,si+1)表示城市si和si+1之间的距离,D(sn,1)表示最后回到起点的距离。
TSP的几种求解方法及其优缺点
TSP的几种求解方法及其优缺点一、什么是TSP问题旅行商问题,简称TSP,即给定n个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路线。
其图论描述为:给定图G=(V,A),其中V为顶点集,A为各顶点相互连接组成的边集,设D=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,要求确定一条长度最短的Hamilton回路,即遍历所有顶点当且仅当一次的最短距离。
旅行商问题可分为如下两类:1)对称旅行商问题(dij=dji,Πi,j=1,2,3,?,n);2)非对称旅行商问题(dij≠dji,?i,j=1,2,3,?,n)。
非对称旅行商问题较难求解,我们一般是探讨对称旅行商问题的求解。
若对于城市V={v1,v2,v3,?,v n}的一个访问顺序为T={t1,t2,t3,?,t i,?,t n},其中t i∈V(i=1,2,3,?,n),且记t n+1=t1,则旅行商问题的数学模型为:minL=。
TSP是一个典型的组合优化问题,并且是一个NP完全难题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准。
因此,快速、有效地解决TSP有着重要的理论价值和极高的实际应用价值。
二、主要求解方法基于TSP的问题特性,构造型算法成为最先开发的求解算法,如最近邻点、最近合并、最近插入、最远插入、最近添加、贪婪插入等。
但是,由于构造型算法优化质量较差,迄今为止已开发了许多性能较好的改进型搜索算法,主要有:1)模拟退火算法2)禁忌搜索算法3)Hopfield神经网络优化算法4)蚁群算法5)遗传算法6)混合优化策略模拟退火算法方法1)编码选择:采用描述TSP解的最常用的一种策略——路径编码。
2)SA状态产生函数的设计:对于基于路径编码的SA状态产生函数操作,可将其设计为:①互换操作(SWAP);②逆序操作(INV);③插入操作(INS)。
3)SA状态接受函数的设计:min{1,exp(-△/t)}>random[0,1]准则是作为接受新状态的条件最常用的方案,其中△为新旧状态的目标值差,t为”温度”。
旅行商问题——模拟退火算法实现
旅⾏商问题——模拟退⽕算法实现1.问题描述旅⾏商问题(Travelling Salesman Problem, 简记TSP,亦称货郎担问题):设有n个城市和距离矩阵D=[d ij],其中d ij表⽰城市i到城市j的距离(i,j=1,2 … n),则问题是要找出遍访每个城市恰好⼀次的⼀条回路并使其路径长度为最短。
2.算法设计对原问题进⾏分析,TSP的⼀个解可表述为⼀个循环排列:Π= (Π1,Π2,Π3… Πn),即Π1→Π2→ … →Πn→Π1有(n-1)!/2 种不同⽅案,若使⽤穷举法,当n很⼤时计算量是不可接受的。
旅⾏商问题综合了⼀⼤类组合优化问题的典型特征,属于NP 难题,不能在多项式时间内进⾏检验。
若使⽤动态规划的⽅法时间复杂性和空间复杂性都保持为n的指数函数。
本次实验利⽤模拟退⽕算法(Simulated Annealing)求解TSP问题。
模拟退⽕算法最早由N.Metropolis等⼈于1953年提出,基于物理中固体物质的退⽕过程与⼀般组合优化问题之间的相似性。
该算法从某⼀较⾼初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间随机寻找全局最优解。
退⽕是将固体加热到⾜够⾼的温度,使分⼦呈随机排列态,然后逐步降温冷却,最后分⼦以低能状态排列,得到稳定状态的固体。
退⽕的过程有:(1)加温过程:增强粒⼦运动,消除系统原本可能存在的⾮均匀态;(2)等温过程:对于与环境换热⽽温度不变的封闭系统,系统状态的⾃发变化总是朝向⾃由能减少的⽅向进⾏,当⾃由能达到最⼩时,系统平衡;(3)冷却过程:使粒⼦热运动减弱并逐渐趋于有序,系统能量逐渐下降,从⽽得到低能的晶体结构。
其中,固体在恒温下达到热平衡的过程采⽤Metropolis⽅法进⾏模拟:温度恒定为T时,当前状态i转为新状态j,如果j状态的能量⼩于i,则接受状态j为当前状态;否则,如果概率p=exp{-(E j-E i)/(k*T)}⼤于[0,1)区间的随机数,则仍接受状态j为当前状态;若不成⽴则保留状态i为当前状态。
TSP的几种求解方法及其优缺点
TSP的几种求解方法及其优缺点一、什么是TSP问题旅行商问题,简称TSP,即给定n个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路线。
其图论描述为:给定图G=(V,A),其中V为顶点集,A 为各顶点相互连接组成的边集,设D=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,要求确定一条长度最短的Hamilton回路,即遍历所有顶点当且仅当一次的最短距离。
旅行商问题可分为如下两类:1)对称旅行商问题(dij=dji,Πi,j=1,2,3,⋯,n);2)非对称旅行商问题(dij≠dji,ϖi,j=1,2,3,⋯,n)。
非对称旅行商问题较难求解,我们一般是探讨对称旅行商问题的求解。
若对于城市V={v1,v2,v3,⋯,v n}的一个访问顺序为T={t1,t2,t3,⋯,t i,⋯,t n},其中t i∈V(i=1,2,3,⋯,n),且记t n+1=t1,则旅行商问题的数学模型为:minL=。
TSP是一个典型的组合优化问题,并且是一个NP完全难题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准。
因此,快速、有效地解决TSP有着重要的理论价值和极高的实际应用价值。
二、主要求解方法基于TSP的问题特性,构造型算法成为最先开发的求解算法,如最近邻点、最近合并、最近插入、最远插入、最近添加、贪婪插入等。
但是,由于构造型算法优化质量较差,迄今为止已开发了许多性能较好的改进型搜索算法,主要有:1)模拟退火算法2)禁忌搜索算法3)Hopfield神经网络优化算法4)蚁群算法5)遗传算法6)混合优化策略2.1模拟退火算法方法1)编码选择:采用描述TSP解的最常用的一种策略——路径编码。
2)SA状态产生函数的设计:对于基于路径编码的SA状态产生函数操作,可将其设计为:①互换操作(SW AP);②逆序操作(INV);③插入操作(INS)。
3)SA状态接受函数的设计:min{1,exp(-△/t)}>random[0,1]准则是作为接受新状态的条件最常用的方案,其中△为新旧状态的目标值差,t为”温度”。
模拟退火例题
例已知敌方100个目标的经度、纬度如下:我方有一个基地,经度和纬度为(70,40)。
假设我方飞机的速度为1000公里/小时。
我方派一架飞机从基地出发,侦察完敌方所有目标,再返回原来的基地。
在敌方每一目标点的侦察时间不计,求该架飞机所花费的时间(假设我方飞机巡航时间可以充分长)。
这是一个旅行商问题。
我们依次给基地编号为1,敌方目标依次编号为2,3,…,101,最后我方基地再重复编号为102(这样便于程序中计算)。
距离矩阵102102)(⨯=ij d D ,其中ij d 表示表示j i ,两点的距离,102,,2,1, =j i ,这里D 为实对称矩阵。
则问题是求一个从点1出发,走遍所有中间点,到达点102的一个最短路径。
上面问题中给定的是地理坐标(经度和纬度),我们必须求两点间的实际距离。
设B A ,两点的地理坐标分别为),(11y x ,),(22y x ,过B A ,两点的大圆的劣弧长即为两点的实际距离。
以地心为坐标原点O ,以赤道平面为XOY 平面,以0度经线圈所在的平面为XOZ 平面建立三维直角坐标系。
则B A ,两点的直角坐标分别为:)sin ,cos sin ,cos cos (11111y R y x R y x R A )sin ,cos sin ,cos cos (22222y R y x R y x R B 其中6370=R 为地球半径。
B A ,两点的实际距离⎪⎫ ⎛=OBR d OA arccos , 化简得]sin sin cos cos )(arccos[cos 212121y y y y x x R d +-=。
求解的模拟退火算法描述如下: (1)解空间解空间S 可表为{102,101,,2,1 }的所有固定起点和终点的循环排列集合,即}102,}101,,3,2{),,(,1|),,{(102101211021===ππππππ的循环排列为 S其中每一个循环排列表示侦察100个目标的一个回路,j i =π表示在第i 次侦察j 点,初始解可选为)102,,2,1( ,本文中我们使用Monte Carlo 方法求得一个较好的初始解。
模拟退火算法的旅行商问题
人工智能原理实验报告模拟退火算法解决TSP问题目录1 旅游商问题和模拟退火算法...........................................错误 ! 不决义书签。
旅游商问题 ...................................................................错误 ! 不决义书签。
旅游商问题的描绘 .................................................错误 ! 不决义书签。
模拟退火算法 ...............................................................错误 ! 不决义书签。
基本思想 .................................................................错误 ! 不决义书签。
2 TSP 模拟退火算法的实现................................................错误 ! 不决义书签。
TSP 算法实现 ...............................................................错误 ! 不决义书签。
TSP 算法描绘 .........................................................错误 ! 不决义书签。
TSP 算法流程 .........................................................错误 ! 不决义书签。
TSP 的 C 实现 ..............................................................错误 ! 不决义书签。
加载数据文件 .........................................................错误 ! 不决义书签。
模拟退火算法在排课问题中的应用
模拟退火算法在排课问题中的应用模拟退火算法(Simulated Annealing Algorithm,简称SA)是一种属于启发式的随机优化算法,它的启发式思想主要来自于物理学中的“退火”这一概念,该算法由Kirkpatrick 、Gelatt 和 Vecchi 三位作者于 1983 年提出,它利用类比物理的“退火”原理,使得算法能够从当前的解决方案(solution)进行逐步的变化,从而最终求得一个具有更高效率的解决方案。
因此,模拟退火算法在求解旅行商问题(TSP),排课问题,等离散优化问题中都有很好的应用,尤其是在复杂的排课问题中,模拟退火算法也能取得不错的效果。
排课问题(Course Scheduling Problem,CSP)是一类典型的组合优化问题,也是一种具有挑战性的复杂问题。
排课问题的目标是将一些任务(课程)排列在一个有约束的时间表上,使得课程安排满足所有的约束条件,同时可以最大程度地满足课程安排的目标。
排课问题是一个极具挑战性的组合优化问题,它需要考虑多个约束条件,需要计算量巨大,而且在搜索空间中有大量的局部最优解,而且很难从局部最优解推导出全局最优解。
模拟退火算法可以比较有效地求解排课问题,它可以解决排课问题的复杂性和约束条件。
在模拟退火算法中,主要采用退火温度(temperature)和冷却率(cooling rate)来控制算法的搜索过程,算法会从当前的解决方案开始,然后逐渐降低温度,并在一定概率下接受一个新的解决方案,同时保证该新的解决方案比当前解决方案更优,如果没有更优的解决方案,则会按照一定的概率接受当前的解决方案,并继续降低温度,直到算法到达最低温度,当温度到达最低温度时,算法便停止,并返回当前最优解。
在排课问题中,模拟退火算法可以有效地求解复杂的排课问题,该算法能够有效地解决复杂的约束条件,并在一定概率下接受一个新的解决方案,同时保证该新的解决方案比当前解决方案更优,从而可以最终求得一个具有更高效率的解决方案。
TSP的几种求解方法及其优缺点
TSP的几种求解方法及其优缺点一、什么是TSP问题旅行商问题,简称TSP,即给定n个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路线。
其图论描述为:给定图G=(V,A),其中V 为顶点集,A为各顶点相互连接组成的边集,设D=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,要求确定一条长度最短的Hamilton回路,即遍历所有顶点当且仅当一次的最短距离。
旅行商问题可分为如下两类:1)对称旅行商问题(dij=dji,Πi,j=1,2,3,,n);2)非对称旅行商问题(dij≠dji,i,j=1,2,3,,n)。
非对称旅行商问题较难求解,我们一般是探讨对称旅行商问题的求解。
若对于城市V={v1,v2,v3,,v n}的一个访问顺序为T={t1,t2,t3,,t i,,t n},其中t i∈V(i=1,2,3,,n),且记t n+1=t1,则旅行商问题的数学模型为:minL=。
TSP是一个典型的组合优化问题,并且是一个NP完全难题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准。
因此,快速、有效地解决TSP有着重要的理论价值和极高的实际应用价值。
二、主要求解方法基于TSP的问题特性,构造型算法成为最先开发的求解算法,如最近邻点、最近合并、最近插入、最远插入、最近添加、贪婪插入等。
但是,由于构造型算法优化质量较差,迄今为止已开发了许多性能较好的改进型搜索算法,主要有:1)模拟退火算法2)禁忌搜索算法3)Hopfield神经网络优化算法4)蚁群算法5)遗传算法6)混合优化策略模拟退火算法方法1)编码选择:采用描述TSP解的最常用的一种策略——路径编码。
2)SA状态产生函数的设计:对于基于路径编码的SA状态产生函数操作,可将其设计为:①互换操作(SWAP);②逆序操作(INV);③插入操作(INS)。
3)SA状态接受函数的设计:min{1,exp(-△/t)}>random[0,1]准则是作为接受新状态的条件最常用的方案,其中△为新旧状态的目标值差,t为”温度”。
TSP的几种求解方法及其优缺点
TSP的⼏种求解⽅法及其优缺点TSP的⼏种求解⽅法及其优缺点⼀、什么是TSP问题旅⾏商问题,简称TSP,即给定n个城市和两两城市之间的距离,要求确定⼀条经过各城市当且仅当⼀次的最短路线。
其图论描述为:给定图G=(V,A),其中V为顶点集,A 为各顶点相互连接组成的边集,设D=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,要求确定⼀条长度最短的Hamilton回路,即遍历所有顶点当且仅当⼀次的最短距离。
旅⾏商问题可分为如下两类:1)对称旅⾏商问题(dij=dji,Πi,j=1,2,3,?,n);2)⾮对称旅⾏商问题(dij≠dji,?i,j=1,2,3,?,n)。
⾮对称旅⾏商问题较难求解,我们⼀般是探讨对称旅⾏商问题的求解。
若对于城市V={v1,v2,v3,?,v n}的⼀个访问顺序为T={t1,t2,t3,?,t i,?,t n},其中t i∈V(i=1,2,3,?,n),且记t n+1=t1,则旅⾏商问题的数学模型为:minL=。
TSP是⼀个典型的组合优化问题,并且是⼀个NP完全难题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接⽐较标准。
因此,快速、有效地解决TSP有着重要的理论价值和极⾼的实际应⽤价值。
⼆、主要求解⽅法基于TSP的问题特性,构造型算法成为最先开发的求解算法,如最近邻点、最近合并、最近插⼊、最远插⼊、最近添加、贪婪插⼊等。
但是,由于构造型算法优化质量较差,迄今为⽌已开发了许多性能较好的改进型搜索算法,主要有:1)模拟退⽕算法2)禁忌搜索算法3)Hopfield神经⽹络优化算法4)蚁群算法5)遗传算法6)混合优化策略2.1 模拟退⽕算法⽅法1)编码选择:采⽤描述TSP解的最常⽤的⼀种策略——路径编码。
2)SA状态产⽣函数的设计:对于基于路径编码的SA状态产⽣函数操作,可将其设计为:①互换操作(SWAP);②逆序操作(INV);③插⼊操作(INS)。
模拟退火例题
例已知敌方100个目标的经度、纬度如下:我方有一个基地,经度和纬度为(70,40)。
假设我方飞机的速度为1000公里/小时。
我方派一架飞机从基地出发,侦察完敌方所有目标,再返回原来的基地。
在敌方每一目标点的侦察时间不计,求该架飞机所花费的时间(假设我方飞机巡航时间可以充分长)。
这是一个旅行商问题。
我们依次给基地编号为1,敌方目标依次编号为2,3,…,101,最后我方基地再重复编号为102(这样便于程序中计算)。
距离矩阵102102)(⨯=ij d D ,其中ij d 表示表示j i ,两点的距离,102,,2,1, =j i ,这里D 为实对称矩阵。
则问题是求一个从点1出发,走遍所有中间点,到达点102的一个最短路径。
上面问题中给定的是地理坐标(经度和纬度),我们必须求两点间的实际距离。
设B A ,两点的地理坐标分别为),(11y x ,),(22y x ,过B A ,两点的大圆的劣弧长即为两点的实际距离。
以地心为坐标原点O ,以赤道平面为XOY 平面,以0度经线圈所在的平面为XOZ 平面建立三维直角坐标系。
则B A ,两点的直角坐标分别为:)sin ,cos sin ,cos cos (11111y R y x R y x R A )sin ,cos sin ,cos cos (22222y R y x R y x R B 其中6370=R 为地球半径。
B A ,两点的实际距离⎪⎫ ⎛=OBR d OA arccos , 化简得]sin sin cos cos )(arccos[cos 212121y y y y x x R d +-=。
求解的模拟退火算法描述如下: (1)解空间解空间S 可表为{102,101,,2,1 }的所有固定起点和终点的循环排列集合,即}102,}101,,3,2{),,(,1|),,{(102101211021===ππππππ的循环排列为 S其中每一个循环排列表示侦察100个目标的一个回路,j i =π表示在第i 次侦察j 点,初始解可选为)102,,2,1( ,本文中我们使用Monte Carlo 方法求得一个较好的初始解。
模拟退火算法的原理及算法在优化问题上的应用共3篇
模拟退火算法的原理及算法在优化问题上的应用共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准则,模拟退火算法在搜索过程中可以接受一定的差解,从而避免陷入局部最优解。
二、模拟退火算法在优化问题上的应用模拟退火算法可以应用到很多优化问题中,例如旅行商问题、最大割问题等。
模拟退火算法的应用
模拟退火算法的应用模拟退火算法是一种基于物理退火过程的随机搜索算法,广泛应用于解决各种优化问题。
它的灵感来源于固体退火的过程,通过模拟退火的方法,使粒子从高能态逐渐趋于低能态,从而找到问题的全局最优解或接近最优解。
模拟退火算法最早由Metropolis等人在1953年提出,最初是用于模拟固体的退火过程。
后来,Kirkpatrick等人将其引入到组合优化问题的求解中,并取得了很好的效果。
模拟退火算法的核心思想是通过接受劣解的概率来避免陷入局部最优解,从而在解空间中进行全局搜索。
模拟退火算法的应用非常广泛,以下将介绍几个典型的应用领域。
1. 旅行商问题(TSP):旅行商问题是一个经典的组合优化问题,要求在给定的一系列城市之间找到最短的回路,使得每个城市只访问一次。
模拟退火算法可以通过随机生成不同的路径,并根据路径长度和温度来决定是否接受更差的解。
通过不断降低温度,模拟退火算法可以逐步收敛到最优解。
2. 排课问题:排课问题是学校、大学等教育机构面临的一个常见问题,要求在给定的限制条件下,合理安排学生的课程安排。
模拟退火算法可以将每个时间段作为一个解空间,通过随机生成不同的课程安排,并根据限制条件和目标函数来评估解的质量。
通过不断降低温度,模拟退火算法可以找到一个比较优的排课方案。
3. VLSI布局问题:VLSI布局问题是在集成电路设计中经常遇到的一个问题,要求在给定的芯片上合理安排电路元件的位置。
模拟退火算法可以将每个元件的位置作为一个解空间,通过随机生成不同的布局,并根据约束条件和目标函数来评估解的质量。
通过不断降低温度,模拟退火算法可以找到一个比较优的元件布局方案。
4. 机器学习中的参数优化:在机器学习中,往往需要通过调整参数来优化模型的性能。
模拟退火算法可以将参数空间作为一个解空间,通过随机生成不同的参数组合,并根据模型的性能指标来评估解的质量。
通过不断降低温度,模拟退火算法可以找到一个比较优的参数组合,从而优化机器学习模型的性能。
求解旅行商问题的自适应升温模拟退火算法
第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 ***************.。
粒子群与模拟退火的混合算法求解旅行商问题
粒子群与模拟退火的混合算法求解旅行商问题粒子群优化算法(Particle Swarm Optimization, PSO)和模拟退火算法(Simulated Annealing, SA)是两种常用的优化算法,它们在求解旅行商问题(Traveling Salesman Problem, TSP)等组合优化问题中具有一定的优势。
将这两种算法相结合可以得到一种混合算法,能够更有效地找到TSP问题的近似最优解。
旅行商问题是一个经典的组合优化问题,其目标是找到一条最短路径,使得一个旅行商能够经过所有的城市并回到起始城市。
由于TSP的解空间巨大,穷举所有可能的路径是不可行的,因此需要利用优化算法来找到近似最优解。
粒子群优化算法是一种基于群体智能的优化算法,其灵感来源于鸟群觅食行为。
在PSO中,每个粒子代表了搜索空间中的一个潜在解,并通过不断地更新自身位置和速度来搜索最优解。
粒子之间通过共享当前最优解的信息来进行协作,从而加速搜索过程。
模拟退火算法是一种基于物理退火过程的全局优化算法。
在SA中,通过模拟金属在退火过程中的晶格状态变化来对解空间进行搜索。
算法开始时接受高温状态下的随机解,并以一定的概率接受劣解,以避免陷入局部最优解。
随着退火过程的进行,温度逐渐降低,搜索空间逐渐收缩,最终接近全局最优解。
将粒子群优化算法与模拟退火算法相结合,可以借鉴两种算法的优势,克服它们各自的缺点。
具体而言,可以将粒子群优化算法作为主搜索算法,用于加速搜索过程,而模拟退火算法则可以作为辅助搜索算法,用于避免陷入局部最优解。
在每一次粒子群算法的迭代过程中,可以根据一定的准则选择一部分粒子,通过模拟退火算法对它们进行进一步的优化。
在实际实施过程中,可以根据问题的特点调整粒子群算法和模拟退火算法的参数设置,比如粒子的数量、速度更新公式、温度下降策略等。
通过多次迭代和局部优化,混合算法可以逐步逼近TSP问题的最优解。
总之,粒子群与模拟退火的混合算法是一种有效求解旅行商问题的方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工智能原理实验报告模拟退火算法解决TSP问题目录1 旅行商问题和模拟退火算法........................................... 错误!未定义书签。
旅行商问题................................................................... 错误!未定义书签。
旅行商问题的描述................................................. 错误!未定义书签。
模拟退火算法............................................................... 错误!未定义书签。
基本思想................................................................. 错误!未定义书签。
2 TSP模拟退火算法的实现................................................ 错误!未定义书签。
TSP算法实现............................................................... 错误!未定义书签。
TSP算法描述......................................................... 错误!未定义书签。
TSP算法流程......................................................... 错误!未定义书签。
TSP的C实现 .............................................................. 错误!未定义书签。
加载数据文件......................................................... 错误!未定义书签。
计算总距离的函数................................................. 错误!未定义书签。
交换城市的函数..................................................... 错误!未定义书签。
执行模拟退火的函数............................................. 错误!未定义书签。
实验结果......................................................................... 错误!未定义书签。
小结................................................................................. 错误!未定义书签。
3源代码................................................................................ 错误!未定义书签。
1 旅行商问题和模拟退火算法旅行商问题 旅行商问题的描述旅行商问题(Traveling Salesman Problem ,简称TSP )又名货郎担问题,是威廉·哈密尔顿爵士和英国数学家克克曼于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)。
并设1,i j 0{ij X =边(,)在最优线路上, 其他G 的一条巡回路线是经过V 中的每个顶点恰好一次的回路。
一条巡回路线的耗费是这条路线上所有边的权值之和。
TSP 问题就是要找出G 的最小耗费回路。
模拟退火算法模拟退火算法由KirkPatrick 于1982提出[7],他将退火思想引入到组合优化领域,提出一种求解大规模组合优化问题的方法,对于NP-完全组合优化问题尤其有效。
模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其缓慢降温(即退火),使之达到能量最低点。
反之,如果急速降温(即淬火)则不能达到最低点。
加温时,固体内部粒子随温升变为无序状,内能增大,而缓慢降温时粒子渐趋有序,在每个温度上都达到平衡态,最后在常温时达到基态,内能减为最小。
根据Metropolis 准则,粒子在温度T 时趋于平衡的概率为exp(-E/(kT)),其中E 为温度T 时的内能,∆E 为其改变量,k 为Boltzmann 常数。
用固体退火模拟组合优化问题,将内能E 模拟为目标函数值f ,温度T 演化成控制参数t ,即得到解组合优化问题的模拟退火算法:由初始解i 和控制参数初值t 开始,对当前解重复产生“新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t 值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。
退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t 及其衰减因子a 、每个t 值时的迭代次数L 和停止条件C 。
基本思想模拟退火算法可以分解为解空间、目标函数和初始解3部分。
其基本思想是:(1)初始化:初始温度T(充分大),初始解状态s(是算法迭代的起点),每个T 值的迭代次数L ;(2)对k=1,……,L 做第(3)至第6步; (3)产生新解s′;(4)计算增量cost=cost(s′)-cost(s),其中cost(s)为评价函数;(1-1)(5)若t′<0则接受s′作为新的当前解,否则以概率exp(-t′/T)接受s′作为新的当前解; (6)如果满足终止条件则输出当前解作为最优解,结束程序。
终止条件通常取为连续若干个新解都没有被接受时终止算法;(7)T 逐渐减少,且T 趋于0,然后转第2步运算。
具体如下(1)新解的产生和接受模拟退火算法新解的产生和接受可分为如下4个步骤:①由一个函数从当前解产生一个位于解空间的新解。
为便于后续的计算和接受,减少算法耗时,常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等。
产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的选取有一定的影响。
②计算与新解所对应的目标函数差。
因为目标函数差仅由变换部分产生,所以目标函数差的计算最好按增量计算。
事实表明,对大多数应用而言,这是计算目标函数差的最快方法。
③判断新解是否被接受。
判断的依据是一个接受准则,最常用的接受准则是Metropo1is 准则:若t′<0则接受S′作为新的当前解S ,否则以概率exp(-t′/T)接受S′作为新的当前解S 。
④当新解被确定接受时,用新解代替当前解。
这只需将当前解中对应于产生新解时的变换部分予以实现,同时修正目标函数值即可。
此时,当前解实现了一次迭代,可在此基础上开始下一轮试验。
而当新解被判定为舍弃时,则在原当前解的基础上继续下一轮试验。
模拟退火算法与初始值无关,算法求得的解与初始解状态S(是算法迭代的起点)无关;模拟退火算法具有渐近收敛性,已在理论上被证明是一种以概率收敛于全局最优解的全局优化算法;模拟退火算法具有并行性。
(2)参数控制问题模拟退火算法的应用很广泛,可以求解NP 完全问题,但其参数难以控制,其主要问题有以下3点[7]:①温度T 的初始值设置。
温度T 的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一。
初始温度高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索性能可能受到影响。
实际应用过程中,初始温度一般需要依据实验结果进行若干次调整。
②温度衰减函数的选取。
衰减函数用于控制温度的退火速度,一个常用的函数为:(1)()T t T t α+=式中是一个非常接近于1的常数,t 为降温的次数。
③马尔可夫链长度L 的选取。
通常的原则是:在衰减参数T 的衰减函数已选定的前提下,L 的选取应遵循在控制参数的每一取值上都能恢复准平衡的原则。
2 TSP 模拟退火算法的实现TSP 是典型的组合优化问题,模拟退火算法是一种随机性解决组合优化方法。
将TSP 与模拟退火算法相结合,以实现对其求解。
TSP 算法实现 TSP 算法描述(1)TSP 问题的解空间和初始解TSP 的解空间S 是遍访每个城市恰好一次的所有回路,是所有城市排列的集合。
TSP 问题的解空间S 可表示为{1,2,…,n}的所有排列的集合,即S = {(c 1,c 2,…,c n ) | ((c 1,c 2,…,c n )为{1,2,…,n}的排列)},其中每一个排列S i 表示遍访n 个城市的一个路径,c i = j 表示在第i 次访问城市j 。
模拟退火算法的最优解与初始状态无关,故初始解为随机函数生成(1-2)一个{1,2,…,n}的随机排列作为S 0。
(2)目标函数TSP 问题的目标函数即为访问所有城市的路径总长度,也可称为代价函数:()()()11211,1,,,n n i i n i C c c c d c c d c c ++==+∑…,现在TSP 问题的求解就是通过模拟退火算法求出目标函数C(c 1,c 2,…,c n )的最小值,相应地,s *= (c *1,c *2,…,c *n )即为TSP 问题的最优解。
(3)新解产生新解的产生对问题的求解非常重要。
新解可通过分别或者交替用以下2种方法产生: ①二变换法:任选序号u,v(设u <v <n),交换u 和v 之间的访问顺序,若交换前的解为s i = (c 1,c 2,…,c u ,…,c v ,…,c n ),交换后的路径为新路径,即:s i ′= (c 1,…,c u-1,c v ,c v-1,…,c u+1,c u ,c v+1,…,c n )②三变换法:任选序号u,v 和ω(u≤v <ω),将u 和v 之间的路径插到ω之后访问,若交换前的解为s i = (c 1,c 2,…,c u ,…,c v ,…,c ω,…,c n ),交换后的路径为的新路径为:s i ′= (c 1,…,c u-1,c v+1,…,c ω,c u ,…,c v ,c ω+1,…,c n ) (4)目标函数差计算变换前的解和变换后目标函数的差值: Δc′= c(s i ′)- c(s i )(5)Metropolis 接受准则根据目标函数的差值和概率exp(-ΔC′/T)接受s i ′作为新的当前解s i ,接受准则:'''1,0exp(/)0{c c T c p -∆<-∆ , -∆>=TSP 算法流程根据以上对TSP 的算法描述,可以写出用模拟退火算法解TSP 问题的流程图2-1所示:(2-1)(2-2)图2-1 TSP的模拟退火流程TSP的C实现加载数据文件下面是加载数据文件的一个例子:中国31省会城市数据:[1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229;4196 1044;4312 790;4386 570;3007 1970;2562 1756;2788 1491;2381 1676;1332 695;3715 1678;3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;4263 2931;3429 1908;3507 23763394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778 2826;2370 2975];当调用数据文件函数时,包含城市坐标信息的矩阵载入到数组中。