Оптапланнер: Воспроизводимое решение - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь решить проблему, подобную списку сотрудников. Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я запускаю решатель, он генерирует другое назначение. Это затрудняет отладку того, почему один случай был выбран другим. Почему это так?

P.S. Мое задание имеет много жестких ограничений, и все они могут быть не выполнены (в большинстве случаев я все еще вижу некоторые отрицательные оценки). Так что моя стратегия прекращения основана на unimprovedSecondsSpentLimit. Может ли это быть причиной?

1 Ответ

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

Да, это скорее всего прекращение. По умолчанию OptaPlanner environmentMode гарантирует точно такое же решение на том же шаге (*). Но циклы ЦП сильно отличаются от запуска к запуску, так что вы получаете больше или меньше шагов за цикл. Используйте DEBUG, чтобы увидеть это.

Используйте stepCountLimit или unimprovedStepCountLimit завершение.

(*) Если в документации не указано иное. Имитация отжига, например, будет отличаться даже на одном и том же шаге, если используется с окончаниями с привязкой по времени.

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