2-opt 本地搜索

设可行解Φk扩由p个子回路组成,记为{L1,L2,⋯,Lp },更新可行解的过程实际上就是对各个子回路分别应用2-opt。设Wk 是路径Lk 经过结点的有序排列,Wk= {v0,v1,v2, ... , vn, v0}, vi,vj 是从Wk 中随机选择的2个结点,交换这两点的位置得到路径L'k ,CN为没有任何改进的最大循环次数,文中用到的2-opt局部搜索,即2-opt_local_search(Φk)步骤如下:

Step 1:初始化循环次数变量t= 1,当前最优解Φ*=Φ,其长度为f(Φ*)。
Step2:在wk 中随机选择2个结点vi,vj,i<j ,且vi和vj不相邻。
Step 3:求△Cd= d( Xi+1,Xj )+d(Xi,Xj+1)一d(Xi+1,Xi)+ d(Xj,Xj+1),若△Cd > 0,则不交换,t++,转到Step 4;否则交换,更新Wk ,更新后的解为Φ',则最优解 Φ*=Φ' ,t=1,转到Step 2。
Step 4:若f(Φ*)在最后CN个循环中没有减少,则本算法结束;否则转到Step 2。

 

 

*来源

苏红畏,刘希玉,王晓敏,2010 Feb,混合最大最小蚁群算法在VRPTW 中的应用,计算机技术与发展,Vol.20 No.2

中图分类号:TP391   文献标识码:A   文章编号:1673-629X(2010)02-0090-05

posted @ 2012-05-15 15:35  silikmel  阅读(420)  评论(0)    收藏  举报