Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heuristics 推-重标记间隙启发式算法_Heuristics_Push Relabel_Gaps In Data - Fatal编程技术网

Heuristics 推-重标记间隙启发式算法

Heuristics 推-重标记间隙启发式算法,heuristics,push-relabel,gaps-in-data,Heuristics,Push Relabel,Gaps In Data,我不明白如何用push-relabel实现gap启发式。Wiki是这样描述的: “在gap重新标记启发式中,我们保持大小为n的数组A,保持在A[i]中 每个标签的节点数(最多n个)。如果找到标签d,则 A[d]=0,则标签>d的所有节点都重新标记为标签n。“ 使用间隙启发法。如果存在一个“k”,使得没有节点高度(u)=k,则可以为除源之外的所有节点设置高度(u)=max(高度(u),高度(源)+1),对于该节点,高度(u)>k。这是因为任何这样的“k”表示图中的最小割,并且不再有流从节点S={u

我不明白如何用push-relabel实现gap启发式。Wiki是这样描述的:

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

使用间隙启发法。如果存在一个“k”,使得没有节点高度(u)=k,则可以为除源之外的所有节点设置高度(u)=max(高度(u),高度(源)+1),对于该节点,高度(u)>k。这是因为任何这样的“k”表示图中的最小割,并且不再有流从节点S={u,其中高度(u)>k}到T={v中的节点,其中高度(v)为0。但随后高度(u)>height(v)+1,与高度(u)>k和高度(v) 有人能用伪代码向我解释一下如何将间隙启发式添加到FIFO推重标签中,如wiki的示例代码所示吗

谢谢,
Vince

可能有点晚了,但这里有一个指向斯坦福大学笔记本的链接,在这里你可以使用C中的间隙启发法找到一个push-relabel最大流。 我希望它能帮助你


这是C++,有些混淆。