使用CPLEX按变量执行除法

时间:2019-04-15 18:49:50

标签: java cplex

据我所知,CPLEX允许使用以下方法:

addition method : sum()
multiplication method : prod()
subtraction method : diff()

我想知道是否可以对变量进行除法,如果不能,可能的解决方法是什么。

谢谢。

2 个答案:

答案 0 :(得分:2)

如果您有类似

的表达式
  constant1 = constant2 / var2

然后您可以将其重新排列(就像您在学校一样)

  var2 * constant1 = constant2

类似地,如果您有类似的东西:

  var1 / var2 = constant

也可以很容易地重新排列为

  var1 = var2 * constant

对于更复杂的情况,请尝试查找“线性分数规划”

答案 1 :(得分:1)

您只能使用产品管理吗? 如果没有,则可以使用所有具有逻辑约束的选项的总和。

让我在OPL中分享一个示例,向您展示方法:

    dvar int x in 1..4;;
    dvar int y in 1..5;;

    dvar float z; //=x/y;
    maximize z;
    subject to
    {
      z==x*sum(i in 1..5) (i==y)*(1/i);
    }

    assert z==x/y;

致谢