Что касается ограничения прецедентности, я надеюсь, что вы найдете то, что соответствует вашим потребностям:
Choco.precedence (TaskVariable, TaskVariable)
Choco.precedence (TaskVariable, TaskVariable, int)
Оба метода возвращают ограничение, которое вы можете добавить в модель. К сожалению, кажется, что это ограничение еще не задокументировано, поэтому я не могу быть более конкретным.
Кажется также, что существуют другие ограничения, связанные с приоритетом: Choco.precedenceReified, Choco.precedenceimplied, Choco.precedencedisjoint.
Для получения дополнительной информации я бы предложил загрузить последнюю версию API:
http://www.emn.fr/z-info/choco-solver/choco-documentation.html
Надеюсь, это поможет,
Bye