`
duoerbasilu
  • 浏览: 1482403 次
文章分类
社区版块
存档分类
最新评论

网络流总结(一)

 
阅读更多

一、个人心得:

今天对这些天网络流的学习做一个总结,最大流、二分图最大匹配、最小点覆盖、最小路径覆盖、最大独立集、最大点权独立集这样一路走来。其实对这些问题的熟悉仅仅只是一些皮毛而已,我比较不善于去论证和深究其中的联系,所以对这些个问题也只停留在理解的基础上,还不能很好地活学活用。建立流模型、二分图模型这点很重要,也是解题的关键,如果建立好了模型,那么问题就会迎刃而解了。


二、网络流学习中的基本定义和定理:

流网络:G = (V , E) 是一个有向图,其中每条边 (u, v) ∈ E 均有一非负容量 c (u , v) ≥ 0.s表示源点,t表示汇点。

残留网络:直观上讲,是由可以容纳更多网络流的边所组成。在不超过容量c ( u , v ) 的条件下,从u 到 v之间可以压入的额外网络流量就是(u , v) 的残余容量,可有公式定义:cf(u, v) = c(u, v) - f(u, v).

增广路经:为残留网络 Gf 中从 s 到 t 的一条简单路径。

流网络的割:流网络G = (V , E) 的割(S , T) 将V 划分为S 和 T = V - S两部分,使得s ∈ S,t ∈T。

最大流最小割定理:如果f 是具有源点 s 和 汇点 t 的流网络G = (V , E) 中的一个流,则下列条件是等价的:

1)f 是 G 的最大流

2)残留网络Gf 不含增广路经

3)对G 的某个割 (S, T) ,有 | f | = c ( S , T )

于是得出:最大流 = 最小割 //网络流的割或许是精髓,但是我好像没有理解

最小割的求解步骤:先求的最大流,再在得到最大流 f 的残余网络 Gf 中,从 s 开始深度优先遍历(DFS),所有遍历到的点,即构成点集S。

若果想要更深入了解最小割,参见:http://wenku.baidu.com/view/986baf00b52acfc789ebc9a9.html

最大流这个博客中讲的不错:http://www.cppblog.com/mythit/archive/2009/04/19/80470.html

二分图最大匹配:一个匹配是一个边的子集合 M ∈ E,且满足对所有顶点 v ∈ V,M中至多有一条边与v关联。最大匹配是最大势的匹配,在所有匹配中,边的权值和最大。

题型参考:http://blog.csdn.net/lhshaoren/article/details/7752944

最小点覆盖:用最少的点,让每条边都至少和其中一个点关联。

最小点覆盖数 = 最大匹配数

证明参见:http://www.cppblog.com/abilitytao/archive/2009/09/02/95147.html

最小点权覆盖:在所有覆盖集中,权值和最小的。

最小点权覆盖 = 最小割 = 最大流

最小路径覆盖:用最少的边,使之覆盖图中所有的顶点,且任何一个顶点有且只有一条路径与之关联。

最小路径覆盖数 = 顶点数 - 最大匹配数

证明参见:http://baike.baidu.com/view/2444809.htm

最大点独立集:用最多的边,组成一个点集,其中所有的点都不存在匹配关系。

最大点独立集 = 顶点数 - 最大匹配数。

最大点权独立集:在所有独立集中,权值和最大的独立集。

最大点权独立集 = 权值和 - 最小点权覆盖

三、涉及到的一些算法:

Ford_Fulkerson方法:用流网络的割来描述最大流的值,Ford_Fulkerson方法是一种迭代方法,开始时,对所有u , v ∈ V 有 f (u , v) = 0,然后在每次迭代中,通过寻找一条增广路经来增加流值,得到最大流。

伪代码:

Ford_Fulkerson(G, s, t)
	for each edge(u, v) ∈ E[G]
		do f[u, v] = 0
			f[v, u] = 0
	while there exists a path p from s to t in the residual network Gf
		//存在增广路经
		do cf(p) = min(cf(u, v) : (u, v) is in p)
			//找到增广路经中残余容量最小的边
		for each edge(u, v) in p
			do f[u, v] -= cf(p)
			do f[v, u] += cf(p)


Edmonds_Karp算法:广度优先搜索寻找增广路经。算法复杂度:O(V*E*E)

具体代码参见:http://blog.csdn.net/lhshaoren/article/details/7748992

dinic算法:网络流最大流的优化算法之一,每一步对原图进行分层,然后用DFS求增广路径。算法复杂度:O(V*V*E),所以当边比较多时候比较适合使用

1、初始化流量,计算出残余网络
2、根据残余网络计算层次图,如果汇点不在层次图中,则算法结束
3、在层次图内用一次dfs过程增广
4、转步骤2

具体代码参见:http://blog.csdn.net/lhshaoren/article/details/7765901


分享到:
评论

相关推荐

    网络流总结·小编

    网络流算法分析,谢谢~ 里面有各种实现的算法和代码,另外 SAP 为主要算法; 另外网络流的上下界、费用流的讲解都有哦。

    国科大计算机网络总结.pdf

    国科大计算机网络期末考试总结

    信息网络安全包括【信息网络安全总结】.docx

    信息网络安全包括【信息网络安全总结】全文共6页,当前为第1页。信息网络安全包括【信息网络安全总结】全文共6页,当前为第1页。信息网络安全包括【信息网络安全总结】 信息网络安全包括【信息网络安全总结】全文共6...

    poj pku图论、网络流入门题总结、汇总

    很经典的图论,网络流入门的题目,值得一看啊~~其中有简单的解析

    卷积神经网络模型总结.rar

    本资源整理了近几年比较流行的卷积神经网络模型,CNN、resnet、VGG、densenet等。

    Java知识点总结大全(五) -- IO流.xmind

    Java知识点总结大全(五) -- io流,关注后面会分享面向对象,io,集合,多线程,网络,sql的总结

    计算机网络课程实验总结报告(4).doc

    " " " "(3)总结与体会 " " "实"(1) " "验"Ethereal是一个开放源码的网络分析系统,支持Linux和windows平台 " "报"。 " "告"1. Ethereal的捕包平台 " " " 网络分析系统首先依赖于一套捕捉网络数据包的函数库。...

    流媒体技术与应用 论文

    流媒体技术是在数据网络上以流的方式传输多媒体信息的技术。近年来,随着宽带网络的发展和用户需求的驱动,流媒体技术和相关的应用得到越来越多的关注,被认为是未来高速网络的主流应用之一…………

    计算机网络课程设计企业网络规划与设计.doc

    设计要求 (1)编写课程设计文档,文档中包含网络规划与实现技术(三层交换、路由技术、NAT 技术、IP地址规划、网络设备命名规划、路由规划)、网络设计(拓扑设计、网络配置 )、总结等。 (2)采用packet tracker...

    Java基础知识点总结.docx

    无论是工作学习,不断的总结是必不可少的。只有不断的总结,发现问题,弥补不足,才能长久的进步!!Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 二、 Java语法基础 5 数据类型 5 运算符号 14 ...

    达内Java笔记 各种总结

    面向对象技术总结 corejava高级特性总结 接口学习总结 异常和内部类 集合框架学习总结 GUI和AWT事件模型 多线程学习总结 输入输出流学习总结 网络编程学习总结

    论文研究-实时流媒体传输技术研究综述.pdf

    为推动实时流媒体传输技术的进步,提高Internet流媒体服务质量,将实时流媒体传输流程分为用户层、编码层、流处理层、传输控制层和网络层,分层总结和综述了实时流媒体传输过程中的主要研究问题和研究进展,阐述了...

    《计算机网络基础》教学设计.doc

    (给学生互相讨论的时间,教师根据学生的回答,通过反问、设问 方法引导学生的思考方向) 2.(教师根据学生的回答进行总结)计算机网络概念:将分布在不同地理位置上的具有 独立功能的多台计算机通过通信设备和传输...

    计算机网络协议总结.doc

    1. 物理层(比特流) 2. 数据链路层(帧) PPP(点对点协议):面向连接,不可靠,只支持全双工链路,成帧技术,PPP帧是面向 字节的,所有的PPP帧的长度都是整数字节的。只检错不纠错,没有流 量控制。 CSMA/CD(载波...

    实验9 Java输入输出流.doc

    基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java输入输出流;进阶篇有反射、泛型、注解、网络编程、多线程、序列化、数据库、...

    The Neural Network Zoo翻译 各种神经网络总结.docx

    The Neural Network Zoo翻译 各种神经网络总结,各种神经网络架构层出不穷,比如DCIGN, BiLSTM, DCGAN等,Fjodor Van Veen总结了近几年来流行的神经网络各架构,易于直观理解。

    论文研究-大业务流识别方法研究综述.pdf

    大业务流识别(简称大流识别)方法是网络流量测量与分析中必不可少的一种方法和手段,在学术界和工业界都引起了广泛的关注。针对大流识别问题展开研究,对适用于网络监控和管理需求的大流识别的方法、成果和相关问题...

    Detnet 确定性网络标准介绍.pptx

    DetNet WG 于2015年立项,Charter 要点总结为:只针对单域,不包含跨域; 即在单一行政管制下或在封闭的行政管制组内的网络,如校园网络,私人wan。负责输出确定性网络整体架构、数据面及控制面的标准。包括时间同步...

Global site tag (gtag.js) - Google Analytics