我在python中使用Christofide的算法来求解TSP,将节点与奇数边缘配对时,最小权重完美匹配意味着什么?

问题描述

我一直在努力解决python中的Traveling Salesman问题,并且达到了一个令人困惑的地步。我对这类算法和图论并不陌生,因此我对最小权重完美匹配感到困惑。我使用Kruskal算法创建了路径为黑色的最小生成树,而我对最小权重完美匹配的解释为橙色。 Picture of current progress但是,似乎橙色线条似乎无法为边缘奇怪的节点提供最完美的匹配。

我对最小权重完美匹配的解释是基于Kruskal算法。

for e in edges:
    if e.x.needMatch == True and e.y.needMatch == True and (e not in e.x.connections and e not in e.y.connections):

        e.x.needMatch = False
        e.y.needMatch = False
        e.x.connections.append(e)
        e.y.connections.append(e)
        e.perfectmatch()

我已经按照从最短的长度到最长的长度对边缘进行了排序,就像我实现Kruskal算法时所做的那样。我遍历了边缘,如果内容2个节点的边缘数为奇数,则将它们定义为“完全匹配”。

有人可以在这个方向上指导我正确的方向吗?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)