# ILOG CPOptimizer soft constraints (multiple solves reusing searched space)

I'm trying to feed information retrieved from my neural network to my CP model to help narrow down the search on big instances of my problem. However, I also want to remove the additional imposed constraints to the model and solve it to the optimum, once the best possible solution given the additional constraints from NN is found. This can be done by model.remove_expressions() function but I've noticed that the search starts from beginning without using any knowledge acquired in the previous search.

Is there a way how to transfer the already searched space from more constrained model to less constrained one (i.e. remove constraints and search only the remaining space, not all of it)?

I've considered warm starting (using the best solution from more constrained problem) and also instead of adding additional conditions, using the data from neural network to guide the search phases. However, from my experience both of these are not so efficient, so they are only my backup options.