问题描述
我一直在努力解决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 (将#修改为@)