构造覆盖顶点的特定子集的最小生成树

时间:2011-10-07 09:21:44

标签: algorithm tree graph-theory graph-algorithm

我有一个无向的正边缘权重图(V,E)我想要一个覆盖顶点 k 顶点的最小生成树 V (Steiner树问题)。

我不是将生成树的大小限制为 k 顶点;而我确切地知道哪些 k 顶点必须包含在MST中。

从整个MST开始,我可以削减边缘/节点,直到我得到包含所有 k 的最小MST。

我可以使用Prim的算法来获取整个MST,并在子集k的MST未被破坏时开始删除边/节点;或者我可以使用Floyd-Warshall获得所有对最短路径并以某种方式结合路径。有没有更好的方法来解决这个问题?

3 个答案:

答案 0 :(得分:13)

这里发生了很多混乱。根据OP的说法:

  

我没有将生成树的大小限制为k个顶点;而且我确切地知道哪些 k 顶点必须包含在MST中。

这是图上的Steiner树问题。 这不是k-MST问题。 Steiner树问题定义如下:

  

给定加权图G =(V,E),顶点的子集S⊆V,   根r∈V,我们想找到一个连接S中所有顶点的最小权重树   河 1

正如其他人所提到的,这个问题是NP难的。因此,您可以使用近似算法。

早/简近似算法

两种着名的方法是 Takahashi的方法 Kruskal的方法(两者都由Rayward-Smith扩展/改进):< / p>

  • Takahashi H,Matsuyama A:图中Steiner问题的近似解。数学。 Jap 1980,24:573-577。
  • Kruskal JB:关于图的最短跨越子树和旅行商问题。在“美国数学学会学报”第7卷; 1956:48-50
  • Rayward-Smith VJ,Clare A:找到Steiner顶点。 Networks 1986,16:283-294。

Takahashi的最短路径近似(由Rayward-Smith修改)

enter image description here

Kruskal的近似算法(由Rayward-Smith修改)

enter image description here

现代/更高级的近似算法

在生物学方面,最近的方法已经使用腔体方法处理了这个问题,这导致了一种改进的信念传播方式。在大型数据集上表现出良好准确性的方法:

  • Bayati,M.,Borgs,C.,Braunstein,A.,Chayes,J.,Ramezanpour,A.,Zecchina,R。:steiner trees的统计力学。物理学。莱特牧师。 101(3),037208(2008)15。
  • 对于应用:用于最佳子网识别的Steiner树方法:实证研究。 BMC生物信息学。 BMC Bioinformatics 2013 30; 14:144。 Epub 2013年4月30日。

在搜索引擎问题的背景下,方法关注的是非常大的数据集的效率,可以在一定程度上进行预处理。

  • -G。 Bhalotia,A。Hulgeri,C。Nakhe,S。Chakrabarti和S. Sudarshan。使用BANKS在数据库中搜索和浏览关键字。在ICDE,第431-440页。
  • -G。 Kasneci,M。Ramanath,M。Sozio,F。M. Suchanek和G. Weikum。 STAR:关系图中的Steiner树近似。在ICDE'09,第868-879页,2009年

答案 1 :(得分:11)

你说的问题是一个着名的NP难题,叫Steiner tree in graphs。在多项式时间内没有已知的解,许多人认为不存在这样的解。

答案 2 :(得分:2)

在限制图( k E')上运行Prim的算法,其中 E' = {( x y )∈ V x k y ķ})。构造该图需要O(| E |)。