【问题标题】:Given a graph find a spanning tree which is not minimum给定一个图找到一个不是最小的生成树
【发布时间】:2016-05-02 14:34:11
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    Kruskal algorithm 找到按权重对所有边排序的最小生成树,从最轻到最重的顺序选择它们,并且仅当它们不形成循环时才将它们添加到解决方案中。当你达到的边数等于顶点数减一时,你就有了最小生成树。

    要获得不是最小的生成树,您只需应用相同的算法即可,无需预先排序边列表,或在开始前随机打乱列表。

    【讨论】:

      【解决方案2】:

      如果您的目标是找到任意生成树,无论它是否最小,您始终可以使用普通的 DFS 或 BFS 来搜索图,通过向新发现的节点添加边来构建生成树.这在时间上与图的大小呈线性关系,在实践中速度很快,并且易于编码。

      如果您的目标是找到特别不是 MST 的生成树,您可以考虑只运行常规 MST 算法,但在比较边上的权重时,请始终反转比较结果。这最终会找到一个最大生成树,除非图中的每个生成树都恰好是最小值,否则它不会是最小生成树。这与运行常规 MST 算法所花费的时间相同,因此您可以选择要使用的算法。

      【讨论】:

        猜你喜欢
        • 2023-04-09
        • 2021-04-12
        • 1970-01-01
        • 2015-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-11
        相关资源
        最近更新 更多