Статьи

Что такое
оптимальность?

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

Оптимальность, оптимум, оптимальный маршрут. Разработчики — в том числе Veeroute — часто используют эти слова для описания своих продуктов и решений. Настолько часто, что создаётся впечатление, что эти термины не нуждаются в пояснении, ведь они интуитивно понятны и, как правило, не вызывают вопросов со стороны заказчика.

В отказе от разъяснений есть известная доля лукавства, ведь бытовое и профессиональное значения слова «оптимальный» сильно различаются между собой. Если заказчик не до конца понимает эту разницу, он рискует отдать деньги за продукт, который в принципе ничего не оптимизирует.

Итак, что такое оптимальность?

В быту

Бытовая речь учит нас описывать словом «оптимальный» то, что нас устраивает — будь то размер душевой кабины, если она поместилась в ванной, или смартфон, если он нам по карману.

Пример решения бенчмарка из транспортной логистики

Такая разная оптимальность

Порой слово «оптимальный» используется как эмоционально-оценочная характеристика: я считаю, что этот предмет лучше аналогичных, и поэтому говорю, что он — оптимальный.

Заглянем в толковый словарь Ушакова:

«Оптимальный (от лат. optimus — наилучший) — наиболее благоприятный».

Ну, вот, всё правильно!

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

В математике

Для того, чтобы обезопасить себя, нужно понимать, что оптимальность — это прежде всего технический термин, у которого есть чёткое значение. Обратимся к одному из популярных определений — его можно найти, к примеру, в учебнике А. Н. Хорошева «Основы системного проектирования».

Оптимальный — это наилучший среди допустимых при наличии заданного критерия (правила оптимальности).

Из этого определения следует, что:

  1. 1. Eсли мы называем вариант оптимальным, то это значит, что создать вариант лучше в принципе невозможно.

    Например, если маршрут объявляется оптимальным, то это значит, что построить более удачный вариант нельзя.

  2. 2. У оптимальности всегда есть критерий.

    Невозможно построить маршрут, оптимальный сам по себе. Он должен быть оптимален по какому-то признаку: по стоимости, по пробегу, по времени и т.д.

Отсюда можно сделать вывод, что заявление об оптимальности можно легко опровергнуть: достаточно предъявить решение, которое окажется лучше по выбранному параметру. Истинно оптимальное решение — то, которое в принципе невозможно сделать лучше.

Это идеальное решение будет называться глобальный оптимум. В математике термин «оптимальность» используется именно в этом значении.

В бизнесе

Нетрудно догадаться, что нахождение глобального оптимума превращается в трудоёмкий процесс.

Детали

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

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

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

Время

Длительность оптимизации — ещё один фактор, который может быть критически важен в рамках текущих бизнес-процессов компании.

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

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

Оптимизатор, оптимум и субоптимум

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

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

В математике такое решение называется субоптимум. Если решение нельзя улучшить малыми усилиями и доступным набором инструментов, то оно называется локальным оптимумом.

В большинстве случаев в бизнесе под оптимальностью понимается именно субоптимум.

Это не вполне корректно с математической точки зрения, но на практике между оптимальным и близким к нему субоптимальным решениями не будет существенной разницы. Грубо говоря, если курьер доставит заказ за 10 минут 1 секунду, а не ровно за 10 минут, от этого никто не пострадает — хотя с точки зрения математики, в этом случае время доставки окажется приблизительно на 0,17% больше идеального значения. Поскольку математическая модель не полностью соответствует реальному миру, данной незначительной разницей можно пренебречь.

Но и это ещё не всё

С позиций бизнеса, заявления об оптимальности при желании тоже легко опровергнуть, поскольку помимо измеримых параметров — стоимости, пробега, зарплат водителей

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

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

Оптимальность — это миф?

И да, и нет — смотря, какие задачи нам предстоит решать.

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

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

Однако это не значит, что оптимизаторы выполняют свою работу недостаточно хорошо, и вот почему:

  • Для решения конкретной задачи не обязательно учитывать абсолютно все характеристики реального мира. Не все параметры влияют на результат — достаточно учитывать только те, которые позволят получить решение, применимое на практике.
  • Разница между глобальным оптимумом и субоптимумом, как правило, незначительна и не стоит тех временных затрат, которые требуются для нахождения идеального решения. В зависимости от ситуации, бизнесу может быть выгоднее получить субоптимальное решение за 20 минут, чем глобальный оптимум за 2 недели.

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

Так, два разных оптимизатора за одно и то же время могут найти два разных субоптимальных решения — одно из них окажется ближе к глобальному оптимуму, чем второе. И наоборот: одно и то же субоптимальное решение два оптимизатора могут найти за разное время — при аналогичном качестве расчётов кто-то окажется быстрее. Но здесь разговор пойдёт о сравнительных характеристиках конкретных продуктов, а не оптимальности как таковой.

Итак, какие выводы нужно сделать?

  1. Покупая оптимизатор, вы с высокой долей вероятности покупаете субоптимальное решение для своих бизнес-задач. И в этом нет ничего плохого.

  2. Если у вас есть сомнения в добросовестности продавца, попросите его объяснить, что именно понимается под оптимальностью в контексте продукта. Если объяснение будет составлено исключительно в бытовых терминах — скорее всего, вам пытаются продать совсем не то, что вы ищете.

  3. Не верьте маркетинговой информации на слово. По возможности, протестируйте продукт на своих реальных данных и сравните решение оптимизатора с вашими собственными.