Dear,

Propagation in the CP model I'm working on is relatively poor. It seems that this can mainly be attributed to a single constraint. I was wondering whether there exists a better way to express this constraint. My model is implemented using the Java interface.

\\Variable defs:

c_i: Optional interval variable, i \in C

d_ij: Optional interval variable, i\in C, j\in J

\\Constants:

q_i: Integer, i\in C

r_j: Integer, j\in J

Problematic Constraint:

forall(i\in C):

presenceOf(c_i) == ( \sum_{j\in J} r_j* presenceOf(d_ij) >= q_i )

So, put in words, the constraint should do the following:

For each i \in C, the interval c_i may only be present if and only if the following holds: summed over all *present* variables d_ij multiplied by a constant r_j, the sum must be larger or equal than constant q_i. Any suggestions on how to reformulate this constraint? Perhaps some kind of cumul or sum function could be used instead?