基于MATLAB的模拟退火算法解决旅行推销员问题的研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

运行时间 (秒) 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
容易遗失当前遇到的最优解。搜索过程通过执行概率接受来判断。
01 旅行推销员问题介绍
02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
模拟退火算法的改进策略
1)模拟退火算法自身要素改进 ① 增加升温或重升温过程
② 增加补充搜索过程
③ 增加记忆功能
④ ……
2)和其他算法结合
① 遗传算法 ② 混沌搜索 ③ 禁忌算法
实验次数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
初始温度 100 100 100 500 500 1000 1000 1000 2000 2000 100 100 500 500 500 500 500 1000 1000 1000 2000 2000 2000 500 500 1000 2000
选择初始路径X0 确定初始温度T0
模拟退火算法的流程图
当前路径Xi=X0 当前温度Ti=T0 从 Xi 的邻域中随机选择 Xj ,计算 Xi 与Xj的路程差△f=f(Xj)-f(Xi)
选一初始状态X0,作为当前解:并且确定 初始温度T0,令当前的Xi=X0和Ti=T0。 然后从Xi的邻域中随即选择Xj,计算Xi与 Xj的路径差,比较差值。按一定方式将T 降温,即令T(t+1)=k×T(t),i=i+1,然 后检查退火过程是否结束,如果不是继续 交换,如果是的话输出Xi作为最优输出。
温度变化率
0.95
0.75
0.65
最优距离 (km) 45.4968 46.8325 55.6017 47.8279 52.5065 48.8154 50.4690 51.0928 45.3936 47.2890 50.8541 56.6454 43.9311 45.9736 50.3811 47.5272 54.0596 50.5359 51.7559 52.2645 51.7543 53.5167 57.1230 45.2350 49.4114 54.2042 51.2648
温度越小,则降温概率 p 就越小,温度越高,与出现一次能量差为dE的降温概率p就越大。p越大则j 状态是重要状态的概率就越大。若j是重要状态,则取代i成为当前状态,否则舍弃新状态 再重复以上 新状态产生过程。这种接受新状态转移的准则即为Metropolis准则。
01 旅行推销员问题介绍
02 模拟退火算法介绍
模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解,计
算目标函数的差,接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解
即为所得近似最优解。
01 旅行推销员问题介绍
02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
Metropolis 准则
Metropolis 准则是SA 算法收敛于全局最优解的关键,是Metropolis 等人在1953 年提出的重要性采样法,其基本采样思 想是着重选择那些具有重要贡献的状态,则可以较快地达到较好的结果。
03 MATLAB仿真实验与算法改进
模拟退火算法解决TSP问题模型
求解旅行推销员问题(TSP)的模拟退火算法模型可描述如下: ① 解空间:解空间X是访遍每一个城市且只有一次的所有路经,解可以表示为
{x1,x2 ,……, xn},x1, ……, xn是1,2,……,n的一个排列,表明x1城市出发,依次 经过x2, ……, xn城市,再返回x1城市。初始解可选为(1,……, n) ;
03 MATLAB仿真实验与算法改进
物理退火
加温
维持 温度
缓慢 冷却
在冶金学或材料工程中,退火(Annealing)是一种能够改变材料微结构,进而
改变硬度和强度的机械性质的热处理。过程为将金属加温到某个高于再结晶温度
的一点并维持此温度一段时间,再将其缓慢冷却。
01 旅行推销员问题介绍
02 模拟退火算法介绍
T需要从一个较大的值开始,并需要在每一个温度值T下执行多次Metropolis算法,导 致减慢迭代运算的速度。
1
局限性
2
温度T的初始数据和减小步长较敏感。如果温度T的初值选择较大,减
小步长太小,虽然最终能得到较优的解,但算法收敛速度太慢;如果温度T的
初值选择较小,减小步长过大,可能得不到全局最优解。
02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
给定N个城市和每个城市之间的距离,推销员要访问每一个城市,并且只去一 次,最终返回原城市,寻找最短路径。
01 旅行推销员问题介绍
02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
旅行推销员问题简介
旅行推销员问题由爱尔兰数学家Sir William Rowan Hamilton 和英国数学家Thomas Penyngton Kirkman在19世纪提出的数 学问题
目录页
Contents Page
01 旅行推销员问题介绍 02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
— 7—
01 旅行推销员问题介绍
02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
模拟退火算法(Simulated Annealing Algorithm, SAA)是一种通用概率 算法,用来在固定时间内寻求在一个大的搜寻空间内找到的最优解。适 合解决大规模组合优化问题,特别是NP完全类问题的通用有效近似算法。
④ ……
目录页
Contents Page
01 旅行推销员问题介绍 02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
— 18 —
待寻优城市位置分布
利用基本的模拟退火算法: (1)初始解的产生:随机产生城市序列。 (2)新解的产生:随机选择两个城市,交换在路径 上的位置。
TSP问题假设有40个城市,坐标矩阵如下(单位:km),第一行是各城市的横坐标,第二行是各城市的纵坐标:
标函数值变“差”的点。接受概率随着温度的下降逐渐减小,因为在整个解的邻域范围内
取值的随机性,可使算法避免陷入局部最优解,有利于提高求得全局最优解的可靠性。
ቤተ መጻሕፍቲ ባይዱ
01 旅行推销员问题介绍
02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
模拟退火算法的局限性
在目标函数复杂、变量多时,执行时间长。为了得到一个好的近似解,控制参数
旅行推销员问题(Travelling Salesman Problem, 又称 为旅行商问题、货郎担问题、TSP问题)是一个多局部最 优的优化问题:给定N个城市和每个城市之间的距离,推 销员要访问每一个城市,并且只去一次,最终返回原城市, 寻找最短路径。
William Rowan Hamilton
01 旅行推销员问题介绍
基于MATLAB的
09测控技术与仪器 王 凯
目录页
Contents Page
01 旅行推销员问题介绍 02 模拟退火算法介绍 03 MATLAB仿真实验与算法改进
— 2—
目录页
Contents Page
01 旅行推销员问题介绍 02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
— 3—
01 旅行推销员问题介绍
zuobiao=[2.37 3.75 1.45 3.76 5.71 4.07 1.42 6.59 5.32 3.6 4.3 5.67 5.62 2.67 1.20 4.35 0.27 0.94 0.82 1.37 1.61 2.42 0.6 7.39 0.53 2.4 0.63 2.5 1.98 3.68 0.55 3.76 3.88 5.65 1.78 5.25 2.10 2.40 0.62 2.55 5.5 1.2 2.8 0.99 4.0 6.9 2.66 2.4 4.7 1.3; 6.91 3.87 0.85 2.75 0.72 6.74 2.71 0.69 3.64 5.64 3.59 0.59 3.55 0.55 0.5 1.45 1.43 3.42 0.38 2.27 2.26 0.25 6.23 0.19 2.19 1.13 2.08 2.04 5.02 0.85 2.32 0.15 3.30 1.55 2.90 1.74 1.76 0.35 0.29 1.28 2.3 0.99 3.5 2.9 1.2 3.8 0.45 1.2 4.7 0.5] ;
模拟退火算法最早的思想是由Metropolis在1953年提出的,由S. Kirkpatrick, C. D. Gelatt 和 M. P. Vecch于1983年成功地将其应用在组合最优化问题中,目
前已经应用到各门学科中以解决非线性系统中的优化问题。
01 旅行推销员问题介绍
02 模拟退火算法介绍
取不同参数时模拟退火算法 对40城市寻优的仿真结果 选择不同的初温、温度变 化率和在每个温度下的搜 索次数得到的仿真实验结 果。终止温度为0.001。
每个温度下 的搜索次数 500 150 50 100 50 300 100 50 150 100 500 300 1000 800 500 300 100 300 200 100 300 200 100 1000 500 200 100
MATLAB仿真结果分析
采取不同的参数做了多组仿真实验,将典型结果列在上表中。从表中数据可知以下结论: ① 当初始温度较大,结束温度较低,温度下降较慢,每个温度的搜索次数较多时,优化结果比较好,但是需 要的计算时间很长。 ② 如果采取适当高的初温和搜索次数,可以缩短计算时间。 ③ 如果加快温度下降速度,可以明显缩短计算时间,但是要通过实验选择合适的初温和每个温度下的搜索次 数,否则计算结果不佳。 ④ 如果每个温度下的搜索次数不够,即使取到较高的初温,寻优结果也不令人满意。 ⑤ 如果温度选择不合适,容易陷入局部极值。
N
△f<=0
N Exp(△f/Ti)>random(0,1)
Y
Y
N
当前路径Xi=Xj
跳出内循环
Y
跳出外循环
Y
N
当前温度 Ti 下降
结束
01 旅行推销员问题介绍
02 模拟退火算法介绍
03 MATLAB仿真实验与算法改进
模拟退火算法的效果示范
模拟退火算法在搜索策略上与传统的随机搜索方法不同,它是一种启发式随机搜索算法。 不仅引人了物理系统退火过程的自然机理,而且还引入了适当的随机因素。 它在迭代过程中,不但能接受使目标函数值变“好”的点,又能够以一定的概率接受使目
② 目标函数:访问所有城市的路径总长度;其中最优路径为目标函数等于最小
值时所对应的路径。
③ 新路径的产生:随机产生1和n之间的两相异数k和m,假设k<m,则将原路
径:(x1,x2,…,xk,xk+1,…,xm,xm+1,…,xn)变为新路径: (x1,x2,…,xm,xk+1,…,xk,xm+1,…,xn)
相关文档
最新文档