用于查找图形中所有切割的算法

时间:2013-02-24 00:07:48

标签: graph flow

我正在寻找一种有效的算法,可以帮助我列出图表中的所有切割。该图是流网络(有向图)并且具有固定的源和宿。我想找出所有可能的切割套件,其中一侧有源,另一侧有下沉。

请注意,优先考虑的是找到所有剪辑而不是最小剪辑。

例如, 考虑具有以下边缘列表的图表: 秒 - >一种 - >吨 秒 - > b - >吨

上图的切割集是:{sa,sb},{at,bt},{sa,sb,at},{sa,sb,bt},{sa,sb,at,bt} < / p>

1 个答案:

答案 0 :(得分:1)

因为你有一定数量的削减,所以效率不高。 你有源是S,T中的接收器,其中S-T是切割。 现在考虑一下: 对于每个顶点,它可以在S或T中。 将所有顶点视为一个长二进制数,其中1表示顶点i在S中,0表示它在T中。

你有多少选择?如果你有n个顶点,你可以拥有多少个不同的二进制数?答案是2 ^ n,但是我们可以忽略水槽和结构,但它不是母亲, 我们仍然有O(2 ^ n)用于不同的削减。