残差网络

残差网络记录了当前流还能在哪些边上增加或减少流量,是Ford-Fulkerson方法中寻找增广路径的基础结构。

定义

形式化定义

给定流网络 ,容量函数 ,以及一个流 残差网络 定义如下:

  • 残差容量:对于每条边 ,残差容量 ,表示该边还能增加多少流量
  • 反向残差容量:对于每条有流量的边 ,反向边 的残差容量 ,表示该边可以”撤销”多少流量
  • 残差边集合

增广操作:沿增广路径 增广流量 ,得到新流

  • 对于 上的每条正向边
  • 对于 上的每条反向边
  • 不在 上的边:

增广后流的值恰好增加

核心性质

性质描述
正向边表示还能增加流量,容量为
反向边表示可以撤销已分配的流量,容量为
增广效果沿增广路径增广后,流值恰好增加
合法性保持增广后的 仍满足容量约束和流守恒
最大流判据 中不存在增广路径当且仅当 是最大流

关系网络

graph LR
    A["流网络 G + 流 f"] --> B["残差网络 Gf"]
    B --> C["增广路径 p"]
    C --> D["增广操作"]
    D --> E["新流 f'"]
    E --> B
    B -- "无增广路径" --> F["f 是最大流"]

章节扩展

第24章:最大流

残差网络在24.2节中定义,是Ford-Fulkerson方法的核心数据结构。

残差网络的关键在于反向边的存在——它允许算法”纠正”之前不够优的流量分配。直观地说,残差网络就像一张”还能怎么调整流量”的地图。正向边表示还能增加流量,反向边表示可以减少(撤销)之前分配的流量。

当残差网络中不再存在从源 到汇 的路径时,由引理24.2可知当前流即为最大流。此时,令 中从 可达的所有顶点集合,,则割 满足 ,这正是最大流最小割定理的构造性证明。

补充

补充说明

残差网络的概念不仅用于最大流算法,也是最小费用流(Minimum Cost Flow)等网络流变体问题的基础。在最小费用流中,残差网络上的反向边费用为正向边费用的相反数,这使得算法可以在增广过程中自然地”撤销”高代价的流量分配。

参见

  • 流网络 — 流网络的定义与基本性质
  • 最大流 — Ford-Fulkerson方法与Edmonds-Karp算法
  • 增广路径 — 增广路径的定义与性质