云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Dinic算法基础

Dinic算法基础

  • 62 次阅读
  • 3 次下载
  • 2025/6/15 2:31:14

一、 引言

图论这门古老而又年轻的学科1在信息学竞赛中占据了相当大的比重。其中,网络流算法经常在题目中出现。网络流涵盖的知识非常丰富,从基本的最小割最大流定理到网络的许多变形再到最高标号预流推进的六个优化等等,同学们在平时需要多多涉猎这方面的知识,不断积累,才能应对题目的各种变化。

随着信息学竞赛的不断发展,其题目的难度以及考察范围都不断增大。现在,对于一些新出现的题目,仅仅掌握最朴素的网络流算法并不足以解决问题。本文针对一些数据规模比较大的网络流题目详细介绍了基于分层思想的3个网络流算法,并通过列举和比较说明了其在解题中的应用,而对一些基础的知识,如最小割最大流定理等,没有作具体阐释,大家可以在许多其他网络流资料中找到。

二、预备概念

2.1剩余图的概念

给定一个流量网络G1?(E1,V1)、源点s、汇点t、容量函数c,以及其上的流量函数f。我们这样定义对应的剩余图G2?(E2,V2):剩余图中的点集与流量网络中的点集相同,即V2?V1。对于流量网络中的任一条边3(u,v)?E1,若

f(u,v)?c(u,v),那么边(u,v)?E2,这条边在剩余图中的权值为g(u,v)?c(u,v)?f(u,v);同时,若f(u,v)?0那么边(v,u)?E2,这条边在剩余图

2

1

图论这门学科的诞生始于18世纪欧拉证明了七桥问题,发表《依据几何位置的解题方法》一文。但图论的真正发展是从20世纪五六十年代开始的。所以说,图论是一门既古老又年轻的学科。 2

本文对一些基本的理论,如最大流最小割定理等,不做阐述,读者可以参阅相关网络流资料。 3

本文中所有涉及到的边若无指明均为有向边。

中的权值为g(v,u)?f(u,v)。

我们可以发现,流量网络中的每条边在剩余图中都化作一条或二条边。剩余图中的每条边都表示在原流量网络中能沿其方向增广。剩余图的权值函数g(a,b)表示在流量网络中能够沿着a到b的方向增广大小为g(a,b)的流量。所以在剩余图中,从源点到汇点的任意一条简单路径4都对应着一条增广路,路径上每条边的权值的最小值即为能够一次增广的最大流量。

2.2顶点的层次

在剩余图中,我们把从源点到点u的最短路径长度称作点u的层次,记为

level(u)。源点的层次为0。在下面这张剩余图中:

1 源点 0 3 2 汇点 3

每个点旁边的数字即表示该点在图中的层次。

2.3层次图的概念

我们这样定义层次图G3?(V3,E3):对于剩余图G2?(V2,E2)中的一条边

(u,v),当且仅当level(u)?1?level(v)时,边(u,v)?E3;V3?{u|E3中有边与u相连}

直观地讲,层次图是建立在剩余图基础之上的一张“最短路图”。从源点开

4

简单路径:路径中不存在重复的顶点或边

始,在层次图中沿着边不管怎么走,经过的路径一定是终点在剩余图中的最短路。

2.4阻塞流的概念

在流量网络中存在一可行流f,当该网络的层次图G3中不存在增广路时,我们称流函数f为层次图G3的阻塞流。

三、最短路径增值算法(MPLA)的步骤及复杂度分析

3.1算法步骤

之前我们讲到的层次图将被应用在最短路径增值算法中。首先,我们看一下最短路径增值算法的步骤:

算法中,2、3步被循环执行,我们将执行2、3步的一次循环称为一个阶段。每个阶段中,我们首先根据剩余图建立层次图,然后不断用bfs在层次图内增广,寻找阻塞流。增广完毕后,进入下一个阶段。这样不断重复,直到汇点不在层次图内出现为止。汇点不在层次图内意味着在剩余图中不存在一条从源点到汇点的路径,即没有增广路。

1、初始化流量,计算出剩余图 2、根据剩余图计算层次图。若汇点不在层次图内,则算法结束 3、在层次图内不断用bfs增广,直到层次图内没有增广路为止 4、转步骤2 在程序实现的时候,层次图并不用被“建”出来,我们只需对每个顶点标记层次,增广的时候,判断边是否满足level(u)?1?level(v)这一约束即可。

3.2定理的证明

定理:对于有n个点的流量网络,在最短路径增值算法中,最多有n个阶段。

也就是说,在算法中层次图最多被建立n次。证明这个定理有助于我们进行算法复杂度分析。

证明:

在建立完层次图以后,假设从源点到汇点的最短路径长度为k,我们将层次图中所有的点分到k+1个集合中,第i个集合为{顶点u|level(u)?i?1},如下图所示:

{层次为0的顶点集合}

{层次为1的顶点集合}

{层次为2的顶点集合}

.

.

.

{层次为k的顶点集合}

{层次为k-1的顶点集合}

搜索更多关于: Dinic算法基础 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

一、 引言 图论这门古老而又年轻的学科1在信息学竞赛中占据了相当大的比重。其中,网络流算法经常在题目中出现。网络流涵盖的知识非常丰富,从基本的最小割最大流定理到网络的许多变形再到最高标号预流推进的六个优化等等,同学们在平时需要多多涉猎这方面的知识,不断积累,才能应对题目的各种变化。 随着信息学竞赛的不断发展,其题目的难度以及考察范围都不断增大。现在,对于一些新出现的题目,仅仅掌握最朴素的网络流算法并不足以解决问题。本文针对一些数据规模比较大的网络流题目详细介绍了基于分层思想的3个网络流算法,并通过列举和比较说明了其在解题中的应用,而对一些基础的知识,如最小割最大流定理等,没有作具体阐释,大家可以在许多其他网络流资料中找到。 二、预备概念 2.1剩余图的概念 给定一个流量网络G1?(

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com