Originally posted by: AnirudhSubramanyam
Hi,
I'm using CPLEX 12.7. I have attached the LP file of the non-convex QP that I want to solve to global optimality. Therefore, I set the CPXPARAM_OptimalityTarget parameter to CPX_OPTIMALITYTARGET_OPTIMALGLOBAL and call CPXXqpopt. Upon attempting to solve this problem, CPLEX immediately gives error code CPXMIP_ABORT_RELAXATION_UNBOUNDED. I figured this error is probably arising because the McCormick relaxation is unbounded; therefore, I try and set some artificial upper bounds for the "x" variables even though I do not want to this and will not have access to this in the general case. Upon setting upper bounds varying from 1E+9 or 1E+12, CPLEX gives error codes which switch between CPXMIP_ABORT_RELAXATION_UNBOUNDED and CPXMIP_INForUNBD. Upon setting an upper bound of 1E+7, CPLEX terminates prematurely with error code 3019.
Next, I tried setting the CPXPARAM_OptimalityTarget parameter to CPX_OPTIMALITYTARGET_FIRSTORDER and called CPXXqpopt on the original model (without artificial bounds on the x variables) and obtained a solution with objective value ~86. This rules out the possibility that the original problem is infeasible.
Next, I tried solving the problem with BARON. BARON immediately (<1sec) solves the original model (without artificial bounds on the x variables) to global optimality and returns the same solution of value ~86. I also tried putting artificial bounds of ranging from 1E+7 to 1E+12; however, BARON consistently outputs the same solution of value ~86 with a solution status of global optimality. This appears to rule out the possibility that the original problem is unbounded.
At this point, I'm not sure if I should trust the CPLEX status CPXMIP_INForUNBD and more broadly, its methods for non-convex (MI)QP computations. Is there something I am missing here or am I doing something wrong?
Thanks.
#CPLEXOptimizers#DecisionOptimization