From branchings to flows: a study of an Edmonds’ like property to arc-disjoint branching flows

An s -branching ﬂow f in a network N = ( D, u ) , where u is the capacity function, is a ﬂow that reaches every vertex in V ( D ) from s while loosing exactly one unit of ﬂow in each vertex other than s . Bang-Jensen and Bessy [TCS, 2014] showed that, when every arc has capacity n − 1 , a network N admits k arc-disjoint s -branching ﬂows if and only if its associated digraph D contains k arc-disjoint s -branchings. Thus, a classical result by Edmonds stating that a digraph contains k arc-disjoint s -branchings if and only if the in-degree of every set X ⊆ V ( D ) \ { s } is at least k also characterizes the existence of k arc-disjoint s -branching ﬂows in those networks, suggesting that the larger the capacities are, the closer an s -branching ﬂow is from simply being an s -branching. This observation is further implied by results by Bang-Jensen et al. [DAM, 2016] showing that there is a polynomial algorithm to ﬁnd the ﬂows (if they exist) when every arc has capacity n − c , for every ﬁxed c ≥ 1 , and that such an algorithm is unlikely to exist for most other choices of the capacities. In this paper, we investigate how a property that is a natural extension of the characterization by Edmonds’ relates to the existence of k arc-disjoint s -branching ﬂows in networks. Although this property is always necessary for the existence of the ﬂows, we show that it is not always sufﬁcient and that it is hard to decide if the desired ﬂows exist even if we know beforehand that the network satisﬁes it. On the positive side, we show that it guarantees the existence of the desired ﬂows in some particular cases depending on the choice of the capacity function or on the structure of the underlying graph of D , for example. We remark that, in those positive cases, polynomial time algorithms to ﬁnd the ﬂows can be extracted from the constructive proofs.


Introduction
Let D = (V, A) be a digraph.If e is an arc of D from a vertex v to a vertex w, we may refer to e as vw.The in-degree of a set X ⊆ V (D), denoted by d − D (X), is the number of arcs with tail outside of X and head inside of X.If X = {v}, we simply write d − D (v) instead of d − D ({v}) (omitting braces).For an integer n, we denote by [n] the set {1, . . ., n}.
A network N = (D, u) is formed by a digraph D = (V, A) with a capacity function u : A(D) → Z + .If all arcs in D have capacity λ, we simply write u ≡ λ.A flow in N is a function f : A(D) → Z + such that f (vw) ≤ u(vw), ∀vw ∈ A(D) (note that contrary to the classical definition of flows, there is no need to satisfy the conservation constraints).For a vertex v ∈ V (D), we define f + (v) = vw∈A f (vw) and f − (v) = wv∈A f (wv), that is, f + (v) and f − (v) are the amount of flow leaving and entering v, respectively.The balance vector of a flow f in a network N = (D, u) is the function b f : V (D) → Z associating each vertex v ∈ V (D) to the value f + (v) − f − (v).If b f (v) = , we may also say that v has balance .A vertex s ∈ V (D) is a source of f if f + (v) > 0 and f − (v) = 0.An (s, t)-cut on a network N = (D, c) is a bipartition (S, S = V (D) \ S) of V (D) such that s ∈ S and t ∈ S. The capacity of an (s, t)-cut is the sum of the capacities of arcs with tail in S and head in S and it is denoted by u(S, S).For other concepts on graphs and digraphs, we follow standard terminology as in [3,6].
Flows are widely studied as they allow, with a certain elegance and simplicity, modeling problems in different areas of study such as transportation, logistics and telecommunications.In the theoretical field, they are used to solve various problems in graphs and digraphs.A long list of results related to flows can be found in [1,10].In this work, we deal with one variation of the problem where, roughly speaking, k arc-disjoint flows, having in common the same source and with a prescribed balance vector, have to be found.
Since a flow in a network can be entirely described by its associated balance vector, the goal of a flow problem can be seen as finding a flow f whose balance vector respects a given set of properties.Therefore, the problem that has been considered is: given a digraph D together with a balanced vector b : V (D) → Z, does there exist a flow f in D such that b f = b?For example, in the decision version of the classical MAXIMUM FLOW problem we are given a network N = (D, u) together with a positive integer k and a pair of vertices s, t ∈ V (D), and the goal is to decide if N admits a flow f with b f (s) ≥ k such that b f (v) = 0 for all v ∈ V (D) \ {s, t} and b f (s) = −b f (t).Such a flow f is known as an (s, t)flow and, in this case, we say that f has value b f (s).This problem can be solved in polynomial time [11] (see [17,Chapter 10] for a survey on algorithms for MAXIMUM FLOW).Furthermore, by applying a simple reduction to MAXIMUM FLOW (see [3,Lemma 4.2.2]),we can solve in polynomial time any flow problem in which the aim is to find a flow g with v∈V (D) b g (v) = 0.
The possibility of considering the coexistence of flows respecting some properties in a network gives more power of modeling for this already useful tool.In [9], a more general version of the flow problem was investigated.There, the goal was to find a collection of (s i , t i )-flows that sum to a specific value r and such that the sum of all the flows in each arc respects its capacity.It was shown that this version of the problem is NP-hard since it generalizes many hard problems in the literature, including the notoriously hard DIRECTED DISJOINT PATHS problem.
Two flows f and g in a network N = (D, u) are arc-disjoint if f (vw) • g(vw) = 0, ∀vw ∈ A(D).In [2], the problem of finding arc-disjoint flows was introduced and studied.The authors considered many constraints showing that some generalize important problems, known to be hard, and that there are cases where polynomial-time algorithms are possible.Amongst other results, they showed that the following are NP-complete: the problem of deciding if there are two arc-disjoint flows in a network where all arcs have capacity one, the problem of deciding if there are two arc-disjoint flows with the same balance vectors in a network where all arcs have capacity at most 2, and the problem of deciding if there are two arc-disjoint (s, t)-flows in a network where all arcs have capacity at most two.
We say that a digraph D is an s-branching if there is a directed path from s to every other vertex in D and the underlying (i) graph of D is a tree.We also say that D has root s.There is an extensive literature concerning the study of branchings (see for example chapter 9 of [3]), given their relevance both from practical and theoretical point of view due to its numerous applications, some of which we enumerate below.A classical result by Edmonds [8] characterizes the digraphs containing k arc-disjoint s-branchings and later proofs of the same theorem done in [14,19] show polynomial-time algorithms to find such branchings if they exist.
A stronger version of this result, allowing each branching to have its own set of roots, can be seen in [17,Chapter 53].There are many applications for Edmonds' Theorem on arc-disjoint branchings: it can be used, for example, to prove Menger's Theorem [16], to characterize arc-connectivity [18], and to characterize branching cover [12].The problem of finding disjoint branchings was recently studied in the setting of temporal graphs in [20].In this paper, we consider branchings in terms of flow.
An s-branching flow in a network In other words, f reaches all vertices of D and each vertex other than s retains one unit of flow.Here, we study the problem that, given a digraph D and a source s and an integer k, aims at deciding whether there exist k arc-disjoint s-branching flows.
Related work: Finding one s-branching flow in a given network is easy: since v∈V (D) b f (v) = 0, we can reduce this problem to the problem of finding one (s, t)-flow, as discussed above.We can also find k arc-disjoint s-branching flows in polynomial time when u ≡ n − 1.In [2] it was shown that, in this case, N admits an s-branching flow if and only if D contains an s-branching.Thus, applying Theorem 1, the authors provided a characterization of networks admitting k arc-disjoint s-branching flows, which are exactly the networks constructed on digraphs containing k arc-disjoint s-branchings.They also provided a polynomial time algorithm that finds such flows if they exist.We now discuss how the tractability of this problem, in general, depends on the choice of the capacity function.
In [2], the authors showed that the problem of deciding if a network has k arc-disjoint s-branching flows is NP-complete if every arc has capacity at most two, and in [4] this result was extended to networks with capacity at most , for every fixed ≥ 2. For most choices of larger capacities, the problem remains hard.In [4] it was shown that, unless the Exponential Time Hypothesis [13] fails, there is no polynomial time algorithm for the problem of finding k arc-disjoint s-branching flows in a network N = (D, u) with u ≡ λ for any choice of λ such that n/2 ≤ λ ≤ n − (log n) 1+ε , ε > 0, even if D is acyclic.In [7] the authors adapted this last proof to show that the same holds if (log n) 1+ε ≤ λ ≤ n/2.The last two results have an intersection point, which is when u ≡ n/2.The two constructions result in the same network in this case, and it is worth noticing that it gives a polynomial time reduction.So, for u ≡ n/2, the problem is NP-hard.On the positive side, in [4] it was also shown that the problem is solvable in polynomial time when λ = n − c, for fixed k and c ≥ 1.More precisely, the authors showed that the problem is XP for (i) The underlying graph of a digraph D is the undirected graph obtained by ignoring the orientation of the arcs of D.
fixed k and c when the goal is to find k arc-disjoint s-branching flows.This was later improved to an FPT algorithm with the same parameter in [5].
In short, the results presented in the previous paragraph roughly say that the problem of deciding if a given network with u ≡ n − c contains k arc-disjoint s-branching flows admits a polynomial time algorithm for every fixed c ≥ 1, and is unlikely to admit such an algorithm for most other choices of u under reasonable complexity hypothesis.Thus, any general characterization of networks admitting such flows must also be hard to verify.In the following, we extend to s-branching flows the property characterizing networks containing k arc-disjoint s-branchings, which was originally proposed in [7], .
For a vertex s ∈ V (D) and two non-negative integers k, λ, we say that If N = (D, u) with u ≡ λ is a network constructed on such a digraph, we may also say that N is (k, λ, s)-sufficient.
It is not hard to visualize the relationship between this property and the one in the statement of Theorem 1: if λ = n − 1, then every arc of D has enough capacity to send as many units of flow as needed to reach any set X ⊆ V (D).Thus, capacities are not an issue and Inequality 1 states that For other choices of λ, note that every s-branching flow on N must reach a set of vertices X with at least |X| units of flow to cover it.Thus each s-branching flow in N uses at least |X|/λ arcs to cover X.More formally, the following was proved.
Our contributions: In Section 2, we show how to construct a family of a (k, λ, s)-sufficient networks not containing k arc-disjoint s-branching flows.On the positive side, we show that some positive cases of sufficiency do occur depending on the structure of D and on the choice of k and λ.
In Section 3, we show that (k, λ, s)-sufficiency guarantees the existence of k arc-disjoint s-branching flows in a network N = (D, u) when D is an s-branching where parallel arcs are allowed, and when D is a collection of internally disjoint multi-paths starting at s and all ending on the same vertex t ∈ V (D).In other words, the flows are guaranteed to exist when the underlying simple graph of D is a tree or a spindle, and thus the considered property characterizes the existence of the flows in those classes of networks.Additionally, we show that we also have this guarantee in general digraphs when k = 1, when λ = 1, and when λ = |V (D)| − 2. Finally, we show that, for a network N = (D, u) with u ≡ λ and an integer p satisfying pλ In Section 4, we show that the analyzed property is not enough to improve the tractability of the problem of finding the desired flows.Namely, we show that it is NP-complete to decide if a network N admits k arc-disjoint s-branching flows even if its underlying simple graph is constructed by appending a path to the end of a spindle and we know beforehand that N is (k, λ, s)-sufficient.Since this property can be easily verified in this class and it is always necessary for the existence of the flows, it is no surprise that it is not enough to guarantee the existence of the k arc-disjoint s-branching flows.
In Section 5 we close the paper with some open questions.We remark that polynomial time algorithms to find the flows can be extracted from the provided constructive proofs of the aforementioned results.
2 Networks on (k, λ, s)-sufficient digraphs not containing the flows In Figure 1 we give an example of a (2, n − 3, s)-sufficient network that does not contains 2 arc-disjoint s-branching flows, and we show that it can be generalised to (2, n − c, s)-sufficient networks, for every fixed c ≥ 3 (Theorem 2).Thus the best that we can expect is that every (2, n − 2, s)-sufficient network contains the desired s-branching flows.In Section 3 we show that this is indeed true for general networks (c.f.Theorem 9).
Now we show that N does not admit 2 arc-disjoint s-branching flows.Observe that each flow can use at most one arc from A to B, by the size of A and the capacity of the arcs (specially the arcs leaving s to A).So, there is a vertex v in B that must be reached by each flow through an arc coming from s, but there is only one arc from s to v.
Next, we show how to construct a family of (k, λ, s)-sufficient networks that do not contain k arcdisjoint s-branching flows.
Theorem 3.For all λ ≥ 2 and for all even k ≥ 2, there exists a (k, λ, s)-sufficient network N = (D, u), with u ≡ λ, that does not admit k arc-disjoint s-branching flows.
Proof: Given an even k ≥ 2 and λ ≥ 2, start the construction of N by adding the vertices s, a, b, c and d then add an arc from s to every other vertex along with the arcs ab, ac, bd, and cd.Subdivide the arc bd (cd) λ−2 times and let B (C) be the union of {b} ({c}) and the set of vertices obtained by the subdivisions of bd (cd) (note that if λ = 2 nothing changes at this step, which means that B = {b} and C = {c}), and then double the arcs between vertices of B (C).Let P be a path with λ vertices and denote by e and f , respectively, the first and last vertex of P .Triple the first λ − 2 arcs of P and double the last one (the one that enters f ).After that, add P to D along with the arcs de, f a and two parallel arcs se.To complete the construction, replace each arc by k/2 copies of itself and set u ≡ λ.See Figure 2.  Here, we say that a set To prove that D is (k, λ, s)-sufficient, we consider the case where k = 2 because for a larger k we multiply the in-degree of each subset of V (D) − s by k/2.Observe that, except for s, every vertex has in-degree at least 2 in D and that for every X ⊆ V (D) − s each vertex from {a, b, c, d} which belongs to X sums at least one unit to its in-degree and the vertex e sums to two.Consider a set X ⊆ V (D) − s.If D[X] has a cycle, then d − D (X) ≥ 5, once X necessarily contains a, d, P and either B or C (or both), but its also true that |X| ≥ 2λ + 1, which means that should be at least one extra arc entering in X for it to be satisfied.To verify the existence of this extra arc assume without loss of generality that B ⊂ X (the case where C ⊂ X is symmetric) and take the longest (z, d)-path in D[X] such that z ∈ C. If no such path exists, there is at least one arc going from C to d which was not counted before and if the path exists, then either z = c or the two arcs yz enters X, where y is the in-neighbor of z which, by the choice of z, cannot be in X.Now consider that D[X] is acyclic.Note that each source in D[X] contributes with at least two units in the in-degree of X.Since each weak component of D[X] has at least one source, then every X with |X| ≤ λ is satisfied.Similarly, the same also holds when λ < |X| ≤ 2λ if D[X] has more than one weak component or only one component with many sources.Otherwise D[X] has only one weak component W with a single source w, and we have 5 cases: • w ∈ B. Observe that in this case {d, e} ⊂ X, once that |X| ≥ λ + 1 and |B| = λ − 1, which means that d − D (X) ≥ 5.
• w ∈ C. It's analogous to the previous one.
A study of an Edmonds' like property to arc-disjoint branching flows 7 • w = a.In this case, there are at least two vertices from {b, c, d} in X.That is, d − (X) ≥ 4.
• w = d.If d is the source, then e ∈ X, and thus d − D (X) ≥ 5. • w ∈ V (P ).Except for f , every vertex of P has in-degree three and since X must contains a, then d − D (X) ≥ 4. When w = f , besides a, X must also contains at least one vertex from {b, c} which guaranties d − D (X) ≥ 4. When 2λ + 1 ≤ |X| ≤ 3λ, the in-degree of X must be at least 6.We start with the case that D[X] has just one weak component.If w is a source in D[X], again we have 5 subcases: • w ∈ B. In this case, since |B∪{d}| = λ, either there is a vertex in C which is also a source in D[X] or a ∈ X.In both situations, d, e ∈ X because |B ∪ C| < 2λ.Thus, d − D (X) ≥ 6. • w ∈ C. It's analogous to the previous one.
• w = a.Once |{a, d} ∪ B ∪ C| = 2λ, if a is a source, there is a path in D[X] that starts in a, goes through B or C, d and ends in some vertex of P .
• w = d.When d is a source, for sure {a, b, c, d, e} ⊂ X.
• w ∈ V (P ).Here, in order to avoid cycles, we know that if w = f , necessarily a, b, c and d are also included in X and if w = f , at least a, b and c are included in X but, in this case, w already contributes with 3 for the in-degree of X.Thus d − D (X) ≥ 6.If D[X] has more than 2 weak components, we already know that d − D (X) ≥ 6.If D[X] has two weak components Y, Z, one of them, say Y , has at least λ + 1 vertices and hence, as in the previous cases, Notice that if there are k arc-disjoint s-branching flows x 1 , x 2 , . . ., x k in N , as d − D (B) = d − D (C) = k, each one of these k arcs has to be used by a different flow, and carry at least λ − 1 units of flow, that is, one unit for each vertex of B and C. Now observe that k/2 of the arcs which enter in B come from a and the same for the ones that enter C, and then a must receive λ units of flow on each of it's k incoming arcs in order to send the proper amount of flow to B and C. Assume without loss of generality that the k/2 copies of sa are going to be used by x 1 , x 2 , . . ., x k/2 and the k/2 copies of f a are left for x k/2+1 , x k/2+2 , . . ., x k .Since the in-degree of f is also equal to k, f can receive at most λ units of flow of each x 1 , x 2 , . . ., x k and hence it can send at most λ − 1 units of any of these flows to a. Therefore, N does not admit k arc-disjoint s-branching flows.

Networks on (k, λ, s)-sufficient digraphs containing the flows
In this section, we show some positive results regarding (k, λ, s)-sufficiency.We remark that the constructive proofs of those results can be naturally adapted to polynomial-time algorithms to find the desired flows in those networks.
We say that a digraph D = (V, A) is a multi-branching if D is an out-branching when we ignore its parallel arcs and, for ≥ 1, we denote by D the class of multi-spindles.That is, the class of digraphs formed by a source vertex s, a sink vertex t, pairwise internally vertex-disjoint multi-paths P 1 , . . ., P from s to t, each with p i ≥ 1 internal vertices, 1 ≤ i ≤ , respectively.See Figures 3(a  The following result is useful for proving Theorem 4. Lemma 1.Let D be a (k, λ, s)-sufficient digraph and let W be a nonempty subset of Proof: Since w is the unique vertex of W which has in-neighbours in V (D)\W , then we have Proof of Theorem 4: We are going to use induction on the height h of the multi-branching D with root s to construct k arc-disjoint s-branching flows f 1 , f 2 , . . ., f k in N .The base case is h = 1.In this case D is a star and, since it is (k, λ, s)-sufficient, there are at least k arcs from s to every other vertex and we can use one arc for each flow f j , for j ∈ [k].
Induction step: Suppose that the statement holds for multi-branchings of height h < q.Assume that D has height q and let r 1 , r 2 , ..., r p be the out-neighbours of s in D.
Let B ri be the subgraph of B s that is a multi-branching with root r i , for each i ∈ [p].Observe that, by Lemma 1, B ri is (k, λ, r i )-sufficient and has height h i ≤ q − 1, thus, by induction hypothesis, B ri and then we can use of these arcs to send the proper amount of flow from s to r i on each x j to complete the k s-branching flows.
Since a multi-path is also a multi-branching, Theorem 4 generalizes the result of [7] for multi-paths.
Proof: Let D be a digraph in D that is (k, λ, s)-sufficient.By definition, D is composed by the multipaths P 1 , P 2 , . . ., P and V (P i ) ∩ V (P j ) = {s, t} for every 1 ≤ i < j ≤ .We denote the p i internal vertices of would contradict the fact that D is (k, λ, s)-sufficient, since the only arcs entering in it are those arriving at v i j .Considering only the vertices with an index multiple of λ, that is, the vertices v i jλ for every 1 ≤ j ≤ p i /λ , let we define e i as the number of arcs from v i 1 to t and m i = min{r(P i ), Assume without loss of generality that P 1 , P 2 , . . ., P q are the paths on which r Since D is (k, λ, s)-sufficient and Combining ( 2) and ( 3) we conclude that k ≥ k.To finally construct the k arc disjoint branching flows, we need the following claim.Claim 1.There are k arc-disjoint flows x i 1 , . . ., x i k on the network N i = (P i , u), with u ≡ λ, such that x i 1 , . . ., x i mi are branching flows in N i and x i mi+1 , . . ., x i k are branching flows in N i − t.Proof.We show how to construct the flows x i 1 , x i 2 , . . ., x i k .For every j ∈ [p i ], the vertex v i j must receive j +1 units of flow on the first m i flows and j units on remaining k −m i flows.Since we can use a distinct group of j/λ arcs to send j units of flow on each one of the k flows and we only have to argue how to send the extra unit for the flows x i 1 , . . ., x i mi .If j is a multiple of λ, then there are at least another r(P i ) extra arcs entering v i j and since m i ≤ r(P i ) they can be used to send the extra units (note that, if r(P i ) = 0 then m i = 0 and no extra unit is needed).Otherwise, j is not multiple of λ and when we send j units of flow through j/λ arcs, there is an arc that will not be used in the maximum capacity and so we can use it to send the extra unit.Applying this method iteratively from v i pi to v i 1 , we arrive at v i 1 with 2 units of flow on the flows x i 1 , . . .x i mi and we can send the extra unit of each flow to t because m i ≤ e i .♦ For each i ∈ [ ], we compute the flows x i 1 , x i 2 , . . ., x i k as in the Claim 1. Observe that k is the number of flows that reach t.If k = k, then we can rename these k flows in such a way that each x j = i=1 x i j is an s-branching flow on N .Finally, if k > k, we take a flow that reaches t and we modify it so that it doesn't reach t anymore, and we repeat this process until there are only k flows that reach t.
It is worth to notice that the above proofs for multi-branchings and multi-spindles together with Proposition 1, besides giving a complete characterization of the digraphs in these classes having k arc-disjoint branching flows, they lead to polynomial-time algorithms to find such flows, once testing the (k, λ, s)sufficiency for multi-branchings and multi-spindles can be done in polynomial time.The algorithms work for every value of λ, even those for which the problem of finding k arc-disjoint branching flows is known to be hard in general.
We now consider the cases of k or λ with value 1 and for that we need the three following results.
Theorem 6 (Max-flow min-cut).In any network N = (D, u) with source s and sink t, the value of a maximum flow is equal to the capacity of a minimum cut.
Theorem 7. [2] Let k be an integer and N = (D, u) be a network with u ≡ 1 and a prescribed balance vector b such that b ≡ 0. There exist k arc-disjoint flows in N , all with balance vector b, if and only if N has a flow f with balance vector b f ≡ kb.Hence, one can decide the existence of these flows in polynomial time.
Lemma 2 (Adapted from [3]).Given a network N = (D, u) and a prescribed balance vector b.Let M = v:b(v)>0 b(v) and let N = (D , u ) be a network defined as follows: Then, N admits a flow f with balance b if and only if N admits a (s , t )-flow f with value M .Similarly to the previous case, we conclude, by the Lemma 2, that N admits a flow f with balance b f .As k = 1, we have that f is a branching flow and the result follows.
We also show that networks on (2, n − 2, s)-sufficient digraphs contain 2 arc-disjoint s-branching flows.This is a slightly improvement on the result by [2] when k = 2, which states that Edmonds' characterization of digraphs containing 2 arc-disjoint s-branchings also characterizes the existence of 2 arc-disjoint s-branching flows., green the arcs used by B g , and black the arcs of D not used by any of those branchings (observe that every vertex in V (D) \ {s} is the head of exactly one blue and exactly one green arc).The idea is to construct the desired s-branching flows using the arcs of B b and B g .This will be possible unless we are forced to send n − 1 units of flow through an arc, which can only happen from an arc that leaves s.In this particular case, we show how to modify the branchings to avoid the problem.Thus we can assume w.l.o.g. that every out-neighbour of s in D is either blue or green and, from such arcs, exactly one is blue (sr b ) and the remaining are green.Notice that, since d − D (V (D) \ {s}) ≥ 4, there must be at least three green arcs from s to D \ {s}.
Since B g is a s-branching, r b appears in only one B g i , and let us consider a r g j for which B g j = B g i .Except for sr g j , there are no green arcs entering or leaving B g j .Then, let E be the set of blue arcs entering V (B g j ) together with all blue arcs between vertices in V (B g j ).We now recolour blue the arcs in A(B g j ) ∪ sr g j and yellow the arcs in E. After this recolouring, a vertex w = s is the head of exactly one blue arc and one yellow arc if it is in V (B g j ), otherwise it is still the head of exactly one blue and one green arc.This means that the vertices of V (D) along with the blue arcs will form a s-branching B b .In particular, there are two blue arcs leaving s in B b and we can construct the branching flow f b as before.
We now recolour the arcs of E green.Again, we have the guarantee that every vertex in B g j has exactly one green arc arriving at it (the former yellow arcs), and, since the green arcs outside A(B g j ) ∪ sr g j remain unaltered, the new set of all green arcs also form a s-branching B g .Once more, we have at least two arcs leaving s in B g , and we can construct f g as before.
We remark that, by a result of [4], deciding if a network with u ≡ n − 2 admits arc-disjoint flows can be done in polynomial time.Since Theorem 9 completes the proof that a network is (2, n − 2, s)-sufficient if and only if it admits 2 arc-disjoint s-branching flows (together with Proposition 1), we get that it can be decided in polynomial time whether a digraph is (2, n − 2, s)-sufficient.

Fig. 1 :
Fig. 1: Example of a network on a (2, n − 3, s)-sufficient digraph that does not contain 2 arc-disjoint s-branching flows.Here every arc has capacity n − 3.

Theorem 2 .
For every c ≥ 3, there exists a (2, n − c, s)-sufficient network N which does not admit 2 arc-disjoint s-branching flows.Proof: Let N be a network as in Figure1, considering that B has exactly c vertices and |A| = n − c − 1, with each of the last c vertices of A connected to a different vertex of B. First, we show that N is (2, n − c, s)-sufficient.For any set X ⊆ V (D) \ {s}, let a = |X ∩ A| and b = |X ∩ B|.Thus, |X| = a + b.

Fig. 2 :
Fig. 2: Counter-example for k = 2 and λ ≥ 2 ) and 3(b) for an example of a multi-branching and an example of a multi-spindle, respectively.

Theorem 8 .
Let D be a (k, λ, s)-sufficient digraph.Then, if λ = 1 or k = 1, the network N = (D, u) with u ≡ λ admits k arc-disjoint s-branching flows.Proof: We start by showing a result that is common to both cases.Let b f be the following balance vector: b f (s) = k(n − 1) and b f (v) = −k, for all v ∈ V (D) − s, where n = |V (D)|.Let N be the network obtained from N and b f , as described in Lemma 2, and (S, S) be a minimum (s , t )-cut in N .We show that u(S, S) = k(n − 1) which, by the Theorem 6, implies that there is a (s , t )-flow with value k(n − 1) in N .Remark that, by construction of N , u (s s) = k(n − 1), u (vt ) = k for every v ∈ D \ s and u (a) = λ for every a ∈ A(D).It is easy to see that u(S, S) ≤ k(n − 1) because u(s , V (D ) − s ) = k(n − 1).Then, we might assume that s ∈ S and we define X = S \ {t }.It follows that u(S, S) = u(S, X) + u(S, {t }) = λd − D (X) + k(n − |X| − 1).(4) Case λ = 1.Since D is (k, 1, s)-sufficient, d − D (X) ≥ k|X| and resuming (4), we have u(S, S) ≥ k|X| + k(n − |X| − 1) = k(n − 1).Thus, u(S, S) = k(n − 1) and, by the Lemma 2, N admits a flow with balance b f .The result follows from Theorem 7 which states that N admits k arc-disjoint s-branching flows if and only if it admits a single flow f with balance b f .Case k = 1.Here, D is (1, λ, s)-sufficient, which means that d − D (X) ≥ (|X|/λ), and so λd − D (X) ≥ |X|.Replacing this in (4), we obtain u(S, S) ≥ |X| + n − |X| − 1 = n − 1.Thus, u(S, S) = k(n − 1).

Theorem 9 .
Let N = (D, u) be a (2, n − 2, s)-sufficient network with u ≡ n − 2. Then N admits 2 arc-disjoint s-branching flows.Proof: Since N = (D, u) is a (2, n − 2, s)-sufficient network, then for every X ⊂ V (D) \ {s} we have d − D (X) ≥ 2, and for X = V (D) \ {s} we have d − D (X) ≥ 4. By Edmonds' Theorem, D has two arc-disjoint s-branchings.Let us call these s-branchings B b and B g and let us colour blue the arcs used by B b

Let r b 1 ,
. . ., r b be the out-neighbours of s in B b and let B b 1 , . . ., B b be the maximal sub-branchings of B b \ {s} with roots r b 1 , . . .r b , respectively.If > 1, then we can construct a branching flow f b from B b by sending |B b i | units of flow through sr b i , for 1 ≤ i ≤ , which is possible because u ≡ n − 2. The same applies to B g and we will exchange b to g in the above notation when it concerns B g in the rest of the proof.If s has only one out-neighbour r b in B b , but there is a black arc sv, we can construct f b from B b ∪ sv.We have to consider two cases: if v = r b , let uv ∈ A(B b ) and let B b v be the maximal connected subgraph of B b \ {u} with root v. Then we send |B b v | units of flow through sv and |B b \ {s}| − |B b v | through sr b .Otherwise, v = r b and we have two copies of the arc sv.So we can send 1 unit of flow through one and n − 2 through the other.In both cases, for the remaining blue arcs, we just need to adjust the proper amount of flow.The same applies to B g .