Given a directed graph D = (V; A) and a set S V , a bibranching is a set of arcs B A that contains a v{(V n S) path for every v 2 S and an S{v path for every v 2 V n S. In this paper, we describe a primal-dual algorithm that determines a minimum weight bibranching in a weighted digraph. It has running time O(n 0 (m + n log n)), where m = jAj, n = jV j and n 0 = minfjSj; jV n Sjg. Thus, our algorithm obtains the best known bounds for two important special cases of the problem: bipartite edge… CONTINUE READING