这个问题是关于使用DFS查找增强路径时Ford-Fulkerson最大流量算法的时间复杂度的。
有一个众所周知的示例,显示使用DFS可能需要最大流中线性的迭代次数,例如,参见上面链接的Wikipedia页面。
但是,我对这个示例并没有真正的信服:标准DFS实现不会表现出B和C作为路径的第一个节点(使用Wikipedia页面的顶点名称)之间交替的行为。
因此,让我们施加一个非常自然的条件,即每当DFS访问节点 ,它总是以相同的顺序检查u的邻居。仍然有使用DFS的FF使用大量迭代的示例吗?
作为变体,假设我们具有附加的属性,即邻居的不同顺序与某些任意但固定的全局顶点顺序一致。这有什么区别吗?
在我看来,这是一个非常基本的问题;如果答案众所周知,我会事先道歉,但我不是流量专家,有些谷歌搜索没有发现任何问题。
编辑: 答案是肯定的,仍然有示例。看到的图2 本文。在这些示例中,具有DFS的FF进行了指数级(按顶点数计)迭代。似乎很容易证明这是紧密的,即迭代次数始终以为界(与容量的值无关)。
4
我想知道同样的问题。
—
卡·特雷维森
(1)好问题。(2)我认为不好的情况下的例子(像在维基百科)通常被引入一个原因,一些有关访问顺序的考虑是必要的,不是为了避免使用深度优先搜索的一个原因。
—
伊藤刚(Tsuyoshi Ito)
我认为如果没有这个问题的答案,我现在就不能教FF。不错!
—
Suresh Venkat
难道不是在最少的迭代次数NP-Complete中找到了最大的流量?
—
2011年