1.21k likes | 1.46k Views
Network Optimization. Chapter 4 Minimum Cost Flow Problems (MCF). 4 .1 The upper-bounded transshipment problem.
E N D
Network Optimization Chapter 4 Minimum Cost Flow Problems (MCF)
4.1 The upper-bounded transshipment problem • In Chapter 2, we learned uncapacitated transshipment problem, i.e., the flows along the arcs does not have capacity restriction. We now consider capacitated transshipment problem: min cx s.t. Ax=b 0 x u
4.1 The upper-bounded transshipment problem • The cost vector c and supply/demand vector b are defined as before, u is the capacity vector, i.e., we request xij uij for each arc (i,j). • The capacitated transshipment problem is usually called minimum cost flow problem.
4.1 The upper-bounded transshipment problem • If in addition to the upper bound u, the flows also have (nonzero) lower bound constraint x v, it is easy to change all lower bound to 0. • For example, if we ask xij vij for each arc (i,j) then we introduce new variables x’ij = xij - vij • So, vijxij uij 0 x’ijuij -vij. • Let vector =u - v, then 0 x’.
4.1 The upper-bounded transshipment problem • A problem is defined as follows : min cx min cx+cv s.t. Ax=b s.t. Ax=b-Av v xu 0x’
4.1 The upper-bounded transshipment problem • Let =b-Av, then the above problem is equivalent to min cx’ s.t. Ax’= 0 x’ • So, we can always assume the lower bound v is a 0 vector.
4.1 The upper-bounded transshipment problem • We now extend the network simplex method to solve MCF problems. • To do so, we need to recall the simplex method to the LP problems with upper bound constraints in which non-basic variables can have either 0 value (lower bound value), or the upper bound value.
4.1 The upper-bounded transshipment problem • Let x be a feasible flow to the MCF problem min{cxAx=b, 0 xu}. • For each arc (i,j), • if xij =0, we say (i,j) is free w.r.t.x • if xij =uij, we say (i,j) is saturated w.r.t.x • if 0< xij <uij, we say (i,j) is unsaturated w.r.t.x
4.1 The upper-bounded transshipment problem • Feasible Tree Solution x (FTS): (1)x is a feasible flow (meet non-negativity, capacity and supply/demand requests). (2)there is a spanning tree T such that any arc not in T is either free, or saturated. In other words, only the arcs in T can be unsaturated arcs.
4.1 The upper-bounded transshipment problem • Dual variables y w.r.t.a FTS x • Again, the variables y are determined by the equations yj - yi=cij, (i,j) T and set yn =0.
4.1 The upper-bounded transshipment problem • Profitable arc • An arc (i,j)T is called a profitable arc if yj - yi< cij when (i,j) is a free arc, or yj - yi > cij when (i,j) is a saturated arc.
4.1 The upper-bounded transshipment problem • Theorem 4.1 :An FTS x without profitable arcs is an optimal solution. • Proof : Let x’ be any feasible solution. • We need to show that cxcx’. • Let d=c - yA (expressed as a row vector), i.e., dij =cij +yi - yj. cx = (d+yA)x = dx+yb. cx’= (d+yA)x’= dx’+yb. • We should compare dx and dx’.
4.1 The upper-bounded transshipment problem • (i)if (i,j) T, then dij = 0 dij xij = dij x’ij. • (ii)if (i,j) T and is a free arc. dij0 (non-profitable), xij = 0, x’ij 0 dij xij dij x’ij . • (iii)if (i,j) T and is a saturated arc, dij 0 (non-profitable), xij =uijx’ij dij xij dij x’ij . • Therefore, dx = dij xijdij x’ij =dx’ cx cx’. • The proof iscompleted.
4.1 The upper-bounded transshipment problem • By the above theorem, if x is not optimal, then there is at least one profitable arc, say (p,q). • If (p,q) is free and profitable, when xpq increases from 0 to t, the objective function value shall decrease (the reason is similar to the un-capacitated case in Ch.2). • If (p,q) is saturated and profitable, then xpq = upq.If we obtain a new FTS x’ with x’pq = upq - t (t>0) and x’ij =xij for other arcs (i,j)T, the objective function value shall decrease. • The reason is below.
4.1 The upper-bounded transshipment problem • Let F be the set of free arcs, S be the set of saturated arcs w.r.t. x. • Since d = c - yA, cx’ - cx = dx’ - dx. • For the value of dx, as dij = 0, (i,j) T xij = 0, (i,j) F xij = uij, (i,j) S • we have dx = .
4.1 The upper-bounded transshipment problem • For the value of dx’, as x’ij = xij = 0, (i,j) F x’ij = xij = uij, (i,j) S & (i,j)≠(p,q) x’pq = upq - t we have dx’==- dpqt • Therefore, dx’- dx = - dpqt. As (p,q) is profitable, by definition, dpq = cpq + yp - yq > 0. Therefore, dx’ - dx < 0 cx’ < cx.
4.1 The upper-bounded transshipment problem • How to obtain an improved solution: Adjoin the selected profitable arc e to the spanning tree T to obtain a unique cycle C(e). The arcs in C which have the same direction as e are forward arcs and otherwise backward arcs.
4.1 The upper-bounded transshipment problem If e is free, increase flows on e and each forward arc by t, and reduce flows on each backward arc by t; If e is saturated, decrease flows in e and each forward arc by t, and increase flows on each backward arc by t. if e is a free arcif e is a saturated arc
4.1 The upper-bounded transshipment problem The value of t is determined by the non-negativity and capacity requests, i.e., until the flow along an arc f in T is first reduced to 0, or increased to its upper bound. This arc f is the leaving arc, and the new spanning tree is T’= T + e – f. if e is a free arcif e is a saturated arc
4.1 The upper-bounded transshipment problem • Network simplex method for minimum cost flow problems • Step 1. The current FTS is x with a tree T. Any arc not in T is either free or saturated. • Step 2. Obtain a (unique) vector y with n components, the last being zero, by solving the n - 1 defining equations of the type yv - yu = cuv, where (u,v) is an arc in T.
4.1 The upper-bounded transshipment problem • Step 3. Let dij = cij + yi - yj. A free arc (i,j) is profitable if dij is negative. A saturated arc (i,j) is profitable if dij is positive. If there are no profitable arcs with respect to the current FTS x, then x is optimal and we stop. • Step 4. Otherwise choose a profitable arc e = (p,q) as the entering arc. Then a unique cycle C is created. Arcs in C which have the same direction as e are forward arcs, the others being backward arcs.
4.1 The upper-bounded transshipment problem • Step 5. (a)If the entering arc e is free, then add t units along e and also to the flow along all forward arcs. At the same time subtract t units from the flow in all backward arcs. (b)If the entering arc e is saturated, then subtract t units from the flow in e and also from the flow in all forward arcs. At the same time add t units to the flow in all backward arcs. (c)t is non-negative and the choice of t is subject to capacity constraints and to the non-negativity constraints of the flow vector.
4.1 The upper-bounded transshipment problem • Step 6. Choose t such that in the cycle C there is at least one arc which becomes free or saturated. Remove one such arc, say f, from T, creating a new tree T’=T+e-f and an updated flow x’. Go back to Step 2.
4.1 The upper-bounded transshipment problem • Example 4.1 Suppose in the network below, the supply-demand vector bT = [-9, 4, 17, 1, -5, -8], xT = [x12, x13, x15, x23, x42, x43, x53, x54, x56, x62, x64], • cost vector c = [3, 5, 1, 1, 4, 1, 6, 1, 1, 1, 1],capacity vector uT= [2, 10, 10, 6, 8, 9, 9, 10, 6, 7, 8].
4.1 The upper-bounded transshipment problem • For the two numbers beside each arc, for example (3,2) beside e1, the first is cost, & the second is capacity. • Suppose we have an initial FTSxT = [2, 0, 7, 5, 0, 9, 3, 3, 6, 7, 7], z = cx =68, with the spanning tree T shown below.
4.1 The upper-bounded transshipment problem • Iteration 1 : • Step 1. using the formula yj - yi = cij, (i,j)T we obtain y=[-1,5, 6, 1, 0, 0]. xT = [2, 0, 7, 5, 0, 9, 3, 3, 6, 7, 7] The arc (1,3) is free and d13 = c13 + y1 - y3 = 5 + (-1) –6 = -2 < 0
4.1 The upper-bounded transshipment problem • Step 2. The arc (1,3) is free and d13 = c13 + y1 - y3 = 5 + (-1) –6 = -2 < 0 • (1,3) is a profitable arc ~ take it as the entering arc e. • x13: 0→t, x53: 3→3-t, x15: 7→7-t
4.1 The upper-bounded transshipment problem • x13: 0→t, x53: 3→3-t, x15: 7→7-t • Choose the largest possible t to meet the conditions: t u13 =10, 3 - t 0, 7 - t 0 t = 3 (5,3) ~leaving arc. • Iteration 2 : • Step 1. The new xT=[2, 3, 4, 5, 0, 9, 0, 3, 6, 7, 7], z=62 with the tree T shown below.
4.1 The upper-bounded transshipment problem • xT=[2, 3, 4, 5, 0, 9, 0, 3, 6, 7, 7] • y=[-1, 3, 4, 1, 0, 0] • The arc (5, 6) is saturated and d56 = c56 + y5 - y6 = 1 + 0 – 0 > 0.
4.1 The upper-bounded transshipment problem • Step 2. The arc (5, 6) is saturated and d56 = c56 + y5 - y6 = 1 + 0 – 0 > 0. • So, (5,6) is profitable ~ take as the entering arc e. • x56: 6→6-t, x64: 7→7-t, x54: 3→3+t
4.1 The upper-bounded transshipment problem • x56: 6→6-t, x64: 7→7-t, x54: 3→3+t. • Under the condition x560, x64 0, x54 u54 = 10, we take t=6and (5,6) is the leaving arc f.Note that e=f, andhenceT does not change, but the iterative solution x is changed.
4.1 The upper-bounded transshipment problem • Iteration 3 : • Step 1. xT=[2, 3, 4, 5, 0, 9, 0, 9, 0, 7, 1] with z=56. y=[-1, 3, 4, 1, 0, 0]. • (Note that y does not change because T is the same) • Step 2. There are no profitable arcs. So, the current FTS is optimal.
4.2 Initialization • Just like the un-capacitated case, in order to obtain an initial FTS, we need to locate a vertex v satisfying three properties: • 1.If i is a source, then there is an arc from i to v whose capacity is not less than the supply at i. • 2.If j is a sink, then there is an arc from v to j whose capacity is not less than the demand at j. • 3.If k is an intermediate vertex, then there is an arc from v to k or from k to v.
4.2 Initialization • If we cannot find such a vertex v, we choosean arbitrary vertex v and construct artificialarcsif necessary to meet these requirements. • The only difference from the un-capacitated case is that if there is an arc from a source tov (or from v to a sink) in the network, but itscapacity is less than the supply of the source (or the demand of the sink), then we stillneed to construct an artificial arc with unlimited capacity from the source to v (or from v to the sink).
4.2 Initialization • For example, take vertex 2 as v. Even though there is an arc (3,2) from source 3 to v, as its capacity u32 = 1 < 9 (the supply), we need to introduce another arc (artificial arc) (3,2) with unlimited capacity.
4.2 Initialization • After introducing the artificial arcs, we solve an MCF problem with c’ij = • If the optimal value is 0, the original MCF problem is feasible and we obtain an FTS, otherwise, the original problem is infeasible.
4.2 Initialization • Example 4.2 • xT = [x12, x13, x24, x32, x34] • capacity vector uT =[8, 3, 16, 1, 8] • supply/demand vector bT = [-7, 10, -9, 6] • Take vertex 2 as v. • We use x’32 to denote the flow along the artificial arc and consider the arc as the last arc.
4.2 Initialization • Let c’ = [0 0 0 0 01]. We solve the MCF problem. • The optimal solution is x12 = 7, x13 = x24 = x32 = 0, x34 = 6, x’32 = 3. • Since the optimal value c’x = 3 > 0, the original problem is infeasible. In fact, the flow along the artificial arc is x’32 = 3, which is still positive.
4.2 Initialization • Exercise Formulate the following problem as a Minimum-Cost-Flow problem (but you do not need to solve the problem). You may formulate it by simply giving a suitable network in which you specify (cost, capacity) along each arc and the net supply (S) or demand (D) beside some vertices.
4.2 Initialization • Oilco has oil fields in San Diego (SD) and Los Angeles (LA). The SD field can produce up to 5 units of unrefined oil (1 unit =100,000 barrels) per day, and the LA field can produce up to 4 units per day. Oil is sent from the fields to a refinery, either in Dallas (DA) or in Houston (HO) (assume each refinery has unlimited capacity). • To refine one unit costs$800 at DA and$1,000 at HO. Refined oil is shipped to customers in Chicago (CH) and New York (NY). CH customers require 4 units of oil per day, and NY customers require 3 units per day. The costs of shipping one unit of oil (refined or unrefined) between cities are shown in the table below:
4.2 Initialization • Also, assume that the volume of oil before and after the refinement process has no change. • Determine a plan to minimize the total cost. • If each refinery has a capacity limit of 5 units per day, how would you revise the model?
4.2 Initialization • Answer 1 (incomplete):
4.2 Initialization • Answer 2 (incomplete):
4.3 The maximum flow problem • Let G (V,E) be an upper-bounded network, V = {1, 2,…, n}, E= m, • Vertex 1 is the unique source with unknown supply v. • Vertex n is the unique sink with unknown demand v. • All other vertices are intermediate vertices. • So, the supply-demand vector b = [-v, 0,…, 0, v]T(dimension n). Let the capacity vector be u = [u1, u2,…, um]T.
4.3 The maximum flow problem • Maximum Flow Problem (MFP): • Find a feasible flow such that v is as large as possible.Let the nm vertex-arc incidence matrix be A. Then the MFP can be expressed as max v s.t. Ax = b 0 x u.
4.3 The maximum flow problem • We may assume that the indegree of the source = 0, i.e., no arc enters vertex 1.
4.3 The maximum flow problem • Similarly, we assume the outdegree of vertex n is 0. • A flow x which satisfies the condition0 x u, and Ax =b = [-v, 0,…, 0, v]T for a value v 0 is called a feasible flow, and v is called the value of the flow x. • What we want to find is the maximum flow (MF) and its value v’.
4.3 The maximum flow problem • Let p = the sum of the capacities of all the arcs directed from the source, and • q = the sum of the capacities of all the arcs directed to the sink. • Then, obviously, the value of the maximum flow v’ min {p,q}.
4.3 The maximum flow problem • Transform an MFP to a minimum cost flow (MCF) problem. • Introduce an artificial arc from n to 1: e = (n,1) with unlimited capacity (or let min {p,q} be its capacity). Arrange e as the last arc. • Expand G (V,E) to G’ (V,E’), where E’ = E + e. • Capacity vector of G’: u’ = (u, ∞)