【问题标题】:Handling variables in the denominator of an objective function in CPLEX Python在 CPLEX Python 中处理目标函数分母中的变量
【发布时间】:2021-10-21 01:30:09
【问题描述】:

我希望求解一个具有目标函数的线性规划:

这里 x[i][j] 是决策变量,y[i][j] 已经预先计算。

我在 CPLEX python (DOcplex) 中为此编写代码,并收到分母只能是数字的错误。有没有办法正确地做到这一点?

这是我的代码:

l_model.minimize(l_model.sum(l_model.sum(x[i,j]*y[(i,j)] for j in A)/l_model.sum(x[i,j] for j in A) for i in B))

【问题讨论】:

    标签: cplex docplex


    【解决方案1】:

    在上面的代码中,我在分母中看到了x 变量,这解释了错误信息; Docplex(和 CPLEX 也是)期望具有浮点系数的线性目标。

    此外,如果y 也是决策变量字典,那么无论y 中的变量是否固定,分子表达式都会被解释为二次 表达式。这反过来又导致 CPLEX 选择 QP 算法,这可能不是您想要的。

    总而言之:您需要提供一个完全由变量和 Python 数字组成的线性表达式作为目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 2021-12-26
      • 1970-01-01
      • 2020-05-13
      • 2018-10-08
      • 1970-01-01
      相关资源
      最近更新 更多