Originally posted by: SystemAdmin
You can use cplex.prod() to create products of variables as in this code snippet:
import ilog.cplex.*;
import ilog.concert.*;
public final class QuadCons {
public static void main(String[] args) {
try {
IloCplex cplex = new IloCplex();
IloNumVar x = cplex.numVar(0, 1, "x");
IloNumVar y = cplex.numVar(0, 1, "y");
IloNumVar z = cplex.numVar(0, 1, "z");
// Add constraint 2x^2 + 3xy + 4z <= 5
cplex.addLe(cplex.sum(cplex.sum(cplex.prod(2, cplex.prod(x, x)),
cplex.prod(3, cplex.prod(x, y))),
cplex.prod(4, z)),
5);
cplex.exportModel("model.lp");
cplex.end();
} catch (IloException e) {
System.err.println(e.getMessage());
e.printStackTrace();
System.exit(-1);
}
}
}
Or switch to CPLEX 12.3 or later, support for quadratic expressions was improved for this version.
#CPLEXOptimizers#DecisionOptimization