Timefold.ai частичное закрепление ⇐ JAVA
-
Гость
Timefold.ai частичное закрепление
В настоящее время я провожу некоторые тесты с помощью Java-фреймворка оптимизации timefold.ai.
У меня следующий сценарий: у меня есть задачи, которые необходимо выполнить в определенное время. Однако они не являются обязательными, их не нужно планировать. Но если они запланированы, они должны начаться в определенное время.
Кроме того, существуют другие задачи (тот же тип задач, поэтому они находятся в одной коллекции) и представлены тем же PlanningEntity, которые являются полностью гибкими как по времени начала, так и по тому, запланированы ли они вообще.
Обычное закрепление Afaik не работает, поскольку оно закрепляет весь объект планирования. Моя упрощенная установка выглядит примерно так (не включая дополнительные нерелевантные ограничения).
@PlanningEntity общественный класс Задача { @PlanningVariable(valueRangeProviderRefs = ["myValueRangeProvider"], nullable = true) частный запуск BigDecimal; @PlanningPin частное логическое значение закреплено; } @PlanningSolution класс PlanningProblem { @ValueRangeProvider(id = "myValueRangeProvider") частный CountableValueRange couldStars; @PlanningEntityCollectionProperty частные задачи List; } Есть ли у кого-нибудь идеи, как это красиво смоделировать? Есть ли способ частично закрепить переменные? Я также подумал о том, чтобы иметь две переменные планирования, одну isScheduled и другую start, и каким-то образом использовать определенного поставщика диапазона значений для каждой сущности, но я могу предоставить только одну для каждого типа сущности. предположим?
Спасибо!
В настоящее время я провожу некоторые тесты с помощью Java-фреймворка оптимизации timefold.ai.
У меня следующий сценарий: у меня есть задачи, которые необходимо выполнить в определенное время. Однако они не являются обязательными, их не нужно планировать. Но если они запланированы, они должны начаться в определенное время.
Кроме того, существуют другие задачи (тот же тип задач, поэтому они находятся в одной коллекции) и представлены тем же PlanningEntity, которые являются полностью гибкими как по времени начала, так и по тому, запланированы ли они вообще.
Обычное закрепление Afaik не работает, поскольку оно закрепляет весь объект планирования. Моя упрощенная установка выглядит примерно так (не включая дополнительные нерелевантные ограничения).
@PlanningEntity общественный класс Задача { @PlanningVariable(valueRangeProviderRefs = ["myValueRangeProvider"], nullable = true) частный запуск BigDecimal; @PlanningPin частное логическое значение закреплено; } @PlanningSolution класс PlanningProblem { @ValueRangeProvider(id = "myValueRangeProvider") частный CountableValueRange couldStars; @PlanningEntityCollectionProperty частные задачи List; } Есть ли у кого-нибудь идеи, как это красиво смоделировать? Есть ли способ частично закрепить переменные? Я также подумал о том, чтобы иметь две переменные планирования, одну isScheduled и другую start, и каким-то образом использовать определенного поставщика диапазона значений для каждой сущности, но я могу предоставить только одну для каждого типа сущности. предположим?
Спасибо!
Мобильная версия