是否有算法在加权图中找到最佳的顶点对而不重复?

时间:2010-10-31 13:30:48

标签: algorithm graph complexity-theory graph-algorithm

在具有偶数个顶点的完整加权图中,是否有任何有效的算法可以找到具有以下属性的边集。

  • 该集合具有最小的最大边缘权重,适用于任何可能符合其他标准的集合
  • 每个顶点都连接到集合
  • 中的一条边

所有权重均为正

我想不出一个比蛮力更好的东西,但我不认为它是NP难。

2 个答案:

答案 0 :(得分:2)

在多项式时间内解决此问题的一种方法如下:

  1. 在O(E log E)时间
  2. 中对边缘权重进行排序
  3. 对于每个边缘,在~O(E)时间内为其分配一个伪权重E'= 2 ^ {在排序中的位置
  4. 在O(V ^ 3)时间内找到伪权重之间的最小权重完全匹配(取决于您选择的算法,它可能更慢或更快)
  5. 这最大限度地减少了完美匹配所包含的最大边缘,这正是您在O(V ^ 3)时间内所寻找的。

    下文给出了如何进行第3部分的来源 [1] http://www2.isye.gatech.edu/~wcook/papers/match_ijoc.pdf
    [2] http://www.cs.illinois.edu/class/sp10/cs598csc/Lectures/Lecture11.pdf
    [3] http://www.cs.ucl.ac.uk/staff/V.Kolmogorov/papers/blossom5.ps

    http://ciju.wordpress.com/2008/08/10/min-cost-perfect-matching/

    处提供示例C ++源代码

答案 1 :(得分:0)

试试这个(我只是想到这一点,所以我既没有得到最佳答案的证据,也没有在每种情况下产生解决方案):

  1. 搜索最重的顶点V(A,B)
  2. 从图表中移除顶点V
  3. 如果A仅连接到单个其他顶点T(A,C),则删除连接到C的所有其他边,同样重复步骤3
  4. 如果B仅连接到单个其他顶点S(B,D),则删除连接到D的所有其他边,同样重复步骤4
  5. 从步骤#1重复