【问题标题】:Is network flow pseudo-polynomial time?网络流是伪多项式时间吗?
【发布时间】:2013-11-08 01:34:00
【问题描述】:

我们知道正常的背包问题具有伪多项式时间,因为 O(nW) 的运行时间。我想知道网络流的运行时间是否是伪多项式时间,因为使用 Ford-Fulkerson 算法的网络流的运行时间是 O(Cm)(m 表示边数,C 表示从起点离开的边的容量总和) ?

【问题讨论】:

  • 伪多项式的概念几乎完全取决于时间复杂度由输入的长度决定的事实。在这种情况下,如果您有一组以二进制表示的容量,那么将该组容量增加一位可能会以指数方式增加C。从这个意义上说,对于输入中的单个“单位”增加,该算法的运行时间呈指数增长。我会说它是伪多项式。

标签: algorithm big-o time-complexity max-flow


【解决方案1】:

是的,Ford-Fulkerson 算法是一种伪多项式时间算法。它的运行时间是 O(Cm),其中 C 是离开起始节点的容量之和。由于写出数字 C 需要 O(log C) 位,因此此运行时确实是伪多项式,但实际上不是多项式。

对于最大流量确实存在强多项式时间算法,例如 push-relabel 算法,它在 O(n3) 时间内运行。

希望这会有所帮助!

【讨论】:

  • 此类问题属于复杂性等级 P 还是 NP 完全问题?站点cs.yale.edu/homes/aspnes/pinewiki/MaxFlow.html 显示运行时间为 O(E^2 U)。你的解决方案和这个网站有什么区别?
  • @LearningToCode 我给出的界限比他们列出的要紧一些。他们是正确的,切割的最大尺寸不大于 EU,但是您可以通过注意到仅删除 s 形成的切割具有最多 C 的容量(在我的符号中)来给出更严格的界限。至于这个问题是P还是NP完全的,因为我们有max-flow的算法,它的运行时间是强多项式(不是伪多项式),所以max-flow问题肯定在P中。它可能也是NP完全的,但没有人知道,因为我们不知道 P = NP。 (续...)
  • @LearningToCode 请记住,只有 problems 可以是 P 或 NP,而不是 algorithms。
猜你喜欢
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-26
  • 1970-01-01
  • 2015-02-20
  • 2021-10-20
相关资源
最近更新 更多