Маршрут автомобиля с персоналом

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

interface TaskOrVehicle{
@InverseShadowVarible Task nextTask;
getLocation();
}

Задача:

   @PlanningEntity 
    Class Task implements TaskOrVehicle{
    @ChainedPlanningVariable TaskOrVehicle taskOrVehicle;
    @PlanningVariable Staff staff;
    @AnchorShadowVariable Vehicle vehicle;
    }

Итак, у меня есть Посох и Автомобиль как факты, в то время как Задача - это объект планирования. Таким образом, с помощью optaplanner он планирует задачи в цепочке, но назначает разных сотрудников для разных задач в одной цепочке.

Таким образом, если A, B, C,D и E являются задачами, и сотрудники st1,st2,st3 и Vechcle V1,V2 находятся там.

Идеальное решение выглядит так: V1->A(st1)->B(st1)->C(st1) V2->D(st2)->E(st2)

Но мое решение выглядит так: V1->A(st1)->B(st3)->C(st2) V2->D(st3)->E(st2)

Это потому, что у меня нет сотрудников, связанных с цепочкой, и я использую сотрудника в качестве переменной планирования. Теперь я могу исправить это, используя правила, согласно которым в nextTask должен быть тот же сотрудник, что и в текущей задаче, но это перебор.

Каковы лучшие практики, которые я могу сделать, чтобы в каждой цепочке задач был один и тот же сотрудник?

Примечание. Я не хочу оставлять сотрудника в Транспортном средстве, так как, если Транспортное средство освобождается, его можно назначить другому сотруднику для новой цепочки задач.

0 ответов

Другие вопросы по тегам