Optaplanner: добавление / удаление ограничений динамически - PullRequest
0 голосов
/ 15 января 2020

Можем ли мы динамически добавлять / удалять ограничения в optaplanner, используя Java? Есть ли пример? Я хочу, чтобы пользователю было разрешено добавлять или удалять эти ограничения во время выполнения с использованием некоторого пользовательского интерфейса.

Ниже ссылка говорит об этом с помощью drools. это можно сделать с помощью java? как динамически добавлять / удалять ограничения в optaplanner

1 Ответ

0 голосов
/ 22 января 2020

1) Обычно достаточно жестких ограничений. Например, вместо ограничения, которое говорит:

  • ", когда Энн работает в пятницу, оштрафуйте"

там:

  • Класс данных DayOfWeekDislike с Employee и DayOfWeek. ** У входных данных есть экземпляр, который с сотрудником Ann и dayOfWeek Friday.
  • Существует ограничение, которое говорит: «если существует DayOfWeekDislike и существует ShiftAssignment этого сотрудника для такого DayOfWeek, штрафовать»

Такой подход достаточен в большинстве случаев использования, чтобы избежать динамических ограничений c. Обратите внимание, что вы можете добавлять / удалять данные DayOfWeekDislike в режиме реального времени с помощью Solver.addProblemFactChange().

2) Далее, @ConstraintConfiguration может использовать @ConstraintWeight для отключения / включения ограничений в реальном времени с помощью Solver.addProblemFactChange(). Установите вес ограничения равным нулю, чтобы отключить его.

3) Если оба значения 1) и 2) не пройдены, вам действительно нужны динамические ограничения c. Я еще не видел ни одного варианта использования, которому нужно было бы go, но мы могли бы это поддержать. Если вам нужен такой подход, каков ваш вариант использования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...