MthSc 440/H440/640: Linear ProgrammingLecture 25Pietro BelottiDept. of Mathematical SciencesClemson UniversityNovember 30, 2010Reading: pages 291-299Reminder: turn in homework Thursday in class (anythingturned in after 12:30pm will not be accepted).Simplex methods: the n-th recapWe have seen two classes of simplex methods:◮the primal◮the dualBoth need the following:◮the definition of a basis◮a check for feasibility◮a check for optimalityThis is a rather general scheme that can be generalized.The transshipment problemGeneralizes flow problems seen on Nov. 23: given◮a digraph G = (V, A), with |V | = n nodes and |A| = m arcs;◮a cost function c : A → R+;◮in/out flows b : V → R,Find the flow of goods to sendfrom the providers (nodes i with bi< 0)to the customers (nodes i with bi> 0)through the arcs of G, while minimizing the total cost.Assumption: there must be zero left-over, i.e.,Pi∈Vbi= 0.A model◮Variables: flow xij≥ 0 for every (i, j) ∈ A◮Objective function: total flow cost:P(i,j)∈Acijxij◮Constraints: flow conse rvation at each node∀i ∈ V,Pj∈V:(j,i)∈Axji−Pj∈V:(i,j)∈Axij= bi◮(No capacity constraint here)Our usual LP min{c⊤x : Ax = b, x ≥ 0}, where◮c is the cost vector◮b is the vector of in/out flows (demand/offer)◮A is the incidence matrix of graph G..◦ A has n rows (one per node) and m columns (one per arc)A model (cont.)Eliminate one constraint (due to the assumptionPi∈Vbi= 0).Let’s denote˜b,˜A the truncated b, A.◮We have a model with n − 1 rows and m columns.◮Partition˜A into (B|N) and similarly cBand cN◮If B is nonsingular, it provides a basis◮The associated solution: B−1˜b◮Feasible if B−1˜b ≥ 0◮Dual feasible if cN− cBB−1N ≥ 0 (this is a min problem)◮The corresponding basic solution is xB= B−1˜b, xN= 0.⇒ There are at most n − 1 nonzero elementsHence any basis has at most n − 1 arcs with nonzero flow.⇒ There is an optimal solution with≤ n − 1 nonzero flows.Primal feasible solutionsWhat does a solution xB= B−1˜b, xN= 0 look like?I.e., what do n − 1 nonzero flow look like on a graph?◮A cycle is a path1with source = destination◮A graph is connected if, for any s, t ∈ V, there is a path s → t◮A tree is a connected, acyclic graph2◮A spanning tree of a graph G = (V, A) is a tree T = (V′, A′)with V′= V and A′⊆ ADef.: a feasible tree solution is a solution x associated with atree T = (V, A′) such that xij= 0 for (i, j) /∈ A′I.e., non-basic variables are those in G but not T.1See previous class for definition of path.2Not coincidentally, a tree with n nodes has n − 1 arcs . . .Feasible tree solutionsIn order to prove non-singularity of B, observe a property of(undirected!) trees:For any v1∈ V, all other nodes in V \ {v1} can be indexedv2, v3. . . , vnsuch that, for every i = 2, 3 . . . , n, there isexactly one edge {vk, vi}, with k < i3.Now suppose we eliminated the n-th row and chose v1= n.◮index all other nodes with v2, v3. . . , vnas above◮index all arcs of the tree a1, a2. . . , anso that the edgeunderlying aiis {i, k} with k < i.The submatrix B of A with◮rows in order v2, v3. . . , vn(we eliminated row n = v1)◮columns in order a2, a3. . . , anis upper triangular! Hence nonsingular and invertible.3k is called the parent of i.The dualNow that we know how to define a basis, how do we get fromone basis to another?◮The dual constraint of variable xijis4∀(i, j) ∈ A, yj− yi≤ cijor equivalently, yi+ cij≥ yj◮Optimality requires that xij(yj− yi− cij) = 05⇒ If xij> 0 (i.e., (i, j) ∈ T), then yi+ cij= yj◮Otherwise, the solution is feasible but not primal feasible(= not optimal).How do we compute y? With the good old yB = cB, of course!4Just transpose the incidence matrix. Each column of A has two entries, a+1 and a −1.5Complementary slackness. What about the other set of conditions?InterpretationThe dual variables yirepresent the price at which we sell, atnode i, a unit of the transported good.◮To sell a unit at neighbor node j, the price should take intoaccount the transportation cost cij⇒ we can’t make yjtoo high: yj≤ yi+ cij◮Otherwise, a competitor might buy at i, transport it for cij,and sell at j at a price yi+ cij< yj◮This would mean dual infeasibility◮We beat the competitor and start using (i, j) ourselves◮xijwas nonbasic and is now used⇒ it is the entering variable, or the entering arcWhat is the leaving variable?When we decide to re-route part of our good s on (i, j), we haveto pull some outgoing flow from other arcs.◮Suppose there are three nodes p, q, k such that xip= 5,xpq= 5, xqk= 6;◮In order to push flow t on (i, j), we have to pull it from theother arcs.i.e. xij= t ⇒xip= 5 − txpq= 3 − txqk= 6 − t◮What is the leaving variable?To recap (for the last time)◮The flow value is B−1˜b (easy to compute after therenumbering)◮If B−1˜b ≥ 0, the tree gives a feasible solution◮Compute yB = cB◮Find non-tree arc (i, j) such that yi+ cij◮If none, stop: optimum◮Otherwise, (i, j) is the entering arc.◮Find leaving arc, update flow and
View Full Document