17

Does there exist a flow graph that always requires flow to be pushed back no matter what ordering of augmenting paths is chosen in Ford Fulkerson?

Let's assume we use the standard procedure of repeating this step:

  1. Find an augmenting path $p$ in residual graph $G_R$ of $G$.
  2. Let $c$ be the minimum capacity edge in $p$.
  3. Increase the flow on every edge in $p$ by $c$.
  4. Update $G_R$.

The key here is step 1, where select augmenting paths. For many graphs, if we had an oracle to tell us which augmenting paths to use, we would never need to push flow back. I'm am curious if there is a case for which, regardless of augmenting paths and their orders, we will always be required to "push flow back". To clarify what I mean:

To push flow back in $G$, means to increase the flow on an edge $(u,v)$ in $G_R$ such that edge $(v,u)$ exists in $G$.

If this is not possible, I would also be interested in a proof that such ordering of augmenting paths always exists? If it is possible, does it generalize to any number of nodes $n$? This question is alluded at in the ending sentences of this answer, but provides no proof.

My initial thoughts were that this would be a trivial proof. However, there are many times when the optimal flow along an augmenting path may not be equivalent to its minimum capacity edge. Since (by step 3) we require paths to be filled to their minimum capacity, we cannot easily meet this. My next thought would be that there should exist at least one augmenting path such that its max flow is equivalent to its minimum capacity edge. This is obvious by the Max flow min cut Theorem, but I am not sure how this would apply to the proof. With this, we may be able to get an inductive proof that it is always possible, but I am really unsure of this strategy as well.

John L.
  • 39,205
  • 4
  • 34
  • 93
ryan
  • 4,533
  • 1
  • 16
  • 41

4 Answers4

7

There is a network that forces Ford-Fulkerson to push flow back.

Intuition

Consider executing Ford-Fulkerson (FF) on any flow network where all edges capacities are at least 2. No matter how FF chooses the path in the first iteration, it will send at least 2 units of flow along the path. If it never pushes flow back in subsequent iterations, then the final flow will have an $s$-$t$ path with flow 2 or more on every edge.

It follows that, if FF can always execute without pushing back flow, then every flow network with minimum capacity 2 has a max flow that sends at least 2 units of flow along some $s$-$t$ path.

On the other hand, it's not hard, using just edges of capacities 2 and 3, to force some edges to carry exactly 1 unit of flow in any max flow (in order to fill a 1-unit gap in some capacity-3 edge that is fed, or drained, by a capacity-2 edge). We use this idea to create a flow network where the edges that are forced to carry 1 unit of flow form an $s$-$t$ cut, so that no max flow can send 2 units of flow along any $s$-$t$ path.

The network

  • Each edge $e$ is labeled with $f^*_e/c_e$ where $f_e^*$ is a flow value and $c_e$ is the edge capacity.

  • Each edge capacity is in $\{2,3,\infty\}$.

  • The flow $f^*$ saturates every finite-capacity edge and sends 1 unit on every other edge.

Verification

Lemma 1. The flow $f^*$ shown is the unique max flow.

Assuming Lemma 1 for a moment, let's verify the example:

Lemma 2. Every execution of Ford-Fulkerson on this network pushes some flow back.

Proof of Lemma 2.

  1. Every capacity is at least 2, so the first iteration of Ford-Fulkerson must send at least 2 units of flow along some $s$-$t$ path $p$.
  2. But every such path crosses an edge that has just 1 unit of flow in $f^*$ (such edges form an $s$-$t$ cut).
  3. So, to arrive at $f^*$, Ford-Fulkerson must at some point cancel flow on an edge in $p$. $~~~\Box$

Proof of Lemma 1.

  1. Consider any max flow $f$.

  2. Every finite-capacity edge is on a min-capacity cut (of capacity 7), so $f$ saturates every finite-capacity edge.

  3. Consider the edge $e=(A, C)$. It forms a cut with three capacity-2 edges: $(S, C)$, $(D, H)$, and $(B, F)$. No edges cross backwards across this cut, and seven units of flow must cross the cut. So $(A, C)$ must have 1 unit of flow across it.

  4. Similar reasoning holds for every other infinite-capacity edge. Here is a table showing, for each infinite-capacity edge, the other edges in the cut that force it to have 1 unit of flow. Each column shows such an edge, with the cut that forces it below:

$(A, C)$ $(A, D)$ $(B, D)$ $(E, G)$ $(F, G)$ $(F, H)$ $(I, K)$ $(I, L)$ $(J, L)$
$(S, C), (D, H), (B, F)$ $(C, E), (S, B)$ $(S, C), (S, A), (B, F)$ $(E, I), (D, H), (B, F)$ $(C, E), (H, J)$ $(E, I), (G, K), (D, H)$ $(G, K), (L, T), (J, T)$ $(K, T), (H, J)$ $(E, I), (G, K), (J, T)$

$~~~\Box$

Neal Young
  • 993
  • 6
  • 13
1

I think it is possible to reason backwards from an optimal solution$^1$ to the order in which the paths have to be augmented to not have any pushing-back:

In the solution, for any path from the source to the sink, where the flow is larger than zero, there is at least one edge, that constrains that flow, i.e: its flow is at capacity. If it were not, there would have been an augmenting path along that path, i.e. the solution would not be optimal. Also, of the edges that are at capacity, there has to be one (or multiple) with the lowest possible capacity. Furthermore, this edge has to be part of some path between source and sink where each edge has a flow at least as high. We take such a path, call it $P_1$ and remove its 'flow capacity' from the initial graph (i.e. reduce the capacity of the edges along the path). We repeat this with the remaining graph (resulting in $P_2, P_3, \ldots, P_n$) until there is no path between source and sink remaining, where all edges have a non-zero capacity.

Then, $P_1, P_2, \ldots, P_n$ is the order in which the paths have to be chosen s.t. there is never any pushing back necessary.

$1$: This only holds for optimal solutions that have been found with the FF algorithm. E.g. in a graph where 5 edges with capacity 2 go into node X and only one edge leaves it with capacity 5, there would be a max flow where each of the 5 edges has a flow of 1/2 and the outgoing has a flow of 5/5. Then the 5/5 edge would be the lowest edge at capacity but there is no path from source to sink in that graph where each edge has a flow of 5 or more. This is no problem for the algorithm outlined above because such a max-flow solution would not be found with FF.

oerpli
  • 584
  • 3
  • 9
1

[EDIT: THERE IS A FLOW NETWORK THAT FORCES FORD-FULKERSON TO PUSH FLOW BACK! PLEASE SEE MY OTHER ANSWER.]

Here are some observations towards a collaborative solution. This is not a full answer.


Discussion

Narek's proof sketch purports to show that every maximum flow can be reached by Ford-Fulkerson (FF). The counter-example linked to by D.W. shows that this is not the case. Oerpli's approach attempts to show that every flow $f^*$ that can be reached by FF can be reached without pushing back flow, but this turns out to be false too:

Lemma 1. There is a max flow $f^*$ such that FF can produce $f^*$, but no execution of FF can produce $f^*$ without pushing back flow.

Motivated by these difficulties, Lemma 2 below gives two equivalent characterizations of OP's question that may be somewhat easier to work with. Each characterization gives a necessary and sufficient condition for the first path $p$ chosen by FF to have, in any execution that never pushes flow back. (Conversely, if every iteration chooses such a path $p$ in the current residual graph with back edges deleted, the execution never pushes flow back.)

For any path $p$, let $\delta(p) = \min_{e\in p} \textsf{capacity}(e)$ be $p$'s minimum edge capacity.

Lemma 2. The following statements are equivalent (either none holds or they all hold):

  1. Every flow network admits an execution of FF that never pushes flow back. (This is the statement that OP asks about.)
  2. Every $s$-$t$ flow network has a max flow $f^*$ and $s$-$t$ path $p$ such that $\min_{e\in p} f^*(e) = \delta(p)$.
  3. Every $s$-$t$ flow network has an $s$-$t$ path $p$ such that reducing the capacity of every edge on $p$ by $\delta(p)$ decreases the max flow value by $\delta(p)$.

Oerpli's approach conjectures that Statement 2 above holds (for some path $p$) for any flow $f^*$ that is reachable by FF, but Lemma 1 disproves that conjecture.

Conjecture

FWIW, we conjecture that a max-flow $f^*$ that satisfies Statement 2 (for some path $p$) can always be found as follows. Consider the following standard flow-decomposition-based LP for max flow as a packing problem. Let $E$ be the set of edges. Let $P$ be the set of $s$-$t$ paths. Let $P_e$ be the set of $s$-$t$ paths that contain edge $e$. $$ \begin{align} \textsf{maximize } & \sum_{p\in P} f_p \\ \sum_{p\in P_e} f_p & {} \le \textsf{capacity}(e) && (e \in E) \\ f_p & {} \ge 0 && (p\in P) \end{align} $$ Now take $f^*$ to be any optimal basic feasible solution to this LP.

Let $P_{f^*}=\{p \in P : f^*(p)\ne 0\}$ be the support of $f^*$. There are $|P_{f^*}|$ tight edge-capacity constraints that uniquely determine $f^*$ among flows with support in $P_{f^*}$. It follows that the number of edges saturated by $f^*$ is at least $|P_{f^*}|$. Although the latter property alone is not enough, it does rule out the examples linked to by D.W. and in Lemma 1.

Proof of Lemma 1

$~~~~~~~~~~~~~~~~~~~~~~~~~~~$ enter image description here

Each edge in the above flow network is labeled with its capacity. FF can first choose the path $(S, A, B, C, T)$, then the path $(S, B, A, C, T)$. It will augment the flow by 1 unit on each path. The second augmentation cancels the flow on edge $(A, B)$. The resulting maximum flow $f^*$ sends one unit along the path $(S, A, C, T)$, and one unit along $(S, B, C, T)$.

This $f^*$ cannot be reached by FF without pushing back flow on $(A, B)$. Indeed, any execution of FF that does not push flow on $(A, B)$ must choose its first path among the remaining edges, all of which have capacity 2, so will terminate after one iteration with flow of 2 units, along just one of the two paths $(S, A, C, T)$ or $(S, B, C, T)$. $~~~\Box$

Proof of Lemma 2

Statement 1 implies Statement 2, because in any execution that never pushes flow back, the path $p$ chosen in the first iteration has $\delta(p)$ units sent along its edges, and then in subsequent iterations flow is never cancelled on an edge, so $\min_{e\in p} f^*(e) \ge \delta(p)$. And by definition $\min_{e\in p} f^*(e) \le \delta(p)$.

Statement 2 implies Statement 3 because, after reducing the capacity of every edge on $p$ as described in Statement 2 with respect to some max flow $f^*$, in the resulting graph the flow $f'$ obtained from $f^*$ be reducing the flow on each edge $e\in p$ by $\delta(p)$ is feasible, and has value $|f^*| - \delta(p)$. (And no flow $g$ in the resulting graph can have a larger value, otherwise adding $\delta(p)$ units along $p$ to $g$ would give a flow in the original graph with value larger than $f^*$.)

Statement 3 implies Statement 1 as follows. As FF executes, let $f$ denote its current flow. Let $G_f$ denote the residual graph. Let $G'_f$ denote the graph obtained from $G_f$ by deleting all back edges and zero-capacity edges.

In each iteration of FF, provided that $G'_f$ has an $s$-$t$ path, make FF choose its augmenting path to be the path promised to exist in $G'_f$ by Statement 3 (applied to $G'_f$). This $p$ also exists in the residual graph $G_f$, so is a valid choice for FF.

Let $F(G)$ denote the max-flow value in a given flow network $G$. Note $G'_f$ is a subgraph of $G_f$, so $F(G'_f) \le F(G_f)$. We will show that this execution of FF maintains the invariant $$F(G'_f) = F(G_f).$$ The invariant holds trivially at the start, when $f$ is the all-zero flow. Consider any iteration that starts with the invariant true. Let $f$ and $f'$ be the flows at the start and end of the iteration, respectively. Flow $f'$ is obtained from $f$ by pushing $\delta$ units of flow along the chosen path $p$, where $\delta$ is $p$'s minimum edge capacity in $G_f$.

Because FF's termination condition is not met, $F(G_f) > 0$. So by the invariant $F(G'_f) > 0$. So $G'_f$ has an $s$-$t$ path, and $p$ is indeed chosen by applying Statement 3 to $G'_f$. So $p$ is in $G'_f$ and has minimum edge capacity $\delta$ in $G'_f$. The difference between $G'_f$ and $G'_{f'}$ is just that in $G'_{f'}$ each edge on $p$ has its edge capacity reduced by $\delta$. Now $$\begin{align} F(G'_{f'}) & {} = F(G'_f) - \delta && (\textsf{by the property of } p \textsf{ from Statement 3}) \\ & {} = F(G_{f}) - \delta && (\textsf{by the invariant } F(G'_f) = F(G_f)) \\ & {} = F(G_{f'}) && (\textsf{by the standard proof of correctness for FF}) \end{align} $$ So the invariant is maintained. As observed in the proof above, it follows that in each iteration the path is chosen from $G'_f$. Thus, this execution of FF never pushes flow back. $~~~~\Box$

Neal Young
  • 993
  • 6
  • 13
-2

It is not hard to show that every graph admits such a sequence of augmenting paths where no push-backs are needed. However, this is not the case if the augmenting paths we are looking for are necessarily shortest augmenting paths. I will sketch the idea behind the former, keeping it as an exercise for you to find an example of the later.

Let $G$ be a given graph. Let $c: E \mapsto \mathbb{Z}$ be the given function of capacities and let $f_M : E \mapsto \mathbb{Z}$ be a maximum flow in $G$ (We only need its existence and do not care how to compute it). Let us apply the method of Ford and Fulkerson on the graph $G$ where we assign the function $f_M$ as the capacities of the edges. Let $P_1, \dots P_r$ be the augmenting paths in the graph in order. We claim that these paths never introduce a push-back and that for the graph $G$ with capacities function $c$, the paths $P_i$ are augmenting path in $G$ after augmenting $P_1$ to $P_{i-1}$.

The first claim can be proven by induction over $i$, showing that for $f_i$ the flow function after $i$ steps, that $f_i < f_M$ and hence is part of the final answer and using this fact to prove the claim.

The second claim comes from the fact that each augmenting path in $G$ where the capacities are $f_M$ admits a critical edge that is also critical when the capacities are defined by the function $c$.

Note that these proofs are not formal, I only sketched the idea and I keep the task of formulizing a complete proof as an excersize for you :)

Narek Bojikian
  • 4,784
  • 1
  • 13
  • 36