[Cbc] Mapping a solution from a base model to a preprocessed model

Denis Sbragion d.sbragion at neomerica.it
Tue Mar 17 10:58:24 EDT 2020


Hello,

I'm trying to include into CBC an heuristic which provides a solution  
computed outside of CBC, before the model is preprocessed by CBC  
itself. Of course after preprocessing the model gets changed and the  
heuristic solution no longer matches the model. I'm already using the  
originalColumns() array to map the heuristic columns to the processed  
model columns, but it looks like there's still something missing.

Every now and then the heuristic solution isn't accepted by CBC  
because it is infeasible in the processed model. Of course I've  
already double checked that the heuristic solution is feasible in the  
unprocessed model, even by setting up a CBC model with columns bounds  
"fixed" to the solution and "solving" it with CBC just to check  
feasibility, by setting up some code to check feasibility directly,  
without resorting to CBC functionalities, and even by setting up some  
custom Octave scripts.

As this heuristic solution could be considered as a sort of hot start  
solution, I tried using the setMIPStart() function as an alternative  
to setting up an heuristic, but this fails in the same exact  
situations where my approach fails.

Any hint on what to do in this situation? Is there somehing else that  
need to be done to map a solution in an unprocessed model to a  
processed one?

Thanks in advance for any help.

Bye,

-- 
Denis Sbragion



More information about the Cbc mailing list