advanced start switch

If set to 1 or 2, this parameter specifies that CPLEX should use advanced starting information when it initiates optimization.

Purpose

Advanced start switch

API Parameter Name Name prior to V12.6.0
C CPXPARAM_Advance CPX_PARAM_ADVIND (int)
C++ IloCplex::Param::Advance AdvInd (int)
Java IloCplex.Param.Advance AdvInd (int)
.NET Cplex.Param.Advance AdvInd (int)
OPL advind advind
Python parameters.advance advance
MATLAB Cplex.Param.advance advance
Interactive advance advance
Identifier 1001 1001

Description

If set to 1 or 2, this parameter specifies that CPLEX should use advanced starting information when optimization is initiated.

For MIP models, setting 1 (one) will cause CPLEX to continue with a partially explored MIP tree if one is available. If tree exploration has not yet begun, setting 1 (one) specifies that CPLEX should use a loaded MIP start, if available. Setting 2 retains the current incumbent (if there is one), re-applies presolve, and starts a new search from a new root.

Setting 2 is useful for continuous linear programs. Consequently, it can be particularly useful for solving fixed MILP models, where a start vector but no corresponding basis is available.

For continuous models solved with simplex, setting 1 (one) will use the currently loaded basis. If a basis is available only for the original, unpresolved model, or if CPLEX has a start vector rather than a simplex basis, then the simplex algorithm will proceed on the unpresolved model. With setting 2 and a linear program, CPLEX will first perform presolve on the model and on the basic solution or start vector, and then proceed with optimization on the presolved problem using the primal and dual solutions derived for the presolve problem to construct a corresponding advanced basis. For a convex quadratic program, setting 2 is the same as setting 1.

For continuous models solved with the barrier algorithm, settings 1 or 2 will continue simplex optimization from the last available barrier iterate.

Tip:

If you optimize your MIP model, then change a tolerance (such as upper cutoff, lower cutoff, integrality tolerance), and then re-optimize, the change in tolerance may not be taken into account in certain circumstances, depending on characteristics of your model and parameter settings. In order for CPLEX to take into account your change in tolerance, you must restart the second optimization from the beginning. That is, you must set CPX_PARAM_ADVIND, AdvInd to 0 (zero).

Table 1. Values
Value Meaning
0 Do not use advanced start information
1 Use an advanced basis supplied by the user; default
2 Crush an advanced basis or starting vector supplied by the user