【问题标题】:sensitivity analysis in docplexdocplex中的敏感性分析
【发布时间】:2020-10-09 23:53:37
【问题描述】:

如何在 docplex (python) 中进行敏感性分析? 假设我们有这个模型:

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

我在 python 中使用 docplex 来求解模型:

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

如何确定当前基础保持最优的约束的右侧常数范围?

【问题讨论】:

    标签: python cplex docplex


    【解决方案1】:

    你可以使用 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())
    

    【讨论】:

    • 我试过了,但出现以下错误:CplexSolverError: CPLEX 错误 1217: 不存在解决方案。你知道怎么解决吗?
    • 您好,您可能会得到这个,因为您的模型不可行。当你做 print(result) 你会得到什么?如果你得到 None 那么你没有解决方案。
    • 嗨,我的模型是可行的,因为我能够打印解决方案,当我检查它们时,它们是正确的。这是否仅适用于连续变量?因为我所有的变量都是整数。
    • 是的。但是你可以放松你的整数模型然后得到它。见github.com/AlexFleischerParis/zoodocplex/blob/master/…
    • 谢谢。我想知道在这种情况下哪个是我的解决方案/结果,它是'rs'值吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2021-10-11
    相关资源
    最近更新 更多