On 14 May 2011, at 21:39, Alin wrote:
> Hallo,
>
> I have been trying the mod constraint, but I encountered kind of a problem
> with
> the branching:
>
> [details about what I did]
> I have resources that can do a job only on a certain day
> so i set the time to be the same as the resource available that day
>
> mod(*this, resources[i], iDays, start_times[i]);
>
> [actual problem]
> my problem is that when doing the branching
> if I do:
>
> branch(*this, resources, INT_VAR_NONE, INT_VAL_RND);
>
> I get correct values for resources, but
>
> branch(*this, resources, INT_VAR_NONE, INT_VAL_MIN);
>
> will return incorrect values,
> for example: resource[i] will be set to 0,
> and start_times[i] will be 2
>
> while iDay is constant (7)
>
> why does this happen ?
> shouldn't branching determine just the order of the elements that are
> searched ?
> shouldn't the value be correct indifferent of the branching type ?
Yes, the branching just determines the order, and the solution should be
correct. I couldn't easily reproduce the problem, but it sounds like a bug in
the mod propagator (the VAL_MIN branching just exhibits the bug because it
actually tries 0 for resource[i], whereas the random branching might not).
As I said, I can't reproduce this. Can you send me a short version of your
code that exhibits this problem?
Cheers,
Guido
--
Guido Tack, http://people.cs.kuleuven.be/~guido.tack/
_______________________________________________
Gecode users mailing list
[email protected]
https://www.gecode.org/mailman/listinfo/gecode-users