Как создать / опубликовать и удалить / отменить ограничения во время поиска в Choco

У меня есть проект в Solco Choco, но у меня есть вопрос о внешних эффектах во время поиска.

У меня есть график планирования с (скажем,) BoolVars, организованными в слоях и назначенных слоям длительностей, что означает, что некоторые действия начинаются, а некоторые заканчиваются. Выбор переменной статичен от конца плана до начала плана (выбор действий в слое произвольный).

Я исследую решение, которое использует симплексный алгоритм, чтобы помочь с назначением продолжительности, так как между началом и концом действия A у нас должна быть продолжительность, равная N. Между ними есть еще несколько ограничений.

Дополнительные ограничения создаются на основе создания экземпляров BoolVars, однако они организованы во внешней матрице, поэтому, когда добавляется конечное действие действия A, в результате в матрицу добавляется дополнительная строка, и текущие ограничения переформулируются., При возврате мы хотели бы изменить матрицу в обратном порядке, то есть удалить строку и снять ограничения.

Есть ли способ реализовать это сложное поведение в Чоко?

1 ответ

Знаете ли вы заранее, какое ограничение срабатывает, если для логического значения установлено значение true? Если да, используйте reification (создайте ограничение в начале, но связывайте их с boolvars вместо их публикации).

За профессиональной поддержкой в ​​Choco Solver вы можете обратиться по https://www.cosling.com/.

Другие вопросы по тегам