我试图通过将它与爬山算法一起使用来理解禁忌搜索,以解决旅行商问题。
我了解“纯”爬山算法,但禁忌搜索如何更改此算法对我来说不是很清楚。
爬山示范:
假设我们有 6 个城市A,B,C,D,E,F,我们随机选择一个初始状态:(A,B,C,D,E,F),旅行成本为 120。
然后我将选择一组相邻状态(通过将第一个元素与第二个、第三个、第四个等交换),并计算每个状态的旅行成本:
(B,A,C,D,E,F) = 110 /* <120; mark as optimal */
(C,B,A,D,E,F) = 127
(D,B,C,A,E,F) = 145
(E,B,C,D,A,F) = 102 /* <110; mark as optimal */
(F,B,C,D,E,A) = 80 /* <102; mark as optimal */
现在我们找到了一个局部最优值:(F,B,C,D,E,A)。
禁忌搜索如何改变上述算法?如果您可以演示一两次迭代,我将非常感激。