[Cbc] Non Deterministic solution

Yves Touchard ytouchard at gopro.com
Mon Feb 8 12:21:03 EST 2016


John,

Sure that this problem is very tricky.
I wrote a Python script launching cbc until the solution file is different from a reference solution.
According to these tests, cbc must be ran (on the same machine) between 1 and 200 times before failing (mean is around 50).

Yves

From: John Forrest [mailto:john.forrest at fastercoin.com]
Sent: Monday, February 08, 2016 5:34 PM
To: Yves Touchard <ytouchard at gopro.com>; cbc at list.coin-or.org
Subject: Re: [Cbc] Non Deterministic solution

Yves,

Difficult to debug this.  I have run it a hundred times and got the same answer each time.

John

On 08/02/16 12:11, Yves Touchard wrote:
John,

I did the changes (two lines in ClpSimplex.cpp) and there is still determinism problems.

Yves

From: john.forrest at fastercoin.com<mailto:john.forrest at fastercoin.com> [mailto:john.forrest at fastercoin.com]
Sent: Friday, February 05, 2016 5:33 PM
To: Yves Touchard <ytouchard at gopro.com><mailto:ytouchard at gopro.com>; cbc at list.coin-or.org<mailto:cbc at list.coin-or.org>
Subject: RE: [Cbc] Non Deterministic solution

Yves,

My guess is that it is because there are places where CoinDrand48 is used.

Most likely is in ClpSimplex.cpp - try changing

Coindrand48()

to

randomNumberGenerator_.randomDouble()

if that fixes I will check change in


John
-------- Original Message --------
Subject: [Cbc] Non Deterministic solution
From: Yves Touchard <ytouchard at gopro.com<mailto:ytouchard at gopro.com>>
Date: Thu, February 04, 2016 11:31 am
To: "cbc at list.coin-or.org<mailto:cbc at list.coin-or.org>" <cbc at list.coin-or.org<mailto:cbc at list.coin-or.org>>
Hello,

I have just a got a determinism problem with a constraint file:

You will find at https://www.dropbox.com/s/uzbmgj48kvtd5yj/pb.tar.gz?dl=0, a tar file containing five files:
·        pb.lp is the constraint file.
·        pbTriv.sol is a solution file of the trivial problem (same problem with relaxed constraints) used for mipstart.
·        pb.prio is the priority file.
·        pbCmd1.sol is the most frequent solution provided by coin.
·        pbCmd1Alt.sol is the alternative solution (not easy to catch it…).

Command line is:
bin/cbc pb.lp threads 104 ratio 0.05 mipstart pbTriv.sol priority pb.prio divingP on divingV on divesolves 301 multiple 4 branch printingOptions normal solution pb.sol
Cbc coin is 2.9.7 rev:2232 compiled with gcc 4.9.0

Could you have a look on it, please?

Thanks

Yves

________________________________
_______________________________________________
Cbc mailing list
Cbc at list.coin-or.org<mailto:Cbc at list.coin-or.org>
http://list.coin-or.org/mailman/listinfo/cbc

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20160208/9f5ed7c5/attachment.html>


More information about the Cbc mailing list