Originally posted by: SystemAdmin
[EdKlotz said:]
two variables X1, X2. the objective function includes a term : X1*X2. How to transform it into quadratic programming?
That is a quadratic program, but not a convex one. So, CPLEX will not solve it. The variables are continuous, right?
If so, I don't know of any way to transform it into a QP CPLEX can solve; you need a more general nonlinear programming
solver (Knitro, MINOS, etc.), or you need a specialized bilinear programming solver. If your variables are binary, CPLEX can
solve such an objective. Since the square of a binary is still a binary,
X1*X2 = X1^2 + X1*X2 + X2^2 - X1 - X2
and you now have a convex QP. You can also linearize the product of binary variables by replacing X1*X2 with a binary
Z12 and the constraints
Z12 <= X1<br />Z12 <= X2<br />Z12 >= X1 + X2 - 1
Thus, Z12 = 1 only if X1 and X2 = 1; otherwise Z12 = 0. Hence Z12 = X1*X2 when X1 and X2 are binary.
Other such linearizations exists as well.
#CPLEXOptimizers#DecisionOptimization