Статьи

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

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

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

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

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

В быту

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

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

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

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

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

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

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

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

В математике

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

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

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

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

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

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

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

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

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

В бизнесе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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