Algorithm 如何找到权重不超过k的反馈集

Algorithm 如何找到权重不超过k的反馈集,algorithm,graph,graph-algorithm,depth-first-search,Algorithm,Graph,Graph Algorithm,Depth First Search,任何无向加权图的反馈集都是边的子集,这样在移除后 子集中的边,剩余的图是非循环的 给定G=(V,E)、一个无向加权图和一个整数k,如何确定是否存在总权重不超过k的反馈集 谢谢大家! 最小反馈集永远不会包含断开图形两个组件连接的边,因此删除反馈集不会更改连接的组件,但会使每个连接的组件都成为非循环的 如果一个无向图是连通且非循环的,那么它是一棵树,所以: 对于图中的每个连接组件,找到最大权重生成树。只需对所有权重求反,就可以使用任何最小权重生成树算法 不在任何最大权值生成树中的边是最小权值反馈集

任何无向加权图的反馈集都是边的子集,这样在移除后 子集中的边,剩余的图是非循环的

给定G=(V,E)、一个无向加权图和一个整数k,如何确定是否存在总权重不超过k的反馈集


谢谢大家!

最小反馈集永远不会包含断开图形两个组件连接的边,因此删除反馈集不会更改连接的组件,但会使每个连接的组件都成为非循环的

如果一个无向图是连通且非循环的,那么它是一棵树,所以:

对于图中的每个连接组件,找到最大权重生成树。只需对所有权重求反,就可以使用任何最小权重生成树算法

不在任何最大权值生成树中的边是最小权值反馈集


为了找到所有的最大权重树,我建议对整个图使用Kruskal算法,边按权重递减排序,因为它会一次找到所有树。然后只需选择所有不在任何树中的边。

所说的连接组件,是指强连接组件吗?非常感谢。“最小反馈集永远不会包含断开图形两个组件连接的边”。如果有一条边连接两个组件,为什么这两个组件不是一个大组件?图是无向的。不,我指的是连接的组件。您的问题并不表示该图形最初是全部连接的。我的意思是,删除反馈集永远不会增加连接组件的数量。谢谢。最后一个问题:为什么我们还要费心按边的权重对边进行排序?我们能在整个图上运行Kruskal算法吗?它应该给我们MST,对吗?按权重排序边是Kruskal算法的第一部分