旅行售货员问题TSP的模拟退火算法

2015-09-10 07:22张育蔺
考试周刊 2015年11期
关键词:近似算法遗传算法

张育蔺

摘 要: 旅行售货员问题(Traveling salesman problem)是计算机算法中的一个经典的难解问题,已被证明是一个NP-C(Nondeterministic Polynomial-Completeness)问题,其计算复杂度O(n!),无法找到一个多项式算法解决此类问题。本文利用最优化理论中的模拟退火法,简述了TSP问题的近似算法。

关键词: 旅行售货员问题 NP-C 近似算法 模拟退火法 遗传算法

1.旅行售货员问题(Traveling salesman problem)

旅行售货员问题(TSP)或称为货郎担问题,可描述为:设有n个城市及表示城市i到城市j的距离D=|d■|,其中d■>0,d■=d■,并有d■+d■≥d■,且d■=0(i,j=1,2,3,…,n),一个货郎从一个城市出发,不重复地遍历所有城市并回到起点,求一条路程最短的路径。

这个问题已被证明是一个NP-C(Nondeterministic Polynomial-Completeness)问题,其计算复杂度为O(n!),目前还不能找出一个多项式算法解决此类问题,但解决此类问题有较大的现实意义。例如:在网络通信中求解路由问题时,可用节点间的路径长度代表网络节点间的通信代价,而求解一条代价最小路由回路即可转化为TSP问题的求解。

下面将简述TSP问题的两种不同近似算法:模拟退火算法、遗传算法。

2.模拟退火算法

KIRKPATRICK等于1983年首先提出模拟退火算法。模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-ΔE/(kT),其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子Δt、每个t值时的迭代次数L和停止条件S。

2.1模拟退火算法的模型

模拟退火算法可以分解为解空间、目标函数和初始解三部分。

模拟退火的基本思想:(1)初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点),每个T值的迭代次数L;(2)对k=1,……,L做第(3)至第6步;(3)产生新解S′;(4)计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数;(5)若Δt′<0则接受S′作为新的当前解,否则以概率exp(-Δt′/T)接受S′作为新的当前解;(6)如果满足终止条件则输出当前解作为最优解,结束程序。终止条件通常取为连续若干个新解都没有被接受时终止算法;(7)T逐渐减少,且T>0,然后转第2步。

2.2在TSP问题中的应用

2.2.1解空间与初始解

将TSP的一个解表示为一个循环排列π=(π■,π■,…,π■),也可表示为:π■→π■→…π■的一条路径,必须满足π■≠π■(i≠j的解才是可行解),π■(1≤i≤n)是该路径中第i个经过的城市,所有的可行解的集合构成解空间S。在TSP问题中解空间S为{1,2,…,n}的循环排列,其中每一循环排列表示遍访n个城市的一条回路,并约定π■=π■,初始解定为{1,2,…,n}。

2.2.2目标函数

f(π)=min■d■ (1)

式中:■d■为访问所有城市的路径长度。

2.2.3新解的产生

采用二邻域法这样一种改进的相邻状态变换方法。如下图所示,设(s,f)是讨论问题的一个实例,而n■是一个二变换领域结构,则二变换n■(p,q)可看成是城市p与q间路径的反向接入。

图1 路径变换

变换后的新路径是π■…π■π■…π■π■π■…π■(u

2.2.4随机移动准则

采用METROPOLIS准则,由随机移动接受概率

p■(i?圯j)=1 f(j)≤f(i)exp[■]f(j)>f(i) (2)

上式中:t为控制参数,确定是否接受从当前解i到新解j的转移。计算开始时t取较大值(与固体的熔解温度相对应),在进行足够多的转移后,缓慢减小t值(与“徐徐”降温相对应),如此重复,直至满足某个停止准则时计算终止。

2.2.5算法描述

在本算法中,采用随机数发生器来交换两城市访问次序的方法产生新解,冷却进度表的衰减函数设为α,MAPKOB链的长度取为城市数n的100倍。城市坐标初始化按照前面的方法产生初始回路,并计算总路径长度。

(1)采用二变换法更改初始路径,并得到一条新路径,计算更改后总路径与初始路径的长度差△f;

(2)如果满足METROPOLIS准则,则更换路径的行走方式,否则重复过程(1);

(3)取衰减函数α,随着t■=αt■(k=1,2,3,…,n)而降温,并转向(1);

(4)当满足停止准则而采用某一t值时,接受新解次数以小于10n为准。当次数大于该值时,则执行降温过程,重新执行退火过程。

在程序中,随机数发生器确定之后,需要经过多次实际选取合适温度计划表中的各个参数,包括控制参数t及其衰减函数α,对应MAPKOB链的长度本程序选择如下:

(1)控制参数t=0.5;

(2)衰减函数α=0.95;

(3)MAPKOB链的长度L■=100n(n表示城市数).

根据上述分析,可写出用模拟退火算法求解TSP问题的伪程序:

Procedure TSPSA:

begin

init-of-T;{T为初始温度}

S={1,……,n};{S为初始值}

termination=false;

while termination=false

begin

for i=1 to L do

begin generate(S′form S);{从当前回路S产生新回路S′}

Δt:=f(S′))-f(S);{f(S)为路径总长}

IF(Δt<0) OR (EXP(-Δt/T)>Random-of-[0,1])

S=S′;

IF the-halt-condition-is-TRUE THEN

termination=true;

End;

T_lower;

End;

End

3.结语

模拟退火算法在解决TSP问题中显示了与一般常用算法不同的优越性,具有思路清晰、使用灵活的特点。模拟退火算法可以在较短时间内求得更优近似解,而且允许任意选取初始路径和随机数序列,故减少了算法求解路径的前期工作量。随着METEOPOLIS规则的引入,使算法在解决问题时不再完全依赖初始路径,并保证了最终路径在二邻域的最优。

参考文献:

[1]Michael R.Garey,David S.Johnson COMPUTERS AND INTRACTABILITY A Guide to the Theory of NP-Completeness W.H.FREEMAN AND COMPANY,1979.

[2]高尚.基于Matlab遗传算法优化工具箱的优化计算.微型电脑应用,2002.

[3]康立山,谢云,尤矢勇,等.模拟退火算法[M].北京:科学出版社,1994:50-97.

文章授江苏省职业教育教学改革研究课题ZYB56资助。

猜你喜欢
近似算法遗传算法
特定材料构建支撑树问题的近似算法研究
遗传算法对CMAC与PID并行励磁控制的优化
巡检线路的排班模型
基于自适应遗传算法的CSAMT一维反演
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
应用自适应交叉近似算法快速计算导体RCS
协同进化在遗传算法中的应用研究
基于改进的遗传算法的模糊聚类算法
无压流六圆弧蛋形断面临界水深近似算法