Originally posted by: davidoff
As far as I know, there is no generic relaxation mechanism of your CP model, nor hybridation (though hybridation has indeed existed in a very old time of Ilog libraries, namely "planner" that was the LP/MIP engine before the acquisition of CPLEX)
There is the temporal relaxation IloCP::TemporalRelaxation that triggers linearization of scheduling constraints only, but the documentation of this parameter is not very detailed :
IloCP.IntParam TemporalRelaxation : Integer control parameter. This advanced parameter can be used to control the usage of a temporal relaxation internal to the invoking IloCP engine. This parameter can take values IloCP.ParameterValues.On or IloCP.ParameterValues.Off, with IloCP.ParameterValues.On being the default, meaning the relaxation is used in the engine when needed. For some models, using the relaxation becomes inefficient, and you may deactivate the use of the temporal relaxation using value IloCP.ParameterValues.Off.
However, you can "easily" write your own linearization of your CP model, runs it and communicate upper and lower bounds (coming respectively from any integer solution and the bestNode value of your MIP solve. This would be done "statically" since you run the MIP model first and then launch your CP model. Full hybridation between CP search and MIP could be done in API though, not directly in OPL, but this is much more advanced
David
#DecisionOptimization#OPLusingCPOptimizer