Оптапланер не использует разные значения для PlanningVariable - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь реализовать приложение для планирования работы магазина, используя набор данных Fisher & Thompson mt10. В основном он содержит

  • 10 заданий, каждое из которых имеет 10 зависимых шагов
  • 10 машин
  • каждый шаг задания назначается определенной машине

Я реализовал сценарий использования Optaplanner, основанный на примере «Taskassigning». Я удалил концепции скорости и приоритета, но сохранил концепцию навыков, чтобы задания выполнялись только на машинах, на которых они могут работать. Я ввел концепцию «предшественника», чтобы построить зависимости между заданиями / этапами.

Поскольку в расписании будут пропуски (которые отличаются от примера Taskassigning), будут удалены время начала и время окончания, а также введено значение PlanningVariable для времени начала, снабженное списком возможных времен начала.

Однако в расписании у меня только два разных времени запуска - похоже, Optaplanner не использует моего поставщика диапазона значений. Следовательно, жесткие ограничения нарушаются, поскольку последовательность зависимых шагов не сохраняется.

Работа:

private JobType jobType;
private Job predecessor;
private Job successor;
private int indexInJobType;

// Planning variables: changes during planning, between score calculations.
@PlanningVariable(valueRangeProviderRefs = {"machineRange", "jobRange"},
        graphType = PlanningVariableGraphType.CHAINED)
private JobOrMachine previousJobOrMachine;

@AnchorShadowVariable(sourceVariableName = "previousJobOrMachine")
private Machine machine;

@PlanningVariable(valueRangeProviderRefs = {"startTimeRange"})
private StartTime startTime=new StartTime(0); // In minutes

У моего PlanningSolution есть поставщик диапазона:

@ValueRangeProvider(id = "startTimeRange")
@ProblemFactCollectionProperty
public List<StartTime> getStartTimeList() {
    return startTimeList;
}

Я относительно новичок в Optaplanner и, возможно, упускаю что-то очень простое. Я изо всех сил пытаюсь определить, что я делаю неправильно, даже после тщательного прочтения документов и примеров.

Есть идеи?

1 Ответ

0 голосов
/ 08 мая 2018

Я обнаружил проблему с правилом жесткого ограничения, связанным с переменной планирования. Этот вопрос больше не действителен. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...