Cplex java многомерная переменная решения, минимизация

Я использую Cplex в Java и хочу минимизировать сумму произведений элементов из двух матриц (произведений элементов с одинаковым индексом).

x [n] [n] содержит переменные решения [0, 1]

cost [n] [n] содержит стоимость пути от i до j

Я хочу минимизировать сумму затрат x [i] [j] * j [i] [j] для всех i..n; 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 ++), но поскольку я не знаком с c ++, я не могу найти из него никакого решения.


person Hendrik    schedule 26.07.2013    source источник


Ответы (1)


Это должно сделать это:

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 (объект);

person user327301    schedule 26.07.2013