有向图的双向最小生成树

时间:2010-05-10 06:20:39

标签: algorithm language-agnostic graph-theory minimum minimum-spanning-tree

给定带有加权边的有向图,可以使用什么算法给出具有最小权重的子图,但允许从图中的任何顶点移动到任何其他顶点(假设任意两个顶点之间的路径)永远存在)。

这种算法是否存在?

5 个答案:

答案 0 :(得分:3)

即使他们自己不对,花时间关注Vitalii的维基百科链接也很快发现了这个算法:

http://en.wikipedia.org/wiki/Chu%E2%80%93Liu/Edmonds_algorithm

答案 1 :(得分:2)

将图表中的每个节点拆分为两个节点。一个节点将接受原始节点的所有传入边缘,另一个节点将具有所有传出边缘。然后,在所有边上放下方向,因此图形是无向的。然后你可以在图形上运行一个标准的MST算法(Prim,Kruskal),你将确保每个原始节点可以被其他每个原始节点运行。

答案 2 :(得分:2)

这看起来是NP-Hard:最小权重强烈连接跨越子图问题。

我相信汉密尔顿循环问题可以简化为:给定图G(V,E),构造一个图表DG,其重量为1,边缘出现,重量为100(| V | +1),边缘为'吨。 DG具有最小权重强连接跨越子权重子| V |当且仅当G有哈密顿循环时。

这篇论文有一个近似算法:http://portal.acm.org/citation.cfm?id=844363

答案 3 :(得分:1)

这是定向Steiner树问题。作为施泰纳树,它是NP-Hard。

您可以在这里找到一些近似算法:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.38.8774&rep=rep1&type=ps

答案 4 :(得分:0)

选择任何节点并将其返回。

您是否意味着找到最大强连接子图(可能删除的最少节点数)或最小权重跨越子图(无节点删除允许)?