AComputer
AComputer

Reputation: 529

sensitivity analysis in docplex

how can I do sensitivity analysis in docplex (python)? Suppose we have this model:

 Max z= 3*x+2*y;
  st:
      2*x+y<=8;
      x+2*y<=6;

I use docplex in python for solve the model:

from docplex.mp.model import Model
tm = Model(name="MyModel")
x = tm.continuous_var()
y = tm.continuous_var()
tm.add_constraint(2*x+y <= 8)
tm.add_constraint(x+2*y <= 6)
expr = 3*x+2*y
tm.maximize(expr)
result = tm.solve()

How can determine the ranges of the right-hand-side constants for the constraints for which the current basis remains optimal?

Upvotes: 2

Views: 803

Answers (1)

Alex Fleischer
Alex Fleischer

Reputation: 10059

you could use the cplex python object:

from docplex.mp.model import Model
tm = Model(name="MyModel")
x = tm.continuous_var()
y = tm.continuous_var()
tm.add_constraint(2*x+y <= 8)
tm.add_constraint(x+2*y <= 6)
expr = 3*x+2*y
tm.maximize(expr)
result = tm.solve()

cpx = tm.get_engine().get_cplex()

print(cpx.solution.sensitivity.lower_bounds())
print(cpx.solution.sensitivity.upper_bounds())
print(cpx.solution.sensitivity.bounds())
print(cpx.solution.sensitivity.objective())
print(cpx.solution.sensitivity.rhs())

Upvotes: 5

Related Questions