The OPTNET procedure defines one summary macro variable that reports the overall status and one detailed macro variable for
each completed algorithm.
Macro Variable _OROPTNET_
The OPTNET procedure defines a macro variable named _OROPTNET_. This variable contains a character string that indicates the
status of the OPTNET procedure upon termination. The various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the procedure at termination. The STATUS term can take one of the following values:
- OK
-
The procedure terminated normally.
- OUT_OF_MEMORY
-
Insufficient memory was allocated to the procedure.
- INTERRUPTED
-
The procedure was interrupted by the user during the input or setup phase.
- ERROR
-
The procedure encountered an error.
-
BICONCOMP
-
indicates the status of the biconnected components algorithm at termination. This algorithm is described in the section Biconnected Components and Articulation Points. The BICONCOMP term can take one of the following values:
- OK
-
The algorithm terminated normally.
- ERROR
-
The algorithm encountered an error.
-
CLIQUE
-
indicates the status of the clique-finding algorithms at termination. These algorithms are described in the section Clique. The CLIQUE term can take one of the following values:
- OK
-
The algorithm terminated normally.
- INTERRUPTED
-
The algorithm was interrupted by the user.
- TIMELIMIT
-
The algorithm reached its execution time limit, which is specified in the MAXTIME=
option in the CLIQUE
statement.
- SOLUTION_LIM
-
The algorithm reached its limit on the number of cliques found, which is specified in the MAXCLIQUES=
option in the CLIQUE
statement.
- ERROR
-
The algorithm encountered an error.
-
CONCOMP
-
indicates the status of the connected components algorithm at termination. This algorithm is described in the section Connected Components. The CONCOMP term can take one of the following values:
- OK
-
The algorithm terminated normally.
- ERROR
-
The algorithm encountered an error.
-
CYCLE
-
indicates the status of the cycle detection algorithm at termination. This algorithm is described in the section Cycle. The CYCLE term can take one of the following values:
- OK
-
The algorithm terminated normally.
- TIMELIMIT
-
The algorithm reached its execution time limit, which is specified in the MAXTIME=
option in the CYCLE
statement.
- SOLUTION_LIM
-
The algorithm reached its limit on the number of cycles found, which is specified in the MAXCYCLES=
option in the CYCLE
statement.
- ERROR
-
The algorithm encountered an error.
-
LAP
-
indicates the status of the linear assignment solver at termination. This solver is described in the section Linear Assignment (Matching). The LAP term can take one of the following values:
- OPTIMAL
-
The solution is optimal.
- INFEASIBLE
-
The problem is infeasible.
- ERROR
-
The solver encountered an error.
-
MCF
-
indicates the status of the minimum-cost network flow solver at termination. This solver is described in the section Minimum-Cost Network Flow. The MCF term can take one of the following values:
- OPTIMAL
-
The solution is optimal.
- OPTIMAL_COND
-
The solution is optimal, but some infeasibilities (primal or bound) exceed tolerances because of scaling.
- INFEASIBLE
-
The problem is infeasible.
- UNBOUNDED
-
The problem is unbounded.
- TIMELIMIT
-
The solver reached its execution time limit, which is specified in the MAXTIME=
option in the MINCOSTFLOW
statement.
- FAIL_NOSOL
-
The solver stopped because of errors and did not find a solution.
- ERROR
-
The solver encountered an error.
-
MINCUT
-
indicates the status of the minimum-cut solver at termination. This solver is described in the section Minimum Cut. The MINCUT term can take one of the following values:
- OPTIMAL
-
The solution is optimal.
- INFEASIBLE
-
The problem is infeasible.
- INTERRUPTED
-
The solver was interrupted by the user.
- ERROR
-
The solver encountered an error.
-
MST
-
indicates the status of the minimum spanning tree solver at termination. This solver is described in the section Minimum Spanning Tree. The MST term can take one of the following values:
- OPTIMAL
-
The solution is optimal.
- INTERRUPTED
-
The algorithm was interrupted by the user.
- ERROR
-
The solver encountered an error.
-
SHORTPATH
-
indicates the status of the shortest path algorithms at termination. These algorithms are described in the section Shortest Path. The SHORTPATH term can take one of the following values:
- OK
-
The algorithm terminated normally.
- INTERRUPTED
-
The algorithm was interrupted by the user.
- ERROR
-
The algorithm encountered an error.
-
TRANSCL
-
indicates the status of the transitive closure algorithm at termination. This algorithm is described in the section Transitive Closure. The TRANSCL term can take one of the following values:
- OK
-
The algorithm terminated normally.
- INTERRUPTED
-
The algorithm was interrupted by the user.
- ERROR
-
The algorithm encountered an error.
-
TSP
-
indicates the status of the traveling salesman problem solver at termination. This algorithm is described in the section Traveling Salesman Problem. The TSP term can take one of the following values:
- OPTIMAL
-
The solution is optimal.
- OPTIMAL_AGAP
-
The solution is optimal within the absolute gap that is specified in the ABSOBJGAP= option.
- OPTIMAL_RGAP
-
The solution is optimal within the relative gap that is specified in the RELOBJGAP= option.
- OPTIMAL_COND
-
The solution is optimal, but some infeasibilities (primal, bound, or integer) exceed tolerances because of scaling.
- TARGET
-
The solution is not worse than the target that is specified in the TARGET= option.
- INFEASIBLE
-
The problem is infeasible.
- UNBOUNDED
-
The problem is unbounded.
- INFEASIBLE_OR_UNBOUNDED
-
The problem is infeasible or unbounded.
- SOLUTION_LIM
-
The solver reached the maximum number of solutions specified in the MAXSOLS= option.
- NODE_LIM_SOL
-
The solver reached the maximum number of nodes specified in the MAXNODES= option and found a solution.
- NODE_LIM_NOSOL
-
The solver reached the maximum number of nodes specified in the MAXNODES= option and did not find a solution.
- TIME_LIM_SOL
-
The solver reached the execution time limit specified in the MAXTIME= option and found a solution.
- TIME_LIM_NOSOL
-
The solver reached the execution time limit specified in the MAXTIME= option and did not find a solution.
- HEURISTIC_SOL
-
The solver used only heuristics and found a solution.
- HEURISTIC_NOSOL
-
The solver used only heuristics and did not find a solution.
- ABORT_SOL
-
The solver was stopped by the user but still found a solution.
- ABORT_NOSOL
-
The solver was stopped by the user and did not find a solution.
- OUTMEM_SOL
-
The solver ran out of memory but still found a solution.
- OUTMEM_NOSOL
-
The solver ran out of memory and either did not find a solution or failed to output the solution due to insufficient memory.
- FAIL_SOL
-
The solver stopped due to errors but still found a solution.
- FAIL_NOSOL
-
The solver stopped due to errors and did not find a solution.
Each algorithm reports its own status information in an additional macro variable. The following sections provide more information
about these macro variables.
Macro Variable _OROPTNET_BICONCOMP_
The OPTNET procedure defines a macro variable named _OROPTNET_BICONCOMP_. This variable contains a character string that
indicates the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to calculate biconnected
components. The various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the algorithm at termination. The STATUS term takes the same value as the term BICONCOMP
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
NUM_COMPONENTS
-
indicates the number of biconnected components found by the algorithm.
-
NUM_ARTICULATION_POINTS
-
indicates the number of articulation points found by the algorithm.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the algorithm.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the algorithm.
Macro Variable _OROPTNET_CLIQUE_
The OPTNET procedure defines a macro variable named _OROPTNET_CLIQUE_. This variable contains a character string that indicates
the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to calculate cliques. The various
terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the algorithm at termination. The STATUS term takes the same value as the term CLIQUE
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
NUM_CLIQUES
-
indicates the number of cliques found by the algorithm.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the algorithm.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the algorithm.
Macro Variable _OROPTNET_CONCOMP_
The OPTNET procedure defines a macro variable named _OROPTNET_CONCOMP_. This variable contains a character string that indicates
the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to calculate connected components.
The various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the algorithm at termination. The STATUS term takes the same value as the term CONCOMP
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
NUM_COMPONENTS
-
indicates the number of connected components found by the algorithm.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the algorithm.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the algorithm.
Macro Variable _OROPTNET_CYCLE_
The OPTNET procedure defines a macro variable named _OROPTNET_CYCLE_. This variable contains a character string that indicates
the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to calculate cycles. The various
terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the algorithm at termination. The STATUS term takes the same value as the term CYCLE
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
NUM_CYCLES
-
indicates the number of cycles found by the algorithm.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the algorithm.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the algorithm.
Macro Variable _OROPTNET_LAP_
The OPTNET procedure defines a macro variable named _OROPTNET_LAP_. This variable contains a character string that indicates
the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to solve the linear assignment
problem. The various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the solver at termination. The STATUS term takes the same value as the term LAP
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
OBJECTIVE
-
indicates the total weight of the minimum linear assignment.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the solver.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the solver.
Macro Variable _OROPTNET_MCF_
The OPTNET procedure defines a macro variable named _OROPTNET_MCF_. This variable contains a character string that indicates
the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to solve the minimum-cost network
flow problem. The various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the solver at termination. The STATUS term takes the same value as the term MCF
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
OBJECTIVE
-
indicates the total link weight of the minimum-cost network flow.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the solver.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the solver.
Macro Variable _OROPTNET_MINCUT_
The OPTNET procedure defines a macro variable named _OROPTNET_MINCUT_. This variable contains a character string that indicates
the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to find the minimum cut. The
various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the algorithm at termination. The STATUS term takes the same value as the term MINCUT
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
OBJECTIVE
-
indicates the total link weight of the minimum cut.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the algorithm.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the algorithm.
Macro Variable _OROPTNET_MST_
The OPTNET procedure defines a macro variable named _OROPTNET_MST_. This variable contains a character string that indicates
the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to solve the minimum spanning
tree problem. The various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the solver at termination. The STATUS term takes the same value as the term MST
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
OBJECTIVE
-
indicates the total link weight of the minimum spanning tree.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the solver.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the solver.
Macro Variable _OROPTNET_SHORTPATH_
The OPTNET procedure defines a macro variable named _OROPTNET_SHORTPATH_. This variable contains a character string that
indicates the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to calculate shortest
paths. The various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the algorithm at termination. The STATUS term takes the same value as the term SHORTPATH
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
NUM_PATHS
-
indicates the number of shortest paths that the algorithm finds.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the algorithm.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the algorithm.
Macro Variable _OROPTNET_TRANSCL_
The OPTNET procedure defines a macro variable named _OROPTNET_TRANSCL_. This variable contains a character string that indicates
the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to calculate transitive closure.
The various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the algorithm at termination. The STATUS term takes the same value as the term TRANSCL
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the algorithm.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the algorithm.
Macro Variable _OROPTNET_TSP_
The OPTNET procedure defines a macro variable named _OROPTNET_TSP_. This variable contains a character string that indicates
the status and some basic statistics about the results of the algorithm that PROC OPTNET uses to solve the traveling salesman
problem. The various terms of the variable are interpreted as follows:
-
STATUS
-
indicates the status of the solver at termination. The STATUS term takes the same value as the term TSP
in the _OROPTNET_ macro as defined in the section Macro Variable _OROPTNET_.
-
OBJECTIVE
-
indicates the objective value that the solver obtains 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 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 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 or upper bounds (or both).
-
INTEGER_INFEASIBILITY
-
indicates the maximum (absolute) violation of the integrality of integer variables that are returned by the solver.
-
BEST_BOUND
-
specifies the best linear programming objective value of all unprocessed nodes in the branch-and-bound tree at the end of
execution. A missing value indicates that the solver has processed either all or none of the nodes in the branch-and-bound
tree.
-
NODES
-
specifies the number of nodes enumerated by the solver by using the branch-and-bound algorithm.
-
ITERATIONS
-
indicates the number of simplex iterations taken to solve the problem.
-
CPU_TIME
-
indicates the CPU time (in seconds) taken by the algorithm.
-
REAL_TIME
-
indicates the real time (in seconds) taken by the algorithm.
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.