网络与网络流

本文深入探讨了网络流的概念,包括网络的定义、源点集、汇点集、中转点以及弧的容量。阐述了单源单汇网络的构造方法,并定义了流和割。介绍了最大流和最小割的定义,强调最大流等于最小割的容量,这是网络流理论中的核心定理。同时,提到了求解最大流的Dinic算法和增广路径的概念,为解决网络流问题提供了理论基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络的定义

一个网络N=(V,A)是指一个连通无环弧且满足下列条件的有向图:
①有一个顶点子集X,其每个顶点的入度都为0;
②有一个与X不想交的子集Y,其每个顶点的出度都为0;
③每条弧都有一个非负的权值,称之为弧的容量。
以上定义中X称之为源点集,Y称之为汇点集,其他的顶点称之为中转点,网络的容量函数为C。
网络图片
上图所示的两个网络中,(a)中的x1,x2为源点,y1,y2为汇点,其他的节点则为中转点。
如果一个网络中只有一个源点和汇点,则称之为单源单汇网络,当然任何一个网络都可以导出一个单源单汇网络,方法如下:
(1)给网络N添加两个顶点s和t;
(2)对∀x∈X,从s向x连接一条弧,其容量为∞,或者x的邻接边的容量和;
(3)对∀y∈Y,从y向t连接一条弧,其容量为∞,或者y的邻接边的容量和;

网络的流与割

流定义

定义:网络N=(V,X,Y,A,C)中的一个可行流的定义是定义在弧集A上的一个整值函数(网络就一般只讨论弧容量为整值的网络,弧值为小数的网络可类比于整值网络)f,使得:
(1)容量约束:流经管道的流量值应当不超过管道的容量——对∀a∈A,0≤f(a)≤c(a);
(2)流量守恒:对于每个结点,流入流出的流量应当守恒。
注意:可行流总是存在的,因为总是存在0值流。
流量最大的可行流称为最大流。

割定义

割定义:设N== (V,x,y,A,C)是一个单源单汇网络 。S⊆V, S’=V-S. 用(S,S’)表示尾在S中而头在S’中的所有弧的集合(即从S中的点指向S’之外点的所有弧之集)。若x∈S, 而y∈S’, 则称弧集((S,S’)为网络N的一个割。一个割(S,S’)的 容量是指(S,S’)中各条弧的容量之和,记为Cap(S,S’)。
如下图:
在这里插入图片描述
令S={x,v1,v2,v3,v5},则(S,S’)={v1v4,v3v4,v5v4,v5v6}(可以看出割只计算弧尾在源点一侧,而弧头在汇点一侧的边权值),所以割容量为Cap(S,S’)=9。

最小割定义

最小割定义:网络N中容量最小的割,也即假设K是网络N的一个最小割,则不存在割K’,使得CapK’<CapK。
对于网路中的任意割和任意流,流经割的流量守恒。

最大流最小割定理

在这里插入图片描述
也即意味着最大流饱和网络N的一个最小割中所有的边。
在这里插入图片描述在这里插入图片描述
底图指的是有向图中有向边变成无向边后对应的无向图。
如下图:
在这里插入图片描述
其中P=xv2v4v5y,中所有边都是正向弧,而P=xv3v4v2y中,<v3,v4>和<v4,v2>是反向边。

增光路定义

在这里插入图片描述
这里我们要注意的是增光路和可行流的区别,增光路的流量不为0的可行流。

最大流的标号算法

对于给定的网络如何求解最大流?
由可增路的概念可知,对于网路中的一个流如果存在可增路,则一定存在更大的流,那么一种直观的思想就是寻找可增路,当图中不存在可增路时此时的流为最大流。
在这里插入图片描述
在这里插入图片描述

算法原理

在这里插入图片描述
在这里插入图片描述

求最大流的Dinic算法

在这里插入图片描述
在这里插入图片描述
注:N(f)中的每条弧为两个顶点该方向上可以流经的流量值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值