It was indeed my mistake (as usual).
I make my branching array unique by some stl algorithms.
unfortuantely, i forgot that IntVar::before and IntVar::same rely on the
pointer position,
so use of these function can make your program non-deterministic.

Best and thanks for all (and sorry for bugging),
Max



Code:
std::sort(iva_.begin(), iva_.end(), boost::bind(&IntVar::before,_1,_2));
IntVarArgs::iterator newEnd = std::unique(iva_.begin(), iva_.end(),
boost::bind(&IntVar::same,_1,_2));




On 06/29/2012 12:22 PM, Guido Tack wrote:
> Hi,
>
> there are three features in Gecode that can result in nondeterministic
> behaviour: parallel search, search strategies based on AFC, and
> nonmonotonic propagators (currently circuit and nvalues).  If you
> don't use these features, the search trees will be exactly the same
> between runs (even for randomised strategies, as long as you don't
> change the random seed).  
>
> Cheers,
> Guido
>
> -- 
> Guido Tack
> http://www.csse.monash.edu/~guidot/
> <http://www.csse.monash.edu/%7Eguidot/>
>
>
>
> On 29/06/2012, at 8:10 PM, Max Ostrowski wrote:
>
>> I have a problem with my software clingcon, that uses gecode.
>>
>> This piece of software is an SMT solver, that uses gecode as a theory
>> solver.
>> But i can also use it as a solver for arithmetic, without any SAT
>> component.
>>
>> Now my question: Is the behavior of Gecode reproducible.
>> Whenever i start my program with exactly the same parameters, i do get
>> the same result (same gecode statistics).
>> When i change a parameter (like not printing the solution) i do get a
>> different result (in terms of fails, nodes, etc... ).
>>
>> The parameter i change should not affect Gecode at all (everything
>> related to gecode is done with exactly the same input and in the same
>> order).
>> So do you use some memory position for hashing or some random generator
>> initialized according to some position in memory or something else that
>> explains this behavior.
>>
>> Currently i get between 3 and 8615650 fails for a simple LatinSquare
>> program, just because i change output formatting.
>>
>>
>> PS:
>> I tried this with gecode 3.5, 3.7 and trunk.
>> I also tested the whole program with "valgrind --leak-check=full" and
>> nothing uninitialized was used or lost.
>>
>>
>> Any ideas?
>>
>> Best,
>> Max
>>
>> _______________________________________________
>> Gecode users mailing list
>> users@gecode.org <mailto:users@gecode.org>
>> https://www.gecode.org/mailman/listinfo/gecode-users
>

_______________________________________________
Gecode users mailing list
users@gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users

Reply via email to