Есть ли функция CPLEX для условного выражения в его Java API? - PullRequest
0 голосов
/ 23 января 2019

Можно ли включить условное выражение ("условие? Exp1: exp2") в CPLEX Java API? В OPL я могу написать это (x, y, c - переменные решения)

(c==1 ? x+y : x ) == 0

но я не нашел эквивалентной функции в его Java API

1 Ответ

0 голосов
/ 23 января 2019

Вы могли бы написать

solver.addEq((c==1)?solver.sum(x,y):x,0);

Позвольте мне привести вам небольшой пример

    IloCplex solver = new IloCplex();

    IloNumVar x = solver.numVar(0,10); 
    IloNumVar y = solver.numVar(0,10); 

    int c=1;
    solver.addEq((c==1)?solver.sum(x,y):x,0);
    solver.addMaximize(solver.sum(x,y));
    solver.solve();
    System.out.println("x = " + solver.getValue(x));
    System.out.println("y = " + solver.getValue(y));
...