Что такое Veeroute?
О продукте

Что такое Veeroute?

Veeroute — это облачный оптимизационный движок, предназначенный для решения сложных комбинаторных задач.

В большинстве случаев подобные задачи NP-класса сложно решить с помощью линейного или целочисленного программирования — а зачастую и вовсе невозможно. В комбинаторных задачах линейные зависимости ограничены или полностью отсутствуют. При этом общее число комбинаций может быть огромным. Для того, чтобы составить и проверить каждую из них, потребуются годы или даже столетия.

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

Цель:
3000

Доставить 3000 заказов.

Условия:
1 = 10

За одну поездку мы можем привезти товар 10 клиентам.

Задача:
=

Построить оптимальные маршруты доставки.

Рассчитаем время на поиск решения.
  • Определим количество возможных поездок.
    300010
    10!
     = ~1.6 * 1028
  • Посчитаем, сколько времени уйдёт на вычисление всех возможных вариантов:
    1.6*1028
    1018
     = ~500 лет

    Примечание: для наглядности предположим, что для расчёта каждого варианта суперкомпьютер производит только одну операцию.

Если вы сегодня запустите такой расчет, то результат будет готов в 2521 году.

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

Трудоёмкость комбинаторных задач усугубляется тем, что для эффективной работы оптимизация должна производиться быстро.
Почему?
Во многих случаях оптимизация — это часть более сложных динамических процессов. Представьте себе производственный план предприятия или схему маршрутов доставки в крупной компании, где решения нужно принимать быстро. Оптимизация такой системы должна занимать мало времени — в противном случае она потеряет смысл.

Какие требования чаще всего предъявляются к оптимизатору?

Уровень детализации

При прочих равных, оптимизатор, который способен учитывать больше деталей, может решать более сложные задачи и выдавать более реалистичные результаты.
Вспомните задачу из нашего примера. В условие не включены такие параметры, как временные окна, рабочие смены водителей, совместимость товаров и т.д. Даже если бы через 500 лет суперкомпьютер нашёл решение, на практике оно оказалось бы нежизнеспособным.

Подробнее
Качественный результат

Комбинаторный оптимизатор должен стабильно находить оптимальные или как минимум приближенные к оптимальным решения на разных наборах входных данных.

Скорость оптимизации

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

Простота использования

Интеграция движка с существующей IT-инфраструктурой или сторонним программным обеспечением должна быть простой и быстрой.

Масштабируемость

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

Расширяемость

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

Изучите преимущества оптимизации или попробуйте Veeroute бесплатно, чтобы познакомиться с возможностями продукта.