The solution to an LP is given directly by its active set, $I = \{i_1,i_2,...,i_n\}$, which forms a system of equations that recovers the solution $x^*$.
If your solution varies, then the question is whether your active set changes or not:
- If it does not change, then you can simply re-solve the system of equations to get the new solution.
- If it does change, then you need to find the new active set and then solve the resulting system of equations.
This principle was first detailed by Fiacco in 1976, where he called it the "Basic Sensitivity Theorem". The interesting question at this point is of course: how do you decide whether the active set still holds, and what the new active set would be. To understand this, you need to consider:
- Primal feasibility (is the solution feasible): so you get the solution from your set of equations and see whether it satisfies all your constraints.
- Dual feasibility (is the solution optimal): You can prove that the Lagrangian multipliers (which define dual feasibility via $\lambda_i \geq 0$) do not vary when the active set stays the same. So as long as your primal feasibility is given, your active set stays the same. If it becomes infeasible, I'd suggest that you resolve the problem and get the new active set. There are techniques to do this without solving another problem using a variety of approaches, in a field called "multi-parametric programming". A review paper I have written that collects a lot of these thoughts can be found here.