Presentation is loading. Please wait.

Presentation is loading. Please wait.

Minimum Cost Flow Algorithms and Networks. Algorithms and Networks: Minimum Cost Flow2 This lecture The minimum cost flow problem: statement and applications.

Similar presentations


Presentation on theme: "Minimum Cost Flow Algorithms and Networks. Algorithms and Networks: Minimum Cost Flow2 This lecture The minimum cost flow problem: statement and applications."— Presentation transcript:

1 Minimum Cost Flow Algorithms and Networks

2 Algorithms and Networks: Minimum Cost Flow2 This lecture The minimum cost flow problem: statement and applications The cycle cancelling algorithm A polynomial time variant of cycle cancelling The successive shortest paths algorithm

3 Algorithms and Networks: Minimum Cost Flow3 Minimum Cost Flow I Edges have –Capacity c(u,v): bound on amount of flow that can go through the edge –Cost: cost(u,v): cost that must be paid per unit of flow that goes through the edge. Cost of flow f: –Sum over all (u,v) of: f (u,v) * cost(u,v).

4 Algorithms and Networks: Minimum Cost Flow4 Minimum cost flow problem Given: Network G, c, cost, s, t, and a target flow value r. Question: Find a flow from s to t with value r, with minimum cost.

5 Algorithms and Networks: Minimum Cost Flow5 Unbounded capacities Some edges may have unbounded capacities –If there is a cycle of negative cost with only edges with unbounded capacity: Arbitrary small cost (degenerate case) –Otherwise: simple transformation to bounded capacities E.g., set each unbounded capacity to sum of all bounded capacities

6 Algorithms and Networks: Minimum Cost Flow6 Separate demands Similar to max-flow with multiple sources and multiple sinks Or: work with “demand”, which can be positive or negative G s1s1 sksk t1t1 trtr t s

7 Algorithms and Networks: Minimum Cost Flow7 Nonnegative arc costs We may assume all costs are nonnegative. In case of negative costs: assume bounded capacity. Modify network to equivalent one with nonnegative costs: ba sbat Cost -r Cost r Capacity c Or work with separate demands Or work with separate demands Cost 0

8 Algorithms and Networks: Minimum Cost Flow8 Applications Transport problems Minimum cost matchings Reconstruction of Left Ventricle from X-ray projections –Image: 2d bit array; known are sums of columns, rows; probabilities for each bit –Look for image with correct row and column sums of maximum probability –Can be modelled as minimum cost flow problem

9 Algorithms and Networks: Minimum Cost Flow9 Application: Optimal loading of hopping airplane 12n b ij weight units (or passengers) can be transported from i to j Each gives a profit of f ij Plane can never carry more than p units How much units do we transport of each type for maximum profit? b ij weight units (or passengers) can be transported from i to j Each gives a profit of f ij Plane can never carry more than p units How much units do we transport of each type for maximum profit? 1234 122334 13 14 24 Capacity i  j: p Node ij has supply b ij Cost from ij to i: - f ij Node i has demand sum over all b ji All other arcs infinite cap. All other costs 0

10 Cycles and circulations; paths and flows We can view: –Cycles as a special type of circulations –Paths as a special type of flows –If we have a directed cycle c, then we can see it as a circulation: c(e) = 1 when e is on c c(e) = 0 otherwise –If we have a path p from s to t, we can see it as a flow with value 1: p(e) = 1 when e is on p p(e) = 0 otherwise Algorithms and Networks: Minimum Cost Flow10

11 A&N: Maximum flow11 First: useful theorems on flows and circulations Theorem Let f be a circulation. Then f is a nonnegative linear combination of cycles in G. Proof. Ignore lower bounds. If f(v,w) = 0 everywhere, then it clearly holds. Otherwise, there is a directed cycle c in G with each edge e on c: f(e)>0 Let r be the minimum flow of an edge on c, i.e., r = min {f(e) | e on c} Use induction: the theorem also holds for f – cr –f-cr(e) = f(e) when e is not on c –f-cr(e) = f(e) – r when e is on c …

12 More on these linear combinations If circulation f is integer, then f can be written as an`integer scalared’ linear combination of cycles in G Corollary: a flow is the linear combination of cycles and paths from s to t. –Look at the circulation by adding an edge from t to s and giving it flow value(f). And, a flow f with each f(e) an integer is the integer scalared linear combination of cycles and paths from s to t Algorithms and Networks: Minimum Cost Flow12

13 Algorithms and Networks: Minimum Cost Flow13 Residual network Define the residual network G f of a flow in the setting of costs: Capacities as for maximum flow algorithms. If f (u,v)>0, then cost f (u,v) = cost(u,v), and cost f (v,u) = – cost(u,v).

14 Algorithms and Networks: Minimum Cost Flow14 Example ab Capacity 5, cost 3 Capacity 2, cost 6 Suppose we send 1 flow from a to b a Capacity 4, cost 3 Capacity 2, cost 6 Capacity 1, cost -3 b In G f :

15 Algorithms and Networks: Minimum Cost Flow15 Cycle cancelling algorithm Make a feasible flow f in the network while G f has a negative cycle do –Find a negative cycle C in G f –Let D be the minimum residual capacity c f of an edge on C –Add D units of flow to each edge on C: this is a new feasible flow of smaller cost Output f.

16 Algorithms and Networks: Minimum Cost Flow16 Cycle cancelling algorithm is correct Theorem: a flow f has minimum costs, if and only if G f has no negative cycle. –If G f has negative cycle, then we can improve f to one with smaller cost. –Suppose f is a flow, and f’ is an optimal flow. f’ – f is a circulation in G f, hence a linear combination of cycles, and if f is not optimal, then the total cost of these cycles is negative, so there is a negative cycle in this set: it is a cycle in G f.

17 Algorithms and Networks: Minimum Cost Flow17 More on the cycle cancelling algorithm No guarantee that it uses polynomial time. Corollary: if all costs, capacities, and target flow value are integral, then there is an optimal integer minimum cost flow. –The cycle cancelling algorithm finds an integer flow in this case. Variant: using always the minimum mean cost cycle gives a polynomial time algorithm!

18 Algorithms and Networks: Minimum Cost Flow18 Minimum mean-cost circulation algorithm Cycle cancelling algorithm but find always the minimum mean cost cycle and use that. –O(nm) time to find the cycle. –A theorem shows that O(nm 2 log 2 n) iterations are sufficient. –O(n 2 m 3 log 2 n) algorithm.

19 Algorithms and Networks: Minimum Cost Flow19 Successive shortest paths Start with flow f with f(u,v)=0 for all u,v. repeat until value(f ) = r –Find the shortest path P in G f from s to t –Let q be the minimum residual capacity of an edge on P. –Send min(q,r – value(f)) additional units of flow across P.

20 Time and correctness Time: possibly exponential time … Correctness: only if G has no cycle with negative cost Example where it goes wrong with negative cost: consider target flow r=0 Proof of correctness: next Algorithms and Networks: Minimum Cost Flow20

21 Algorithms and Networks: Minimum Cost Flow21 On the successive shortest paths algorithm If G has no negative cycle, then the algorithm gives the optimal answer. –Invariant: f has minimum cost among all flows with value value(f). Suppose we obtain f’ from f by sending across P. Let f’’ be a minimum cost flow with same value as f’. Write f’’ – f as weighted sum of paths from s to t in G f and circuits in G f. Argue that cost(f’ – f)  cost(f’’ – f), using that: –P is shortest path –Circuits have non-negative costs, by optimality of f.

22 Algorithms and Networks: Minimum Cost Flow22 Finally More efficient algorithms exist –Some use scaling techniques: Scaling on capacities Scaling on costs


Download ppt "Minimum Cost Flow Algorithms and Networks. Algorithms and Networks: Minimum Cost Flow2 This lecture The minimum cost flow problem: statement and applications."

Similar presentations


Ads by Google