网络流定义
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\\)算法中。
有时需要对有多于一个源点的网络,于是就引入了图的超源点。这包含了一个与无限容量的边连接的每个源点,以作为一个整体源点。汇点也有类似的构造称作超汇点。
以上是关于网络流定义的主要内容,如果未能解决你的问题,请参考以下文章