【发布时间】:2011-02-17 13:05:52
【问题描述】:
给定一个带有加权边的有向图,什么算法可以用来给出一个权重最小的子图,但允许从图中的任何顶点移动到任何其他顶点(假设任意两个顶点之间的路径永远存在)。
这样的算法存在吗?
【问题讨论】:
标签: algorithm language-agnostic graph-theory minimum minimum-spanning-tree
给定一个带有加权边的有向图,什么算法可以用来给出一个权重最小的子图,但允许从图中的任何顶点移动到任何其他顶点(假设任意两个顶点之间的路径永远存在)。
这样的算法存在吗?
【问题讨论】:
标签: algorithm language-agnostic graph-theory minimum minimum-spanning-tree
尽管他们自己并不正确,但花时间关注 Vitalii 的 Wikipedia 链接很快发现了这个算法:
http://en.wikipedia.org/wiki/Chu%E2%80%93Liu/Edmonds_algorithm
【讨论】:
这看起来是 NP-Hard:最小权重强连接跨越子图问题。
我相信哈密顿循环问题可以简化为:给定一个图 G(V,E),构造一个有向图 DG,其中出现的边的权重为 1,不出现的边的权重为 100 (|V|+1)吨。 DG 有一个最小权重的强连接跨越子图,正好 |V|当且仅当 G 具有哈密顿循环。
这里的论文有一个近似算法:http://portal.acm.org/citation.cfm?id=844363
【讨论】:
将图中的每个节点拆分为两个节点。一个节点将接受原始节点的所有传入边,而另一个节点将拥有所有传出边。然后,将方向放在所有边上,因此图是无向的。然后您可以在图上运行标准的 MST 算法(Prim's、Kruskal's),您将确保每个原始节点都可以被其他每个原始节点传送到。
【讨论】:
这是一个有向施泰纳树问题。作为 Steiner 树,它是 NP-Hard。
你可以在这里找到一些近似算法:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.38.8774&rep=rep1&type=ps
【讨论】:
选择任意一个节点并返回它。
您的意思是要找到最大的强连接子图(可能删除的节点数量最少),还是最小权重跨越子图(不删除节点允许)?
【讨论】: