#optaplanner
#optaplanner
Вопрос:
Для обновления моей теневой переменной я должен учитывать некоторые ограничения, которые я могу получить от объектов, сохраненных в ProblemFactCollectionProperty / PlanningEntityCollectionProperty .
Можно ли выбрать из ProblemFactCollectionProperty и PlanningEntityCollectionProperty внутри ShadowVariableListener, как это можно сделать с помощью ContraintProvider? Или я должен добавить указатель, указывающий на эти коллекции, к каждому объекту, у которого есть этот прослушиватель теневой переменной, чтобы слушатель мог получить доступ к ProblemFactCollectionProperty / PlanningEntityCollectionProperty?
Ответ №1:
У всех методов VariableListener
есть ScoreDirector
параметр, который вы можете использовать scoreDirector.getWorkingSolution()
для получения рабочего решения.
Не кэшируйте этот экземпляр решения или его экземпляры списка сущностей в VariableListener, поскольку клонирование решения может повлиять на то, какой экземпляр является реальным.