>
>
> I've added "branch(*this, specialSelected, SET_VAL_MIN_INC);" as the last
>> line in CreateAndRequestCategory
>>
>> and the code runs like a charm!
>>
>
> You might want to collect the specialSelected variables, and branch on
> them at the same time. Then you could use some selection heuristic between
> the variables (e.g., the specialSelected var with the smallest unknown
> value, a random choice, ...).
>
>
Ok, this brings up some other questions:
*1) *I assume the way I would collect on all specialSelected variables would
be:
SetVarArray mySpecialSets (*space, numSpecialSets, IntSet::empty, 0,
maxSpecialSetSize);
foreach(SetVar specialSet in mySpecialSets)
{
// do something
}
branch(*space, mySpecialSets, SET_VAR_NONE, SET_VAL_MIN_INC); // or other
options
Is this what you had in mind?
*2)* The second, related, questions are then:
- Would mySpecialSets have to be a member of my Space definition?
- Would I have to propagate this info in the special copy constructor,
like so:
MySpace(bool share, MySpace& s)
: Space(share,s) {
mySpecialSets.update(*this,share,s.mySpecialSets);
}
- Or more generally: What kind of variables (IntVar, SetVar, ...) do I
have to update in this fashion? I gues I am not quite clear on the
relationship between the branching and the special copy constructor.
Any help is appreciated.
Thanks,
Holger.
_______________________________________________
Gecode users mailing list
[email protected]
https://www.gecode.org/mailman/listinfo/gecode-users