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算法<暂缺>

  • 相关阅读:
    iris中间件
    go并发设计模式 --资源生成器模式
    Navicate
    golang sftp传输文件
    升级python
    在centos上面开机自启动某个程序
    文件MD5
    python模块之logging
    python之八大排序方法
    python生成器
  • 原文地址:https://www.cnblogs.com/SpicyArticle/p/12152965.html
Copyright © 2011-2022 走看看