【发布时间】:2011-04-24 02:41:20
【问题描述】:
给定图 G = (V,E) 的边子集,我们如何检查它是否是图的有效割集? 注意:割是将图的顶点划分为两个不相交的子集。因此,割的割集是其端点在分区的不同子集中的边的集合。 我有兴趣找到解决这个问题的算法
【问题讨论】:
给定图 G = (V,E) 的边子集,我们如何检查它是否是图的有效割集? 注意:割是将图的顶点划分为两个不相交的子集。因此,割的割集是其端点在分区的不同子集中的边的集合。 我有兴趣找到解决这个问题的算法
【问题讨论】:
一个简单的算法是从图中删除可疑的切割边,看看您是否仍然可以从已删除边的节点到它的对应节点。如果你仍然可以,这不是一个完整的削减。因此,如果您删除具有节点 A 和 D 的 E2,您可以使用 A 的广度优先搜索,看看您是否到达 D。它应该在空间需求和复杂性方面是线性的,因为我们存储了我们访问过的所有节点,所以我们不要回溯并访问任何节点两次。 这个 wiki 页面有一些不错的图片可能会有所帮助:http://en.wikipedia.org/wiki/Cut_%28graph_theory%29
【讨论】:
如果在删除边子集后不再是连通图,则它是有效割集。
如果您要求算法,您应该能够从任何节点开始,看看您是否可以通过深度优先搜索到达所有其他节点。如果是,则不是有效割集,如果不能,则为有效割集。
【讨论】: