[Cbc] Missing event CbcEvent::solution when LP relaxation is integral

John Forrest john.forrest at fastercoin.com
Thu May 16 10:06:15 EDT 2013


Sebastian,

I have added (in trunk)

             if (eventHandler) {
              // we are stopping anyway so no need to test return code
              eventHandler->event(CbcEventHandler::solution);
            }
after setBestSolution

Is that what you wanted?

John Forrest
On 16/05/13 14:48, Sebastian Niemann wrote:
> Hi all,
>
> we are using a custom event handler (which we derive from 
> CbcEventHandler and pass in via passInEventHandler()) to get notified 
> as soon as a new solution is found. For this, in the event handler 
> method ::event(CbcEvent whichEvent) we check if whichEvent is either 
> CbcEvent::solution or CbcEvent::heuristicSolution.
>
> While events are getting fired for the majority of solutions (e.g. 
> those found by heuristics, strong branching etc.) it seems as if the 
> CbcEvent::solution event is missing in case the LP relaxation of a 
> node is already integral (line 3898 in trunk/Cbc/src/CbcModel.cpp).
> This may lead to situations in which model.getBestSolution() returns 
> an optimal integer solution although neither CbcEvent::solution nor 
> CbcEvent::heuristicSolution have ever been fired, e.g. when the root 
> LP relaxation is integral.
>
> Cheers,
> Sebastian
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
>
>



More information about the Cbc mailing list