加温退火算法及其在旅行商问题中的应用
python 模拟退火算法例子

python 模拟退火算法例子退火算法(Simulated Annealing)是一种优化算法,模拟了固体物质退火过程中温度的变化规律,通过随机搜索和接受概率来逐步接近全局最优解。
下面将列举一些使用Python实现退火算法的例子。
1. TSP问题求解:旅行商问题(Traveling Salesman Problem,TSP)是一个经典的组合优化问题,退火算法可以用来求解TSP问题。
算法通过不断减小温度,在搜索空间中随机生成新的解,并通过Metropolis准则接受新解或者以一定概率接受差解,最终找到一条近似最优解。
2. 连续函数优化:退火算法可以用于求解连续函数的全局最优解。
例如,可以通过退火算法来求解一元函数的最大值或最小值。
算法通过随机选择新的解,并根据目标函数值和Metropolis准则来决定是否接受新解。
3. 图像分割:退火算法可以用于图像分割问题,即将图像分成若干个区域,使得同一区域内的像素具有相似的特征。
算法通过不断调整像素的标签,使得目标函数(如能量函数)最小化。
4. 参数优化:退火算法可以用于调整模型的参数以最小化损失函数。
例如,在机器学习中,可以使用退火算法来优化神经网络的权重和偏置。
5. 排课问题:在学校或大学的排课过程中,需要将课程安排在合适的时间和教室,使得学生和教师的时间冲突最小化。
退火算法可以用于求解这个问题,通过不断调整课程的时间和教室,使得冲突数最小化。
6. 组合优化问题:退火算法可以用于求解组合优化问题,如背包问题、旅行商问题等。
算法通过不断生成新的解,并根据目标函数值和Metropolis准则来决定是否接受新解。
7. 线路规划:在城市交通中,退火算法可以用于求解最优线路规划问题,如公交车线路规划、货物配送等。
算法通过不断调整线路的路径和顺序,使得总行驶距离或时间最小化。
8. 布局优化:在工厂或仓库的布局设计中,退火算法可以用于优化设备的位置和路径规划,使得生产效率最大化。
基于MATLAB的模拟退火算法解决旅行推销员问题的研究

运行时间 (秒) 62.052786 23.276742 10.629814 19.393158 14.514691 48.433475 22.460067 12.662545 41.7105542 20.096185 15.921152 8.101331 24.226495 19.368296 14.563707 9.469369 4.188427 8.945439 7.191372 7.121479 9.250978 7.427487 5.315153 17.553090 10.943403 5.236883 7.130828
03 MATLAB仿真实验与算法改进
物理退火
加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有 序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
01 旅行推销员问题介绍
02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
模拟退火算法
物理退火 物质状态 能量最低的物质状态 退火过程 温度T 能量E 等温过程 优化问题 解 最优解 求解过程 控制参数t 目标函数F Metropolis抽样过程
02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
旅行推销员问题研究意义
现实生活中经常要同时考虑多个目标,目标之间往往存在冲
突性,我们要在多个目标中寻找一个公平、合理的最优解。
如路程最短、时间最短、费用最省、风险最小等多方面的因素。 该问题的实际模型在VLSI芯片设计、连锁店的货物配送、网络路由 设计、物流、生产调度等领域有着广泛的应用价值,故研究TSP问 题,对科学管理与经济决策的许多应用领域中都有重大意义。
3
容易遗失当前遇到的最优解。搜索过程通过执行概率接受来判断。
模拟退火算法应用实例

模拟退火算法应用实例一、什么是模拟退火算法模拟退火算法是一种优化算法,用于在搜索空间中寻找全局最优解。
它的基本思想是通过随机游走的方式,从一个初始解开始,在搜索过程中逐渐降低温度,使得概率性的接受更优解的能力逐渐减弱,最终达到全局最优解。
二、应用实例1. 旅行商问题旅行商问题是指给定一组城市和每对城市之间的距离,求解访问每个城市恰好一次并回到起始城市的最短路径。
这个问题是NP-hard问题,因此需要使用启发式算法来求解。
模拟退火算法可以用来求解旅行商问题。
首先随机生成一个初始路径,然后不断地进行交换两个节点位置,并计算新路径长度。
如果新路径比原路径短,则接受新路径;否则以一定概率接受新路径。
随着时间推移,温度逐渐降低,接受新路径的概率也逐渐降低。
最终得到全局最优解。
2. 图像处理模拟退火算法可以用于图像处理中的图像分割和图像匹配等问题。
例如,在图像分割中,我们可以将图像分成多个区域,使得同一区域内的像素具有相似的特征,不同区域之间的像素特征差异较大。
首先随机生成一个初始分割方案,然后不断地进行移动像素点到其他区域,并计算新分割方案的代价函数。
如果新方案比原方案更优,则接受新方案;否则以一定概率接受新方案。
随着时间推移,温度逐渐降低,接受新方案的概率也逐渐降低。
最终得到全局最优解。
3. 机器学习模拟退火算法可以用于机器学习中的参数优化问题。
例如,在神经网络中,我们需要找到最优的权重和偏置值来最小化损失函数。
首先随机生成一个初始权重和偏置值,然后不断地进行微小调整,并计算新损失函数值。
如果新损失函数比原损失函数更小,则接受新权重和偏置值;否则以一定概率接受新权重和偏置值。
随着时间推移,温度逐渐降低,接受新权重和偏置值的概率也逐渐降低。
最终得到全局最优解。
三、模拟退火算法的优点和缺点1. 优点(1)全局最优解:模拟退火算法可以找到全局最优解,而不是局部最优解。
(2)适用性广:模拟退火算法可以应用于各种问题,并且具有较好的鲁棒性。
数据分析知识:数据分析中的模拟退火搜索算法

数据分析知识:数据分析中的模拟退火搜索算法数据分析中的模拟退火搜索算法数据分析是一个不断发展的领域,处理数据所需的技能和算法也在不断更新。
模拟退火搜索算法(Simulated Annealing Algorithm)是一种用于处理复杂问题的启发式优化算法,它可以在超大规模的数据集中快速找到最优解。
下文将详细介绍模拟退火搜索算法的原理、应用以及优缺点。
一、原理模拟退火搜索算法是一种通用的启发式算法,它是在固体退火过程的基础上发展起来的。
退火是一种物理过程,是指将材料加热到一定温度,然后慢慢降温,让材料过程中的分子重新排列组合,从而获得最佳的材料结构。
同样地,模拟退火算法也是借鉴了这个场景,通过随机性和概率性的方式搜索一个问题的解空间,进而得到最优解。
模拟退火搜索算法的基本步骤如下:1.随机生成一个初始解,比如在解空间中随机选取一个点作为初始解。
2.根据一定的概率选择下一个解,比如在解空间中随机选取一个新的点作为下一个解。
3.计算目标函数(即损失函数)的值,比较当前解和下一个解的目标函数值的差异。
4.如果新解比当前解更优,则接受新解。
5.如果新解比当前解更差,则通过一定概率接受新解,以避免陷入局部最优解。
6.重复步骤二至五直到满足搜索停止条件(如达到设定的迭代次数或目标误差范围)。
二、应用模拟退火搜索算法在数据分析中有着广泛的应用,以下是一些常见的应用示例:1.旅行商问题(TSP):模拟退火搜索算法能够在旅行商问题中找到最佳路径,从而实现路径最优化问题的解决。
2.组合优化问题:比如在资源分配、员工排班等领域,模拟退火搜索算法可以优化资源分配方案,实现最小成本或最大收益。
3.物理学模拟:模拟退火搜索算法被广泛用于物理学模拟中,如蛋白质折叠、固体表面形貌和量子力学模拟等领域。
4.机器学习:模拟退火搜索算法可以用于优化机器学习中的超参数,如不同的学习率和不同的激活函数等。
以上只是模拟退火搜索算法的一部分应用,实际上它可以处理很多的优化问题。
退火的总结

退火的总结引言退火是一种重要的优化算法,被广泛应用于解决各种问题。
它模拟了金属加热到高温后缓慢冷却的过程,通过不断调整参数以减小系统能量,从而获得最佳解。
退火算法的原理简单且易于理解,同时具有全局搜索能力和跳出局部最优解的特点,因此在许多领域取得了显著的应用效果。
本文将对退火算法的原理、应用以及一些相关扩展进行总结和介绍。
退火算法原理退火算法的原理基于固体退火过程的模拟,其核心思想是通过控制系统的温度参数和状态参数的更新,逐步降低系统的能量,从而找到问题的最优解。
其基本流程如下:1.初始化状态:随机生成一个初始状态。
2.初始化温度:设定初始温度,通常为一个较高的值。
3.进行迭代:在退火过程中,通过接受概率,以一定规则生成新的状态,并计算其对应的能量。
4.判断条件:根据不同的停止条件判断是否终止迭代,如达到最大迭代次数或能量足够低等。
5.降温:通过降低温度来控制接受新状态的概率,并使系统逐渐趋于稳定。
6.继续迭代:根据降温策略和新状态的能量,决定是否接受该状态并进行下一轮迭代。
退火算法的应用退火算法具有广泛的应用领域,下面列举了其中一些常见的应用:组合优化问题退火算法在解决组合优化问题中表现出色。
组合优化问题要求在给定的可行解空间内找到使目标函数最优的解。
通过不断调整参数,退火算法能够高效地搜索解空间,并以合理的概率接受次优解,避免陷入局部最优解。
这使得退火算法在旅行商问题、指派问题等组合优化问题中得到广泛应用。
物理模拟退火算法可以模拟物理系统的行为,例如模拟固体的晶体结构、材料的热膨胀和磁性等。
通过调整参数,使系统的能量逐渐降低,可以得到物理系统的稳定状态和相应的性质。
排序和搜索问题退火算法在排序和搜索问题中也有应用。
通过设定合适的目标函数和初始状态,利用退火算法可以在复杂的排序和搜索问题中寻找到合适的解。
例如,在排序问题中,可以通过设定排序规则,并使用退火算法将无序序列逐步调整为有序序列。
退火算法的改进为了进一步提高退火算法的性能,人们提出了一系列改进方法。
模拟退火算法在路线规划中的应用

模拟退火算法在路线规划中的应用近年来,旅游业蓬勃发展,越来越多的人选择旅游作为休闲方式。
而随着人们旅游需求的不断提高,越来越多的人开始注重旅游路线规划的问题。
旅游路线规划是一项十分复杂的问题,涉及到的因素众多,包括景点数量、旅游时间、出行方式等。
为了解决这个问题,科学家们提出了很多算法。
其中,模拟退火算法便是受到了人们广泛关注的一种算法。
模拟退火算法是一种优化算法。
起初主要用于物理模拟,后来逐渐应用于各种计算问题。
其基本思想是在一定温度下,避免进入局部极小值的情况,从而达到全局极小值。
模拟退火算法的核心部分有三个,分别是初始温度、温度衰减函数和邻域结构。
在旅游线路规划中,初始温度可以设定为一个较高的值,以便于跳出原有路径;温度衰减函数则要以一定的比例递减,以保证算法在收敛时不会过快;邻域结构指与当前解距离最近的解的构成,可以通过改变交换顺序或者插入节点等方式变化实现。
在旅游路线规划中,模拟退火算法的应用非常广泛。
我们可以将所有景点看作一个个节点,在它们之间连线构成一个无向图,从而建立一个旅游路线的模型。
然后,我们可以根据模拟退火算法的原理,在旅游路线中寻找一条最优解。
首先,我们设定一个初始的路径方案,然后根据算法的原理,随机地产生新解,并通过一定的条件接受或拒绝新解。
通过不断地改进解的质量,我们最终找到一条最优的旅游路线。
另外,模拟退火算法还可以应用于其他旅游问题。
例如,在旅游路线规划之前,我们需要对每个景区的时间和车费进行评估。
我们可以根据历史数据或者现有的信息来评估花费时间和车费,然后通过模拟退火算法寻找旅游路线,尽可能地减少总时间和总花费。
总之,模拟退火算法是一种非常有效的解决旅游路线规划问题的方法。
无论是在旅游业,还是在其他领域,模拟退火算法都有着广泛的应用。
通过利用算法的优势,我们可以更好地满足人们的旅游需求,为旅游业的发展注入活力。
三步法的退火温度

三步法的退火温度退火算法是一种模拟退火过程的优化算法,常用于解决组合优化问题。
而三步法是退火算法中的一种变体,它通过选择合适的退火温度来提高算法的性能。
本文将介绍三步法的退火温度选择方法,并探讨其在实际问题中的应用。
一、退火算法简介退火算法是一种基于模拟退火原理的全局优化方法。
其基本思想是通过模拟金属冶炼中的退火过程,将系统从高能态逐渐冷却到低能态,以期望得到全局最优解。
在退火过程中,系统会接受一些较差的解,以避免陷入局部最优解。
而退火温度是退火算法中的一个重要参数,它决定了系统接受较差解的概率。
二、三步法的退火温度选择方法三步法是一种改进退火算法的方法,它通过选择合适的退火温度来提高算法的性能。
具体而言,三步法将退火过程分为三个阶段,并为每个阶段选择不同的退火温度。
1. 初始阶段:在初始阶段,退火温度较高,主要目的是使系统尽快找到一个较优解。
此时,系统接受较差解的概率较大,有助于跳出局部最优解。
初始阶段的退火温度一般较高,通常取总问题空间的平均能量作为初始温度。
2. 中间阶段:在初始阶段找到一个较优解后,退火温度逐渐降低。
此时,系统接受较差解的概率逐渐减小,算法逐渐收敛到全局最优解。
中间阶段的退火温度一般通过试探法确定,可以根据问题的特点进行调整。
3. 收敛阶段:在中间阶段达到一定的收敛程度后,退火温度进一步降低,使系统更加稳定。
此时,系统接受较差解的概率非常低,算法基本收敛到全局最优解。
收敛阶段的退火温度一般较低,可以根据问题的复杂程度和求解精度进行调整。
三、三步法的应用举例三步法的退火温度选择方法可以应用于各种组合优化问题。
例如,考虑一个旅行商问题,即寻找一条最短路径,使得旅行商能够依次访问多个城市并返回起点城市。
这是一个经典的NP难问题,可以使用退火算法求解。
在使用三步法求解旅行商问题时,可以按照以下步骤进行:1. 初始化退火温度,根据问题的规模和复杂程度选择合适的初始温度。
2. 在初始阶段,使用较高的退火温度进行搜索,尽快找到一个较优解。
旅行商问题——模拟退火算法实现

旅⾏商问题——模拟退⽕算法实现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为当前状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
邮局订阅号:82-946360元/年技术创新博士论坛《PLC 技术应用200例》您的论文得到两院院士关注加温退火算法及其在旅行商问题中的应用Simulated annealing algorithm with heating process and its application in TSP(合肥工业大学)俞家文王保敏杜伟YU Jia-wen WANG Bao-min DU Wei摘要:传统的模拟退火算法初始温度人工选取可能出现过高或过低,致使运行时间长、搜索效率低。
在传统的模拟退火算法中引入加温过程,可以根据算法自身的运行得到合适的初始温度与较好的解质。
文章将加温前后的模拟退火算法应用于旅行商问题,验证了加温模拟退火算法的高效性。
关键词:加温;模拟退火算法;旅行商问题中图分类号:TP301.6文献标识码:AAbstract:In traditional simulated annealing algorithm,long running time and low searching efficiency are the problems due to artifi -cial initial temperature.By introducing the heating process,an appropriate temperature and a better solution can be obtained.The two kinds of algorithm are applied to the TSP respectively,the result shows that the algorithm with the process of heating has a bet -ter efficiency.Key words:heating;simulated annealing algorithm;travelling salesman problem(TSP)文章编号:1008-0570(2010)01-1-0023-02模拟退火算法用于解决组合优化问题的想法,是基于物理中固体物质的退火过程与一般组合优化问题间的相似性,见表1所列。
表1组合优化问题和金属物体加温退火过程的类比根据微正则系综基本假设———等几率原理:对于处在平衡状态的孤立系统,系统处于每一微观状态的几率相等,可以导出正则系综的等几率分布———Gibbs 正则分布:(1)1953年,Metropolis 等人提出重要性采样法产生固体的状态序列:先给定能量为E i 的固体的初始状态i,然后用摄动装置随机产生一微小变化,得到新状态j,其能量为E j 。
若E j <E i ,则状态j 取代i 成为当前状态,否则,考虑到热运动的影响,j 是否取代i,要依据固体处于该状态的几率来判断。
由(1)式可知,固体处于状态i 和j 的几率比值为:(2)r 是一个小于1的数。
用随机数发生器产生一个[0,1)之间的随机数m,若r>m,则接受新状态j,否则舍去。
1982年,Kirk -Patrick 等根据固体退火过程与组合优化问题之间的类似性,得到一种用Metropolis 准则进行迭代的组合优化算法,称之为“模拟退火算法”。
退火过程的能态i 对应于组合优化问题的解i,能量E 对应于目标函数f,令随算法进程递减其值的控制参数t 担当固体退火过程中的温度T 的角色,对于控制参数t 的每一取值,算法持续进行“产生新解———判断———接受/舍弃”的迭代过程。
模拟退火算法从某个初始解出发,经过大量解的变换后,可以求得给定控制参数值时组合优化问题的相对最优解。
重新执行Metropolis 算法,就可以在控制参数t 趋于零时,得到组合优化问题的整体最优解。
1传统模拟退火算法的不足传统的模拟退火算法使用基于概率的双方向随机搜索技术,在一定的程度上克服了局部搜索算法易于陷入局部最优解的缺陷。
但另一方面,模拟退火算法的渐进收敛性意味着:对多数组合问题来说,算法的执行过程只有进行无限多次变换后,才能返回一个整体最优解。
因而模拟退火算法不适于求解组合优化问题的最优解。
通常经过有限的时间来逼近算法的渐进收敛性:用控制参数t 的一个递减有限序列以及与之对应的链长为L k 的有限长齐次Mapkob 链序列去控制算法进程。
为此必须确定一个确保算法收敛性的参数集,称该参数集为冷却进度表,冷却进度表(cooling schedule)是一组控制算法进程的参数,用以逼近模拟退火算法的渐进收敛性态,使算法经过有限时间执行后返回一个近似最优解。
其中各个参数的合理选取直接会影响到算法的收敛速度。
通过大量的实验论证,对冷却进度表中的衰减函数和Mapkob 链长L k ,都得到了相对固定的经验常数或数学表达式。
而对于控制参数t 的初值t 0的选取,目前一般都依靠经验设定。
这可能产生的问题是,初始温度设定的过高,会导致退火时间过长;反之,虽然节约了计算时间,但由于搜索空间缩小,退火不完全会产生退化解。
尽管文献提出了温度可控的算法,但要想得到满意的解,仍然需要对结果进行若干次试运算。
2加温退火算法2.1加温退火算法的求解步骤加温退火算法解决的是冷却进度表中控制参数初值的“选取”,在进行退火之前预先进行加温,加温后得到的温度作为退火过程的初值t 0,得到的解作为退火过程的初始解。
其基本求解步骤为:STEP1任选一个初始解x 0;x i =x 0;k:=0;t 0:=0(加温前的温度);STEP2从领域N (x i )中随机选一新解x j ,计算能量差俞家文:副教授博士23--技术创新《微计算机信息》(测控自动化)2010年第26卷第1-1期360元/年邮局订阅号:82-946《现场总线技术应用200例》博士论坛,若,则;否则,t 0:=h(t)(h(t)为增量函数);STEP3判断是否满足加温内循环条件,若满足,转STEP4;否则重复STEP2;STEP4在以新的t 0作为退火过程初始温度下,若达到退火内循环停止条件,则转STEP5;否则,从邻域中随机选一新解,计算;若,则,否则,若时,则;重复STEP4;STEP5;若满足停止条件,终止计算;否则回到STEP4。
与传统的模拟退火算法相比,加温退火算法增加了加温过程,即STEP2和STEP3,增加加温过程的目的是为了由算法根据问题本身的规模大小(节点数n),确定退火过程的初始温度。
这样,避免了由人工根据经验直接赋予退火过程以初始温度值而可能产生的解退化问题。
2.2加温退火算法的参数选择与传统的模拟退火算法相比,加温退火算法主要增加两个参数:加温Mapkob 链长L h 和加温增量函数h(t)。
2.2.1加温过程中的增量函数h(t)h(t)的选取原则是:避免产生的作为退火过程初始温度的t 0太大或者太小,同时应该使得加温时t 0的计算量尽量小h(t)=t+h c (其中称h c 为t 0的增量)。
h c 的具体数值应酌情选取较小的常数值,如0.1、0.2、0.5等。
其直观意义是,以温度0为加温初始点,任给一个初始解并计算其目标函数值,在初始解领域内随机产生一个新解,计算新解的目标函数值,在规定的步长内,每当新解的目标值大于前次的值,则予初始温度以h c 的增量。
2.2.2加温过程的Mapkob 链长L h加温链长L h 不应选的太大,否则不仅会花费较多的时间,还可能会使初始解x i 爬到某个较局部“高地”不易下降而导致解质量的降低。
通常,L h 可取问题规模数n 等,或者n 的整数倍数等。
退火过程中的衰减函数停止准则等可以参考相关文献。
3加温退火算法的TSP 应用实例3.1邻域结构及参数设定为得到较好的解的质量,采用文献提出的一种新的混沌随机序列发生器。
采用2-变换法。
取加温温度增量h c =0.5,加温Mapkob 链长L h =n 3,衰减函数中的退火因子,退火过程中每个温度下的Mapkob 链长L k =100n,停止准则采用零度法,取终止温度。
3.2算例及运行结果图1初始路径实例1某干洗店工作人员欲对洗好的成品衣物进行派送,派送范围涵盖了市区的17个客户小区,小区之间的距离为已知。
寻求一条尽量短的派送路线。
任给一初始路径,见图1,其长度length=290.25km 。
为了检验两种算法的性能,首先用加温退火算法实现了问题的求解。
然后用传统的模拟退火算法求解。
两种解法各运行20次。
得到的路径分别见图2和图3所示。
实例2求解CHN42实例。
实验结果如表2所示。
表2CHN144求解结果由以上两个实例可以看出:(1)给定相同的退火条件,经过加温过程的算法得到的最终解优于不加温的结果,即加温退火算法得到路径长度为比传统算法得到的路径短。
加温过程提高了解空间的初始搜索范围,使得到高质量解的可能性变大。
(2)最终解的质量与CPU 耗费时间呈反向关系,正是由于退火过程消耗了较长的运行时间,改使得最终解的质量得到提高。
4结束语模拟退火算法在组合优化的领域内有着广泛的应用,如印刷电路板的钻孔路线方案、图形着色等问题。
传统模拟退火算法的改进也有多处着眼点,如文献的增加记忆功能,文献的通过引入多种算子产生新解空间,文献提出的基于巢分区算法等等。
文章在传统的模拟退火算法基础上,通过在退火前预先加温,生成控制参数t 的初值t 0,并调整初始解x 0,实现了最终解质量的提高。
其原理相当于固体在退热之前进行预热处理,在某些情况下使得退火过程变得更加容易,退火后固体的内部结构变得更加稳定有序。
本文作者创新点:实现了加温退火算法的编程。
在相同的退火条件下,将加温退火算法与传统的模拟退火算法的算法效率进行了对比分析,指出当退火温度相等时,加温算法的求解效率以及得到的解质优于传统的模拟退火算法。
参考文献[1]邢文训,谢金星.现代优化计算方法[M].北京:清华大学出版社,1999:93-118.[2]康立山,谢云,尤矢勇等.非数值并行算法———模拟退火算法[M].北京:科学出版社,1994:82-83.[3]孙夑华.用模拟退火算法解旅行商问题[J].中国计量学院学报,2005,16(1):66-71.[4]中国交通地图.人民交通出版社,2007年1月第1版第7次印刷.[5]苗卉,杨韬.旅行商问题(TSP)的改进模拟退火算法[J].微计算机信息,2007,23(11):41-42.[6]闫利军,李宗斌,卫军胡.模拟退火算法的一种参数设定方法研究[J].系统仿真学报,2008,20(1):245-247.作者简介:俞家文(1971-),男,安徽芜湖人,合肥工业大学副教授,博士,主要从事仿真建模与决策支持研究;王保敏(1984-),男,安徽天长人,合肥工业大学硕士生,主要研究方向为系统建模与项目管理。