Cplex java多维决策变量,最小化

时间:2013-07-26 02:45:15

标签: java cplex

我在Java中使用Cplex并希望最小化两个矩阵(具有相同索引的元素的产品)的元素乘积之和。

x [n] [n]包含decisionvariables [0,1]

cost [n] [n]包含从i到j的成本

我希望尽量减少所有i..n的费用总和x [i] [j] * j [i] [j]; j..n。

我创建了这样的变量:

[...]
static double   lb = 0.0;
static double   ub = 1.0;
static double   cost[][] = new double[n][n];

IloNumVar[][] x = new IloNumVar[n][n];
        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                x[i][j] = cplex.numVar(lb, ub);
                }
        }

我的问题是我不知道如何创建最小化部分。

我发现了一些似乎与我的问题(Cplex c++ multidimensional decision variable)非常相似的东西,但由于我对c ++不熟悉,我没有得到任何解决方案。

1 个答案:

答案 0 :(得分:2)

这应该这样做:

IloLinearNumExpr obj = cplex.linearNumExpr();

for (int i = 0; i < n; i++) {
  for (int j = 0; j < n; j++) {
    obj.addTerm(cost[i][j], x[i][j]);
  }
}

cplex.addMinimize(OBJ);