[Cbc] CBC deterministic

Bjørn Sigurd Johansen (Spider Solutions AS) bjorn.sigurd.johansen at spidersolutions.no
Thu Aug 11 14:23:42 EDT 2016


Hi –

We have a heuristic Optimization Engine heavily randomized (using Mercenne Random Generator BTW). We produce stabile/consistent results even for runs lasting several weeks on a machine heavily threaded with a large number of simultaneous optimization runs.  And with thousands of billions of iterations.

So in our experience, in practice, optimization runs are 100% stable/identical.

Note, however, that random generators may/should be initialized and the generators may also contain internal state data.  So we have to be very careful to shut down an application (i.e. executable) completely before a new run in order to obtain identical results in next run.

And any timing issues will of course influence, e.g. things like ‘abort after 5 minutes of optimization’.  The result here will of course depend on total load on machine, temperature of the CPU which impact the current GHz, etc.


Best regards,
Bjørn Sigurd
_________________________________
Bjørn Sigurd Benestad Johansen
Product Manager
Spider Solutions AS
Tlf +47 41 21 44 57
bjorn.sigurd.johansen at SpiderSolutions.no<mailto:bjorn.sigurd.johansen at SpiderSolutions.no>
www.SpiderSolutions.no<http://www.spidersolutions.no/>

From: Cbc [mailto:cbc-bounces at coin-or.org] On Behalf Of Alexis
Sent: Thursday, August 11, 2016 4:57 PM
To: cbc at list.coin-or.org; Alexis <aguigue at softree.com>; David Mills <dmills at softree.com>; Craig Speirs <cspeirs at softree.com>
Subject: [Cbc] CBC deterministic


Hi

I am just curious to know how ''deterministic'' CBC is. I know this question has been raised a few times in this forum i.e.

http://list.coin-or.org/pipermail/cbc/2016-February/001891.html

http://list.coin-or.org/pipermail/cbc/2015-January/001580.html

I have embedded CBC in my own application. In the case where I impose an integrality gap (e.g. 20%), I have had my program stopping and returning with different final optimality gaps (e.g. 12% and 19%). It is actually a little difficult to reproduce. I am wondering whether this could come from the fact that I have (re) implemented the optimality gap stopping condition (with others actually) in the callback

CbcEventHandler::CbcAction myCbcEventHandler::event(CbcEvent whichEvent)
{

...
            if (dIntGapCalc < dIntGapRef)  {

                ...

                return stop;
            }

       ...

  }

....

}

Thanks in advance


--
Alexis Guigue, E.I.T., B.Eng., M.A.Sc., Ph.D.
Software Engineer/Research Engineer
604-519-6222, ext. 107

Softree Technical Systems Inc.<http://www.softree.com>
Engineering an Easier Way
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20160811/23c06ad5/attachment.html>


More information about the Cbc mailing list