[gecode-users] Branching on temporary variables
Christopher Jefferson
caj21 at st-andrews.ac.uk
Tue Jun 14 17:14:51 CEST 2011
On 14 Jun 2011, at 14:49, Max Ostrowski wrote:
> Thank you for your quick response.
> Just to clarify for me 2.2, if i only use expr(), and the resulting variables in global constraints, then i do not need to branch on any temporary variables to be "complete". Right?
>
> If so, does it give me any improvements?
> for example:
> IntVarArray temp(2);
> temp[0] = expr(a+b);
> temp[1] = expr(c+d);
> distinct(temp2).
>
> If i now branch on {a,b,c,d} i will find all solutions.
> But i could also branch on {a,b,c,d,temp[0],temp[1]} to find all solutions.
> Can this be considered "better" in terms of possible complexity, or is there any "experience" from your side that you would recommend to branch on as much or few variables as possible? (while still enumerating all models)
You should always branch on all variables. There is a good chance you will find the variables of 'temp' are already assigned, in which case the cost of checking is extremely small.
Several times I have seen people believe they don't have to branch on all variables, and they are almost always wrong.
Chris
More information about the users
mailing list