7

As Larry Snyder mentioned in his comment, almost all of the Operations Research books include a chapter dedicated to answering your question which is about "Sensitivity Analysis". A good(short and concise) example can be found here, where all the following changes have been done to the problem and their effects on the optimal solution have been shown: ...


6

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,...


5

The reduced costs (or marginal costs), tell you by how much the objective function will increase (or decrease), if the corresponding variable increases by one unit. So if you are minimizing, the reduced costs of the variables of your optimal solution should all be non negative. Otherwise, increasing the value of the variable with negative reduced cost would ...


4

My guess would be that the variable is not basic, it is non-basic but at the upper bound of 1.0. Modern solvers use the generalized simplex method which allows for lower and upper bounds on a variable. If a variable is upper bounded, its optimal reduced cost needs to be non-positive. I can't say I fully understand the output you pasted, but it looks like ...


4

Having fixed the discrete decisions, you could start at the beginning and work forward through the task dependency graph, starting each task as early as possible; then work backward from the end, starting each task as late as possible. I don't know that it is superior in any way to what you are doing, but it might be easier to explain to someone (a customer ...


3

Dyer and Proll (1977)1 showed that for an M/M/c queue, the mean waiting time is a strictly decreasing and convex function of c. Reference [1] Dyer, M. E., Proll, L. G. (1977). On the Validity of Marginal Analysis for Allocating Servers in M/M/c Queues. Management Science. 23(9):1019-1022.


2

The property that some infinitesimal change in one of the constraints impacts the objective is called "a constraint being active" or "a constraint being in conflict with the objective". "if we increase $b$ arbitrarily small, we can also bound the change in the optimal objective value with an arbitrarily small change." This ...


2

There are several ways to do this: You already used left_expr that modified the left-hand side. You can do the same thing with right_expr to modify the RHS. Along the same line as above, lhs and rhs are the aliases for left_expr and right_expr, respectively. So, just simply add the new rhs to the constraints. So, for example, ctKids.rhs = 350 is another way....


2

Consider the following LP: \begin{align*} \max\,3x_{1}+5x_{2}\\ \textrm{s.t. }x_{1}+2x_{2} & +s_{1}=3\\ 2x_{1}+x_{2} & +s_{2}=3\\ x_{1}+x_{2} & +s_{3}=2\\ x,s & \ge0 \end{align*} ($s$ being slack variables). The feasible region has corners (0, 0), (0, 1.5), (1, 1) and (1.5, 0), with (1, 1) the unique optimum. If you choose the $(x_1, x_2, s_3)...


1

Also, besides the answer by @EhsanK, you can obtain the range of the parameters for sensitivity analysis as follows to know how much you should play around with those parameters: !pip install docplex !pip install cplex from docplex.mp.model import Model from docplex.mp.relax_linear import LinearRelaxer mdl = Model(name='buses') nbbus40 = mdl.integer_var(...


1

Disclaimer: I did my PhD on the topic below and was the author of one of the toolboxes I mention below. This sounds a lot like you are interested in multi-parametric programming, i.e. solving your optimization problem as a function of the market prices. Each price is then a parameter and you can then solve the problem as a function thereof. The only tools ...


1

You can derive them from the balance equations. If you check Taha's or Lieberman's Introduction to OR books, you can find the proofs.


1

As documented at https://www.mathworks.com/help/optim/ug/linprog.html, linprog returns the Lagranage multipliers via the optional 5th output argument, lambda. What are called Lagrange Multipliers by linprog and in Nonlinear Programming (optimization) are more usually called dual values in Linear Programming. So perhaps that is why you did not realize ...


Only top voted, non community-wiki answers of a minimum length are eligible