网络流入门—用于最大流的Dinic算法

最早知道网络流的内容便是最大流问题,最大流问题很好理解:
解释一定要通俗!
如右图所示,有一个管道系统,节点{1,2,3,4},有向管道{A,B,C,D,E},即有向图一张. [1]是源点,有无限的水量,[4]是汇点,管道容量如图所示.试问[4]点最大可接收的水的流量?
这便是简单的最大流问题,显然[4]点的最大流量为50
死理性派请注意:流量是单位时间内的,总可以了吧!
然而对于复杂图的最大流方法是什么呢,有EK,Dinic,SAP,etc.下面介绍Dinic算法

操作方法

  • 01

    小贴士: 一般情况下在Dinic算法中,我们只记录某一边的剩余流量. 残量网络:包含反向弧的有向图,Dinic要循环的,每次修改过的图都是残量网络, 层次图:分层图,以[从原点到某点的最短距离]分层的图,距离相等的为一层,(比如上图的分层为{1},{2,4},{3}) DFS:这个就不用说了吧… 增广  :在现有流量基础上发现新的路径,扩大发现的最大流量(注意:增加量不一定是这条路径的流量,而是新的流量与上次流量之差) 增广路:在现有流量基础上发现的新路径.(快来找茬,和上一条有何不同?) 剩余流量:当一条边被增广之后(即它是增广路的一部分,或者说增广路通过这条边),这条边还能通过的流量. 反向弧:我们在Dinic算法中,对于一条有向边,我们需要建立另一条反向边(弧),当正向(输入数据)边剩余流量减少I时,反向弧剩余流量增加I

  • 02

    较详细解释(流程) : 用BFS建立分层图  注意:分层图是以当前图为基础建立的,所以要重复建立分层图 用DFS的方法寻找一条由源点到汇点的路径,获得这条路径的流量I 根据这条路径修改整个图,将所经之处正向边流量减少I,反向边流量增加I,注意I是非负数 重复步骤2,直到DFS找不到新的路径时,重复步骤1

  • 03

    对于反向弧(反向边)的理解: 这一段不理解也不是不可以,对于会写算法没什么帮助,如果你着急,直接无视即可.先举一个例子(如右图): 必须使用反向弧的流网络 在这幅图中我们首先要增广1->2->4->6,这时可以获得一个容量为2的流,但是如果不建立4->2反向弧的话,则无法进一步增广,最终答案为2,显然是不对的,然而如果建立了反向弧4->2,则第二次能进行1->3->4->2->5->6的增广,最大流为3. Comzyh对反向弧的理解可以说是”偷梁换柱“,请仔细阅读:在上面的例子中,我们可以看出,最终结果是1->2->5->6和1->2->4->6和1->3->4->6.当增广完1->2->4->5(代号A)后,在增广1->3->4->2->5->6(代号B),相当于将经过节点2的A流从中截流1(总共是2)走2->5>6,而不走2->4>6了,同时B流也从节点4截流出1(总共是1)走4->6而不是4->2->5->6,相当于AB流做加法. 简单的说反向弧为今后提供反悔的机会,让前面不走这条路而走别的路.

(0)

相关推荐

  • mencoder常用参数总结.Mencoder常用视频转换参数

    使用mencoder ,最关键的是明白参数。因为音频、视频格式太多,结果它的参数也是一大堆一大堆的。这里总结一下。 0, -vf 设置输出文件格式: 默认为avi格式,mencoder的默认格式。 需 ...

  • 如何用matlab进行简单的运算

    matlab作为一种重要的软件可以用于数据分析,图像处理,数据计算,算法优化等方面,所以矩阵的运算显的很重要,下面介绍些简单的运算 操作方法 01 首先正确的安装这个软件,然后打开这个软件如下图如示, ...

  • Fluent流动入口和出口十大边界条件

    边界条件包括流动变量和热变量在边界处的值.它是FLUENT分析很关键的一部分,设定边界条件必须小心谨慎.我们总结了Fluent十大流动入口和出口边界条件供参考. 操作方法 01 速度入口边界条件,定义 ...

  • 基于STC15系列单片机的ADC键盘编写方法

    STC15系列单片机自带AD转换功能,本文结合作者自己的,以STC15W408AS单片机为例,搭建出测试ADC键盘的板型,并介绍ADC键盘的驱动如何编写. 声明:电路原理图取自STC宏晶科技STC15 ...

  • 加密软件PGP详解分析与示例

    PGP(Pretty Good Privacy),是一个基于RSA公匙加密体系的邮件加密软件.可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮 ...

  • 如何生成HLS协议的M3U8文件

    么是HLS协议: HLS(Http Live Streaming)是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件. ...

  • 《御剑江湖》跑商达人攻略

    <御剑江湖>跑商达人攻略. 操作方法 01 西野:仕女图(1000-1100) 宣纸(1500-1600) 竹简(3200-3300) 云渡山:茶叶(3100-3200) 糖葫芦(1500 ...

  • DNF连击流机械师重现,皮甲机械入门篇

    改版后,职业都变得平均了,这是我很欣喜的一件事,并不像人说的,都垃圾了,都弱了,那些只是平民的观点,都看的出,不管是人物的移动速度,攻击速度,连招流畅性,攻击,血量等等都有了很大的提高. 步骤/方法 ...

  • 敏捷交换机的特色:iPCA网络包守恒算法

    iPCA iPCA (Packet Conservation Algorithm for Internet) ,网络包守恒算法)是一种基于直接测量方式检测网络质量状况的管道监控类技术,它可以测量网络的 ...