起始位置和一组所需节点之间的最小生成树

时间:2012-04-07 16:28:31

标签: algorithm search graph-theory shortest-path minimum-spanning-tree

我正在尝试确定最佳搜索案例,以便与我编写的搜索算法进行比较。

我有一组标记为“必需”的节点和一个标记为“开始”的节点,其余节点标记为“可选”。我想找到我需要扩展的最佳节点数,以便发现所有必需的节点,因为我第一次扩展是“开始”节点。

  • 我相信我所寻找的是最小生成树,但是修剪了所有未在“必需”节点中结束的分支。这是Steiner tree problem吗?
  • 如果我的图表未加权,则是Steiner树的大小和 最小生成树是一样的吗?
  • 如果我能说出树的大小怎么办?即类似(最小生成树大小的大小=平均最短路径*#所需节点......我不认为这是真的,但能够根据连通性或其他东西计算平均值会很好。)< / LI>

一些注意事项:

  1. 这不是出售销售问题,因为我不需要路径 要存在于每个必需节点之间,我只想发现每个节点 必需节点。
  2. 我的图表是无向的和未加权的(或者相同的权重)
  3. 我的图表平均有大约100个必需节点,可能还有数千个可选节点

1 个答案:

答案 0 :(得分:2)

  

我有一组标记为“required”的节点和一个标记为“start”的节点   休息标记为“可选”。我想找到最佳节点数   我需要扩展以发现给定的所有必需节点   我第一次扩展是“开始”节点。

如果扩展节点的成本可以是任意的,则这是节点加权的Steiner树问题,在合理的复杂性理论假设下,没有多项式时间近似算法,其比率为o(log n) )。

  

我相信我要找的是最小生成树,但是   修剪了所有未在“必需”节点中结束的分支。

不,这通常不是最佳的。例如,使用图表

       s
      /|\
     / | \
    *  |  *
   /   |   \
  /    |    \
 r1----*----r2,

修剪时,一个可能的MST看起来像/|\/\,但最佳解决方案看起来像_|_

  

如果我能说出树的大小怎么办?

从理论上讲,你可以通过解决Steiner树的整数程序的LP松弛的双重来获得一个下界(实际上有一个你正在考虑的大小的图形,如果一个,它不会让我感到惊讶求解器可以直接确定最佳Steiner树。)

但实际上,这并不是人们评估搜索算法的方式。