模拟退火算法及其在求解TSP中的应用

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

模拟退火算法及其在求解TSP中的应用
张建航;李国
【摘要】TSP是组合优化中著名的NP-hard问题,模拟退火算法是解决TSP的有效方法之一.介绍和描述模拟退火算法原理和Metropolis算法的过程,并应用模拟退火算法对TSP进行研究,给出解决TSP的一种比较精确的算法,比较好地解决了NP-hard问题中TSP,同时为计算机编程提供了编程思路.
【期刊名称】《现代电子技术》
【年(卷),期】2006(029)022
【总页数】2页(P157-158)
【关键词】模拟退火算法;Metropolis采样算法;TSP
【作者】张建航;李国
【作者单位】西安通信学院,陕西,西安,710106;西安通信学院,陕西,西安,710106【正文语种】中文
【中图分类】O141.4;TP311.12
通过对固体退火过程的研究,Kirkpatrick于1982年首先意识到固体退火过程与离散系统模型中的组合优化问题之间存在着某种相似性,同时,他们受到Metropolis等对固体在常温下达到热平衡过程所做的模拟中的启发。

Kirkpatrick 提出把Metropolis准则引入到优化过程中,建立一种对Metropolis算法进行迭代的组合优化算法,由于该算法模拟固体退火的过程,因此经常称之为“模拟退火
算法”[1]。

1 模拟退火算法(SAA)
设S={S1,S2,…,Sk}为所有可能的组合状态,C:S→R为非负目标函数,即C(Si)≥0,反映了取状态Si为解的代价,则组合优化问题可以形式地描述为寻找S*∈S,使:C(S*)=min C(Si) ∀Si∈S
其中,将每一种组合状态Si看成是某一物质体系的微观状态,而将C(Si)看成该物质体系在状态Si下的能量,并用控制参数T表示为温度让T从一个足够高的值慢
慢下降,对每一T用Metropolis采样算法模拟该体系在此T下的热平衡状态,即对当前状态S做随机扰动,以产生一个新的状态S′,计算增量:
ΔC=C(S′)-C(S)
并以概率exp{-ΔC/bT}接受S′作为新的状态。

当这样的随机扰动重复足够次数后,系统将达到该温度下的平衡状态,且服从Boltzmann分布,这里b即为Boltzmann常数。

上述Metropolis采样过程与退火过程可通过下列具体步骤实现。

2 退火过程实现算法(APA)
(1) 选一初始状态S0作为当前解:S(0)=S0,并设初始温度T0,令i=0;
(2) 令T=Ti,以T和Si调用Metropolis采样算法,然后返回到当前Si=S;
(3) 按一定方式将T降温,即令 T=Ti+1,Ti+1<Ti,
i=i+1;
(4) 检查退火过程是否结束,否则转到(2);
(5) 以当前解Si作为最优输出。

3 Metropolis采样算法(M法)[2]
用APA算法调用当前解S和参数T的过程如下:
(1) 令k=0时的当前解为S(0)=S0,而在温度T下进行以下各步;
(2) 按某一规定方式根据当前解S(k)所处的状态S,产生一邻近子集N(S(k))⊂S,
N(S(k))≠Ø,由N(S(k))随机产生一个新的状态S′作为一个当前解的候选解,并计
算ΔC′=C(S)-C(S(k));
(3) 若ΔC′<0,则接受S′作为下一个当前解;若ΔC′>0,则按概率exp{-ΔC′/T}接受S′为下一个当前解;
(4) 若S′被接受,则令S(k+1)=S′,否则令 S(k+1)=S(k);
(5) 令k=k+1,判断是否满足收敛准则,否则回到(2);
(6) 将当前解S(k)返回调用他的APA算法。

4 算法应用举例
旅行推销员问题(TSP)[2] 设有n个城市和距离矩阵d=(dij),其中dij表示城市i
到城市j的距离,i,j=1,2,…,n,则问题是要找遍访每个城市恰好一次的一条回路,且其路程长度为最短。

求解的模拟退火算法描述如下:
(1) 解空间: 解空间S可表示为{1,2,…,n}的所有循环排列的集合,即:
S={(π1,π2,…,πn)|((π1,π2,…,πn)为{1,2,…,n}的循环排列)}
其中每一个循环排列表示遍访n个城市的一个回路,πi=j表示在第j次访问城市j,πn+1=π1,初始解可选为(1,2,…,n)。

(2) 目标函数: 此时的目标函数即为访问所有城市的路径长度或称代价函数的极小值,即求:
(1)
其中πn+1相当于π1,而一次迭代由3步构成:
(3)新解的产生: 新解可通过分别或者交替使用以下2种方法来产生。

① 2变换法:任选序号u,v交换u和v之间的访问顺序,此时新路径为(不妨设
u<v):
π1…πu-1πvπv-1…,πu+1πuπv+1…πn
(2)
② 3变换法:任选序号u,v和ω,将u和v之间的路径插到ω之后访问,此时新路径为(设u≤v<ω):
π1…πu-1πv+1…,πωπu…πvπω+…πn
(3)
(4) 代价函数差: 相应新解(2)与(3)的代价函数(1)的差分别满足:
(4)
Δf= (dπu-1πv+1+dπωπu+dπvπω+1)-
(dπu-1πu+dπvπv+1+dπωπω+1)
(5)
特别地,当问题对称,即距离矩阵d=(dij)为对称矩阵时,由于dij=dji,式(4)可简
化为:
Δf=(dπu-1πv+dπuπv+1)-(dπu-1πu+dπvπv+1)
(5) 接受准则:
5 结语
模拟退火算法依据Metropolis准则接受新解,因此除接受优化解外,还在一定的限定范围内接受劣解,这正是模拟退火算法与局部搜索法的本质区别。

研究表明,对大多数组合优化问题而言,模拟退火算法要优于局部搜索法。

本文对模拟退火算法进行了数学描述,并应用在求解著名的TSP问题,给出了一种比较精确的算法,也有利于借助于计算机编程来实现该算法,从而使问题解决更加快速有效。

参考文献
[1] 康立山,谢云,罗祖华.非数值并行算法----模拟退火算法[M].北京:科学出版社,1997.
[2] 赵静,但琦.数学建模与数学实验[M].北京:高等教育出版社,2002.
[3] 吴翊,吴孟达,成礼智.数学建模的理论与实践[M].北京:国防科技大学出版社,2002.。

相关文档
最新文档