Min Cost Flow: Polynomial Algorithms Overview • Recap: •Min Cost Flow, Residual Network •Potential and Reduced Cost •Polynomial Algorithms •Approach •Capacity Scaling • Successive Shortest Path Algorithm Recap • Incorporating Scaling •Cost Scaling • Preflow/Push Algorithm Recap • Incorporating Scaling •Double Scaling Algorithm - Idea Min Cost Flow - Recap • G=(V,E) is a directed graph • Capacity u(v,w) for every (π£, π€) ∈ πΈ • Balances: For every π£ ∈ π we will have a number b(v) • Cost c(v,w) for every π£, π€ ∈ πΈ • can assume non-negative v1 4,1 5,1 5 v3 1,1 3,4 -2 v5 v2 3,3 -3 v4 Min Cost Flow - Recap Compute feasible flow with min cost ο₯ xij cij Residual Network - Recap • We replace each arc π, π ∈ πΈ by two arcs π, π and (π, π). • The arc (π, π) has cost πππ and residual capacity πππ = π’ππ − π₯ππ . • The arc (π, π) has cost πππ = −πππ and residual capacity πππ = π₯ππ . • The residual network consists only of arcs with positive residual capacity. • A For a feasible flow x, G(x) is the residual network that corresponds to the flow x. Reduced Cost - Recap • Let π: π → π be a potential function of the nodes in V. • Reduced cost: of an edge (u,v) : π =π ππ’,π£ π’,π£ − π π’ + π(π£) Reduced Cost - Recap • Theorem (Reduced Cost Optimality): A feasible solution x* is an optimal solution of the minimum cost flow problem ο Exists Node potential function π that satisfies the following reduced cost optimality conditions: π ∀ π’, π£ ∈ πΊ π₯ ∗ : ππ’,π£ ≥0 • Idea: No negative cycles in G(x*) Min Cost Flow: Polynomial Algorithms Approach • We have seen several algorithm for the MCF problem, but none polynomial – in logU, logC. • Idea: Scaling! • Capacity/Flow values • Costs • both • Next Week: Algorithms with running time independent of logU, logC • Strongly Polynomial • Will solve problems with irrational data Capacity Scaling Successive Shortest Path - Recap • Pseudo-Flow – Flow which doesn’t necessarily satisfy balance constraints • Define imbalance function e for node i: π₯ππ − π π =π π − π: π,π π₯ππ π: π,π • Define E and D as the sets of excess and Deficit nodes. • Observation: π(π) = − π∈πΈ π(π) π∈π· Successive Shortest Path - Recap • Lemma: Suppose pseudoflow x has potential π, satisfying reduced cost optimality. Letting d be the vector of distances from some π node s in G(x) with πi,j as the length of (i,j), then: • Potential π ′ = π − d also satisfies optimality conditions π′ • πi,j = 0 for edges in shortest paths from s. • Idea: triangle inequality Successive Shortest Path - Recap • Algorithm: • Maintain pseudoflow x with pot. π, satisfying reduced cost optimality. • Iteratively, choose node s with positive excess – e(s) > 0, until there none. • compute shortest path distances d from s in π G(x) with πi,j as the length of (i,j). • Update π ′ = π − d. also satisfies optimality conditions • Push as much flow as possible along path from s to some node t with e(t) < 0. (retains optimality conditions w.r.t. π ′ ). Successive Shortest Path - Recap • Algorithm Complexity: • Assuming integrality, at most nU iterations. • In each iteration, compute shortest paths, • Using Dijkstra, bounded by O(m+nlogn) per iteration Capacity Scaling - Scheme • Successive Shortest Path Algorithm may push very little in each iteration. • Fix idea: use scaling • Modify algorithm to push ο units of flow • Ignore edges with residual capacity < ο • until there is no node with excess ο³ο or no node with deficit ο³ο • Decrease ο by factor 2, and repeat • Until ο < 1. Definitions • Define S β = π: π π ≥ β - nodes with access at least ο T β = π: π π ≤ −β - nodes with deficit at least ο • The ο-residual network G(x, ο) is the subgraph of G(x) with edges with residual capacity at least ο. 3 4 1 G(x) 3 3 2 4 3 Definitions • Define S β = π: π π ≥ β - nodes with access at least ο T β = π: π π ≤ −β - nodes with deficit at least ο • The ο-residual network G(x, ο) is the subgraph of G(x) with edges with residual capacity at least ο. 3 4 G(x, 3) 3 3 4 3 Main Observation in Algorithm • Observation: Augmentation of ο units must start at a node in S(ο), along a path in G(x, ο), and end at a node in T(ο). • In the ο -phase, we find shortest paths in G(x, ο), and augment over them. • Thus, edges in G(x, ο), will satisfy the reduced optimality conditions. • We will consider edges with less residual capacity later. Initializing phases • In later ο-phases, “new” edges with residual capacity ο ο£ rij < 2ο may be introduced to G(x, ο). π • We ignored them until now, so possibly πi,j <0 • Solution: saturate such edges. i j Capacity Scaling Algorithm Capacity Scaling Algorithm Initial values. 0 pseudoflow and potential (optimal!) Large enough ο Capacity Scaling Algorithm In beginning of ο-phase, fix optimality condition on “new” edges with resid. Cap. ο ο£ rij < 2ο by saturation Capacity Scaling Algorithm augment path in G(x,ο) from node in S(ο) to node in T(ο) Capacity Scaling Algorithm Correctness • Inductively, The algorithm maintains a reduced cost optimal flow x w.r.t. π in G(x, ο). • Initially this is clear. • At the beginning of the ο-phase, “new” arcs s.t. ο ο£ rij < 2ο are introduced, may not satisfy optimality. π Saturation of edges such that πi,j < 0 suffices, π π since the reversal satisfies πj,i = −πi,j > 0. • Augmenting flow in shortest path procedure in G(x, ο) retains optimality Capacity Scaling Algorithm Correctness • When ο=1, G(x, ο) = G(x). • The algorithm ends with π 1 = π, or π 1 = π. • By integrality, we have a feasible flow. Capacity Scaling Algorithm Assumption • We assume path from k to l in G(x, ο) exists. • And we assume we can compute shortest distances from k to rest of nodes. • Quick fix: initially, add dummy node D with artificial edges (1,D) and (D,1) with infinite capacity and very large cost. Capacity Scaling Algorithm – Complexity • The algorithm has O(log U) phases. • We analyze each phase separately. Capacity Scaling Algorithm – Phase Complexity • Let’s assess the sum of excesses at the beginning. • Observe that when ο-phase begins, either π 2β = π, or π 2β = π. E D Thus the sum of excesses (= sum of deficits) is less than 2πβ Capacity Scaling Algorithm – Phase Complexity – Cont. • Saturation of edges in the beginning of the phase saturate edges with rij < 2ο. This may add at most 2πβ to the sum of excesses Capacity Scaling Algorithm – Phase Complexity – Cont. • Thus the sum of excesses is less than 2(π + π)β • Therefore, at most 2π + 2π augmentations can be performed in a phase. • In total: O π β (π + πππππ) per phase. Capacity Scaling Algorithm – Complexity • O π β (π + πππππ) per phase. ο¨ O ππππ β π β (π + πππππ) Cost Scaling Approximate Optimality • A pseudoflow (flow) x is said to be ο₯optimal for some ο₯>0 if for some pot. π, π πi,j ≥ −π for every edge (i,j) in G(x). Approximate Optimality Properties • Lemma: For a min. cost flow problem with integer costs, any feasible flow is C-optimal. In addition, if ε < 1/π, then any ο₯optimal feasible flow is optimal. • Proof: • Part 1 is easy: set π = 0. • Part 2: for any cycle W in G(x), π π = π π i,j π i,j ≥ −ππ > −1. applying integrality, it follows follows. b 4 a π πi,j -5 c -2 3 d ≥ 0. The lemma Algorithm Strategy • The previous lemma suggests the following strategy: 1. Begin with feasible flow x and π = 0, which is C-optimal 2. Iteratively improve from and ο₯-optimal flow (x, π) to an ο₯/2-optimal flow (x’, π′), until ο₯ < 1/n. • We discuss two methods to implement the underlying improvement procedure. • The first is a variation of the Preflow Push Algorithm. Preflow Push Recap Distance Labels • Distance Labels Satisfy: • d(t) = 0, d(s) = n • d(v) ≤ d(w) + 1 if r(v,w) > 0 • d(v) is at most the distance from v to t in the residual network. • ο¨ s must be disconnected from t … Terms • Nodes with positive excess are called active. • Admissible arc in the residual graph: v w d(v) = d(w) + 1 The preflow push algorithm While there is an active node { pick an active node v and push/relabel(v) } Push/relabel(v) { If there is an admissible arc (v,w) then { push ο€ = min {e(v) , r(v,w)} flow from v to w } else { d(v) := min{d(w) + 1 | r(v,w) > 0} (relabel) } Running Time • The # of relabelings is (2n-1)(n-2) < 2n2 • The # of saturating pushes is at most 2nm • The # of nonsaturating pushes is at most 4n2m – using potential Φ = Σv active d(v) Back to Min Cost Flow… Applying Preflow Push’s technique • Our motivation was to find a method to improve an ο₯-optimal flow (x, π) to an ο₯/2optimal flow (x’, π′). • We use Push Preflow’s technique: • Labels: π(i) • Admissible edge in residual network: π if − π 2 ≤ πi,j <0 i • Relabel: Increase π(i) by π 2 π πi,j j πi,j + π j − π i < 0 Initialization • We first transform the input ο₯-optimal flow (x, π) to an ο₯/2-optimal pseduoflow (x’, π′). • This is easy • Saturate edges with negative reduced cost. • Clear flow from edges with positive reduced cost. -10 v w Obtain a π 2 - optimal pseudoflow Push/relabel until no active nodes exist Correctness • Lemma 1: Let x be pseudo-flow, and x’ a feasible flow. Then, for every node v with excess in x, there exists a path P in G(x) ending at a node w with deficit, and its reversal is a path in G(x’). • Proof: Look at the difference x’-x, and observe the underlying graph (edges with negative difference are reversed). Lemma 1: Proof Cont. • Proof: Look at the difference x’-x, and observe the underlying graph (edges with negative difference are reversed). 3 3 4 2 0 1 3 3 2 4 3 - 3 4 2 5 2 Lemma 1: Proof Cont. • Proof: Look at the difference x’-x, and observe the underlying graph (edges with negative difference are reversed). w v S • There must be a node with deficit reachable, otherwise x’ isn’t feasible Correctness (cont) Corollary: There is an outgoing residual arc incident with every active vertex Corollary: So we can push/relabel as long as there is an active vertex Correctness – Cont. • Lemma 2: The algorithm maintains an ο₯/2optimal pseudo-flow (x’, π′), • Proof: By induction on the number of operations. • Initially, optimal preflow. Correctness – Cont. π • Push on edge where − π 2 ≤ πi,j < 0 may π introduce (j,i) to G(x), but that’s OK: πj,i = −πi,jπ > 0. Correctness – Cont. • Relabel operation at node i occurs when π there’s no admissible arc - 0 ≤ πi,j for every edge emanating from i in the residual network. π • Relabel decreases πi,j by π 2, so it satisfies π -optimality condition. 2 π • Relabel increases πj,i , so it clearly still satisfies π 2-optimality condition. Correctness (cont) • Lemma 3: When (and if) the algorithm stops the preflow is an ο₯/2-optimal feasible flow (x’, π′). Proof: It is a feasible flow since there is no active vertex. It is ο₯/2-optimal since π’ satisfies ο₯/2-optimality conditions. Complexity • Lemma : a node is relabeled at most 3n times. Lemma 2 – Cont. • Proof: Let x’ be the π-opt. input flow, f and x’ an intermediate π 2 -opt. pseudo-flow. Let ο°, ο°’ be the respective potentials. Take the path P from v to w as described in Lemma 1. π 2 -opt. gives: −ε 2 β πππ π ≤ π-opt. gives: −ε β πππ π ≤ = π −πi,j + π′ π£ − π′ π€ π π πi,j = π′ π πππ£(π) j,i π πi,j +π π€ −π π£ Lemma 2 – Cont. −ε β πππ π ≤ 2 π πi,j = π πi,j + π π€ − π π£ π π′ πj,i = −ε β πππ π ≤ πππ£(π) −πi,j + π′ π£ − π′ π€ π −3ε β πππ π ≤ π π€ − π ′ π€ 2 − π π£ − π′ π£ Nodes never become deficit nodes, so π ′ π€ is untouched Lemma 2 – Cont. −ε β πππ π ≤ 2 π πi,j = π πi,j + π π€ − π π£ π π′ πj,i = −ε β πππ π ≤ πππ£(π) −πi,j + π′ π£ − π′ π€ π 3ε β πππ π ≥ π π£ − π ′ π£ 2 Complexity Analysis (Cont.) • Lemma: The # of saturating pushes is at most O(nm). • Proof: same as in Preflow Push. Complexity Analysis – non Saturating Pushes • Def: The admissible network is the graph of admissible edges. -2 4 2 2 -2 -1 -4 Complexity Analysis – non Saturating Pushes • Def: The admissible network is the graph of admissible edges. -2 -2 -1 -4 Complexity Analysis – non Saturating Pushes • Def: The admissible network is the graph of admissible edges. • Lemma: The admissible network is acyclic throughout the algorithm. • Proof: induction. Complexity Analysis – non Saturating Pushes – Cont. • Lemma: The # of nonsaturating pushes is O(n2m). • Proof: Let g(i) be the # of nodes reachable from i in admissible network • Let Φ = Σi active g(i) Complexity Analysis – non Saturating Pushes – Cont. • Φ = Σi active g(i) • By acyclicity, decreases (by at least one) by every nonsaturating push i j Complexity Analysis – non Saturating Pushes – Cont. • Φ = Σi active g(i) • Initially g(i) = 1. • Increases by at most n by a saturating push : total increase O(n2m) • Increases by each relabeling by at most n (no incoming edges become admissible): total increase < O(n3) • ο¨ O(n2m) non saturating pushes Cost Scaling Summary • Total complexity O(n2mlog(nC)). • Can be improved using ideas used to improve preflow push Double Scaling (If Time Permits) Double Scaling Idea • Use capacity scaling to implement improveapproximation • New ‘tricks’ used: • Transform network to bipartite network on nodes V ∪ πΈ. • Augment on admissible paths (generalization of shortest paths and push on edges) • Find admissible paths greedily (DFS), and relabel potentials in retreats. Network Transformation b(i) Cij, uij i xij b(j) b(i) j i Cij, ο₯ -uij 0, ο₯ b(j) (i,j) xij j rij • Bipartite network on nodes V ∪ πΈ. For Convenience, shall refer to V as N1, and to E as N2. • All edges from N1 to N2. • No capacities Improve approximation Initialization • Recall: receives (x, π) which is ο₯-optimal. • If we reset x’:=0, then G(x’) = G. • No capacities – G is a subgraph of G(x). π • ο₯-optimality means −ε ≤ πi,j for all edges in G(x), and in particular in G. • Adding ο₯ to π(j) for every j in N2, obtains an optimal pseudoflow. N1 N2 +ο₯ Capacity Scaling - Scheme • While S(ο) οΉο • Pick a node kο S(ο). • search for an admissible path using DFS • On retreat from node i, relabel: increase π(i) by π 2 • Upon finding a deficit node, augment ο units of flow in path. • Decrease ο by factor 2, and repeat • Until ο < 1. Double Scaling - Correctness • Assuming algorithm ends, immediate, since we augment along admissible path. • (Residual path from excess to node to deficit node always exists – see cost scaling algorithm) • We relabel when indeed no outgoing admissible edges. Double Scaling - Complexity • O(log U) phases. • In each phase, each augmentation clears a node from S(ο) and doesn’t introduce a new one. so O(m) augmentations per phase. Double Scaling Complexity – Cont. • In each augmentation, • We find a path of length at most 2n (admissible network is acyclic and bipartite) • Need to account retreats. Double Scaling Complexity – Cont. • In each retreat, we relabel. • Using above lemma, potential cannot grow more than O(l), where l is a length of path to a deficit node. • Since graph is bipartite, l = O(n). • So in all augmentations, O(n (m+n)) = O(mn) retreats. N1 N2 Double Scaling Complexity – Cont. • To sum up: • Implemented improve-approximation using capacity scaling • O(log U) phases. • O(m) augmentations per phase. • O(n) nodes in path • O(mn) node retreats in total. • Total complexity: O(log(nC) log(U) mn) Thank You