Я использую «цепочку временных шаблонов» для нашего проекта оптимизации, где следуем примеру TaskAssignment, но для теневой переменной вместо использования времени начала Integer, используя TimeGrain (из примера собрания).
Проблема домена: для каждого расписания (в течение дня) одна или несколько услуг (PlanningEntity) должны назначаться одна за другой сразу после завершения предыдущего.
Здесь я использую TimeGrain в качестве теневой переменной (поскольку доступность ресурсов определяется для каждого TimeGrain)
@CustomShadowVariable(variableListenerClass = AssignmentVariableListener.class,
sources = { @PlanningVariableReference(variableName = "previousAssignment"),
@PlanningVariableReference(variableName = "scheduleAssignment")
}
)
public TimeGrain getTimeGrain() {
return timeGrain;
}
Я устанавливаю теневую переменную в прослушивателе переменных, но нужно ли всегда сначала инициализировать теневую переменную перед началом решения?
В примере TaskAssignment время окончания рассчитывается на основе времени начала, но время начала изначально будет нулевым. Как это инициализируется?
Спасибо,
Картик