首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构造计算最大流的Dinic算法的水平图?

如何构造计算最大流的Dinic算法的水平图?
EN

Stack Overflow用户
提问于 2018-02-12 12:37:53
回答 1查看 1.1K关注 0票数 1

我正在阅读迪尼奇算法来解决最大流问题,该算法对给定源S和接收器T的图G说明如下:

  1. 将每个边的流设置为0。
  2. 从Gf构造级别图GL (其中Gf是残差图)
  3. 在GL中查找阻塞流
  4. 添加增强流,然后返回到2

在网上进行了一些研究之后,我了解了GL是如何计算的,前提是T位于最后一个水平,或者T是离S最远的跳数。

但是,我不明白当点离S比T离S更远时,是如何做到这一点的。

例如,在下面的图像中,我理解如何为图1中显示的残差图Gf构造GL,但是我不确定如何为图2中显示的残差图GL绘制级别图GL。

有人能帮我理解一下是怎么做到的吗?

图片:

EN

回答 1

Stack Overflow用户

发布于 2018-02-12 12:48:43

要计算水平图,在每一步,您必须采取所有的顶点没有任何前身,然后删除这些顶点为下一步。因此,在第二个示例中,您有以下内容:

  • 步骤0: s位于0级(剩余图是由顶点A、B、C、D、E、F、T诱导的图)
  • 步骤1: A和B位于1级(剩余图是由顶点C、D、E、F、T诱导的图)
  • 步骤2: C和D位于2级(剩余图是由顶点E、F、T诱导的图)
  • 步骤3: e位于第3级(剩余图是由顶点F和T诱导的图)
  • 步骤4: F位于第4级(剩余图为单节点T)
  • 步骤5: t在5级

你不能在第三步取T,因为从F到T还有一个弧线。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48746680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档