Перейти к содержанию

Алгоритм планирования

Сердце DeepRuta — это мощный алгоритм, который решает задачу маршрутизации транспорта. Его цель — построить наиболее эффективные маршруты с учётом множества реальных ограничений и условий.

🚀 Принцип работы алгоритма

Алгоритм работает по итерационному подходу:

  • Формируется начальное решение — маршрут, соответствующий заданным параметрам.
  • Постепенно вносятся изменения — маршруты модифицируются: меняются точки, порядок, распределение задач.
  • Оценка нового решения — сравнивается, стало ли оно лучше.

Принятие изменений:

  • Если новое решение лучше — оно принимается.
  • Если хуже — алгоритм может принять его с определённой вероятностью, чтобы избежать застревания в локальном минимуме.
  • Процесс повторяется, пока не будет найден наилучший возможный маршрут.

🧠 Что учитывает алгоритм?

Алгоритм ищет оптимальное решение, минимизируя целевую функцию, которая отражает:

  • 🚗 Затраты на ресурсы — например, количество задействованных машин
  • ⚠️ Штрафы за нарушения ограничений — например, опоздание, превышение времени смены

Общая формула:

total_cost_with_penalty = ресурсы + штрафы Решение с наименьшей total_cost_with_penalty считается оптимальным.

⚙️ Ограничения: жёсткие и мягкие

🔒 Жёсткие ограничения (нарушать нельзя): - Количество доступной техники - Вместимость бака - Несовместимость задач и техники (например, КДМ не может загружать снег) - Очерёдность выполнения задач

🌿 Мягкие ограничения (нарушаются с назначением штрафа): - Временные окна - Максимальный пробег - Количествво остановок - Продолжительность смены

Некоторые параметры, такие как «временные окна» или «продолжительность смены», могут быть как мягкими, так и жёсткими — вы выбираете тип в настройках.

⚖️ Как сравниваются разные решения?

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

Пример: Сократив количество автомобилей, алгоритм может увеличить пробег и задержки — но если общая total_cost_with_penalty при этом уменьшилась, такое решение считается лучше.

📊 Настройки стоимости

Стоимость ресурсов настраивается через параметр cost Фактические затраты можно задать отдельно — они не участвуют в оптимизации, но используются в отчётах Штрафы за нарушения настраиваются в отдельном разделе Информация о штрафах

💡 В итоге

Алгоритм DeepRuta не просто "строит маршруты" — он ищет баланс между качеством обслуживания и эффективностью использования ресурсов, позволяя вам управлять приоритетами и гибко адаптировать правила под реальные условия.

📩 Нужна помощь с настройкой параметров? Напишите нам

Написать нам