给定一个图表找到一个不是最小的生成树

时间:2016-05-02 14:34:11

标签: data-structures graph minimum-spanning-tree spanning-tree

如何在图表中找到不是最小的生成树(如果可能)

2 个答案:

答案 0 :(得分:0)

Kruskal algorithm找到按重量排序所有边缘的最小生成树,从最轻到最重的选择它们,并且只有在它们不形成循环时才将它们添加到解决方案中。当您到达的边数等于顶点数减1时,您将拥有最小生成树。

要获得一个非最小的生成树,您只需应用相同的算法,而无需预先排序边缘'列表,或在开始之前随机拖拽列表。

答案 1 :(得分:0)

如果你的目标是找到任意的生成树,无论它是否是最小的,你总是可以使用普通的香草DFS或BFS来搜索图形,通过添加边缘来构建生成树。新发现的节点。这在图表的大小上按时间线性运行,在实践中很快,并且编码简单。

如果你的目标是找到一个特定不是MST的生成树,你可以考虑只运行一个常规的MST算法,但是当比较边缘的权重时,总是反转比较的结果。这最终会找到一个最大生成树,除非图中的每个生成树都是最小的,否则它不会成为最小生成树。这需要与运行常规MST算法相同的时间,因此您可以选择您想要使用的算法。