Код: Выделить всё
com.patrick.timetableappbackend.solver.TimetableConstraintProvider
ONLY_DOWN/ONLY_DOWN/ANY
ALLOCATE_ENTITY_FROM_QUEUE
DECREASING_DIFFICULTY_IF_AVAILABLE
DECREASING_STRENGTH_IF_AVAILABLE
1
400
2
3
600
Должен ли я воспроизвести конфигурацию по умолчанию для этих двух этапов, тогда перезаписать его с применением фильтра выбора или есть лучший подход? Я попытался сделать следующее (на данный момент кажется, что это работает правильно, но я не знаю, является ли это лучшей практикой):
Код: Выделить всё
ALLOCATE_ENTITY_FROM_QUEUE
DECREASING_DIFFICULTY_IF_AVAILABLE
DECREASING_STRENGTH_IF_AVAILABLE
com.patrick.timetableappbackend.utils.LessonChangeMoveFilter
1
com.patrick.timetableappbackend.utils.LessonChangeMoveFilter
com.patrick.timetableappbackend.utils.LessonSwapMoveFilter
400
2
com.patrick.timetableappbackend.utils.LessonChangeMoveFilter
com.patrick.timetableappbackend.utils.LessonSwapMoveFilter
3
600
EDIT: Кажется, что приведенное выше решение работает довольно хорошо, но я не знаю, является ли это лучшей практикой для переопределения конфигурации по умолчанию этапов строительной эвристики и локального поиска с помощью фильтра выбора, поскольку качество проблемы планирования решение немного беднее.
Подробнее здесь: https://stackoverflow.com/questions/792 ... es-validat