So I've started using the CP Optimizer Extensions. Some details of my project are described in https://www.ibm.com/developerworks/community/forums/html/topic?id=0c976a32-d78c-4c76-a1ec-45694fed104b&ps=25, but I think you'll be able to answer my question without looking there.

In any case, I would like to know if it is possible to influence the order in which constraints are scheduled for propagation. The details are as follows:

There are three types of variables:

- An integer variable **cost**, which is the cost to minimize

- Boolean array **boolArray**, these are key decision variables which are branched upon

- Interval array **intervalArray**, some scheduling variables

The constraints are:

- Set of standard scheduling constraints acting on **boolArray** and **intervalArray**, if these have not failed once all the variables in **boolArray **have been assigned, then everything is fine.

- A user defined constraint which updates the domain of **cost** based on **boolArray**, this constraint will reduce and finally fix the domain of **cost** based on the assignment to **boolArray**.

I've defined a search phase which branches on the variables **boolArray**, and every time a value in **boolArray **is modified, the user defined constraint is scheduled for propagation.

My problem is, performing propagation on the custom constraint is highly computationally costly, and many times, CP optimizer will schedule it for propagation several times in each node. This is because the scheduling constraints may fix the values of the decision variables in **boolArray**.

Is there some way to have the user defined constraint be propagated last (and by doing so only once) in each node?

Thank you for your help!

Best regards,

Oskar Wigström