使用CPLEX将成本函数内的多个元素相乘

时间:2019-04-01 15:00:04

标签: java cplex

我正在Java中使用CPLEX,我想在成本函数中添加以下乘法:

Minimize(A*B*X)

where:
A ∈ ℝ^1*n
B ∈ ℝ^m*n
X ∈ ℝ^n*1

据我所知,A*B类似于:

for(int i = 0; i < m; i++)
  for(int j = 0; j < n; j++)
    objective.addTerm(A[i], B[i][j]);

但是如何将这三个术语(A*B*X)相乘?我没有找到有关此主题的太多信息。

1 个答案:

答案 0 :(得分:1)

您似乎想制定一个CPLEX不支持的模型(例如,它既不是线性的也不是平方的)。那正确吗?如果没有,请提供更多详细信息。有关CPLEX可以解决的模型类型的说明,请参见here

您为A*B设计的示例看起来或多或少是正确的(取决于objective的类型),但是我认为您很可能缺少指定系数的第一个参数。例如,请参见IloLQNumExpr.addTerm

如果还没有,请看看CPLEX随附的Java示例(例如QPex1.java,SocpEx1.java等)。