令 G = (V,E) 为无向图。如果 G 的每个循环在 F 中至少有一条边,则一个边集 F ⊆ E 称为 反馈边集。
(a) 假设 G 未加权。设计一种有效的算法来找到最小尺寸的反馈边集。
(b) 假设 G 是一个带正边权重的加权无向图。设计一个有效的算法来找到一个最小权重的反馈边集。
我的解决方案(需要建议):
a)最小尺寸反馈边集:由于图是未加权的,我们可以使用 DFS。我们像往常一样从任何顶点开始 DFS。当我们遇到一个后边缘时,我们将它插入到一组反馈边缘中。当 DFS 完成时,集合将是答案。
b)最小权重反馈边集:由于图是加权的,我们可以使用 Kruskal。但克鲁斯卡尔通常从重量最小的边缘开始。如果我们可以否定所有边权重,然后运行 Kruskal,每当我们在同一组件的顶点之间获得一条边时,我们可以将其保存在反馈边集中。最后,否定边缘权重。我建议否定边缘权重的原因是因为我们需要最小的权重反馈集。使用否定权重,Kruskal 将从具有最小权重(实际上是最大)的边开始,并会找到具有较小权重的相同组件的边。
有人可以判断这个解决方案是否正确吗?