zoukankan      html  css  js  c++  java
  • 10.9传输网(Transport network)

    10.9传输网(Transport network)

    一些名词:

    流量守恒(Conservation of flow)

    除源点s(source)和宿点t(sink)之外,要求其他节点流入的流量和流出的流量相等

    最大流(Maximal flow)

    对于网络流图G,流量最大的可行流f,称为最大流

    基本算法描述

    1. 最为朴素的算法,便是利用回溯法,对所有可能的路径情况分析并取所有可能情况的最大值
    2. 基于贪心算法的思考,在最开始先找一可行流(feasible flow),在此基础上上不断的寻找增广路径,直到再无增广路径;但是问题在于贪心寻找时不一定最优,故引入反向边的概念,利用这一思路达到回溯的作用以确保正确性;这就是这个算法的精华部分,利用反向边,使程序有了一个后悔和改正的机会

    因此得到如下基本算法:

    1. 找一可行流,对每条边的流量更新称剩余流量和反向流量
    2. 寻找增广路径,注意流量既可以走正向流量,也可以走反向流量;将总的流量值更新
    3. 重复过程2直至再无增广路径;此时得到的流量值即为最大流

    最大流最小割定理

    一言以蔽之,最大流等于最小割

    编程算法实现

    从寻找增广路径着手,可以深搜,广搜和一些其他记忆化操作来辅助寻找增广路径(如给节点通过BFS进行分层,规定只能从低层级向高层级流通等进行优化),最常用高效的求最大流的算法:Dinic算法<暂缺>

  • 相关阅读:
    [置顶] 深入ResourceBundle
    关于libgdx中UI控件的旋转和缩放的备忘
    H面试程序(28):字符串处理转换
    uva 10271 Chopsticks(dp)
    Savitzky-Golay滤波器(2)
    README.android
    LCD1602
    照片宽252*高312像素是几寸照片
    arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
    Ubuntu 12.04下安装QQ 2012 Beta3
  • 原文地址:https://www.cnblogs.com/SpicyArticle/p/12152965.html
Copyright © 2011-2022 走看看