Как равномерно распространять задачи для каждой машины? ⇐ JAVA
-
Anonymous
Как равномерно распространять задачи для каждой машины?
Я уже использовал ограничение справедливости (3000 Синие задачи сгруппированы по 11 машинах). Машины являются инверселяциями, адавными задачами (@InversereLationShadowVariable (SourceVariablename = "Задачи")). Это все еще не справедливо. Также у меня есть много противоречий срока, но это скорее нарушает ограничения и начинается после крайнего срока, а не ставит задачи на другую машину < /p>
private Machine machine;
private Constraint fairAssignments(ConstraintFactory constraintFactory) {
return constraintFactory.forEach(Task.class)
.groupBy(ConstraintCollectors.loadBalance(Task::getMachine))
.penalizeBigDecimal(HardMediumSoftBigDecimalScore.ONE_SOFT, LoadBalance::unfairness)
.asConstraint("Fair Assignments");
}
< /code>
Мои ограничения: начинать после самой ранней даты начала. Заканчивается до крайнего срока, и ограничение справедливости
также ограничение для начала .penalize(HardMediumSoftBigDecimalScore.ofHard(BigDecimal.TEN), task -> {
long daysDifference = ChronoUnit.DAYS.between(task.getStartTime().toLocalDate(), task.getEarliestDate());
return Math.toIntExact(Math.abs(daysDifference)) *24;
})
.asConstraint("as close to earliest day as possible");
Подробнее здесь: https://stackoverflow.com/questions/794 ... ch-machine
Я уже использовал ограничение справедливости (3000 Синие задачи сгруппированы по 11 машинах). Машины являются инверселяциями, адавными задачами (@InversereLationShadowVariable (SourceVariablename = "Задачи")). Это все еще не справедливо. Также у меня есть много противоречий срока, но это скорее нарушает ограничения и начинается после крайнего срока, а не ставит задачи на другую машину < /p>
private Machine machine;
private Constraint fairAssignments(ConstraintFactory constraintFactory) {
return constraintFactory.forEach(Task.class)
.groupBy(ConstraintCollectors.loadBalance(Task::getMachine))
.penalizeBigDecimal(HardMediumSoftBigDecimalScore.ONE_SOFT, LoadBalance::unfairness)
.asConstraint("Fair Assignments");
}
< /code>
Мои ограничения: начинать после самой ранней даты начала. Заканчивается до крайнего срока, и ограничение справедливости
также ограничение для начала .penalize(HardMediumSoftBigDecimalScore.ofHard(BigDecimal.TEN), task -> {
long daysDifference = ChronoUnit.DAYS.between(task.getStartTime().toLocalDate(), task.getEarliestDate());
return Math.toIntExact(Math.abs(daysDifference)) *24;
})
.asConstraint("as close to earliest day as possible");
Подробнее здесь: https://stackoverflow.com/questions/794 ... ch-machine