求解旅行商问题的几种智能算法_朱献文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
总第243期2010年第1期
计算机与数字工程
Co mputer&Dig ital Eng ineering
V ol.38N o.1
32
求解旅行商问题的几种智能算法*
朱献文 李福荣
(黄淮学院国际学院 驻马店 463000)
摘 要 旅行商问题(T SP)是一个典型的组合优化问题,易于描述却难于求解。
对于大规模T SP问题,目前仍未有非常有效的方法,如何快速有效的求解T SP问题有着重要的理论价值和实际意义。
文章介绍了什么是T SP,论述了目前求解旅行商问题较为有效的六种智能算法(遗传算法、蚁群算法、Ho pfield神经网络算法、模拟退火算法、人工免疫算法、混合优化算法),并简单阐述了其优缺点,给出了未来针对TSP问题的研究重点。
关键词 旅行商问题;智能算法;路径
中图分类号 T P301.6
Seve ral In tellig ent A lgor ithm s for So lving T raveling Salesm an Prob lem
Z hu Xianwen Li Furong
(Internatio nal Co llege,Huanghuai U niver sity,Zhumadian 463000)
Abstract T rave ling Salesman P ro blem(T SP)is a ty pical co mbination optimiza tion pro blem,which is easy to be de-scribed and ha rd to be solved.F o r massive T SP,the re is no effectiv e solution has been found today.I t has impo rtant theo ret-ical v alues and high practical applicatio n v alues to solve T SP quickly and effectively.T his paper intr oduces T SP firstly,and then discusses the six effectiv e metho ds g ener ally(Genetic alg o rithm,Ant Colony algo rithm,Ho pfield Neura l N etwo rk, Simula ted A nnealing alg o rithm,A rtificial Immune a lgo rithm and hy brid optimiza tion alg o rithms).M eanw hile,the advanta-ges and disadv antages of the six metho ds are pr ovided,and the empha ses of resea rch in the future are g iven as well.
Key Words trave ling salesma n pro blem(T SP),intellige nt algo rithms,path
Class Numb er T P301.6
1 引言
旅行商问题(Traveling Salesm an Problem,简称TSP)是一个典型的组合优化问题,易于描述却难于求解,是一个NP co mplete(non-deterministic polynomial com plete)难题。
旅行商问题可描述如下:给定n个城市和两两城市之间的距离,一个旅行商从某个城市出发去访问每个城市一次,且仅一次,最后回到出发城市,要求确定一条最短线路。
在现实生活的诸多领域中很多复杂问题都可以概括和简化成TSP问题,所以,如何快速有效的求解TSP问题有着重要的理论价值和实际意义。
本文将介绍现在常用的几种求解旅行商问题的智能算法,并对它们的优缺点进行阐述。
2 旅行商问题的数学模型
根据两两城市之间的往返距离,旅行商问题可分为两类:对称旅行商问题和非对称旅行商问题。
非对称旅行商问题较难求解,本文主要针对常见的对称TSP问题进行讨论。
旅行商问题的数学模型如下[1]:对于城市V={v1,v2,v3,…,v n}的一个访问顺序为T={t1,t2,t3,…,t n},其中t i∈V(i=1,2,3,
…,n),且t n+1=t1,则问题为:min L=∑n
i=1
d t
i
t
i+1。
3 主要求解方法
3.1 遗传算法
遗传算法(Gene tic Alg orithm,GA)[2]是一种
*收稿日期:2009年9月25日,修回日期:2009年10月18日
作者简介:朱献文,女,硕士研究生,研究方向:人工智能,人工生命。
李福荣,女,硕士研究生,研究方向:软件工程。
2010年第1期计算机与数字工程33
基于生物自然选择与遗传机理的随机搜索算法,它的基本思想来源于达尔文的进化论和孟德尔的遗传学说。
该算法自从1975年被H o lland J等人提出后,获得了广泛的应用。
该算法将问题的求解过程表示为“染色体”的优胜劣汰的过程,通过种群的一代一代的进化,其中包括复制、交叉、变异等操作,最终求得最适应环境的一个“染色体”,也就是问题的最优解或者近似最优解。
遗传算法求解旅行商问题的基本步骤如下:
1)确定染色体的编码方式,并随机产生初始种群。
针对TSP问题,一般采用十进制形式对染色体进行编码,一个染色体即表示一个解序列。
染色体编码的方式直接影响着求解的过程和效率,目前主要有三种较为有效地表示方法:(1)顺序表示(1985年,G refenstette等提出[3]);(2)路径表示(path representation);(3)布尔矩阵表示(1992年Fox和McMahon等提出[4])。
其中,第一种方法Grefenstette编码最为常见。
2)确定评价染色体优劣的适应度函数,并依此求出每个染色体的适应度。
适应度函数可以依据个体路径的长度来确定,即将该旅行路线的总长度作为个体的适值函数,该个体的适应度越低,即路径越短,则该个体越好。
3)依据一定的选择策略选择父体进行复制。
本步骤的作用是从当前的种群中根据个体的适应度选择出一些比较优良的个体,并复制到下一代群体中。
常用的选择策略有:轮盘赌选择(Roulette w heel Selection)、最佳个体保存(Elitist Mo del)、期望值模型(Ex pected Value M odel)、排序选择(Ranking)等。
4)以一定的交叉概率执行交叉操作。
本步骤是产生新个体的主要方法,它决定了遗传算法的全局搜索能力。
常用的交叉策略有:部分匹配交叉(Partially M atched Crossover,PMX)、顺序交叉(O rdered Crossover,OX)、循环交叉(Cycle C ross-over,CX)等。
5)以一定的变异概率进行变异操作。
该步骤是产生新个体的辅助方法,却又是不可或缺的一个运算步骤,它决定了遗传算法的局部搜索能力,能维持种群的多样性,防止解出现早熟现象。
主要的变异策略有:基本位变异、均匀变异、非均匀变异、位点变异、逆转变异等。
6)判断算法是否满足终止条件,若满足则输出结果,否则转到步骤2)。
遗传算法的优点是使用简单、通用性强、易于实现,并具有并行性和全局搜索能力。
缺点是易出现早熟收敛和收敛性差的现象。
3.2 蚁群算法
蚁群算法(Ant Colo ny A lgo rithm,ACA)是一种新型的模拟进化算法,由意大利学者Dorigo M 等人在90年代首先提出[5],它通过模拟蚁群在寻找食物中所体现出的寻优能力来解决现实中一些困难的优化问题。
蚂蚁在觅食的过程中会在所经过的路上留下不同浓度的信息素(pheromo ne),路径越长则信息素的浓度越低,同时信息素会随着时间的流逝而挥发。
一条路径走过的蚂蚁越多,则留下的信息素浓度越高。
而当后来的蚂蚁寻找路径的时候,就会以较大的几率选择信息素较浓的路径。
这种过程就形成了一个正反馈,通过这种方式可以最终找到一条最优路径。
蚁群算法的基本步骤如下:
1)初始化每条路径上的信息素浓度。
2)把m只蚂蚁随机的放在n个城市上。
3)让每一只蚂蚁根据概率函数寻找出一条可行的路径。
概率函数一般由两个城市间的距离以及两城市间的信息素浓度所构成。
4)计算出m只蚂蚁所找到的路径的长度,并选出本次最优路径。
5)根据本次蚂蚁的访问情况,更新本次最优路径每条边上的信息素浓度。
6)判断算法是否满足终止条件,若满足则输出结果,否则转到步骤2)。
蚁群算法的优点是它同时具有自适应、自组织、正向反馈、本质并行的特点,但是其搜索时间较长,而且容易因为受到寻优过程中早期发现的较好解的影响而陷入局部最优解,使搜索停滞。
3.3 H opfield神经网络
H opfield神经网络是1982年由美国物理学家H opfield教授提出的一种单层反馈神经网络,并在1985年将其应用于TSP问题的求解[6]。
该方法将问题的合法解映射为一个换位矩阵,并构造合适的能量函数。
随着网络状态的变化,其能量不断减少,最后达到平衡时,将得到一个局部最优解,即满足换位矩阵要求的能量函数的最小值与问题的最优解相对应。
该算法求解TSP问题的步骤为[7]:
1)把TSP问题映射为换位矩阵,表示每一条可能路径,并写出相应的距离表达式。
2)把TSP问题的换位矩阵集合与N2神经元
34
朱献文等:求解旅行商问题的几种智能算法第38卷的神经网络相对应,每条路径对应的换位矩阵的各
元素与相应的神经元稳态输出相对应。
3)构造反映TSP约束条件的能量函数E,使
E的极小值点对应TSP问题的解。
能量函数如
下:
E=A
2
∑N
x=1
∑N
i=1
∑N
j=1,j≠i
V xi V xj
+B
2∑N
x=1
∑N
i=1
∑N
j=1,y≠x
V xi V yi
+C
2∑N
x=1
∑N
I=1
V xi-n2
+D
2∑N
x=1
∑N
i=1
∑
y≠x
d xu V xi(V y,i+1+V y,i-1)
4)由能量函数计算出神经网络的权值矩阵和偏置电流,组成人工神经网络。
5)给定网络的初始状态,运行网络直至收敛稳定,则网络的稳定状态输出即对应TSP问题的局部最优解。
H opfield神经网络的优点是简单、规范、快速,但是其优化性较差,实验表明[8],其只有局部搜索能力,并且在求解TSP问题时存在两难问题,即提高解有效性概率会导致解的路径长度优化能力降低,而提高网络路径长度优化能力则导致解有效性概率降低,所以需要恰当的网络运行参数的设置。
3.4 模拟退火算法
模拟退火算法(Sim ulated Annealing Alg o-rithm,SAA)是受物理学启发而来的一种随机寻优算法,将固体加热至充分高温,使固体融为液体,再让其徐徐冷却。
加温时,固体内部粒子随温度的升高变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小,这个过程称为退火。
SA 算法由某一较高初温开始,即从某一初始解开始,在解空间中根据抽样策略随机产生另一个解,随着温度参数的不断下降重复抽样过程,最终得到全局最优解。
SAA算法的基本步骤如下[8]:
1)随机给定初始状态,设定合理的退火策略,选定各参数值,包括初始温度T0,降温规律等。
2)令x′=x+Δx,Δx为小的均匀分布的随机扰动。
计算ΔE=E(x′)-E(x)。
3)若ΔE<0,则接受x′为新的状态,否则以概率P=ex p(-ΔE/(k T))接受x′,其中k为玻耳兹曼常数(具体做法是产生0~1之间的随机数a,若P>a则接受x′为新状态,否则仍停留在状态)。
4)重复2)、3)步直至系统达到平衡状态。
5)按第1)步给定的退火规律降温,再重复执行2)~4)步,直至T=0或某一预定的低温。
模拟退火算法的优点是具有较好的鲁棒性、全局收敛性,易于并行计算,并能以较大概率求得全局最优解,但是SA算法的运算效率不高,优化时间较长。
3.5 人工免疫算法
人工免疫算法(Ar tificial Imm une A lgo rithm, AIA),是一类基于生物免疫系统的功能、原理、基本特征以及相关理论免疫学说而建立的用于解决各种复杂问题的计算系统。
在使用人工免疫算法求解优化问题时,满足约束条件的最优解作为抗原,候选解作为抗体。
抗体和抗原之间的亲和力反映了候选解和最优解的接近程度,抗体和抗原的排斥力反映了不同候选解之间的差异,而保持抗体的多样性可以防止算法陷入局部最优解。
AIA的基本步骤是[9]:
1)输入问题的目标函数和约束条件,作为AIA的抗原。
2)确定抗体的编码方式。
与遗传算法中染色体的编码方式一样,AIA的抗体也用字符串表示。
3)产生由N个随机生成的初始抗体组成的初始抗体群。
4)计算抗原和抗体间的亲和力。
构建并计算反映抗体和抗原之间的匹配程度的亲和力函数,函数值越大说明抗体与抗原之间的匹配越好。
5)计算抗原和抗体间的排斥力。
构建并计算反映抗体和最佳抗体(当前抗体群中与抗原匹配最好的抗体)之间的差异程度的排斥力函数,函数值越大说明抗体与最佳抗体之间的差异越大。
6)抗体通过人工免疫算子产生新的抗体。
针对TSP问题构造的人工免疫算子有:字符换位算子、字符串换位算子、字符串逆转算子、字符重组算子。
7)计算新抗体的亲和力和排斥力。
若新抗体中有与抗原相匹配的抗体,或已满足预定的停机条件则停机。
否则转下一步。
8)抗体选择。
按照“优胜劣汰”的自然选择机制,在原有的N个有效抗体和新生成的若干个抗体中选择出N个与抗原匹配的较好的抗体构成新的抗体群,再转到步骤6)。
人工免疫算法的优点是新抗体的产生方法灵
2010年第1期计算机与数字工程35
活多样,并且具有较强的全局搜索能力,能有效地防止算法陷入局部最优解,但是AIA对系统的反馈信息利用不足,当算法求解到一定程度后往往效率不高。
3.6 混合优化算法
由于每种算法都有其优点和不足,为了能解决更大规模和更复杂的现代问题,单一的优化算法将不能满足庞大数据对算法高效率的要求,而需要使各种算法之间能够相互取长补短,以提高对复杂问题进行优化的性能和效率,于是混合优化算法便应运而生,并得到了较广泛的应用。
例如,遗传算法和人工免疫算法相结合的混合优化算法(IG-PSOA)[10],基于模拟退火算法的H opfield神经网络混合全局优化算法(SA-H NN)[11~12],H opfield神经网络与遗传算法相结合的混合优化策略[13],遗传算法与蚁群算法相结合的优化策略[14]等。
这些混合优化策略通过不同算法间的结合,在充分发挥各算法的优点时,又避免了它们各自的缺点,能够较好地解决实际应用中的复杂优化问题。
4 结语
由于旅行商问题是个典型的N P难题,对于大规模的TSP问题,人们至今仍未找到完美的求解方法,我们只能通过各种优化算法求得一定精度内的近似完美解,在合理的运行时间内使其更接近完美解。
在本文所论述的多种方法中,尚未有完美的求解方法,大多只适用于一些具体特定的优化对象,而对于一般的优化问题却不一定能得出良好结果。
所以,在未来对TSP问题的研究中,我认为以下方面将是我们研究的重点:1)进一步对现有的智能算法进行改进和完善;2)继续对混合优化算法的研究;3)从其他学科得到启发,提出新的算法。
参考文献
[1]周明,孙树栋.遗传算法原理及应用[M].北京:国防
工业出版社,1999:143
[2]J.H.Holland.A daptation in Natural and Ar tificial sys-
tems[M].Ann Arbor.University of Michigan press:1975 [3]J.J.G refenstette.Genetic A lg orithms fo r the Sales-
man Pr oblem[C]∥P ro ceedings o f the First Interna-
tio nal Co nference o n Genetic A lgo rithms,L aw rence Er-
lbaum A ssocia te s,Publishers,1985:60~165
[4]B.R.Fo x,M B M cM ahon.G ene tic O perato rs for the
Sequencing P ro blems Founda tions of G enetic Algo-
rithm s[M].Rawlins G J E M org an K aufmann Publish-
ers,1991:284~300
[5]M.Dorigo,V.M aniezzo,A.Colomi.T he ant sy s-
tem:O ptimizatio n by a co lo ny o f co operation ag ents [J].IEEE T ransactions on Sy stem s,M an,and Cy be r-
ne tics P art B,1996,26(1):29~41
[6]J.J.H opfield.“Neura l”Computatio n of Decisions in
O ptimization P ro blems[J].Biological Cyber netics,
1985,52(1):141~152
[7]王潮,宣国荣.人工神经网络求解T SP问题新方法[J].
计算机应用与软件,2001,18(4):59~64
[8]阎平凡,张长水.人工神经网络与模拟进化计算[M].
北京:清华大学出版社,2000:123
[9]李茂军,舒宜,童调生.旅行商问题的人工免疫算法
[J].计算机科学,2003,30(3):80~83
[10]叶玉玲,伞冶.一种混合优化算法及其性能[J].吉林
大学学报(工学版),2009(1)
[11]高雷阜,刘旭旺.基于模拟退火的Hopfield网全局优
化方法[J].辽宁工程技术大学学报(自然科学版),
2009(1)
[12]李萍,高雷阜,刘旭旺.一种基于模拟退火和Hopfield神
经网络求解TSP算法[J].科学技术与工程,2008(14) [13]石晓荣,张明廉.一种基于神经网络和遗传算法的拟
人智能控制方法[J].系统仿真学报,2004(8)
[14]杨剑锋.基于遗传算法和蚂蚁算法求解函数优化问题
[J].浙江大学学报,2007(03)。