Previous Page | Next Page

The Mixed Integer Linear Programming Solver

Macro Variable _OROPTMODEL_

The OPTMODEL procedure defines a macro variable named _OROPTMODEL_. This variable contains a character string that indicates the status of the solver upon termination. The contents of the macro variable depend on which solver was invoked. For the MILP solver, the various terms of _OROPTMODEL_ are interpreted as follows.

STATUS

indicates the solver status at termination. It can take one of the following values:

OK

solver terminated normally

SYNTAX_ERROR

incorrect use of syntax

DATA_ERROR

inconsistent input data

OUT_OF_MEMORY

insufficient memory allocated to the solver

IO_ERROR

problem in reading or writing data

SEMANTIC_ERROR

evaluation error, such as an invalid operand type

ERROR

status that cannot be classified into any of the preceding categories

SOLUTION_STATUS

indicates the solution status at termination. It can take one of the following values:

OPTIMAL

solution is optimal

OPTIMAL_AGAP

optimal solution within absolute gap specified using ABSOBJGAP= option

OPTIMAL_RGAP

optimal solution within relative gap specified using RELOBJGAP= option

OPTIMAL_COND

solution is optimal, but some infeasibilities (primal, bound, or integer) exceed tolerances due to scaling or choice of small INTTOL= value

TARGET

solution not worse than target specified using TARGET= option

INFEASIBLE

problem is infeasible

UNBOUNDED

problem is unbounded

INFEASIBLE_OR_UNBOUNDED

problem is infeasible or unbounded

BAD_PROBLEM_TYPE

problem type is unsupported by solver

SOLUTION_LIM

solver reached maximum number of solutions specified using option MAXSOLS=

NODE_LIM_SOL

solver reached maximum number of nodes specified using MAXNODES= option and found a solution

NODE_LIM_NOSOL

solver reached maximum number of nodes specified using MAXNODES= option and did not find a solution

TIME_LIM_SOL

solver reached the execution time limit specified using MAXTIME= option and found a solution

TIME_LIM_NOSOL

solver reached the execution time limit specified using MAXTIME= option and did not find a solution

ABORT_SOL

solver was stopped by user but still found a solution

ABORT_NOSOL

solver was stopped by user and did not find a solution

OUTMEM_SOL

solver ran out of memory but still found a solution

OUTMEM_NOSOL

solver ran out of memory and either did not find a solution or failed to output solution due to insufficient memory

FAIL_SOL

solver stopped due to errors but still found a solution

FAIL_NOSOL

solver stopped due to errors and did not find a solution

OBJECTIVE

indicates the objective value obtained by the solver at termination.

RELATIVE_GAP

specifies the relative gap between the best integer objective (BestInteger) and the objective of the best remaining node (BestBound) upon termination of the MILP solver. The relative gap is equal to

     
ABSOLUTE_GAP

specifies the absolute gap between the best integer objective (BestInteger) and the objective of the best remaining node (BestBound) upon termination of the MILP solver. The absolute gap is equal to .

PRIMAL_INFEASIBILITY

indicates the maximum (absolute) violation of the primal constraints by the solution.

BOUND_INFEASIBILITY

indicates the maximum (absolute) violation by the solution of the lower and/or upper bounds.

INTEGER_INFEASIBILITY

indicates the maximum (absolute) violation of the integrality of integer variables returned by the MILP solver.

BEST_BOUND

specifies the best LP objective value of all unprocessed nodes on the branch-and-bound tree at the end of execution. A missing value indicates that the MILP solver has processed either all or none of the nodes on the branch-and-bound tree.

NODES

specifies the number of nodes enumerated by the MILP solver by using the branch-and-bound algorithm.

ITERATIONS

indicates the number of simplex iterations taken to solve the problem.

PRESOLVE_TIME

indicates the time (in seconds) used in preprocessing.

SOLUTION_TIME

indicates the time (in seconds) taken to solve the problem.

Note:The time reported in PRESOLVE_TIME and SOLUTION_TIME is either CPU time (default) or real time. The type is determined by the TIMETYPE= option.

Previous Page | Next Page | Top of Page