Как смоделировать последовательные посещения с одинаковыми временными окнами доставки в Timefold Solver?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как смоделировать последовательные посещения с одинаковыми временными окнами доставки в Timefold Solver?

Сообщение Anonymous »

Проблема
Я оптимизирую маршруты доставки бетона, где грузовики должны:
  • Загружать на центральном заводе (по одному грузовику за раз, продолжительность загрузки 20 минут)
  • Доставлять клиентам в определенные временные интервалы
  • Вернуться для перезагрузки и повторить
    Ограничение: Погрузочная площадка принимает только ОДИН грузовик одновременно – перекрытия не допускаются.
    Текущая реализация
    У меня есть ограничение, которое предотвращает перекрытие погрузки:

    Код: Выделить всё

    protected Constraint centralOverLap(ConstraintFactory factory) {
    return factory.forEach(Visit.class)
    .filter(v -> v.getVehicle() != null)
    .filter(v -> v.getArrivalTime() != null)
    .join(Visit.class,
    Joiners.equal(Visit::getCentral),
    Joiners.overlapping(Visit::getTimeStartLoading, Visit::getDepotOutTime),
    Joiners.lessThan(Visit::getId, Visit::getId)
    )
    .penalize(HardSoftLongScore.ONE_HARD)
    .asConstraint("Site Central loading overlap");
    }
    
    Потенциальное решение — связанные переменные?
    В настоящее время каждое посещение имеет переменную планирования previousVisit на основе назначенного Транспортного средства (создание цепочки маршрутов для каждого транспортного средства).
    Имеет ли смысл добавить вторую связанную переменную — previousVisitAtCentral на основе Центральный завод — для явного моделирования последовательности загрузки?
    Вопрос

    Является ли подход двойной цепочки (одна цепь на транспортное средство, одна цепь на центральный) допустимой стратегией моделирования в Timefold/OptaPlanner?
  • Если нет, то какой рекомендуемый способ последовательного моделирования использование ресурсов (загрузочный отсек), когда несколько посещений имеют одинаковые временные интервалы?


Подробнее здесь: https://stackoverflow.com/questions/798 ... n-timefold
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»