Requires Analytica Optimizer.
Returns the status of the search for an optimal solution for a linear, quadratic or non-linear program created using DefineOptimization. Typically this provides an indication of which conditioned caused the termination of the search. The result of OptStatusNum is a numeric value, while LpStatusText returns returns equivalent information in English.
When the optional «reportIsFeasible» parameter is not included, returns status codes according to the following table (you can get the English-language text from OptStatusText:
// Invalid status. Can be returned for API_QQ_RESTART_SOLVE. Optimize_Status_Invalid = -3, // Ignore status. Used when dummy result code needs to be overridden. Optimize_Status_Ignore = -2, // Invalid license status. (License expired, missing, invalid, etc.) Optimize_Status_Lic_Problem = -1, // Optimal solution has been found. Optimize_Status_Optimal = 0, // The Solver has converged to the current solution. Optimize_Status_Converged = 1, // "No remedies" status. (All remedies failed to find better point.) Optimize_Status_No_Remedies = 2, // Iterates limit reached. Indicates an early exit of the algorithm. Optimize_Status_Iterate_Limit = 3, // Optimizing an unbounded objective function. Optimize_Status_Unbounded = 4, // Feasible solution could not be found. Optimize_Status_Unfeasible = 5, // Optimization aborted by user. Indicates an early exit of the algorithm. Optimize_Status_User_Abort = 6, // Invalid linear model. Returned when a linearity assumption renders incorrect. Optimize_Status_Linear_Invalid = 7, // Bad data set status. Returned when a problem data set renders inconsistent. Optimize_Status_Bad_Dataset = 8, // Float error status. (Internal float error.) Optimize_Status_Float_Err = 9, // Time out status. Returned when the maximum allowed time has been exceeded. Indicates an early exit of the algorithm. Optimize_Status_Time_Out = 10, // Memory dearth status. Returned when the system cannot allocate enough memory to perform the optimization. Optimize_Status_Memory_Dearth = 11, // Interpretation error. (Parser, Diagnostics, or Executor error.) Optimize_Status_Interpret_Err = 12, // Fatal API error. (API not responding.) Optimize_Status_Api_Err = 13, // The Solver has found an integer solution within integer tolerance. Optimize_Status_Incumb_Cand = 14, // Branching and bounding node limit reached. Indicates an early exit of the algorithm. Optimize_Status_Bbnode_Limit = 15, // Branching and bounding maximum number of incumbent points reached. Indicates an early exit of the algorithm. Optimize_Status_Bbmips_Limit = 16, // Probable global optimum reached. Returned when MSL (Bayesian) global optimality test has been satisfied. Optimize_Status_Probable = 17, // Missing bounds status. Returned for EV/MSL Require Bounds when bounds are missing. Optimize_Status_Bounds_Missing = 18, // Bounds conflict status. Indicates <= = > = bounds conflict with existing binary or alldifferent constraints. Optimize_Status_Bounds_Conflict = 19, // Bounds inconsistency status. Returned when the lower bound value of a variable is grater than the upper bound value, // i.e. lb[i] > ub[i] for some variable bound i. Optimize_Status_Bounds_Inconsist = 20, // Derivative error. Returned when API_Jacobian has not been able to compute gradients. Optimize_Status_Derivative_Err = 21, // Cone overlap status. Returned when a variable appears in more than one cone. Optimize_Status_Cone_Overlap = 22, // Exception occurred status. Returned when an exception has been caught by try/catch top-level. Optimize_Status_Exception = 999, // Custom base status. (Base for Solver engine custom results.) Optimize_Status_Custom_Base = 1000 // The quadratic constraints are non-convex, the SOCP engine cannot solve this problem. Quadratic_Constraints_Not_Convex = 1102
When «reportIsFeasible» is passed as True, return a boolean value -- 0 indicating no feasible solution was found, and 1 indicating that a feasible solution was found. Feasible here means that the solution satisfies the given constraints. When your problem also has an objective to be minimized or maximized, being feasible does not indicate that the global extrema was located.
In Analytica Optimizer 4.0, it is also possible to utilize add-on engines. When these are used, additional engine-specific codes may be returned.