Workers and the IloCPEngine
CP Optimizer may run several workers in parallel to solve a constraint model.
This means that,
although only one model exists, each worker has its own engine objects to work with during
the search process.
Indeed, each worker is associated with a backtracking search engine, represented by an
instance of IloCPEngine. An IloCPEngine is in charge of performing the search for this
worker. It is given all the engine objects that have been extracted for the worker, and
it provides the mapping from model variables to engine variables, which is needed to write
custom constraints and goals.