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