backtracking tolerance

Controls how often backtracking is done during the branching process.

Purpose

Backtracking tolerance

API Parameter Name Name prior to V12.6.0
C CPXPARAM_MIP_Strategy_Backtrack CPX_PARAM_BTTOL
C++ IloCplex::Param::MIP::Strategy::Backtrack BtTol (double)
OPL bttol
Interactive mip strategy backtrack mip strategy backtrack
Identifier 2002 2002

Description

Controls how often backtracking is done during the branching process. The decision when to backtrack depends on three values that change during the course of the optimization:

  • the objective function value of the best integer feasible solution (incumbent);

  • the best remaining objective function value of any unexplored node (best node);

  • the objective function value of the most recently solved node (current objective).

If a cutoff tolerance (upper cutoff or lower cutoff) has been set by the user, then that value is used as the incumbent until an integer feasible solution is found.

The target gap is defined to be the absolute value of the difference between the incumbent and the best node, multiplied by this backtracking parameter. CPLEX does not backtrack until the absolute value of the difference between the objective of the current node and the best node is at least as large as the target gap.

Low values of this backtracking parameter thus tend to increase the amount of backtracking, which makes the search process more of a pure best-bound search. Higher parameter values tend to decrease backtracking, making the search more of a pure depth-first search.

The backtracking value has effect only after an integer feasible solution is found or when a cutoff has been specified. Note that this backtracking value merely permits backtracking but does not force it; CPLEX may choose to continue searching a limb of the tree if that limb seems a promising candidate for finding an integer feasible solution.

Values

Any number from 0.0 to 1.0; default: 0.9999

See also

upper cutoff, lower cutoff