我正在寻找一种有效的算法,可以帮助我列出图表中的所有切割。该图是流网络(有向图)并且具有固定的源和宿。我想找出所有可能的切割套件,其中一侧有源,另一侧有下沉。
请注意,优先考虑的是找到所有剪辑而不是最小剪辑。
例如, 考虑具有以下边缘列表的图表: 秒 - >一种 - >吨 秒 - > b - >吨
上图的切割集是:{sa,sb},{at,bt},{sa,sb,at},{sa,sb,bt},{sa,sb,at,bt} < / p>
答案 0 :(得分:1)
因为你有一定数量的削减,所以效率不高。 你有源是S,T中的接收器,其中S-T是切割。 现在考虑一下: 对于每个顶点,它可以在S或T中。 将所有顶点视为一个长二进制数,其中1表示顶点i在S中,0表示它在T中。
你有多少选择?如果你有n个顶点,你可以拥有多少个不同的二进制数?答案是2 ^ n,但是我们可以忽略水槽和结构,但它不是母亲, 我们仍然有O(2 ^ n)用于不同的削减。