ISAP算法对 Dinic算法的改进:
  在刘汝佳图论的开头引言里面,就指出了,算法的本身细节优化,是比较复杂的,这些高质量的图论算法是无数优秀算法设计师的智慧结晶。
如果一时半会理解不清楚,也是正常的。但是对于一个优秀的acmer来说,其算法的本身,可以锻炼你的思维。增长见识!

下面是我对 Dinic和ISAP的认识:

  Dinic算法比较值钱的 EK算法来说,已经有很大的提高了,其优势在哪里呢? 就是在于他的分层思想。在层次图上增广。但是,他也有弊端。
就是每次进行增广后,对于层次图都进行了从头再来。
  Dinic算法最大的优点就是概念简单,且速度不错!!!

如果效率要求很高,可以将Dinic算法改写成迭代形式。但是一般不这样做,而是采用 ISAP算法;

  ISAP算法就在刚刚的层次图上做了文章:
    1、首先层次图的定义有修改 d(i)表示到汇点的距离的下界,沿着可行流走,当我们找不到增广路的时候,在Dinic算法中,是一次性修改所有
  距离标号,而 ISAP只按增广边修改。这是第一个优化。注意,如果从结点 i 找不到增广路, d(i) >=n;
    2、gap优化:对于每一个距离标号d(i)=x;用一个num[x] 数组维护,就是指,x 这个距离标号的个数,如果某一个距离标号 num[x] = 0;
  一定就没有了增广路了。

ISAP算法对 Dinic算法的改进的更多相关文章

  1. POJ 1273 - Drainage Ditches - [最大流模板题] - [EK算法模板][Dinic算法模板 - 邻接表型]

    题目链接:http://poj.org/problem?id=1273 Time Limit: 1000MS Memory Limit: 10000K Description Every time i ...

  2. 网络流_Edmond-Karp算法、Dinic算法

    转载:网络流基础篇——Edmond-Karp算法             BY纳米黑客 网络流的相关定义: 源点:有n个点,有m条有向边,有一个点很特殊,只出不进,叫做源点. 汇点:另一个点也很特殊, ...

  3. Dinic算法详解及实现

    预备知识: 残留网络:设有容量网络G(V,E)及其上的网络流f,G关于f的残留网络即为G(V',E'),其中G'的顶点集V'和G的顶点集V相同,即V'=V,对于G中任何一条弧<u,v>,如 ...

  4. 网络流(四)dinic算法

    传送门: 网络流(一)基础知识篇 网络流(二)最大流的增广路算法 网络流(三)最大流最小割定理 网络流(四)dinic算法 网络流(五)有上下限的最大流 网络流(六)最小费用最大流问题 转自:http ...

  5. 图论:Dinic算法

    解决最大流问题我搜到了一堆的算法:EK算法.FF算法.Dinic算法.SAP算法.ISAP算法 然而并没有什么鸟用 掌握最常见的Dinic就够了,据说极限优化的ISAP比Dinic更快一些..我当不知 ...

  6. 最大流算法之Dinic

    引言: 在最大流(一)中我们讨论了关于EK算法的原理与代码实现,此文将讨论与EK算法同级别复杂度(O(N^2M))的算法--Dinic算法. Dinic算法用到的思想是图的分层结构,通过BFS将每一个 ...

  7. dinic算法求最大流的学习

    http://trp.jlu.edu.cn/software/net/lssx/4/4.38.htm http://www.cnblogs.com/zen_chou/archive/0001/01/0 ...

  8. dinic算法学习(以poj1273为例)

    Dinic 算法模板  Dinic算法是一种比較easy实现的.相对照较快的最大流算法. 求最大流的本质,就是不停的寻找增广路径.直到找不到增广路径为止. 对于这个一般性的过程,Dinic算法的优化例 ...

  9. 网络流(最大流-Dinic算法)

    摘自https://www.cnblogs.com/SYCstudio/p/7260613.html 网络流定义 在图论中,网络流(Network flow)是指在一个每条边都有容量(Capacity ...

随机推荐

  1. event事件对象

    事件对象event: 在触发DOM事件的时候都会产生一个对象 1.type:获取事件类型 2.target:获取事件目标 3.stopPropagation():组织事件冒泡 4.preventDef ...

  2. http工作流程

    一次HTTP操作称为一个事务,其工作过程可分为四步:1)首先客户机与服务器需要建立连接.只要单击某个超级链接,HTTP的工作开始.2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源 ...

  3. Smokeping安装教程

    Smokeping安装教程 #Smokeping2.6.8安装教程 #2016.3.6 改编v1.0 #Linux运维技术交流 347163978   环境 CentOS release 6.4 (F ...

  4. 实时控制软件设计第一周作业-汽车ABS软件系统案例分析

    汽车ABS软件系统案例分析 ABS 通过控制作用于车轮制动分泵上的制动管路压力,使汽车在紧急刹车时车轮不会抱死,这样就能使汽车在紧急制动时仍能保持较好的方向稳定性. ABS系统一般是在普通制动系统基础 ...

  5. kdiff3的主窗口说明 Base Local Remote 分别代表什么分支

  6. [CC]区域生长算法——点云分割

    基于CC写的插件,利用PCL中算法实现: void qLxPluginPCL::doRegionGrowing() { assert(m_app); if (!m_app) return; const ...

  7. 监控redis python脚本

    #!/bin/env python #-*- coding:utf- -*- import json import time import socket import os import re imp ...

  8. js数字位数太大导致参数精度丢失问题

    最近遇到个比较奇怪的问题,js函数里传参,传一个位数比较大,打印arguments可以看到传过来的参数已经改变. 然后查了一下,发现确实是js精度丢失造成的.我的解决方法是将数字型改成字符型传输,这样 ...

  9. Ubuntu下安装Numpy, SciPy and Matplotlib

    Python开发环境包含科学计算,需要安装NumPy, SciPy, Matplotlib.其中Matplotlib依赖于Python和NumPy.我们先安装NumPY和SciPy.  Matplot ...

  10. C语言第六次作业

    #include <stdio.h> int main() { ; printf("输入几个数:"); scanf("%d",&n); ;i ...