анализ чувствительности в докплексе - PullRequest
0 голосов
/ 19 июня 2020

как мне провести анализ чувствительности в docplex (python)? Предположим, у нас есть эта модель:

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

Я использую docplex в python для решения модели:

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()

Как определить диапазоны правых констант для ограничения, при которых текущий базис остается оптимальным?

1 Ответ

2 голосов
/ 21 июня 2020

вы можете использовать объект cplex python:

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())
...