Units: | Yes/No |
Default Value: | False (0) |
Validation Rule: | False (0) or True (-1) |
Description: | Print a summary of the solution status, objective function value, etc for each mathematical program solved. |
Diagnostic Solver Summary controls the printing of a brief summary of each solution to the mathematical programming problems solved during the simulation. These summaries are of the following format depending on the LP/MIP solved:
For Linear problems, the output is as follows:
--------------------------------------------------------------------------------------------------------------------------------
Gurobi 9.5.1....................................................................................................................
Task 1 Solution 7 .......................................................................................... DualSimplex
Iterations ................................................................................................. 0
Threads .................................................................................................... 8
Time ....................................................................................................... 0.0004 sec.
Status ..................................................................................................... Optimal
Objective .................................................................................................. 7.200000e+004
Basis condition number (estimate) .......................................................................... 3.649427e+002
--------------------------------------------------------------------------------------------------------------------------------
For Integer problems, the output is as follows:
--------------------------------------------------------------------------------------------------------------------------------
Gurobi 9.5.1....................................................................................................................
Task 1 Solution 4 .......................................................................................... MixedInteger
Nodes ...................................................................................................... 1
Threads .................................................................................................... 8
Time ....................................................................................................... 0.8516 sec.
Status ..................................................................................................... Optimal
Objective .................................................................................................. 7.428011e+009
Best Bound ................................................................................................. 7.428011e+009
Final Gap .................................................................................................. 0.0000 %
Basis condition number (estimate) .......................................................................... 5.827401e+003
--------------------------------------------------------------------------------------------------------------------------------
Condition numbers are further described in Numerical Stability.
The solver status depends on the solver used in the optimization. The table below presents the status codes, descriptions, and the solver status output generated by PLEXOS for Gurobi.
Gurobi status code | Value | Description | Plexos Status |
---|---|---|---|
LOADED | 1 | Model was solved to optimality (subject to tolerances), and an optimal solution is available. | Unknown |
OPTIMAL | 2 | Model is loaded, but no solution information is available. | Optimal |
INFEASIBLE | 3 | Model was proven to be infeasible. | Primal Infeasible Certificate |
INF_OR_UNBD | 4 | Model was proven to be either unfeasible or unbounded. | Primal Infeasible Certificate |
UNBOUNDED | 5 | Model was proven to be unbounded. | Dual Infeasible Certificate |
CUTOFF | 6 | Optimal objective for model was proven to be worse than the value specified in the Cutoff parameter. No solution information is available. | Unknown |
ITERATION_LIMIT | 7 | Optimization terminated because the total number of simplex iterations performed exceeded the value specified in the value specified in the IterationLimit parameter, or because the total number of barrier iterations exceeded the value specified in the BarIterLimit parameter. | Unknown |
NODE_LIMIT | 8 | Optimization terminated because the total number of branch-and-out nodes explored exceeded the value specified in the NodeLimit parameter. | Unknown |
TIME_LIMIT | 9 | Optimization terminated because the time expended exceeded the value specified in the TimeLimit parameter. | If an integer-feasible solution was found: Primal Feasible. If not: Unknown. |
SOLUTION_LIMIT | 10 | Optimization terminated because the number of solutions found reach the value specified in the SolutionLimit parameter. | Unknown |
INTERRUPTED | 11 | Optimization was terminated by user. | If an integer-feasible solution was found: Optimal. If not: Unknown. |
NUMERIC | 12 | Optimization was terminated due to unrecoverable numerical difficulties. | Optimal |
SUBOPTIMAL | 13 | Unable to satisfy optimality tolerances; a sub-optimal solution is available. | Optimal |
INPROGRESS | 14 | An asynchronous optimization call was made, but the associated optimization run is not yet complete. | Default: Unknown |
USER_OBJ_LIMIT | 15 | User specified an objective limit (a bound on either the best objective or the best bound), and that limit has been reached. | Default: Unknown |
WORK_LIMIT | 16 | Optimization terminated because the work expended exceeded the value specified in the WorkLimit parameter. | Default: Unknown |
The following tables presents the status codes, descriptions, and reported solver statuses for CPLEX LP and MIP.
Table 2. CPLEX LP status codes and corresponding PLEXOS solution statuses.
CPLEX status code | Value | Description | Plexos Status |
---|---|---|---|
CPX_STAT_OPTIMAL | 1 | Optimal solution is available. | Optimal |
CPX_STAT_UNBOUNDED | 2 | Problem has an unbounded array. | Dual Infeasible Certificate |
CPX_STAT_INFEASIBLE | 3 | Model has proven to be infeasible. | Primal Infeasible Certificate |
CPX_STAT_INForUNBD | 4 | Model has proven to be either unfeasible or unbounded. | Dual Infeasible Certificate |
CPX_STAT_OPTIMAL_INFEAS | 5 | Optimal solution is available, but with infeasibilities after scaling. | Optimal |
CPX_STAT_NUM_BEST | 6 | Solution is available, but not proved optimal, due to numeric difficulties during optimization. | Optimal |
CPX_STAT_ABORT_PRIM_OBJ_LIM | 21 | Stopped due to a limit on the primal objective. | Dual Infeasible Certificate |
CPX_STAT_ABORT_DUAL_OBJ_LIM | 22 | Stopped due to limit on dual objective. | Primal Infeasible Certificate |
CPX_STAT_FEASIBLE | 23 | Primal Feasible | |
CPX_STAT_MULTIOBJ_OPTIMAL | 301 | All sub-problems solved during the solution of a multi-objective problem have been solved to optimality. | Optimal |
CPX_STAT_MULTIOBJ_INFEASIBLE | 302 | Multi-objective problem has been proven infeasible. | Primal Infeasible Certificate |
CPX_STAT_MULTIOBJ_INForUNBD | 303 | Multi-objective problem has been proven either infeasible or unbounded. | Dual Infeasible Certificate |
CPX_STAT_MULTIOBJ_UNBOUNDED | 304 | Multi-objective problem has an unbounded array. | Dual Infeasible Certificate |
CPX_STAT_MULTIOBJ_NON_OPTIMAL | 305 | All sub-problems solved during the solution of a multi-objective problem have been solved, but at least one of them has not been solved to optimality. | "CPLEX status = {nIn}" |
CPX_STAT_MULTIOBJ_STOPPED | 306 | The solve of a multi-objective problem was interrupted. | "CPLEX status = {nIn}" |
Table 3. CPLEX MIP status codes and corresponding PLEXOS solution statuses.
CPLEX status code | Value | Description | Plexos Status |
---|---|---|---|
CPXMIP_OPTIMAL | 101 | An optimal integer solution has been found. | Optimal |
CPXMIP_OPTIMAL_TOL | 102 | An optimal solution within the tolerance defined by the relative or absolute MIP gap has been found. | Optimal |
CPXMIP_INFEASIBLE | 103 | Solution is integer infeasible. | Primal Infeasible Certificate |
CPXMIP_TIME_LIM_FEAS | 107 | Time limit exceeded, but integer solution exists. | Primal Feasible |
CPXMIP_FAIL_FEAS | 109 | Terminated because of an error, but integer solution exists. | Primal Feasible |
CPXMIP_ABORT_FEAS | 113 | Stopped, but an integer solution exists. | Primal Feasible |
CPXMIP_OPTIMAL_INFEAS | 115 | Stopped; no integer solution. | Optimal |
CPXMIP_UNBOUNDED | 118 | Problem has an unbounded array. | Dual Infeasible Certificate |
CPXMIP_DETTIME_LIM_FEAS | 131 | Deterministic time limit exceeded, but integer solution exists. | Primal Feasible |
CPX_STAT_MULTIOBJ_OPTIMAL | 301 | All sub-problems solved during the solution of a multi-objective problem have been solved to optimality. | Optimal |
CPX_STAT_MULTIOBJ_INFEASIBLE | 302 | Multi-objective problem has been proven infeasible. | Primal Infeasible Certificate |
CPX_STAT_MULTIOBJ_INForUNBD | 303 | Multi-objective problem has been proven either infeasible or unbounded. | Dual Infeasible Certificate |
CPX_STAT_MULTIOBJ_UNBOUNDED | 304 | Multi-objective problem has an unbounded ray. | Dual Infeasible Certificate |
CPX_STAT_MULTIOBJ_NON_OPTIMAL | 305 | All sub-problems solved during the solution of a multi-objective problem have been solved, but at least one of them has not been solved to optimality. | "CPLEX status = {nIn}" |
CPX_STAT_MULTIOBJ_STOPPED | 306 | The solve of a multi-objective problem was interrupted. | Optimal |