Решаю проблему планирования с помощью OptaPlanner. После настройки решателя я вызываю метод resolve () и жду, пока он выдаст решение. Вопрос в том, что, если я хочу сравнить между собой несколько лучших решений, созданных методом решателя, и выбрать одно из них. Является ли это возможным? Я хочу установить условие завершения, сравнив два последних решения друг с другом и посмотрев, чем они отличаются друг от друга. Вот почему я хочу это реализовать. Заранее спасибо.
Решатель OptaPlanner: несколько лучших решений
Ответы (1)
Простой ответ: добавьте SolverEventListener
к Solver
и слушайте bestSolutionChanged()
события, чтобы запомнить их. Этого достаточно для большинства пользователей.
Сложный ответ: см. «Оптимизация Парето» в документации optaplanner. Это не поддерживается "из коробки" пока, но несколько пользователей добавили это сами, взломав BestSolutionRecaller
.
person
Geoffrey De Smet
schedule
28.04.2020