【发布时间】: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