This section describes how an instance of IloSolver
reacts to changes in a model it has extracted. The instance of IloSolver
is asynchronous with regards to changes in a model. This means that changes to an extracted model will be taken into account only at the next solve of IloSolver::startNewSearch
at the top level. This synchronization can be parametrized by two modes: IloSynchronizeAndRestart
and IloSynchronizeAndContinue
.
There are three kind of changes that can happen to an instance of IloSolver
:
-
A monotonic change is a change that can be taken into account without restarting the model. Adding a constraint to a model is such a change. These changes are compatible with the synchronize mode
IloSynchronizeAndContinue
.
-
A destructive change is a change that can only result in a full reload of the model by the instance of
IloSolver
. Extending a domain of a variable is such a change.
-
A non-monotonic change is a change that is not compatible with the
IloSynchronizeAndContinue
mode, but where synchronization will not imply a full reload of the model. Removing a constraint from the model is such a change.