【问题标题】:Push-relabel gap heuristics推送重新标记间隙启发式
【发布时间】:2013-01-28 20:45:53
【问题描述】:

我不明白如何通过推送重新标记来实现间隙启发式。维基是这样描述的:

“在间隙重新标记启发式中,我们维护一个大小为 n 的数组 A,保存在 A[i] 每个标签的节点数(最多 n 个)。如果找到标签 d,则 A[d] = 0,则所有label > d的节点都被重新标记为label n。"

使用间隙启发式。如果有一个'k'使得没有节点height(u)=k,您可以为除source之外的所有节点设置height(u)= max(height(u),height(source)+1),其中height (u) >k。这是因为任何这样的“k”都表示图中的最小切割,并且不会有更多的流量从节点 S={u where height(u) > k} 流向 T={v, where height(v) 中的节点0。但是 height(u) > height(v)+1 与 height(u) > k 和 height(v)

有人可以用伪代码向我解释如何将间隙启发式添加到 FIFO 推送重新标签中,如 wiki 的示例代码所示?

谢谢, 文斯

【问题讨论】:

    标签: heuristics push-relabel gaps-in-data


    【解决方案1】:

    可能有点晚了,但这里有一个斯坦福大学笔记本的链接,您可以在其中找到使用 C 中的 Gap Heuristic 的 push-relabel 最大流量。 希望对你有帮助。

    http://www.stanford.edu/~liszt90/acm/notebook.html#file3

    【讨论】:

    • 它是 C++,有点混乱。
    猜你喜欢
    • 2018-07-13
    • 1970-01-01
    • 2012-02-03
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多