据我所知,CPLEX允许使用以下方法:
addition method : sum()
multiplication method : prod()
subtraction method : diff()
我想知道是否可以对变量进行除法,如果不能,可能的解决方法是什么。
谢谢。
答案 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;
致谢