【发布时间】:2015-03-25 22:39:22
【问题描述】:
给定两个带有加权边的完整图,我想分别在两个图上找到两个最小生成树 (MST),条件是两个学习的 MST 在给定的边子集上具有公共边。请注意,这两个图的顶点数相同,但边的权重都不同。
例如,如果两个图是具有顶点 {1,...,d} 的完整边加权图。我们要求两个学习的 MST 在顶点为 {1,...,d/2} 的完整子图上具有相同的边。
我可以使用什么算法来查找此类 MST?我尝试使用对 Kruskal 算法的修改,但无法使其工作。
【问题讨论】:
-
你能告诉我们你使用的代码吗?
-
输入是{1,...,d}中任意顶点i,j的权重w(i_k,j_k),k=1,2表示两个图。要求两个 MST 在顶点 {1,...,d/2} 上的完整子图上具有相同的边。我不确定哪种算法会起作用。我目前的想法是将 Kruskal 算法应用于 {1,...,d/2} 中 i,j 和 w(i_k,j_k) 的权重 \sum_{k=1}^2 w(i_k,j_k)对于 i>d/2 或 j>d/2。但也存在这种算法不能保证最优解的情况。
-
你能举个完整的例子吗?
-
我知道如何查找是否存在与一组边上的第一个 MST 匹配的第二个 MST,您可能有很多不同的 MST,它们在感兴趣的子图。这有一种 NP-complete 的感觉。
标签: algorithm graph tree minimum-spanning-tree undirected-graph