background image

换前后的路径增益,用

Yb 段替代 Xa 段产生的增益 ,如果 Z=Z1+Z2+Z3+

……+Zk≥0,就

显示交换之后的总路径比交换之前的总路径要小,即此次

 k 元交换有效,如此往复最后得

到的将是这个算法下的最优解。这里需要注意的是选择

Ya 的限定条件:为了简化编程和减

少计算量,限定

Ya 只在距离 T2a 的最近五个点之中寻找 T2a+1。 

  

2.2 最近邻算法 

  最近邻算法又被称为贪婪算法。它的思想是每次移动前都寻找离当前所在点最近的点作
为目的地。具体步骤如下:

 

  第一步,从任意点

a1=1,2,3,

……,n 出发寻找与出发点最近的点 a2;第二部,把

a2 作为起点重复第一步操作,直到回到 a1。 
  对于

 n 点的路径,这种算法得到的解基一般会超出最优解 25%。特别需要注意的是,对

于某些情况下,最近邻算法得到的解可能会是个很差的结果。

 

  

3. 结语 

  

K 元交换试探算法的步骤和编程实现均比较繁杂、计算量较大;而最近邻算法的特点在

于步骤简单、编程较为容易、且计算量较小。可以看到在点的个数比较小的情况下,两种算法
得到了同样的最优解,这时可以采取最近邻算法。但是当点的个数增加到一定数目时,

K 元

交换试探算法更具优势,它的解比最近邻算法得到的解更优,这时应当采取

K 元交换试探

算法。

 

  参考文献

 

  

[1] Johnson DS,McGeoch LA. The Traveling Salesman Problem: A Case Study in Local 

Optimization. Local Search in Combinatorial Optimization. Chichester;New York: John Wiley 
and Sons,1997,:215-310. 
   

[2]  Keld  Helsgaun. 

“An  Effective  Implementation  of  K-opt  Moves  for  the  Lin-Kernighan 

TSP Heuristic

”. Writings on Computer Science. Roskilde University,2007,Vol.109:225-226.