В этой статье мы поговорим о терминологической разнице и внесём ясность в понимание одного из ключевых понятий в нашей области.
Оптимальность, оптимум, оптимальный маршрут. Разработчики — в том числе Veeroute — часто используют эти слова для описания своих продуктов и решений. Настолько часто, что создаётся впечатление, что эти термины не нуждаются в пояснении, ведь они интуитивно понятны и, как правило, не вызывают вопросов со стороны заказчика.
В отказе от разъяснений есть известная доля лукавства, ведь бытовое и профессиональное значения слова «оптимальный» сильно различаются между собой. Если заказчик не до конца понимает эту разницу, он рискует отдать деньги за продукт, который в принципе ничего не оптимизирует.
Итак, что такое оптимальность?
В быту
Бытовая речь учит нас описывать словом «оптимальный» то, что нас устраивает — будь то размер душевой кабины, если она поместилась в ванной, или смартфон, если он нам по карману.
Порой слово «оптимальный» используется как эмоционально-оценочная характеристика: я считаю, что этот предмет лучше аналогичных, и поэтому говорю, что он — оптимальный.
Заглянем в толковый словарь Ушакова:
«Оптимальный (от лат. optimus — наилучший) — наиболее благоприятный».
Ну, вот, всё правильно!
Тем не менее, если компания-заказчик приходит к подрядчику, оперируя бытовым пониманием оптимальности, она ставит себя в заведомо уязвимое положение, ведь «наиболее благоприятный» — это оценочная характеристика, которую невозможно проверить или измерить. Пользуясь этим, недобросовестный разработчик, обладающий даром убеждения, может продать своё решение как «наиболее благоприятное», называя продукт оптимизатором — даже если в нём вообще нет никакой оптимизации.
В математике
Для того, чтобы обезопасить себя, нужно понимать, что оптимальность — это прежде всего технический термин, у которого есть чёткое значение. Обратимся к одному из популярных определений — его можно найти, к примеру, в учебнике А. Н. Хорошева «Основы системного проектирования».
Оптимальный — это наилучший среди допустимых при наличии заданного критерия (правила оптимальности).
Из этого определения следует, что:
1. Eсли мы называем вариант оптимальным, то это значит, что создать вариант лучше в принципе невозможно.
Например, если маршрут объявляется оптимальным, то это значит, что построить более удачный вариант нельзя.
2. У оптимальности всегда есть критерий.
Невозможно построить маршрут, оптимальный сам по себе. Он должен быть оптимален по какому-то признаку: по стоимости, по пробегу, по времени и т.д.
Отсюда можно сделать вывод, что заявление об оптимальности можно легко опровергнуть: достаточно предъявить решение, которое окажется лучше по выбранному параметру. Истинно оптимальное решение — то, которое в принципе невозможно сделать лучше.
Это идеальное решение будет называться глобальный оптимум. В математике термин «оптимальность» используется именно в этом значении.
В бизнесе
Нетрудно догадаться, что нахождение глобального оптимума превращается в трудоёмкий процесс.
Детали
Основная сложность оптимизации состоит в количестве параметров, которые необходимо учесть при решении задачи. Чем больше параметров учитывается, тем больше времени и усилий будет потрачено.
Эта сложность особенно ярко проявляется при решении реальных бизнес-задач. В то время как в академических примерах поиск оптимума происходит в отрыве от реальной жизни, на практике оптимизация требует учитывать сотни специфических деталей, описывающих бизнес-задачи конкретной компании. Если этими деталями пренебречь, решение — даже оптимальное с точки зрения математики в рамках заданных допущений — с точки зрения бизнеса уже не будет оптимальным. Более того — вероятно, это решение вообще не получится использовать в операционной работе.
Например, в транспортной оптимизации важную роль играет актуальная дорожная ситуация. Если при составлении маршрутов мы не будем учитывать пробки, водителям будет тяжело соблюдать временные окна, потому что реальное время в пути будет непредсказуемо меняться. Такие маршруты нельзя назвать оптимальными, даже если на этапе расчётов они кажутся нам безупречными. А ведь пробки — это только одна из множества деталей, влияющих на процесс доставки.
Время
Длительность оптимизации — ещё один фактор, который может быть критически важен в рамках текущих бизнес-процессов компании.
Так, например, для осуществления экспресс-доставки необходимо динамическое планирование: маршрут курьера должен быть мгновенно скорректирован, если покупатель отменил заказ, или впереди на дороге произошла авария — в противном случае сотрудник напрасно потеряет время и может опоздать к следующему клиенту.
Если объём доставок небольшой, то с задачей планирования и корректировки маршрутов можно справиться вручную или с помощью простых программных инструментов. Но чем выше количество заказов, чем обширнее география доставки, чем больше требований к перевозке, и чем сложнее устроена система клиентского сервиса — тем больше времени уходит на поиск маршрутов, и тем сложнее справиться с этой задачей простыми подручными средствами. При этом цена ошибки может быть очень высока: клиенты на последней миле склонны остро реагировать на опоздания и могут с лёгкостью перейти к конкуренту, если их не устроит качество доставки.
Оптимизатор, оптимум и субоптимум
С учётом всего вышеперечисленного можно сделать закономерный вывод: ручная оптимизация подходит только для небольших компаний, где вариативность возможных решений невысока. Локальный интернет-магазин с узким тематическим ассортиментом, с ограниченной географией доставки, может поручить планирование маршрутов курьера операционисту или офис-менеджеру — скорость бизнес-процессов и качество сервиса при этом не пострадают.
По мере масштабирования и усложнения бизнеса решать оптимизационные задачи вручную становится всё сложнее, поэтому для этого используется специализированное программное обеспечение — оптимизаторы. Они позволяют за разумное время найти решение, одновременно близкое к оптимальному и учитывающее специфику, влияющую на выполнимость результата.
В математике такое решение называется субоптимум. Если решение нельзя улучшить малыми усилиями и доступным набором инструментов, то оно называется локальным оптимумом.
В большинстве случаев в бизнесе под оптимальностью понимается именно субоптимум.
Это не вполне корректно с математической точки зрения, но на практике между оптимальным и близким к нему субоптимальным решениями не будет существенной разницы. Грубо говоря, если курьер доставит заказ за 10 минут 1 секунду, а не ровно за 10 минут, от этого никто не пострадает — хотя с точки зрения математики, в этом случае время доставки окажется приблизительно на 0,17% больше идеального значения. Поскольку математическая модель не полностью соответствует реальному миру, данной незначительной разницей можно пренебречь.
Но и это ещё не всё
С позиций бизнеса, заявления об оптимальности при желании тоже легко опровергнуть, поскольку помимо измеримых параметров — стоимости, пробега, зарплат водителей
Например, к ним относятся возможные репутационные потери — так, если мы захотим оптимизировать расходы на курьеров, мы можем получить жалобы клиентов на долгие сроки доставки и потеряем часть покупателей.
Другой фактор — степень неопределённости: клиент может в любой момент отменить или перенести заказ, дорогу могут перекрыть, машина может сломаться в пути. Если в математическую модель не заложены различные риски, решение уже не может быть оптимальным с точки зрения бизнеса.
Оптимальность — это миф?
И да, и нет — смотря, какие задачи нам предстоит решать.
В академической среде оптимальность, безусловно, существует, поскольку в научной и учебной деятельности намеренно рассматриваются модельные задачи, куда более простые, чем те, которые возникают на практике.
С точки зрения бизнес-задач, оптимальность — это действительно миф. Математическая модель, даже самая совершенная, не способна описать все сценарии, которые могут произойти в реальном мире с той или иной долей вероятности. Попытка это сделать приведёт к чрезмерному усложнению модели, которая будет тратить на поиск решения нецелесообразно много времени. В свою очередь, скорость оптимизации критична для многих сфер бизнеса, включая доставку последней мили.
Однако это не значит, что оптимизаторы выполняют свою работу недостаточно хорошо, и вот почему:
- Для решения конкретной задачи не обязательно учитывать абсолютно все характеристики реального мира. Не все параметры влияют на результат — достаточно учитывать только те, которые позволят получить решение, применимое на практике.
- Разница между глобальным оптимумом и субоптимумом, как правило, незначительна и не стоит тех временных затрат, которые требуются для нахождения идеального решения. В зависимости от ситуации, бизнесу может быть выгоднее получить субоптимальное решение за 20 минут, чем глобальный оптимум за 2 недели.
Нужно отметить, что не все субоптимальные решения одинаково хороши.
Так, два разных оптимизатора за одно и то же время могут найти два разных субоптимальных решения — одно из них окажется ближе к глобальному оптимуму, чем второе. И наоборот: одно и то же субоптимальное решение два оптимизатора могут найти за разное время — при аналогичном качестве расчётов кто-то окажется быстрее. Но здесь разговор пойдёт о сравнительных характеристиках конкретных продуктов, а не оптимальности как таковой.
Итак, какие выводы нужно сделать?
Покупая оптимизатор, вы с высокой долей вероятности покупаете субоптимальное решение для своих бизнес-задач. И в этом нет ничего плохого.
Если у вас есть сомнения в добросовестности продавца, попросите его объяснить, что именно понимается под оптимальностью в контексте продукта. Если объяснение будет составлено исключительно в бытовых терминах — скорее всего, вам пытаются продать совсем не то, что вы ищете.
Не верьте маркетинговой информации на слово. По возможности, протестируйте продукт на своих реальных данных и сравните решение оптимизатора с вашими собственными.