【问题标题】:2-opt algorithm , neighbourhood of a given tour2-opt算法,给定旅游的邻域
【发布时间】:2017-06-11 18:06:10
【问题描述】:

我真的不明白如何使用 2-opt 算法找到给定游览的邻居:

假设我们有 T = 0-1-2-4-3-0

定义说:T的邻域被定义为所有的集合 可以通过改变 T 中两个不相邻的边(2-interchange)来达到的游览。

所以我们有这些不相邻的边:

(0,1) 和 (2,4)

(0,1) 和 (4,3)

(1,2) 和 (4,3)

(1,2) 和 (3,0)

(2,4) 和 (3,0)

我们必须找到 5 个邻居,我们如何通过这些 2-interchange 移动来生成它们?

提前致谢。

【问题讨论】:

    标签: algorithm optimization traveling-salesman


    【解决方案1】:

    你有正确的想法来寻找不相邻的边缘对。然后,对于每一对,通过附加新边来形成一个新的旅行正是一种可行的方式。例如,如果我们删除 (0,1) 和 (2,4),那么我们可以将三对边替换为:

    (0,1) 和 (2,4):但这和原来的游览是一样的

    (0,4) 和 (1,2):但这会创建两个子巡回而不是一个巡回

    (0,2) 和 (1,4):这是赢家

    一般来说,如果我们删除边 (i,j) 和 (k,l),那么我们用 (i,k) 和 (j,l) 替换它们——假设这会降低成本。请注意,这会改变一半游览的方向。

    所以根据您的定义,T 的邻域是可以通过这种方式获得的所有新旅行的集合。

    【讨论】:

    • 感谢您的回答:),当您说 (0,4) 和 (1,2) 将创建两个子旅游而不是一个旅游时,究竟是什么意思??
    • 这意味着您将获得两个而不是一个连接的旅游——一个是 0-4-3-0,一个是 1-2-1,这是非法的。
    • 感谢您的解释:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 2016-08-13
    • 2012-12-30
    • 2019-11-01
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多