首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定流网络上的函数是否为有效流的算法

确定流网络上的函数是否为有效流的算法
EN

Stack Overflow用户
提问于 2022-03-25 03:31:13
回答 1查看 180关注 0票数 0

假设在流网络上给出了一些映射f,该映射表示为每个边上的稀疏流矩阵。是否有可能验证这种映射确实是多项式时间内的流?

也就是说,它需要满足

  1. 流网络中的每一条边都分配了一个小于容量
  2. 的正数,进入一个节点的边等于边缘,留下节点

如果我要在这个流网络上做一个BFS,我担心我会遇到这样的问题:对于DAG中的每一个边缘,我都需要遍历每一个输出边缘,我不确定这是否会花费指数时间。这能在多项式时间内完成吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-25 06:48:46

我认为你可以在O(V+E)时间内做到这一点:

  1. 对于每个顶点v在0.

处做一个计数器counter_v

  1. 对于每个边缘e,检查f(e)<= c(e) (流量小于容量)。如果不是这样,你就完事了,这不是一个有效的流程。否则,使用从counter_v1 -= f(e); counter_v2 += f(e)

ev1 -> v2,将v1的计数器按流递减,并按流增加v2的计数器:v1 -> v2

对于除和t以外的每个顶点,请检查计数器是否为0 (通过顶点的总流量为0。)。

就是这样,你检查了每一个顶点两次,每一个边一次,所以O(V+E)

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

https://stackoverflow.com/questions/71611869

复制
相关文章

相似问题

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