contact@jetteam.dev
Компетенции и кейсы/Данные, ML и компьютерное зрение
NDAмаршрутизация · ACO

Оптимизация маршрутов и расписания выездных сотрудников

Алгоритм, который оптимизирует маршруты и расписание выездных сотрудников с учётом времени встреч, географии и дорожной обстановки.

прогноз пробоквремя в пути считается на тот час, когда сотрудник поедет на встречу

Контекст

Расписание выездов составлялось вручную и по интуиции: часть времени уходила на переезды, которых можно было избежать.

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

Вторая половина задачи – сотрудник выезжает из дома и возвращается домой. Место жительства входит в расчёт наравне с адресами встреч: без него алгоритм экономит на переездах между клиентами и теряет сэкономленное на дороге до первой точки и обратно с последней.

схема

Как перестраивается маршрут

ЖАДНЫЙ ОБХОД: 8 ЗАДАЧдомполые точки – задачи, не попавшие в сменуПОСЛЕ ACO: 11 ЗАДАЧдомв смену помещаются все задачиОба маршрута начинаются и заканчиваются дома. Жадный обход строится по правилу «ближайшая непосещённая», ACO перебирает порядок с учётом оконвстреч и прогноза пробок.
Жадный алгоритм даёт быстрое допустимое решение, но застревает в локальном оптимуме. Муравьиный алгоритм перебирает варианты порядка обхода и находит расписание, в которое помещается больше встреч.
схема

Время в пути на момент поездки

время в пути по одному и тому же участку, мин8101214161820час выезда10:00 · 34 мин18:30 · 56 минМАРШРУТ ДНЯдомвстречавстречавстречадомместо жительства сотрудника входитв расчёт наравне с адресами встречРасписание, собранное по утренней обстановке, к вечеру рассыпается: те же адреса в час пик проезжаются вдвое дольше.
Время в пути между адресами запрашивается на момент поездки. Расписание, собранное по утренней обстановке, к вечеру рассыпается – а вечером переезды и стоят дороже всего.
из проекта

Результат планирования

Построенные маршруты на карте города с точками встреч и участками общественного транспорта.
Построенные маршруты на карте города с точками встреч и участками общественного транспорта.

Что входило в задачи

  • Прогноз пробокЯндекс Карты дают время в пути на тот час, когда сотрудник реально поедет
  • Дом сотрудникамаршрут строится от дома и до дома: дорога до первой точки тоже стоит времени
  • Задачи и окналокации, длительность встреч, временные ограничения
  • Жадное решениебыстрый допустимый вариант как отправная точка
  • Муравьиный алгоритмперебор порядка обхода, в который помещается больше встреч
  • Рабочее времядоступность сотрудников как ограничение расписания
  • Оценка качествасчитаем по числу задач, которые удалось выполнить за день

Стек проекта

PythonACOOR-инструментыЯндекс КартыPostgreSQL

Есть похожая задача?

contact@jetteam.dev