Optaplanner: стратегия прекращения, когда все ограничения не выполнены - PullRequest
0 голосов
/ 13 января 2019

Я использую optaplanner для решения проблемы, аналогичной назначению сотрудников. Все мои ограничения могут быть не удовлетворены - я просто хочу самое лучшее решение.

Какова хорошая стратегия завершения для этого?

Если я использую unimprovedSecondsSpentLimit, это ставит под угрозу воспроизводимость решения.

Я думаю об использовании unimprovedSecondsSpentLimit, но не знаете, какое значение использовать с ним? Кроме того, я вижу в документации, что это также может быть использовано для фазы. Что это значит? Я не определяю никакие фазы самостоятельно.

1 Ответ

0 голосов
/ 14 января 2019

Вы можете настроить решатель на существование из нескольких слоев, которые обычно называются фазами. Каждый этап является отдельным этапом оптимизации, и вы можете настроить его по своему усмотрению (например, остановка через 30 секунд, остановка после 200 unimprovedSteps и т. Д.). Следовательно, каждая фаза может иметь свои собственные критерии завершения. (Это помимо критериев завершения совлера)

Что касается поиска хорошей стратегии терминации, вам следует использовать модуль тестов Optaplanner. Загрузите несколько наборов данных и попробуйте разные значения для unimprovedSecondsSpentLimit. Посмотрите, какая конфигурация возвращает наиболее желаемые решения последовательно. Надеюсь это поможет.

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