最大加权跨越弱连通DAG的算法

时间:2012-12-26 21:55:27

标签: algorithm graph directed-acyclic-graphs subgraph

是否存在一种算法来查找跨越DAG的最大权重,该DAG在有向图中弱连接,其中每个切割都具有弱连接的集合(从一个集合到另一个集合至少有一个有向路径)?或者这是一个NP难题?关于此主题的上一个问题未指定https://mathoverflow.net/questions/31864/algorithms-for-maximum-weighted-spanning-connected-dag-directed-acyclic-graph弱连接或强连接,因此我希望更精确。

2 个答案:

答案 0 :(得分:5)

希望这不会太晚。对于上述案例,Kruskal和Prim很容易失败。考虑2节点图:A - > B(重量10),B - > A(重量6),B - > A(权重6)(是的:B到A的两条边;图中没有任何内容排除了!)。 Kruskal首先选择A - > B边缘卡住了。 Prim会选择B中的一条边到A,然后卡住。最大加权非循环子图是包含从B到A的边的一个。它是一个子图,它是非循环的!

最佳

拉维

答案 1 :(得分:0)

您的弱连接状况似乎只是基础无向图连接。这很容易;您可以使用Kruskal或Prim或您最喜欢的最小生成树算法。

最小权重强连通子图是NP完全的;观察到任何这样的子图至少有| V |边缘,它具有| V |当且仅当它是哈密顿循环时才有边缘。

您可能希望选择一个顶点作为“根”,并要求在子图中存在从每个顶点到根的路径。这是“最低限度的arbourescence”问题。正如@matejpavouk指出的那样,由于Chu,Liu和Edmonds,有一个二次算法。