Overview

CP Optimizer using constructive search to build a solution along with other heuristics to improve search.

The CP Optimizer search is based on constructive search, which is a search technique that attempts to build a solution by fixing decision variables to values. While the built-in CP Optimizer search is based on this technique, the optimizer also uses other heuristics to improve search.

Four types of search are available in CP Optimizer: “restart”, “depth-first” , “multipoint” and "iterative-diving". With the default search (“auto”), CP Optimizer uses a blend of the above search types that it finds appropriate for the problem being solved, taking into account other parameter settings; however, the type of the search can be changed either to improve performance or to debug a model or a strategy. The search type parameter controls the type of search applied to a problem.

In the C++ API of CP Optimizer, you use the method IloCP::setParameter to set the parameter IloCP::SearchType. This parameter has a default value of IloCP::Restart. Other values of this parameter are IloCP::DepthFirst and IloCP::MultiPoint.

In the Java™ API of CP Optimizer, you use the method IloCP.setParameter to set the parameter IloCP.IntParam.SearchType. This parameter has a default value of IloCP.ParameterValues.Restart. Other values of this parameter are IloCP.ParameterValues.DepthFirst and IloCP.ParameterValues.MultiPoint.

Likewise, in the C# API of CP Optimizer, you use the method CP.SetParameter to set the parameter CP.IntParam.SearchType. This parameter has a default value of CP.ParameterValues.Restart. Other values of this parameter are CP.ParameterValues.DepthFirst and CP.ParameterValues.MultiPoint.