Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 估计图中的流量_Algorithm_Graph_Flow - Fatal编程技术网

Algorithm 估计图中的流量

Algorithm 估计图中的流量,algorithm,graph,flow,Algorithm,Graph,Flow,给定无向图,所有边都有权1;N、 M大约是10^6 我需要找出源和汇之间的流量是否大于某个值X。X相当小 使用bfs直到流量等于X,这对我来说太慢了 有没有更快的方法来估算流量?您需要的基本上是maxflow,请参阅 并推荐了实用高效的 如果您需要一些示例,您可以参考我的一个代码,在中,使用BFS并不总是给出正确的结果。请参阅中的反例。我是说Edmonds Karp使用bfs。维基百科建议Karger的算法可以有效地找到最小切割,是吗?我不明白Karger的算法有什么帮助here@Herokil

给定无向图,所有边都有权1;N、 M大约是10^6 我需要找出源和汇之间的流量是否大于某个值X。X相当小

使用bfs直到流量等于X,这对我来说太慢了


有没有更快的方法来估算流量?

您需要的基本上是maxflow,请参阅

并推荐了实用高效的


如果您需要一些示例,您可以参考我的一个代码,在

中,使用BFS并不总是给出正确的结果。请参阅中的反例。我是说Edmonds Karp使用bfs。维基百科建议Karger的算法可以有效地找到最小切割,是吗?我不明白Karger的算法有什么帮助here@Herokiller,它会在每次运行时为您提供容量上限。当它捆绑一组弧时,只需将它们替换为一个弧和容量之和。当一个弧剩余时,容量有一个界限。据我所知,Dinic的算法不依赖于流的值,而O(VElogV)也是much@Herokiller对,dinic不关心边的容量,我说它实际上是有效的,O(VElogV)是理论上界,这并不意味着实际的运行时间,对于水平图,dinic非常快,对于更一般的图,我知道的唯一算法可能比dinic快,是isap