【问题标题】:Algorithm to find all the cuts in a graph在图中找到所有切割的算法
【发布时间】:2013-02-24 00:07:47
【问题描述】:

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

请注意,优先级是找到所有割集,而不是最小割。

例如, 考虑具有以下边列表的图: s-->a-->t s-->b-->t

上图的割集是:{sa,sb}, {at,bt}, {sa,sb,at}, {sa,sb,bt}, {sa,sb,at,bt}

【问题讨论】:

    标签: graph flow


    【解决方案1】:

    这不是有效的,因为你有指数级的削减。 你有源是 S,T 中的汇,其中 S-T 是切割。 现在想一想: 对于每个顶点,它可以在 S 中,也可以在 T 中。 将所有顶点视为一个长二进制数,其中1表示顶点i在S中,0表示它在T中。

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

    【讨论】:

    • 我编辑了答案,希望现在好多了!谢谢指正。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2018-05-04
    • 2015-04-28
    • 1970-01-01
    相关资源
    最近更新 更多