Graph 在成本满足三角形不等式的无向图中,求一个不超过O(m+;n logn)中最小成本两倍的哈密顿圈

Graph 在成本满足三角形不等式的无向图中,求一个不超过O(m+;n logn)中最小成本两倍的哈密顿圈,graph,hamiltonian-cycle,Graph,Hamiltonian Cycle,所以我被赋予了这个任务,我不知道如何使用有关成本的信息。这是要求,我没有其他信息。这应该可以通过求解TSP(旅行商问题)/Hamilton电路的双树近似算法来解决。 需要满足输入图形的两个条件: 三角形不等式(你有这个) 完整图形(你有这个吗?这意味着图形中每两个顶点之间必须有一条边。) 算法的工作原理如下: 找到输入图的最小生成树(有几种算法;如果图表示为邻接列表,复杂性为O(e+v*log(v))) 将生成树中的每条边加倍-您将得到多重图(O(e)) 在此图中创建一条欧拉路径-如果您第

所以我被赋予了这个任务,我不知道如何使用有关成本的信息。这是要求,我没有其他信息。

这应该可以通过求解TSP(旅行商问题)/Hamilton电路的双树近似算法来解决。 需要满足输入图形的两个条件:

  • 三角形不等式(你有这个)
  • 完整图形(你有这个吗?这意味着图形中每两个顶点之间必须有一条边。)
算法的工作原理如下:

  • 找到输入图的最小生成树(有几种算法;如果图表示为邻接列表,复杂性为O(e+v*log(v)))
  • 将生成树中的每条边加倍-您将得到多重图(O(e))
  • 在此图中创建一条欧拉路径-如果您第二次遇到一个顶点,请跳过它,并将一条直接边带到下一个顶点(此边存在于图中,因为您有完整的图)-这也应该类似于O(e+一些对数)
  • 您完成了-您找到了一个Hamilton回路(并解决了TSP)
这个算法是2-近似的(电路的成本是最优解的最大两倍-如果您愿意,我可以提供一个证明)。 最坏的复杂度是O(e+vlog(v))-e是边数,v是顶点数。。。这应该映射到你的O(m+nlog(n))


目前我找不到任何与算法解释相关的好链接,我将稍后提供

你尝试了什么?我找到了在没有限制的图中找到哈密顿圈的方法。我不知道的是这个限制是如何影响这个算法的,使它从O(m*2^n)变成O(m+n logn)。