Originally posted by: Mark L. Stone
12.6.1 still doesn't seem to provide documentation of possible exitflag values. Is it safe to assume that if cplexqp returns a positive exitflag value other than 5, that the solution is feasible (even if not necessarily optimal)?
The context for this is calling cplexqp within an outer algorithm, so no human is there to interpret the results in a non-automated way. Alternatively, if I knew all possible numerical values for output.cplexstatus which could correspond to an infeasible solution, or all possible text values for output.cplexstatusstring which could correspond to an infeasible solution, that would work as well. Basically, I want the calling algorithm to know whether or not a feasible solution has been returned (even if it may not be optimal).
I am currently assuming that if exitflag is positive and not equal to 5, that I have a usable (feasible) solution.
exitflag can also return 'Unknown status', which seems to be what I get with solutiontarget = 2 when an indefinite QP is solved, and it has output.cplexstatus = 24 and output.cplexstatusstring = 'satisfies first order optimality conditions'. When a convex QP is solved (also with solutiontarget = 2), I seem to get exitflag = 1, with output.cplexstatus = 1 and output.cplexstatusstring = ''optimal'. What are the possible reasons for 'Unknown status'? Am I safe in assuming that exitflag = 'Unknown status' returns a solution which is feasible?
It seems to me that satisfying first order optimal conditions for a non-convex QP should merit a "better" exitflag value than 'Unknown status'.
Thanks.
#CPLEXOptimizers#DecisionOptimization