[gecode-users] Generating constraints

Max chaosangel at gmx.de
Tue Oct 28 12:58:22 CET 2008


Hello all,

i currently try to post constraints and need your help.
I have my constraints not in a textual format, but in a self made tree 
structure of the form


                              rel">="
                             /         \
                           op+      const=5
                        /       \
                var=x       const=7


(i hope this is readable)

Now i want to generate and post a gecode constraint of it.
Is there an easy way to recursivly define a constraint, because it seems 
to me that there is no baseclass or something that can be used.

I wanted to to something of the form

GeCodeConstraint recursive_converter(MyConstraint)
{
       if "variable" return x;
       if "constant" return 5;
       if "op+" return recursive_converter(left_node) + 
recursive_converter(right_node);
       if "rel>=" return recursive_converter(left_node) >= 
recursive_converter(right_node); 
}


I i found for GeCodeConstraint was MiniModel::LinRel<>, is there 
something more uniform, because i want to use boolean and integer 
variables (reified constraints) and stuff.
(the arithmetic functions seem very generic returning a variable, but 
then a lot of extra variables would have to be generated)


Any ideas ?

2nd question:

Is there a way to post the value of a variable not in form of a 
constraint, so "branch" on a boolean variable but being able to undo it so

so
b[0].set(0);
//after some time
b[0].set(1);

without copying the whole space?

Thank you a lot.

Max




More information about the gecode-users mailing list