网络流定义

Posted 楠枫nan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络流定义相关的知识,希望对你有一定的参考价值。

假设 \\(G=(V,E)\\) 是一个有限的有向图,它的每条边 \\((u,v)∈E\\) 都有一个非负值实数的容量 \\(c(u, v)\\)。如果 \\((u, v) \\not \\in E\\),我们假设 \\(c(u, v) = 0\\)。我们区别两个顶点:一个源点 \\(s\\) 和一个汇点 \\(t\\)。一道网络流是一个对于所有结点 \\(u\\)\\(v\\) 都有以下特性的实数函数 \\(f:V \\times V \\rightarrow \\mathbb{R}\\)容量限制(CapacityConstraints)\\(f(u, v) \\leq c(u, v)\\)一条边的流不能超过它的容量。斜对称(SkewSymmetry)\\(f(u, v) = - f(v, u)\\)\\(u\\)\\(v\\) 的净流必须是由 \\(v\\)\\(u\\) 的净流的相反(参考例子)。
流守恒(Flow Conservation): 除非 \\(u=s\\)\\(u=t\\),否则 \\(∑w∈Vf(u,w)=0\\) 一结点的净流是零,除了“制造”流的源点和“消耗”流的汇点。
即流守恒意味着:\\(∑(u,v)∈Ef(u,v)=∑(v,z)∈Ef(v,z)\\) ,对每个顶点 \\(v \\in V\\setminus{s,t}\\) 注意 \\(f(u,v)\\) 是由 \\(u\\)\\(v\\) 的净流。如果该图代表一个实质的网络,由 \\(u\\)\\(v\\) 有4单位的实际流及由 \\(v\\)\\(u\\)\\(3\\)单位的实际流,那么 \\(f(u, v) = 1\\)\\(f(v,u)=−1\\)
基本上,我们可以说,物理网络的网络流是从 \\(s = \\sum_{(s,v)\\in E} f(s,v)\\) 出发的流边的剩余容量(residualcapacity)\\(c_f(u, v) = c(u, v) - f(u, v)\\) 。这定义了以\\(G_f(V, E_f)\\)表示的剩余网络(residual network),它显示可用的容量的多少。留意就算在原网络中由 u 到 $v 没有边,在剩余网络仍可能有由 \\(u\\)\\(v\\) 的边。因为相反方向的流抵消,减少由\\(v\\)\\(u\\)的流等于增加由 \\(u\\)\\(v\\) 的流。增广路(augmentingpath)是一条路径 \\((u_1, u_2, \\dots, u_k)\\),而 \\(u1=s,uk=t\\)\\(cf(ui,ui+1)>0\\),这表示沿这条路径发送更多流是可能的。当且仅当剩余网络\\(Gf\\)没有增广路时处于最大流。
因此如下使用图 \\(G\\) 创建 \\(G_f :G_f = V\\) 的顶点定义如下的\\(G_f = E_f\\) 的边对每条边 \\((x,y) \\in E\\)\\(f(x,y) < c(x,y)\\),创建容量为 \\(c_f = c(x,y) - f(x,y)\\) 的前向边 \\((x,y)∈Ef\\)
\\(f(x,y) > 0\\),创建容量为 \\(c_f = f(x,y)\\)的后向边 \\((y,x)∈Ef\\)
这个概念用在计算流量网的最大流的\\(Ford–Fulkerson\\)算法中。
有时需要对有多于一个源点的网络,于是就引入了图的超源点。这包含了一个与无限容量的边连接的每个源点,以作为一个整体源点。汇点也有类似的构造称作超汇点。

以上是关于网络流定义的主要内容,如果未能解决你的问题,请参考以下文章

km算法

网络流求最大流算法

网络流定义

网络最大流学习随笔,详解网络流最大流

网络流初步详解

网络流最大流问题