MthSc 440/H440/640: Linear ProgrammingLecture 23Pietro BelottiDept. of Mathematical SciencesClemson UniversityNovember 18, 2010Reading for today: pages 158-166.Sensitivity AnalysisAfter solving an LP problem and getting an optimum x⋆,sometimes we need to re-solve the LP, due to changes in◮variable bounds [ℓ, u] → [˜ℓ,˜u]◮right-hand side b →˜b◮objective function coefficients c →˜c◮coefficient matrix A →˜AWe could simply solve the new LPmax˜c⊤xs.t.˜Ax ≤˜bx ∈ [˜ℓ,˜u]from scratch, and find the (possibly different)¯x⋆.Or we could simply use x⋆and fewer steps to find¯x⋆.How to deal with:◮changes in c◮changes in b◮added variable◮added constraint◮all of the aboveUsing the right toolChanges to A, b, c, ℓ, or u may have different consequences.The old solution x⋆, associated with a basis B, might be(A) feasible (B−1˜b ≥ 0), but not optimal (˜cN−˜cBB−1N 6≤ 0)i.e. primal feasible, but not dual feasible(B) infeasible (B−1˜b 6≥ 0), but dual feasible (˜cN−˜cBB−1N ≤ 0)(C) neither primal nor dual feasible ..◦We know that if a basic solution is◮primal feasible but dual infeasible1⇒ useprimal simplex◮primal infeasible but dual feasible ⇒ use dual simplexCase (C) may require running some iterations of both.1i.e. not optimalNew objective function: c →˜c◮Constraints don’t change, so x⋆(old optimum) is stillfeasible: Ax⋆≤ b and x⋆∈ [ℓ, u]◮Basis B associated with x⋆might be dual infeasible⇒ Check˜cN−˜cBB−1N:◮solve yB =˜cB◮compute˜cN− y⊤N◮if˜cN− y⊤N ≤ 0 ⇒ still dual feasible ⇒ optimum!◮otherwise, apply primal simplexNew right-hand side: b →˜bWe could write the dual problem and apply the same as theprevious slide . . . But let’s stay on the primal side.◮Constraints do change, so x⋆could now be infeasiblei.e. it could be Ax⋆6≤˜b◮However, B is still a (possibly infeasible) basis!◮Nonbasic variables are still nonbasic (no change in ℓ or u):∀i ∈ N , x⋆i∈ {ℓi, ui}.◮Though primal feasibility might be gone, dual feasibilityis not: we still have cN− cBB−1N ≤ 0.⇒ Check B−1˜b:◮solve¯xB =˜b◮if¯x ≥ 0 ⇒ still primal feasible ⇒ optimum!◮otherwise, apply dual simplexAdding a variable3xn+m+1Objective coefficient: cn+m+1; associated column in A:An+m+1= (a1,n+m+1, a2,n+m+1. . . , am,n+m+1). Suppose it has zerolower or upper bound:0 ≤ xn+m+1≤ un+m+1orℓn+m+1≤ xn+m+1≤ 0.Take the same basis B and define¯x = (x⋆1, x⋆2. . . , x⋆n+m,0), andmake xn+m+1nonbasic. B still feasible: B−1b ≥ 0.◮Consider˜c = (c1, c2. . . , cn+m, cn+m+1)⇒˜cB= cBand˜cN= (cN,cn+m+1)◮Solve yB = cBif necessary2◮Compute˜cN− yN; if ≤ 0, ⇒ optimum!◮Otherwise, apply primal simplex.2We may have y from the last iteration if we used primal simplex.3We call it xn+m+1because we had n + m variables (original + slack).Adding a xn+m+1with ℓn+m+16= 0 6= un+m+1This is a little more complicated:◮We cannot set xn+m+1to zero and treat it as nonbasic.◮We could make it nonbasic and set it to one of its boundsℓn+m+1or un+m+1, but then the basis would readxB= B−1b − B−1NxN6= x⋆unlike the case where ℓn+m+1= 0 ∨ un+m+1= 0.◮The basis may be neither primal nor dual feasibleAdding a constraintFrom a dual standpoint, this is like adding a variable.◮Suppose it is a constraintPni=1am+1,ixi≤ bm+1◮Add a slack variable ⇒Pni=1am+1,ixi+xn+m+1= bm+1◮Make xn+m+1basic: B ← B ∪ {n + m + 1}◮This basis may be infeasible, i.e.,Pni=1am+1,ix⋆i6≤ bm+1◮set x⋆n+m+1= bm+1−Pni=1am+1,ix⋆i◮if x⋆n+m+1< 0, primal infeasible◮however, it is dual feasible⇒ apply the dual simplex◮if x⋆n+m+1≥ 0, primal feasible ⇒ optimalChanging A, b, c, ℓ, and u◮x⋆is primal and dual feasible.◮convert it to a new basic solution¯x◮In the conversion,¯x may turn out◮dual feasible (but primal inf.) ⇒ apply dual simplex◮primal feasible (but dual inf.) ⇒ apply primal simplexChanging A, b, c, ℓ, and u (cont.)Computing¯x is not trivial.◮If B did not change (i.e. changes A →˜A = (B|˜N) affect onlyN) then B is still nonsingular⇒ Keep B as the basis, then◮For each i ∈ N , set¯xias follows:◮if˜ℓi= −∞ and˜uifinite, set¯xi=˜ui◮if˜ui= +∞ and˜ℓifinite, set¯xi=˜ℓi◮if˜ℓi= −∞,˜ui= + ∞ (i.e. xiu.r.s.), set¯xi= x⋆i◮if both finite, set xito either◮Then set¯xBto B−1˜b − B−1N¯xNi.e. solve the system B¯xB=˜b −˜N¯xnThe resulting¯x may be primal feasible, dual feasible, both,
View Full Document