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

Algorithm 起始位置和所需节点集之间的最小生成树,algorithm,search,graph-theory,shortest-path,minimum-spanning-tree,Algorithm,Search,Graph Theory,Shortest Path,Minimum Spanning Tree,我正试图确定最佳搜索案例,以与我编写的搜索算法进行比较 我有一组标记为“必需”的节点和一个标记为“开始”的节点,其余的标记为“可选”。我想找到需要展开的最佳节点数,以发现所有需要的节点,因为我的第一个展开是“开始”节点 我相信我要寻找的是最小生成树,但是修剪掉所有不以“必需”节点结尾的分支。这是第一个吗 如果我的图未加权,则是Steiner树和 最小生成树相同吗 如果我能说说这棵树的大小呢?i、 例如(最小生成树的大小=平均最短路径*#所需节点…我不认为这是真的,但如果能够根据连通性或其他情况

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

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

  • 我相信我要寻找的是最小生成树,但是修剪掉所有不以“必需”节点结尾的分支。这是第一个吗
  • 如果我的图未加权,则是Steiner树和 最小生成树相同吗
  • 如果我能说说这棵树的大小呢?i、 例如(最小生成树的大小=平均最短路径*#所需节点…我不认为这是真的,但如果能够根据连通性或其他情况计算平均值,那就太好了)
请注意:

  • 这不是旅行销售问题,因为我不需要路径 要在每个必需的节点之间存在,我只想发现每个节点 必需的节点
  • 我的图表是无向的和未加权的(或同等加权)
  • 我的图表平均有大约100个必需节点,可能还有数千个可选节点
  • 我有一组标记为“必需”的节点和一个标记为“开始”的节点 其余部分标记为“可选”。我想找到最佳的节点数 我需要展开以发现给定的所有必需节点 我第一次展开的是“开始”节点

    如果扩展一个节点的代价可以是任意的,那么这就是节点加权的Steiner树问题,在一个合理的复杂性理论假设下,该问题没有比率为o(logn)的多项式时间近似算法

    我相信我要找的是最小生成树,但是 修剪所有不以“必需”节点结尾的分支

    不,这通常不是最优的。例如,使用图形

           s
          /|\
         / | \
        *  |  *
       /   |   \
      /    |    \
     r1----*----r2,
    
    修剪时,一个可能的MST看起来像
    /\
    /\
    ,但最佳解决方案看起来像
    \u124;

    如果我能说说这棵树的大小呢

    从理论上讲,你可以通过求解Steiner树整数规划的LP松弛的对偶得到一个下界(实际上,对于一个你正在考虑的大小的图,如果一个解算器可以直接确定最优Steiner树,我不会感到惊讶)


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

    根据定义,如果运行算法,最佳树将是使连接节点的总加权路径最小化的树。因此,如果删除树上的任何子路径(其他路径保持不变),将是您必须重新创建的最佳路径,以重新链接所需的元素。谢谢您的回答。你会建议一个更好的方法来评估搜索算法吗?还有什么更实用的呢?如果实例足够小,整个树都可以扩展,那么它就不是很有趣了。优化研究人员通常尽可能地推进他们的算法,并将时间/空间使用情况与以前的尝试和原始基线进行比较。