00:00:00 Введение в интервью
00:00:42 Карьера Мейнольфа Зеллманна и принятие решений в InsideOpt
00:03:47 Сбои и чрезмерный оптимизм в оптимизации
00:06:18 Открытие стохастической оптимизации Верморелем и ее влияние
00:08:10 Исполнение заказов электронной коммерции и прогнозирование в цепочке поставок
00:09:56 Подход “сначала прогнозировать, затем оптимизировать” и его последствия
00:11:41 Улучшение операционных показателей и бизнес-издержки
00:14:08 Непредсказуемость и хаос в цепочке поставок
00:16:16 Привлекательность прогнозирования и рационального принятия решений
00:18:43 Рациональное принятие решений и игра с перебронированием
00:21:55 Пример продукта супермаркета и доступность поставок
00:24:27 Стохастическая оптимизация и сезонная изменчивость продаж
00:28:53 Влияние изменений цен и совместное апостериорное распределение
00:30:39 Эвристические методы решения проблем и преодоление сложности
00:33:10 Проблемы с скоропортящимися товарами и апостериорное распределение
00:36:01 Трудности в рассуждении и создание осознания решения
00:38:40 Проблема кофейной обжарки и планирование производства
00:42:20 Моделирование бизнеса и реальность сложных переменных
00:45:34 Игнорируемые проблемы в оптимизации и поиски серебряной пули
00:49:00 Советы CEO и понимание бизнес-процессов
00:51:58 Вместимость склада и неопределенность доставки поставщика
00:54:38 Восприятие уровня сервиса и проведение брифинга
00:57:33 Финансовые убытки авиакомпаний и принятие технологий
01:00:10 Преимущества поиска на основе ИИ и совместимость с аппаратным обеспечением
01:03:05 Выпуклость в оптимизации и полезность вместо доказательств
01:06:06 Схождение машинного обучения с методами оптимизации
01:09:34 Особенности выполнения и расширение горизонта поиска
01:12:22 Микронастройки и риски работы склада
01:16:09 Нахождение хорошего компромисса и страховка от неопределенности
01:19:11 Ожидаемое повышение прибыли благодаря стохастической оптимизации
01:22:23 Пример аэрокосмической промышленности
01:24:30 Принятие хороших решений и минимизация ущерба
01:25:19 Эффективность цепочки поставок
01:26:22 Обратная связь с клиентами и важность технологий
01:26:56 Конец интервью
Об госте
Доктор Мейнольф Зеллманн — основатель и CTO компании InsideOpt, стартапа из США, который разрабатывает универсальное программное обеспечение для автоматизации принятия решений в условиях неопределенности. Ранее он был директором по сетевой оптимизации в Shopify, директором лабораторий машинного обучения и представления знаний в Глобальном исследовательском центре General Electric, старшим менеджером по когнитивным вычислениям в IBM Research, а также доцентом кафедры компьютерных наук в Brown University. Мейнольф разработал такие системы, как система расчетов сделок ЕЦБ, которая обрабатывает свыше 1 триллиона евро за ночь, опубликовал более 80 статей на международных конференциях и в журналах, обладает шестью патентами и выиграл более 22 главных призов на международных соревнованиях по программированию.
Резюме
В недавнем интервью на LokadTV Конор Дохерти, Йоаннес Верморель и гость Мейнольф Зеллманн обсудили роль стохастической оптимизации в управлении цепями поставок. Они подчеркнули важность учета вариабельности и неопределенности в процессах принятия решений. Традиционные детерминированные методы часто оказываются недостаточными в реальных условиях, что приводит к чрезмерно оптимистичным планам оптимизации. И Верморель, и Зеллманн критиковали подход “сначала прогнозировать, затем оптимизировать”, предлагая, что компании могут добиться лучших результатов, учитывая изменчивость прогнозов при оптимизации. Они акцентировали внимание на необходимости иметь исполнимые планы и измеримую эффективность любой модели оптимизации.
Расширенное резюме
В недавнем интервью, проведенном Конором Дохерти, руководителем отдела коммуникаций в Lokad, доктор Мейнольф Зеллманн, CTO компании InsideOpt, и Йоаннес Верморель, CEO компании Lokad, обсудили сложности принятия решений в условиях неопределенности в управлении цепями поставок. Беседа вращалась вокруг концепции стохастической оптимизации — метода, который учитывает присущую вариабельность и непредсказуемость процессов в цепочках поставок.
Доктор Зеллманн, отмеченный наградами ученый в области компьютерных наук и ИИ, начал с рассказа о своем профессиональном пути через IBM, GE, Shopify и теперь InsideOpt. Он подчеркнул, что машинное обучение все больше стало частью его работы, а традиционные оптимизационные методы, будучи детерминированными, часто оказываются недостаточными в реальных условиях. Он отметил, что принятие решений в условиях неопределенности является необходимым аспектом управления цепями поставок, и этим занимается InsideOpt.
Приводя в качестве примера авиакомпанию, доктор Зеллманн продемонстрировал сложности оптимизации в условиях неопределенности. Он объяснил, что, хотя планы оптимизации могут выглядеть прекрасно на бумаге, на практике они часто проваливаются из-за непредвиденных обстоятельств. Это приводит к осознанию, что оптимизация страдает от чрезмерного оптимизма.
Верморель согласился с точкой зрения доктора Зеллманна, поделившись своим собственным опытом открытия концепции стохастической оптимизации. Он отметил, что идея неопределенности часто отсутствует в традиционной литературе по оптимизации. Верморель также обсудил идею опережающего прогнозирования будущего для устранения неопределенности — концепцию, привлекательную уже почти столетие. Он упомянул попытку Советского Союза прогнозировать и устанавливать цены на 30 миллионов продуктов за пять лет вперед, которая закончилась неудачей. Несмотря на это, идея все еще привлекает ученых и определенные типы менеджмента благодаря своему топ-даун подходу.
Доктор Зеллманн раскритиковал традиционный подход «сначала прогнозировать, затем оптимизировать», при котором один отдел составляет прогноз, а другой использует этот прогноз для оптимизации. Он утверждал, что такой подход игнорирует изменчивость прогноза и предполагал, что компании могут добиться значительно лучших операционных результатов, принимая во внимание вариативность прогнозов при оптимизации.
Верморель привел пример перебронирования авиакомпаний, чтобы проиллюстрировать нелинейность отдельных задач, где незначительные отклонения могут быстро перерасти в серьезные проблемы. Доктор Зеллманн использовал пример супермаркета, продающего наборы из масла и солнцезащитного крема, чтобы подчеркнуть важность изменчивости спроса. Он утверждал, что крайне важно, чтобы весь ассортимент был доступен в нужное время, особенно для сезонных товаров, таких как солнцезащитный крем.
В разговоре также затронулись вопросы расхождения между здравым смыслом и использованием программного обеспечения в управлении цепями поставок, важность прогнозирования возможных сценариев для всех продуктов, а также сложности планирования производства. Доктор Зеллманн пояснил, что, хотя идеальная точность была бы желательной, она невозможна из-за присущих неопределенностей в прогнозировании. Вместо этого следующим лучшим вариантом является изучение ошибок прогнозов и использование этой информации для принятия лучших решений.
В заключение, интервью подчеркнуло важность стохастической оптимизации в управлении цепями поставок. И доктор Зеллманн, и Верморель отметили необходимость учета изменчивости и неопределенности прогнозов при принятии решений, а также важность недопущения чрезмерного упрощения моделей. Они предположили, что любую модель оптимизации можно рассматривать как симуляцию того, что произойдет при определенных условиях, и что крайне важно обеспечить реализацию плана и возможность измерения его эффективности.
Полный текст интервью
Конор Дохерти: С возвращением. Неопределенность и стохастичность — сущность цепочки поставок. Сегодняшний гость, доктор Мейнольф Зеллманн, хорошо знаком с этим. Он отмеченный наградами ученый в области компьютерных наук, высоко оцененный исследователь в области ИИ, и он CTO компании InsideOpt. Сегодня он поговорит с Йоаннесом и мной о принятии решений в условиях неопределенности. Мейнольф, добро пожаловать в Lokad.
Мейнольф Зеллманн: Большое спасибо, Конор, и очень приятно познакомиться, Йоаннес. С нетерпением жду нашего обсуждения.
Конор Дохерти: Хорошо, спасибо большое, что присоединились к нам. Извините за краткое вступление. Я предпочитаю сразу переходить к гостю, но это мешает в полной мере раскрыть его биографию. Не могли бы вы сначала простить меня, а затем рассказать немного о своем опыте?
Мейнольф Зеллманн: Конечно. Думаю, вы уловили суть. Глубоко внутри я всегда занимался оптимизацией. Именно это подтолкнуло меня к написанию дипломной работы. Немецкая образовательная система очень похожа на французскую. Моя дипломная работа заключалась в создании решателя задач смешанного целочисленного программирования для системы компьютерной алгебры. Так что, начиная со студенческих лет, я интересовался именно вопросами принятия решений, исследуя, как с помощью компьютеров можно прийти к более эффективным решениям.
Я был постдоком в Корнелле, профессором в Brown, затем старшим менеджером в IBM, техническим директором в GE, потом директором в Shopify, и теперь CTO в InsideOpt. На этом пути видно, что машинное обучение все больше проникает в мою работу.
Традиционная оптимизация детерминирована. У вас есть полное знание обо всем, что происходит, и вы просто пытаетесь найти наилучший способ действия. Однако, как только вы сталкиваетесь с реальной практикой, понимаете, что это не так. Необходимо внедрять все больше технологий, позволяющих принимать решения в условиях неопределенности, и именно это нас вдохновляет в InsideOpt.
Конор Дохерти: Спасибо. Вы упомянули множество крупных компаний в вашем опыте — IBM, General Electric и Shopify. Не нарушая никаких соглашений о неразглашении, какие детали или опыты больше всего повлияли на ваше представление о прогнозировании и принятии решений теперь, когда вы в InsideOpt?
Мейнольф Зеллманн: Посмотрите, например, на авиакомпании. Традиционно на оптимизацию тратится колоссальный бюджет. Это одна из областей или, возможно, одна из отраслей, которая инвестировала в технологии оптимизации с самых ранних времен и в наибольшем объеме на протяжении десятилетий. А затем посмотрите, как весело управлять авиакомпанией. У них потрясающие планы, не так ли? Они разрабатывают планы экипажей. Им нужно решать, какой пилот на каком самолете, какой стюардессе на каком самолете, какие самолеты использовать для каких рейсов. Им также необходимо определять, какие рейсы предлагать, какие прямые рейсы и как формировать маршруты, заниматься управлением доходами. Для всех этих операционных решений они используют оптимизацию, и на бумаге эти планы выглядят фантастически. Обычно они приходят, если не с доказуемым оптимумом, то с какой-либо гарантией производительности.
Но если вы управляете авиакомпанией, то знаете, что в день эксплуатации вы можете потерять все, потому что все идет немного иначе. Погода может не оправдать ожиданий, авиадиспетчеры во Франции чувствуют, что им недостаточно платят, выход заполнен, какое-то оборудование ломается. Все это может пойти не так. И если вы когда-либо летали, то знаете, что девиз авиакомпаний: «Если сегодня ничего не поделаешь, то и завтра ничего не получится. Давайте убедимся, что завтра все будет в порядке». Именно так они относятся к ситуации. Им безразлично, что сегодня вы достигнете нужного результата, они хотят, чтобы завтра все снова вошло в план, потому что если завтра ситуация будет плохой, то и завтра все пойдет не так.
Что это вам говорит? Это говорит о том, что оптимизация страдает от чрезмерного оптимизма, что все пойдет по плану. И именно это мы хотим изменить.
Конор Дохерти: Спасибо. Йоаннес, согласны ли вы с этим?
Йоаннес Верморель: Абсолютно. Для меня это было очень интересно, потому что я открыл для себя понятие стохастической оптимизации довольно поздно. В свои 20 лет я хорошо знаком с классической оптимизацией, знаете, выпуклой оптимизацией, читал целые книги на эти темы. То есть классическая оптимизация, которая начинается с линейной алгебры и таких вещей, как симплекс-метод и тому подобное, эти темы преподаются не в школе, а уже после неё. А затем, в течение нескольких лет будучи студентом, я изучал операционные исследования — так традиционно называют эту область. И опять же, можно пройти буквально сотни страниц примеров, где рассматриваются фабрики, самолеты, всевозможное распределение ресурсов, машин, людей и тому подобное. И всё же, ни разу не поднимается вопрос «слон в комнате», а именно то, что все может пойти не так. У вас есть лишь модель ситуации, которая может быть некорректной, и в итоге все, что вы оптимизируете, оказывается чрезвычайно хрупким.
В тот момент, когда я осознал, насколько глубока кроличья нора, я прочитал книгу “Антихрупкость” Насима Николаса Талеба. Это было довольно давно, но потом я понял, что существует недостающая парадигма, которая действительно вездесуща. И затем я стал в целом очень увлекаться подобного рода оптимизацией. Для меня самое удивительное то, как она отсутствует в буквальном смысле в целых областях литературы, которые трактуют идею неопределенности, как будто ваше незнание своей функции потерь — это буквально отсутствующее измерение. Отсутствует измерение, и труднее увидеть то, чего не замечаешь. Это не потому, что это неправильно, скорее, дело в том, что целое измерение отсутствует в очень большом, очень обширном и очень старом поле исследований.
Конор Дохерти: Ну, на самом деле, если можно продолжить, когда вы упомянули идею недостающих парадигм и вещей, которые полностью отсутствуют, это хорошо сочетается с одной из причин, по которой мы действительно обратились к Мейнофу. Ваш взгляд на то, что мы могли бы назвать мейнстримным или традиционным планированием, прогнозированием, политиками управления запасами, обычно сводится к подходу “сначала прогноз, затем принятие решений”, что парадигматически совершенно отличается от того, что, как я полагаю, поддержали бы все в зале. Итак, сначала слово за вами, Мейноф. Не могли бы вы очертить различия между традиционным подходом и недостающими парадигмами, которые вы и Йоаннес замечаете?
Мейноф Селлман: Да, как вы можете себе представить, если вы управляете системой распределения заказов, у вас есть интернет-магазин, и вам нужно разместить где-то в вашем складе товары, которые, как вы надеетесь, будут куплены. Проблема, с которой вы сталкиваетесь, заключается в том, что вы не знаете, сколько будет куплено и где. Поэтому вам нужно сформулировать ожидание, так сказать. То есть вам нужно составить прогноз или предсказание в более общем смысле. Есть люди, которые занимаются этим за вас, и обычно это ваш отдел машинного обучения. Эти ребята знают всё о том, что “о, здесь отсутствуют значения”. То есть, скажем, у вас были продажи с перебоями, что означает, что вы на самом деле не знаете, сколько было бы продано, поскольку товар закончился. Таким образом, вы действительно не знаете, сколько могли бы продать, если бы у вас было больше запасов. Они работают с выбросами, с отсутствующими данными, с шумом и со всем, что неопределенно, и из этого делают прогноз, предсказание.
А затем у вас есть второй отдел, который, как Йоаннес отметил весьма справедливо, обычно не занимается неопределенностью. Они говорят: “О, отличный прогноз. Давайте засунем его в мою модель оптимизации, как будто его дал Дельфийский оракул или что-то в этом роде.” То есть так, будто у вас было совершенное знание будущего. Вы просто берете эти числа, которые у вас есть, и говорите: “О, спрос на солнцезащитный крем на следующей неделе составляет 20 тюбиков. Давайте выставим их на полку”, не учитывая никакой вариативности, которая там присутствует.
Этот подход “сначала прогнозируй, затем оптимизируй” отчасти возник из-за того, что у вас есть два различных отдела с совершенно разными наборами навыков. И было бы очень сложно сказать: “О, теперь специалисты по машинному обучению должны изучить всё об оптимизации” или, может быть, оптимизаторам нужно больше знать о машинном обучении. Поэтому компании обычно избегают этого. Это одна из причин, почему существует такое разделение.
Суть в том, что если вы передаете неопределенность от одного отдела к другому, она не исчезает. Просто игнорируя её, вы на самом деле оставляете много денег на столе. И это вторая причина, по которой люди не изучают это более детально — им кажется, что специалисты по машинному обучению сделали свою работу. Они возвращаются, выполняют действия, например, после создания модели они тестируют её с помощью метода, который называется, например, кросс-валидация. Таким образом, вы берёте известные данные и говорите: “Эй, если бы у меня был только этот фрагмент данных, и мне пришлось бы сделать прогноз для другой части, насколько бы это получилось?” И так вы как бы убеждаете себя, что получите очень хорошие прогнозы от отдела машинного обучения.
И они это делают, и вы контролируете этот процесс, думая: “О, это потрясающе. У них хорошие прогнозы.” Но затем оптимизаторы всё равно возвращаются и говорят: “Либо у меня есть ограничение по производительности, либо, эй, у меня здесь, вероятно, оптимальное решение.” Так что, если вы управляете компанией, вы бы не ожидали, что можно улучшить результаты, заставив эти отделы работать вместе лучше. А на самом деле, вы можете очень легко добиться улучшения операционных результатов на 15%, 20%, 25%, если действительно учитывать вариативность прогноза при оптимизации. Но люди этого не замечают.
Таким образом, отчасти структурно этот подход “сначала прогнозируй, затем оптимизируй” существует именно потому, что вы не хотите смешивать навыки. Другая причина заключается в том, что вы не осознаёте, сколько на самом деле упускаете, если более тесно интегрировать эти процессы. Ведь кажется, что: “Отличный прогноз, доказанная оптимальность, великолепно. Остальное — просто стоимость ведения бизнеса.” А это не так. Я думаю, что это то, что Йоаннес и я сегодня хотим донести до аудитории. Это не стоимость ведения бизнеса.
Конор Дохерти: Ну, Йоаннес, так это же стоимость ведения бизнеса? Мейноф прав?
Йоаннес Верморел: Да, и я также считаю, что здесь есть ещё одно измерение. Идея овладения и покорения будущего таким образом, чтобы полностью устранить неопределенность, на протяжении почти столетия была чрезвычайно соблазнительной. Советский Союз развалился, но идея составления пятилетнего плана и полной оркестровки не умерла с ним. В какой-то момент, я думаю, у них было что-то вроде 30 миллионов товаров, для которых нужно было устанавливать цены и прогнозировать на пять лет вперёд. Это был полный провал на прагматическом уровне.
Привлекательность этой идеи не угасла с распадом Советского Союза. Она по-прежнему привлекает, особенно среди академиков. Идея, что вы можете описать будущее мира так, что ваш прогноз окажется истиной, а затем всё сводится к оркестровке, продолжает находить отклик. Она также резонирует с определенными типами менеджмента, поскольку предполагает очень иерархичный, сверху вниз подход.
У неё есть привлекательная простота. Очевидно, что это заблуждение, потому что вы не контролируете ситуацию. У ваших клиентов свои цели, они могут принимать иные решения. Ваш поставщик старается изо всех сил, но иногда его максимум все же оказывается недостаточным. Плюс к этому, бывают потрясения. Иногда это что-то драматическое, как война, иногда что-то абсурдное, как судно, застрявшее в Суэцком канале, и все ваши поставки задерживаются из-за нелепого инцидента. Но независимо от причины, будущее остается хаотичным.
Очень трудно рационализировать такой хаос. Сложнее строить рассуждения о нём. Рассуждать о совершенном будущем просто. Именно такой отклик мы получали в первые годы Локада: “Мистер Верморел, просто дайте нам точные прогнозы. Держитесь 3%-ной ошибки и всё.” И, конечно, если бы мы могли это обеспечить, тогда объединение прогнозирования и оптимизации не имело бы никакого истинного преимущества.
Но вот мы здесь, через 15 лет. Даже если Локад отлично справляется с прогнозированием, для большинства бизнесов 3%-ная неточность — это просто абсурд. Мы даже близко не к этому. Это никогда не будет так на уровне SKU.
Мейноф Селлман: Да, звучит резковато сравнивать промышленную практику с Советским Союзом, но на днях я видел рекламу решателя MIP, где говорилось: “С помощью нашего решателя MIP эта авиакомпания оптимизировала свой пятилетний план.” И, думаю, я оставил комментарий, что Хрущёв был бы так горд. Привлекательно говорить: “Я могу предсказать будущее, искусственный интеллект потрясающий, а затем я оптимизирую для него — и теперь я в выигрыше.”
Йоаннес Верморел: Думаю, привлекательность этой идеологии велика. Возможно, люди отвергнут это, заявив: “О, нет, я за свободный рынок, я не коммунист.” Но они упускают то, что делало эту идеологию столь манящей. Даже если обратиться к академическим кругам, вы часто обнаружите сторонников таких идей. Идея о том, что ты хозяин своего будущего, очень привлекательна. Идея о возможности сверху вниз применить какие-то научные методы и рационально выстроить верхнюю стратегию выглядит вполне рационально. На бумаге это выглядит как современный менеджмент. Но на деле оказывается, что это не современный менеджмент, а современное неправильное управление, хотя притягательность и видимость рациональности ощущаются.
Но это сопряжено с побочными эффектами, которые являются ятрогенными, то есть непреднамеренными, но фундаментально подрывающими эти планы. В итоге вы получаете якобы оптимальные решения, которые оказываются невероятно хрупкими, и малейшее отклонение способно обернуться для вас катастрофой в самых неожиданных формах.
Мейноф Селлман: Это, наверное, самая распространённая ошибка. Люди думают: “Может, я не могу безупречно предсказать будущее, но даже если будут небольшие отклонения, мои решения, скорее всего, останутся примерно такими же.” Именно это — не так. Такой вид непрерывных изменений, который вы ожидаете, просто отсутствует на практике. Вот почему, даже если кажется логичным сделать прогноз и затем принять решение на его основе, это на самом деле самое нерациональное, что можно сделать. Вы должны предполагать, что у вас нет доступа ко всей информации, которая вам необходима.
На самом деле рациональный подход — делать то, для чего Локад разрабатывает наше программное обеспечение insideOpt, — учитывать ту вариативность, которую вы неизбежно испытываете в своих прогнозах при принятии решений.
Йоаннес Верморел: Да, и вот ещё один пример для аудитории. Если вы хотите поиграть с овербукингом в авиалиниях, это нормально. Всегда найдутся несколько пассажиров, которые не появятся, так что вы сможете продать больше билетов, чем мест в самолёте. Но проблема в том, что в какой-то момент мест действительно не окажется. У вас было всего 200 мест, вы продали 220, исходя из того, что 20 человек не явятся, а на деле 205 человек прибыли. Таким образом, получается, что пятеро человек так и не смогут уместиться в самолёте, несмотря на все ваши усилия. Да, вы можете им предложить компенсацию и играть разными способами, но в конце концов пятеро пассажиров получат ужасное качество обслуживания на рейсе, который они у вас купили.
Так что это очень нелинейная ситуация: первые несколько мест можно овербукировать, но затем наступает момент, когда предел достигнут, и удар по этому пределу будет жестоким, особенно для тех, у кого были действительно важные дела. Это абсолютно не как плавно изменяющаяся линейная проблема, где всё просто немного больше того же самого. Нет, существует резкий порог, после чего ситуация быстро превращается в настоящую проблему. Конор Дохерти: Чтобы подытожить и связать несколько идей, потому что вы оба высказали действительно интересные мысли, ведущие к следующему пункту. Йоаннес, ваш пример с овербукингом и Мейноф, ваш пример с измерением спроса. Например, я продал 20 единиц крема для кожи в прошлом месяце. Ну, фактически вы продали, но произошёл перебой запасов, так что вы на самом деле не знаете, каким бы был спрос.
Если вы здраво размышляете о проблеме, это естественным образом приводит вас к стохастической оптимизации, к принятию неопределенности. Идеального ответа не существует, и, как я помню, у вас в лекциях на YouTube есть фраза что-то вроде: “Сейчас я всё испорчу, потому что хорошее решение сейчас лучше, чем идеальное слишком поздно” или что-то в этом роде.
Мейноф Селлман: Да, это ещё один момент, когда время, необходимое для нахождения хорошего ответа, влияет на его качество. Да, это, безусловно, нужно. Но, возвращаясь к вашему вопросу, почему важна вариативность? Давайте объясню на примере. Представьте, что вы управляете супермаркетом в Париже и размещаете на полках разные товары. Есть масло и есть наборы солнцезащитных средств. Два абсолютно разных продукта. Если ваш прогноз говорит, что вы продадите 300 таких наборов за следующие 30 дней, стоит ли считать, что это по 10 в день? Нет. С маслом можно так поступить, потому что спрос на него стабилен, и прогноз колеблется около среднего значения с небольшими отклонениями в ту или иную сторону. Но с солнцезащитными средствами ситуация такова, что прямо сейчас погода плохая, плохая, плохая, а потом наступает один уикенд, когда светит солнце, и все, кажется, покупают солнцезащитный крем практически на всё лето. Если в этот момент в супермаркете нет полного запаса, вы просто упускаете этот шанс. Это не значит, что если у вас сегодня лежит 10 наборов, вы компенсируете это продажей 290 завтра. Нет, начиная с понедельника, вы больше не продадите ни одного набора.
Именно в этом заключается разница, верно? Ожидаемое значение может быть тем же, но имеет значение, насколько вариативность сконцентрирована вокруг этого ожидания или существует огромная разница, когда ситуация либо нулевая, либо очень высокая. И если вы не учитываете это при принятии решений, вы просто упускаете возможности, верно? Вы теряете много денег, если, например, подходите к товарам таким образом. Надеюсь, это наглядно иллюстрирует обсуждаемую тему: ожидаемые значения есть ожидаемые значения, но важно понимать, какие сценарии действительно стоит рассматривать. И вот что делает стохастическая оптимизация. Она рассматривает различные потенциальные будущие и пытается найти компромиссное решение уже сегодня.
Таким образом, для решений, которые нужно принять уже сегодня, когда нельзя ждать, чтобы увидеть, каким будет будущее, она пытается найти хорошую отправную точку, чтобы вы могли действовать максимально эффективно, когда будущее раскроется. Это и есть стохастическая оптимизация, и, на мой взгляд, это то, что каждый человек делает каждый день. Потому что мы забываем об этом, как только начинаем использовать компьютер для подобных задач.
Конор Дохерти: Спасибо, Мейноф. Йоаннес, как это согласуется с вашим пониманием стохастической оптимизации?
Joannes Vermorel: Да, это тот случай, когда, как упоминал Майнольф, существует закономерность для солнцезащитного крема, который очень сезонен, но начало сезона варьируется от года к году в зависимости от погоды. Это классический пример. Существует множество продуктов, которые попадают в эту категорию. Другой пример продукта можно привести из розничной торговли – магазин для самостоятельного ремонта (DIY), где люди покупают сразу четыре или восемь единиц, потому что, например, это выключатели, и они не хотят, чтобы в их квартире было четыре или восемь выключателей, выглядящих по-разному. Поэтому при покупке они хотят получить четыре или восемь абсолютно одинаковых одновременно.
Если вы думаете, что наличие трех единиц на полке означает, что товар не закончится, это неверно. Потому что на самом деле человек заходит в магазин, говорит: “Мне нужно четыре”, а их оказывается только три, и он идет в другое место, где может найти четыре единицы, которые оказались одинаковыми. Таким образом, неравномерность спроса действительно имеет значение, и в таких случаях необходимо детально рассмотреть структуру этой непредсказуемости, а не полагаться на усреднение за длительный период.
И действительно, именно это интуитивно знает владелец магазина. Один выключатель бесполезен. Мне нужен или комплект полностью одинаковых выключателей, или вообще лучше их не иметь, ведь люди просто не станут обращать внимание на отдельный товар. Отдельный молоток – это нормально, так как люди не покупают четыре идентичных молотка, но с выключателями всё иначе. И это не высшая математика, если подумать.
Я думаю, вы абсолютно правы. Я наблюдал то же самое. Люди, особенно специалисты в области цепочек поставок, интуитивно это ощущают. Им не нужна сложная математика, но как только они переходят к enterprise software, внезапно оказывается, что скользящая средняя и немного экспоненциального сглаживания должны решить задачу. И они говорят: не волнуйтесь, если скользящая средняя не справляется, у нас есть ABC классы, чтобы всё уточнить. Но мне кажется, что это всё равно не помогает. И я согласен – существует разрыв, когда, попадая в сферу программного обеспечения, люди оставляют здравый смысл за дверью, считая, что машина решит всё, и поэтому всё кажется слишком сложным. Так что, разумеется, если они используют экспоненциальное сглаживание, то сам термин “экспоненциальное” намекает на то, что всё должно быть научно обоснованным и продвинутым, не так ли?
Meinolf Sellmann: Нам нравится разлагать задачи на составные части. Вот почему мне нравится термин «неровномерность», который вы упомянули. Он приятно не является техническим термином, который можно было бы использовать. Но он задевает даже кросс-продукт. Если вы управляете супермаркетом и повышаете цены на молоко, внезапно в ваш магазин приходит меньше людей, потому что они больше не получают свои базовые продукты. И вдруг каяки или что-либо другое, что вы сезонно продаете, также перестают продаваться, ведь поток покупателей резко снижается. Так что на самом деле вам нужно совместное апостериорное распределение, где вы прогнозируете потенциальные сценарии того, как всё будет протекать.
Conor Doherty: Это описание, особенно базовых товаров и их взаимосвязи, звучит удивительно похоже на корзинную перспективу, о которой мы говорим. Заходишь в магазин, возможно, хочешь купить молоток, но его нет – и ты уходишь. Заходишь снова, хочешь купить много всего, составить полный список покупок, а молока нет – ну, тогда идёшь в другое место, где можно купить молоко вместе со всем остальным. Таким образом, штраф за отсутствие молока не ограничивается потерей продажи самого молока – это влияет на всё. Ведь если бы молоко было, я бы купил и масло, и хлеб, и джем, и мороженое, и бекон, и многое другое. Но опять же, и это подводит нас к следующему вопросу, адресованному Майнольфу: чтобы защитить принцип доброй воли для тех, кто может не согласиться, скажу, что людям нравятся эвристики. Когда речь идёт о разложении задач, людям нравятся эвристические методы. Так что идея ABC-класса, экспоненциального сглаживания – это вещи, которые проще понять, своего рода правило большого пальца. Стохастическая оптимизация же, если быть честным, сложнее, не так ли?
Meinolf Sellmann: Ну, можно сказать, что раньше у нас не было инструментов, позволяющих аккуратно решать такие задачи для отдела, при этом сохраняя разделение между машинным обучением и оптимизацией. Не хочется переподготавливать всю команду, чтобы они могли выполнять эту работу. Так что до, не знаю, примерно пяти лет назад это было справедливо. Но с сегодняшними технологиями я бы не сказал, что для людей, которым предстоит внедрять эти решения, всё стало сложнее.
Conor Doherty: Ну, тогда следующий вопрос – и, опять же, я обращусь к Йоаннесу конкретно по этому вопросу, но также, когда речь зашла о точности, как точность, которая традиционно считается абсолютным показателем эффективности любого прогноза, вписывается в стохастическую оптимизацию? Или же это просто ещё одна эвристика, которая отпадает на второй план, когда мы переходим к принятию решений?
Meinolf Sellmann: Да, я имею в виду, если бы кто-то мог предсказать номера лотереи на следующую субботу, это было бы просто великолепно. Проблема в том, что вам приходится делать прогнозы, и они всегда сопряжены с неопределенностью. Вы не знаете всего о мире, чтобы предсказать, что произойдет. Так что, если вы управляете магазином и должны решить, какие блюда суши разместить, или работать с товарами с ограниченным сроком годности perishable, то ко всему применимо то, о чем ранее говорил Йоаннес, касательно перепродажи мест в самолётах. Если суши не раскупаются, их придется выбрасывать. А это означает, что все затраты на производство, транспортировку, ценообразование и размещение теряются, если товар не продается. Поэтому не хочется перепроизводить товары с относительно низкой маржой, если стоимость потерь велика в случае порчи.
Знаете ли вы, что могут быть такие пять молодых мам, которые решат: «Отлично, мы снова можем есть суши», устранят вечеринку и обстрелят ваш магазин? Нет, просто вы не можете знать, что они неожиданно придут и купят 40 порций суши. И вы никак не можете предвидеть такие вещи. Здесь есть неопределенность. Если бы у вас был идеальный прогноз, это было бы здорово. Но поскольку идеал недостижим, вы делаете следующее лучшее: пытаетесь узнать, как именно ошибаются ваши прогнозы. И это то, что мы называем совместным апостериорным распределением. То есть, мы говорим: «Ладно, если я размещу эти суши, означает ли это, что мой ожидаемый спрос равен, скажем, 50 порциям – в большинстве дней 50, иногда 48, иногда 42, хорошо? Или же 50 означает, что на самом деле может оказаться 25 или 75? Большая разница. Точность может быть одинаковой, ожидаемое значение – 50, верно? Но сценарии, которые нужно анализировать, и решения, вытекающие из этого, относительно того, что ставить на полку, совершенно разные. Поэтому точность может вводить в заблуждение. Было бы замечательно иметь 100% точность. Если это недостижимо, необходимо сделать следующее лучшее – прогнозировать и оценивать, насколько ваши прогнозы ошибаются».
Joannes Vermorel: Да, и чтобы вернуться к комментарию Майнольфа о сложности или ее восприятии, мой взгляд таков: очень часто, сталкиваясь с ситуацией, инстинктивно хочется сразу перейти к решению. Трудно даже осознать проблему, пока уже есть решение. Это весьма странно. По-картезиански должно быть так: сначала рассмотрим проблему, а потом найдём решение, но люди, в том числе и я сам, так не работают. Скорее, у меня уже есть набор возможных решений, и отталкиваясь от них, я восстанавливаю проблему, которую могу решить. Обычно всё происходит наоборот.
Итак, вы начинаете с решения или набора решений, которые готовы рассмотреть, а затем, исходя из этого, выбираете проблему, которую, как считаете, сможете решить. Ведь существует множество замечательных проблем, которые просто невозможно решить. Знаете, летающие автомобили – я не знаю, как создать антигравитационный двигатель, поэтому я даже не трачу время на размышления о лучшем дизайне летающего автомобиля, поскольку это настолько далекая от моих возможностей задача, что даже не стоит моего внимания.
Возвращаясь к теме, я считаю, что когда мы говорим об неопределенности в прогнозах и последующей работе с этой неопределенностью в оптимизации, это и есть стохастическая оптимизация. Думаю, что с точки зрения технологического прогресса, здесь важно то, что требуются определенные технологические компоненты, концепции, парадигмы и ещё несколько вещей. По своей сути они не настолько сложны, но если вы привыкли работать без них, представить их из ничего очень трудно. Фундаментально они не сложны, но очень необычны.
Сегодня люди воспринимают как должное, что могут связаться с кем-то с другого конца мира, и это само собой разумеется. Скажите об этом человеку 200 лет назад – и он подумает, что это полная магия. Идея о том, что можно так общаться, была просто немыслимой. Могут ли люди делать это сегодня? Да, вполне легко. Но опять-таки, они знают решение, поэтому думать о проблеме намного проще.
Возвращаясь к теме, я считаю, что проблема в том, что до тех пор, пока у вас нет решения, разобраться в проблеме крайне сложно. И если немного перейти к тому продукту, который вы разрабатываете в InsideOpt с Seeker, то если у вас есть лишь инструменты оптимизации, не работающие с неопределенностью, то все рассматриваемые задачи оптимизации, по сути, являются теми, где неопределенность каким-то образом исключена по условию вашего инструмента.
Это мое универсальное решение, поэтому мне нужна подходящая задача. И вот она. Именно в этом я вижу основную проблему – порой дело сводится к тому, чтобы создать осознание существования определенного класса решений, чтобы люди могли вообще задуматься о соответствующем классе проблем. Я понимаю, что это достаточно мета.
Conor Doherty: Ну, на самом деле, чтобы продолжить – это идеальный переход, пусть даже непреднамеренный, но я отдам вам должное. Когда вы говорите о принципах, начиная с проблемы, а затем переходя к решению, в одной из ваших лекций вы упоминали проблему обжарочной кофе. Не могли бы вы кратко описать её? Потому что это очень наглядный и приятный пример. Определите, в чем заключается проблема, а затем объясните, как мы могли бы решить её стохастически, или как с помощью стохастической оптимизации можно решить эту проблему.
Meinolf Sellmann: Это на самом деле очень классическая задача в оптимизации. Она называется планированием производства. Если вы когда-либо проходили курс по стандартным методам, о которых только что говорилось, универсальному решению для всего в оптимизации – то есть по смешанному целочисленному программированию, – то, вероятно, сталкивались с примером планирования производства.
Итак, что такое планирование производства? У вас есть ограниченные ресурсы для изготовления продуктов, которые вы хотите производить, и вы получаете ожидаемую прибыль за каждую единицу каждого продукта. Но эти продукты используют общие производственные мощности. Например, машины, способные выпускать несколько разных продуктов, линия упаковки, обжарщики в случае кофе – иногда они используют одни и те же ингредиенты. Разные виды кофе могут использовать один и тот же сорт зерен. Обычно это смесь различных сортов.
Таким образом, вопрос становится: что именно я буду производить на каких производственных мощностях и в какое время? Это необходимо делать ежедневно для производства кофе. Должен быть кто-то, кто скажет: давайте обжарим эти сырые зерна здесь, давайте сохраним их в том силосе там, потому что их нельзя использовать сразу. Им нужно остыть перед упаковкой.
А затем вы их снова достаете. Вам также нужно решить, когда извлекать продукт из какого силоса, а потом переместить его на линии упаковки, которые обладают ограниченными возможностями. Пока всё идет хорошо.
Если бы вы точно знали, сколько времени занимает обжарка кофе, жизнь была бы намного проще. Точно так же, если бы вы знали, сколько времени требуется, чтобы зерна остудились, всё было бы проще. Проблема в том, что у вас есть лишь приблизительные оценки для обоих процессов. Так что, в зависимости от того, насколько сухие зерна поступают в обжарочную фабрику, обжарка может занимать меньше или больше времени, чтобы достичь идеала. И, конечно, это все нарушает процесс, ведь вы не можете просто оставить обжарщик без присмотра.
Если вы обжариваете что-либо менее 10 минут, вам приходится его выключать, а после выключения требуется полчаса, чтобы вернуть оборудование в рабочее состояние. И вот вы внезапно сталкиваетесь с нелинейностями: обжарщик сам выключился, и теперь вам придётся гадать, как обжаривать в течение следующих получаса.
Теперь вы можете подумать: а что плохого, если я начну обжаривать следующий продукт раньше? Но проблема в том, что вы не знаете, куда поместить этот продукт, ведь силосы заполнены, а линия упаковки не справляется. Чтобы освободить место для следующего продукта из обжарщика, нужно освободить соответствующую производственную мощность, что создает нагрузку на другую часть системы.
И вот вы сидите и вам нужно придумать план. То есть, вы обнаруживаете, что обжарщики просто простаивают какое-то время, потому что не знают, где хранить готовый, но неупакованный продукт. И, конечно, это наносит огромный удар по операционным расходам такого бизнеса.
Joannes Vermorel: Я думаю, это отражает тот факт, что нужно опасаться упрощенной моделизации. Детализация в бизнесе на очень высоком уровне, и это требует ещё одного аспекта. Большинство моделей, опубликованных в литературе, и того, что преподаётся на курсах, дают вам прямое, более или менее сложное решение для достаточно хорошо структурированной задачи.
Итак, у вас есть проблема с приятной структурой, нечто такое, что, благодаря опыту преподавания в университете, вы не хотите тратить два часа только на то, чтобы записывать все переменные. Поэтому вы представляете проблему так, чтобы в ней было максимум 10 переменных и чтобы вы не тратили два часа на представление всех факторов проблемы. То есть вам нужно нечто, что можно описать максимум 10 переменными, максимум тремя уравнениями, и с этим можно закончить работу и двигаться дальше.
Это вводит в заблуждение, ведь реальность наполнена множеством деталей, и что же это оставляет вам? Оно оставляет вам ситуацию, когда получение готового решения, модели, оказывается практически бесполезным. Это недостаточно, потому что, во-первых, вы никогда не знаете точно, какова ваша ситуация. Вы пытаетесь её смоделировать, затем обнаруживаете нечто и пересматриваете свою модель.
А может быть, вы скажете: «Ладно, это слишком сложно для моделирования, я сдаюсь». Но мне нужно заново ввести ту переменную, которую я ранее игнорировал, потому что на самом деле было ошибкой её игнорировать. Она действительно влияет на мою операционную деятельность. Итак, модель сама по себе, опять же, если смотреть с типичной академической точки зрения, считается заданной. Будут доказательства, канонические формы и тому подобное.
Именно это вы получаете с помощью смешанного целочисленного программирования, где существует ряд задач, которые можно легко решить с помощью канонических форм и тому подобного. Но реальность такова, что когда вы имеете дело с реальной цепочкой поставок, вы сталкиваетесь с постоянно меняющейся проблемой, и вы учитесь, применяя инструмент, каким бы он ни был, к задаче и пересматривая его.
И вдруг вы осознаёте, что важно иметь нечто более абстрактное, что позволяет вам быстро и эффективно переключаться от одного экземпляра проблемы к другому и продолжать работу. Это означает множество вещей. Оно должно быть вычислительно быстрым, универсальным, чтобы можно было выразить всевозможные разнообразные решения. Оно должно быть достаточно удобным для интеграции с остальной частью вашего прикладного ландшафта.
То есть, оно связано со множеством дополнительных соображений, которые, если посмотреть на типичную литературу по математической оптимизации, даже не упоминаются. Вы можете перечитать книгу от первой до последней страницы, и ни разу не услышите обсуждения вроде: «Кстати, этот метод супер медленный, непрактичный» или «этот подход настолько жесткий, что при малейшем пересмотре модели его придется полностью отбросить и начать заново».
Или «этот подход настолько подвержен ошибкам, что, да, теоретически вы могли бы поступить так, если вы вроде NASA и у вас есть суперинтеллектуальные инженеры и десятилетие на решение проблемы. Но на практике, если вам спешить, это никогда не сработает.» Так что существует масса мета-вопросов, которые крайне важны. И опять же, я считаю, что это может быть связано с тем, чем вы занимаетесь с Seeker и с тем, как вы вообще рассматриваете этот класс проблем.
Meinolf Sellman: Да. И я имею в виду, если вспомнить то, о чём вы говорили ранее, что мы всегда ищем «серебряную пулю», верно? Так что ты абсолютно прав, Joannes, что когда люди моделируют бизнес, и, вероятно, именно этим интересуется аудитория, речь идет о том, как достичь лучших, более ощутимых результатов для бизнеса.
Вы, в определенной степени, вынуждены прибегать к приближению реальной жизни в компьютере и её имитации, верно? То есть, так или иначе, можно рассматривать любую оптимизационную модель как симуляцию «что, если я сделаю это?», а затем вы вычисляете, что произойдет, верно? И остается вопрос: можно ли выполнить план, то есть назвать его допустимым (feasible) в терминологии оптимизации?
То есть, соблюдаются ли все дополнительные ограничения? Это выполнимо. Но во-вторых, насколько оно на самом деле эффективно, верно? Объективная функция, то есть KPI, который мы пытаемся оптимизировать, служит мерилом. Если бы вы знали заранее, то результат был бы лучше. Но суть в том, что если у вас есть только молоток, то рано или поздно вы окажетесь прибивая гвозди на окнах, чтобы повесить шторы.
И это очень, очень плохая идея. Именно этим занимаются специалисты по MIP, когда имеют дело с такими задачами, как цепочка поставок и оптимизация в условиях неопределенности в целом. Потому что они используют инструмент, разработанный для детерминированной оптимизации, и для этой цели он абсолютно великолепен. Но он заставляет вас делать приближения как с точки зрения детерминизма по сравнению с недетерминизмом или, точнее, неопределенностью, поскольку недетерминизм здесь имеет иное значение.
При линеаризации всего, в бизнесе существует так много нелинейных взаимосвязей. И тогда возникает вопрос: можно ли как-то это аппроксимировать? Можно ли подобрать кусочно-линейную функцию, соответствующую вашей нелинейной функции? Можно ли бинаризовать данные? Вот в чем дело.
Теперь, чтобы сделать это более осязаемым для аудитории, если вы управляете бизнесом, скажем, вы являетесь генеральным директором компании, конечно, вы можете просто обратиться в Lokad с заявлением: «Эй, мы купим это у вас», и они обо всем позаботятся. Но если у вас есть другая компания, которая занимается этим за вас, или собственный отдел, что же вам нужно сделать, чтобы улучшить операционную деятельность?
Теперь вас может заинтересовать, и вы подумаете: «О, есть целый другой аспект, и, знаете, снижение операционных расходов на 20% звучит потрясающе. Как мне этого добиться?» Первое, что необходимо сделать, — спросить: «Каков наш процесс? Это процесс прогнозирования и оптимизации?» Но затем во-вторых: «Какие допущения мы сделали при моделировании реальной системы, с которой сталкиваемся? Где мы применили аппроксимацию?»
Итак, чтобы проверить, в чем расхождение, вам следует сказать: «Ладно, ваша оптимизационная модель имела целевую функцию. Она предполагала, что я отдаю предпочтение этому решению перед другим, потому что моя целевая функция, призванная аппроксимировать реальный KPI, лучше для этого решения, чем для другого. А теперь скажите, каков мой ожидаемый KPI для оптимального решения?»
А затем отслеживайте это, сравнивайте с фактическими решениями и результатами, которые вы действительно получаете в своей системе. То есть, если вы минимизируете затраты, отслеживайте их, и обращайте внимание на разницу между тем, что предполагал MIP, и тем, какими затраты оказались на самом деле. Или, если вы максимизируете прибыль, — отслеживайте и это. Но суть в том, что нужно отслеживать разницу между тем, что использовалось при принятии решения, и тем, что затем реально происходит.
И существует два источника такого расхождения. Первый: вас вынудили вписать вашу систему в рамки модели, которая оказалась слишком ограниченной. Это плохо. Второй: вы совершенно проигнорировали тот факт, что существует неопределенность, и отсюда возникает разница. Если вы видите расхождение более чем на 5%, вам стоит обратиться к одному из нас.
Joannes Vermorel: И я бы добавил к вашему рецепту — и я согласен с описанным процессом — что я обычно рекомендую сделать даже до начала этого процесса. То есть, ещё на самом начальном этапе, потому что проблема не только в неправильных инструментах, но, скажем так, ещё раньше возникает проблема неверных концепций, неправильных идей.
Приведу пример: понятие допустимости (feasibility), которое встречается в классической литературе по оптимизации. Люди говорят: «О, существует решение, которое является допустимым или недопустимым». Хорошо, давайте рассмотрим конкретный пример. Является ли это действительно чёрно-белым?
Например, мы находимся на складе и регулярно передаем заказы поставщикам. У склада есть ограниченная возможность по приему товаров. То есть в любой день, скажем, он может принять максимум 1000 единиц. Если превышается этот лимит, принять товар уже невозможно. И вещи просто накапливаются у склада, потому что люди не могут занести коробки вовнутрь и так далее.
Проблема в том, что, допустим, вы размещаете заказы на покупку у зарубежных поставщиков. Вы не можете точно контролировать даты поставки. Вы знаете, что при правильной организации, в среднем, вы укладываетесь в ограничения. Но все же, вам может не повезти: один заказ задерживается, другой приходит немного раньше, и затем, в один понедельник, вы получаете 2000 единиц в один день. Но эти заказы были размещены за месяц до этого.
Таким образом, здесь вы видите, что это решение, при котором на каждое принятое вами решение существует вероятность оказаться в недопустимой ситуации. Это не полностью зависит от вас. Опять же, это именно тот случай, когда, как я говорю, использование неправильных концепций опасно, потому что, анализируя ситуацию с устаревшими или слишком жесткими концепциями, вы даже не можете настроиться на то, чтобы увидеть, что может дать вам лучший инструмент.
Так что вы застряли в рамках допустимо/недопустимо. Как только вы понимаете, что допустимость не полностью зависит от вас — ведь, очевидно, есть факторы, которые могут конфликтовать. Если вы размещаете заказы у поставщиков из одного района, в один и тот же день, в одинаковых количествах, через одни и те же порты и так далее, вероятность того, что всё прибудет в один и тот же день, довольно высока. Поэтому вы распределяете поставки, но даже там присутствует своего рода риск.
И это происходит во многих, многих случаях. Вот пример. Здесь мы видим, что то, что считалось само собой разумеющимся — допустимость, допустимое или недопустимое решение — на самом деле не так однозначно. Это понятие немного искажено.
Другой подход — это service level. Люди думают о нем в терминах уровня сервиса, да, но действительно ли это то, как люди воспринимают ситуацию? Обычно я начинаю обсуждать качество обслуживания. А качество обслуживания может включать возможность взаимозамещения (cannibalization) или даже готовность людей откладывать свои решения.
И вдруг мы сталкиваемся с чем-то совершенно иным. И когда вы сразу переходите к проблеме с концепциями, полученными из мира, где неопределенность не существует, где ваш оптимизатор всегда классический, то есть не стохастический, мне кажется, что предложенный вами путь скорее всего покажется непонятным. Именно поэтому я обычно советую своим потенциальным клиентам сделать паузу, провести брифинг и начать смотреть на мир под другими углами, уделить время тому, чтобы всерьез задуматься об этих вещах с учетом интуиции, прежде чем погружаться в технические детали, которые могут оказаться слишком отвлекающими, поскольку они немного сложны, плюс это программное обеспечение, плюс немного математики и так далее. И это может стать огромным отвлекающим фактором, особенно если у вас есть конкурирующие поставщики, которые закидывают кучу всякой ерунды вроде: «О, вы хотите сделать всё это? Знаете что, у меня для вас ответ — LLMs. И знаете, что, у вас была неопределенность, но у нас есть LLMs, большие языковые модели. Вы не поверите, насколько они хороши в прогнозировании. А оптимизация с использованием LLMs — это просто великолепно.»
Не так ли? Очевидно, когда люди думают: «Ладно, я просто…», — ведь, по крайней мере, в Lokad, когда мы говорим с потенциальными клиентами, проблема в том, что мы никогда не общаемся только с одним клиентом. Присутствуют еще полдюжины других поставщиков, которые тоже предлагают свои решения, и часто они забрасывают кучу ерунды. В результате клиенты просто перегружены всеми этими блестящими новинками и невероятными заявками.
Conor Doherty: Мне кажется, что вы оба фактически только что набросали один из ключевых вопросов, почему людям сложно принять стохастическую оптимизацию и любую другую технологию «черного ящика». Это может быть будь то вероятностное прогнозирование или что-то, связанное с математикой — проблема в том, что для этого существует определенный порог входа. И, Meinolf, возвращаясь к вам, исходя из вашего опыта, как вы пытаетесь, раз вы так хорошо обучаете, сделать так, чтобы люди чувствовали себя комфортно, принимая ту неопределенность, о которой мы говорили час?
Meinolf Sellman: Сейчас может возникнуть когнитивный разрыв с аудиторией, когда они думают: «Ладно, вы сказали нам, что авиакомпании теряют все в день выполнения операций, но, почему, по какой-то причине, они уже десятилетиями используют эту технологию? Почему же они не используют то, о чем говорят Lokad и InsideOpt?» И причина именно в том, на что вы намекаете.
Если бы вы хотели использовать стохастическую оптимизацию для, скажем, авиакомпании, размер задачи увеличился бы до такой степени, что её просто нельзя было бы решить. Люди, работающие в авиационной отрасли и занимающиеся оптимизацией, достаточно опытны, и, конечно, они знают о стохастической оптимизации и классическом подходе, но всегда использовали MIP.
Я не хочу углубляться в технические детали, но, по сути, когда вы ищете что-то, существует два подхода. Один из них: «О, я нашёл что-то, что уже хорошо. Давайте посмотрим, смогу ли я это улучшить». Второй: «Я никогда не найду здесь ничего стоящего». MIP работает так: «О, мне не нужно искать здесь, этого там быть не может», а затем ищет в другом месте.
Теперь, если ваше пространство поиска огромное и если всё то, что говорит вам: «Не ищите здесь», работает не слишком хорошо — то есть, как бы, не выглядит так, что здесь точно ничего нет, но и не удаётся исключить возможности — тогда вы продолжаете искать повсюду, и становится гораздо эффективнее искать там, где уже наблюдаются приятные результаты, так сказать.
Так что, если вы пытаетесь применять стохастическую оптимизацию с использованием смешанного целочисленного программирования, которое работает следующим образом: вы говорите: «О, я знаю, что здесь ничего быть не может», то ваши так называемые двойные границы никогда не будут достаточно хороши, чтобы сократить базу поиска до того уровня, на котором вы сможете реально провести поиск. И вот тут люди застряли на протяжении 20-25 лет.
И вот теперь существует новый способ ведения дел, который по сути является поиском на основе ИИ, который говорит: «Смотрите, меня не волнует, достигну ли я какой-либо гарантии качества для моего решения, но я уверяю вас, что потрачу всё своё время, пытаясь найти наилучшее решение, которое только смогу за отведённое время». Это очень прагматичный и практичный подход, который теперь существует.
В рамках этого подхода вы внезапно освобождаетесь от всех остальных оков, с которыми приходилось иметь дело ранее, таких как необходимость линеаризовать и бинаризовать всё. Всё это исчезает. Вы можете проводить недифференцируемую, нековыпуклую оптимизацию с помощью такого инструмента, как InsideOpt Seeker, и моделирование этих задач теперь на самом деле не представляет такой проблемы.
Кроме того, вы получаете ещё несколько преимуществ, таких как параллелизация смешанного целочисленного программирования. Подход «разделяй и властвуй» здесь чрезвычайно труден в реализации. Ускорение, которое вы получаете, ограничено. Вам повезёт, если вы добьётесь пятикратного ускорения на достаточно большой машине. Этот поиск на основе ИИ действительно выигрывает от задействования 40–100 ядер.
Итак, вместе с развитием аппаратного обеспечения, это может оказаться наилучшей технологией для использования. Но в конечном счёте, используя иной способ поиска в этих обширных пространствах, вы позволяете пользователям гораздо комфортнее моделировать реальную систему, а не какую-то её грубую аппроксимацию.
А одновременно решать задачи многокритериальной оптимизации. Редко имеет значение только один ключевой показатель эффективности — их несколько. Решать задачи вроде: «О, я в основном хочу, чтобы здесь соблюдалось это правило, но если время от времени его нарушают, ничего страшного». То есть, допускается ситуация, когда данное требование не выполняется. Это можно смоделировать очень легко.
И, конечно, можно проводить стохастическую оптимизацию не только в смысле оптимизации ожидаемой прибыли, но даже активно оптимизировать, ограничивать и минимизировать риск, связанный с вашими решениями. И это и есть смена парадигмы. Именно это, по моему мнению, движет Lokad и InsideOpt, чтобы сказать: «Смотрите, существует совершенно новая парадигма, которой мы можем следовать, позволяющая нам делать всё то, что было неслыханно последние три десятилетия».
Конор Дохерти: Йоаннес, тот же вопрос.
Йоаннес Верморель: Спасибо. Да, и я хотел бы также отметить, что в начале 2000-х, когда я начал свой PhD, который так и не завершил, оказалось, что убеждения сообществ машинного обучения и оптимизации относительно фундаментальных проблем оптимизации были совершенно ошибочными.
Когда я был в аспирантуре, считалось, что существует проклятие размерности. Если у вас сверхвысокомерная задача, её нельзя оптимизировать. А теперь, с моделями глубокого обучения, мы имеем дело с моделями, содержащими миллиарды или даже триллионы параметров. Так что, по всей видимости, да, мы можем оптимизировать задачи, без проблем.
Затем считали, что если задача не выпуклая, с ней ничего не получится. Оказывается, что нет, на самом деле можно сделать многое, даже если она не выпуклая. И действительно, у нас нет никаких доказательств, но если у вас есть нечто, что по другим критериям оказывается достаточно хорошим и полезным, вовсе не важно, что вы не можете доказать его оптимальность, пока существуют иные способы аргументировать решение, и вы можете сказать: «Я не могу доказать оптимальность, но всё же могу утверждать, что это отличное решение, даже если у меня нет математического доказательства».
И был тот период, когда, занимаясь стохастической оптимизацией, люди говорили: «О, это именно то, о чём вы упоминали насчёт увеличения размерности. Допустим, вы собираетесь расписать тысячу сценариев и объединить их в одну задачу, которую нужно оптимизировать сразу».
Это всего лишь макрорасширение. Вы берёте свою задачу, макрорасширяете её до тысячи экземпляров, и в итоге получаете задачу, в тысячу раз большую. А затем вы говорите: «Ладно, теперь я снова с нуля. Я могу просто оптимизировать это». Но делая так, с использованием старых парадигм «разделяй и властвуй» вы уже сталкиваетесь с ужасной масштабируемостью.
Таким образом, если на первом шаге вы макрорасширяете свою задачу в 1000 раз, это будет абсолютно драматично медленно. И, как мне кажется, то, что особенно удивило сообщество глубокого обучения, так это невероятная эффективность стохастического градиентного спуска, когда вы просто наблюдаете ситуации и немного корректируете параметры при каждом наблюдении.
И было множество озарений. И интересный факт, который я заметил за последние два десятилетия, заключается в том, что машинное обучение и оптимизация развивались бок о бок, в основном разрушая прежние убеждения. Это был очень интересный процесс.
Большинство прорывов в глубоком обучении было достигнуто благодаря лучшим инструментам оптимизации, более эффективному использованию линейной алгебры и GPU, специальному компьютерному оборудованию и математической оптимизации. Всё чаще применяются методы машинного обучения, когда вы не хотите искать случайным образом.
Есть случаи, когда вы говорите: «Ну, эти вещи здесь, я ничего не могу доказать, но выглядит это ужасно». То есть, если всё выглядит явно плохо, этот весь район воспринимается как отвратительный, и вам нужно поискать что-то в другом месте. А также и другие соображения, вроде: «Я уже провёл столько времени, исследуя эту область, так что даже если она в целом хороша, я уже слишком много там потерял времени, и, возможно, мне стоит поискать что-то другое».
Итак, это своего рода техника оптимизации, но, можно сказать, она сильно ориентирована на машинное обучение в подходе. И, по моему мнению, возможно, через 20 лет появится такая область, где объединятся оба понятия — оптимизация с применением машинного обучения, и их уже не будут различать.
Это одно из направлений, которое я отслеживал на протяжении двух десятилетий, и с каждым годом я наблюдаю их постепенное сближение. И это очень интригующе, потому что, как мне кажется, до сих пор отсутствуют некоторые ключевые концепции.
Мейнольф Селлман: Да, и я хотел бы заострить внимание на одном из сказанного вами. Машинное обучение великолепно, когда у вас повторяющиеся игры. Это как считывание карт в блэкджеке. Вы не можете гарантировать победу, ведь прогноз всё равно может оказаться ошибочным, но если вы играете эту игру неоднократно, вы внезапно получаете значительное преимущество.
Именно поэтому я говорил ранее: «Смотрите, отслеживайте ваши операционные результаты, прибыль, затраты или что угодно, чем вы занимаетесь в течение некоторого времени». Потому что в любой отдельный день решение, которое вы применяете, может оказаться неверным. Это немного похоже на ситуацию, когда кто-то говорит: «Я брошу этот кубик, и если выпадет четыре, вы проигрываете и должны заплатить мне доллар за игру. А если выпадет что-нибудь, кроме четверки, я дам вам миллион долларов». И вы отдаёте доллар, бросаете кубик, и оказывается, что выпала четвёрка. Но это всё равно было правильным решением, не так ли? Потому что если вы играете эту игру неоднократно, принимая эту стратегию, поскольку ожидаемое значение, конечно, настолько высоко, а возможный убыток приемлем, вы внезапно получаете реальное преимущество. И именно такова суть игры при использовании машинного обучения в оптимизации. Это именно та парадигма поиска на основе ИИ. Мы называем её гиперреактивным поиском. Я не знаю, как вы это называете в Lokad, но идея именно такая, верно?
Могу ли я сказать, что для ваших задач именно это и движет InsideOpt Seeker? Это то, что решатель сделает за вас, как только вы определите свою модель и задачи, которые решаете. А теперь каждый день у вас возникают операционные проблемы, в которых нужно принимать решения. Что мне сегодня жарить и где? Сколько запасов я перенесу сегодня и куда? И у вас есть такие задачи, требующие решения на протяжении многих недель и рабочих дней.
Затем вы обращаетесь к решателю с вопросом: «Посмотрите, какие стратегии вы используете для поиска в этом пространстве. Могли бы вы найти лучшие решения, если бы искали иначе?» И он будет учитывать именно такие показатели времени выполнения, как тот, который вы упомянули, Йоаннес: «О, как давно я искал в другом месте?» Таким образом, кажется, что я тщательно исследовал всю эту область. Посмотрим, смогу ли я сделать что-то другое.
И подобные ему, верно? И эти показатели времени выполнения затем влияют на другие решения, такие как: сколько изменений я готов внести одновременно? Стоит ли мне действительно проводить исследование? Если я совсем недавно вошёл в определённое пространство поиска, возможно, будет очень разумно действовать довольно жадно, то есть сказать: «Эй, любое улучшение, которое появляется, я сразу принимаю, чтобы найти хорошее решение в этом пространстве».
Но затем, спустя некоторое время, проведя там достаточно долго, вы понимаете: «Мне нужно расширить горизонты, потому что я, возможно, застрял на локально оптимальном решении, хотя глобально можно было бы значительно лучше настроить другие переменные, и в итоге добиться лучшего результата». И это и есть смена парадигмы прямо сейчас, не так ли? То есть, от подхода «Можете ли вы быстро обнаружить, что здесь ничего нет?» к «Могу ли я научиться искать лучше?» — и вот в этом заключается революция.
Йоаннес Верморель: Касательно поиска на основе ИИ. Да, абсолютно. И, особенно учитывая те задачи, которые решает Lokad для наших клиентов, большинство цепочек поставок можно достаточно широко решать жадным методом — пусть и не до конца, но достаточно широко. И этому есть определённые дарвиновские причины. Если бы в цепочках поставок были ситуации, которые действительно, я бы сказал, противоречат жадному подходу, они уже были бы устранены, ведь у бизнеса не было роскоши иметь ультрасовременные инструменты оптимизации.
Таким образом, это было необходимо, и очень часто это буквально являлось дизайнерским соображением: «Смогу ли я настроить свою цепочку поставок и процессы так, чтобы двигаться в правильном направлении и при этом оставаться в безопасности?» Это был типичный ориентир на уровне проектирования. И действительно, когда вы переходите к мелким деталям, понимаете, что, да, можно застрять в некоторых неудачных местах, даже если в глобальном плане направление правильное.
Обычно, да, Lokad в значительной степени полагается на жадный подход, даже используя градиенты, когда они доступны. А затем, действительно, проводят локальную оптимизацию, когда переходят к финальной фазе, где нужно совершить микровыравнивание и, возможно, сделать систему немного более устойчивой. То есть, если вы можете внести небольшие изменения, которые почти ничего не стоят, но дают гораздо больше свободы в операциях, это помогает сделать дело более конкретным для аудитории.
Предположим, вы управляете складом. Вы думаете, что вероятность того, что у вас закончится упаковочный картон для отправки товаров, составляет примерно 0,1%. Это может показаться низкой, но, с другой стороны, закрыть склад раз в несколько лет только из-за нехватки очень дешёвого картона кажется абсурдным. Поэтому вы скажете: «Ладно, это так мало, что давайте заведём запас картона на пару месяцев».
Поскольку картон сложен, он почти не занимает места и стоит супердёшево. Вот именно в таких случаях небольшая дополнительная оптимизация приводит к тому, что люди говорят: «О, у нас срок поставки для этого картона составляет три дня. А запас уже на месяц». Люди скажут: «О, этого достаточно, нам не нужно больше». А затем вы проводите моделирование и говорите: «Знаете что? Риск в 0,1% всё ещё присутствует. Это довольно неразумно. Следовало бы иметь запас примерно на три месяца».
И сказать: «Ладно, он очень дешёвый, но всё же кажется слишком большим запасом». А затем сказать: «Ведь он супер дёшёв, не занимает много места. Зачем же рисковать?» Знаете, это моменты, которые кажутся немного противоинтуитивными, когда вы осознаёте, что такое событие происходит раз в несколько лет. Но потом множество подобных мелких событий складываются вместе.
Именно поэтому наличие качественной оптимизации, позволяющей учесть редкие ситуации, которые для человеческого восприятия кажутся событиями из другой жизни, имеет значение. Люди часто меняются; они редко работают на одной должности два десятилетия. Поэтому событие, происходящее раз в три года, менеджер склада может никогда не увидеть. Большинство сотрудников даже не помнят, что сталкивались с этим.
Таким образом, существует предел того, что можно воспринять, когда событие происходит ниже порога восприятия, поскольку оно слишком редкое. И все же оно критично. Существует столько различных моментов, что если сложить их вместе, получится: сначала 0,1%, плюс ещё что-то, равное нулю, плюс ещё кое-что. И если сложить десятки и десятки таких моментов, то в конечном итоге каждый месяц появляется одна из проблем, которую можно было бы предотвратить, если бы вы действительно учитывали риск.
Но это немного противоинтуитивно, потому что это требует дополнительных затрат в разных областях. Почему дополнительные? Потому что, хоть такие случаи и редки, почти наверняка вы столкнётесь с проблемой, если не предпримете мер.
Мейнольф Селлман: Да, и именно в эту ловушку вы попадаете, когда у вас есть доказуемо оптимальное решение. Звучит так: «Ладно, смотрите, это моё доказуемо оптимальное решение, и у меня хорошие прогнозы». Но если прогнозы окажутся немного ошибочными, то это доказуемо оптимальное решение, поскольку оно выжало из задачи последний цент, становится чрезвычайно хрупким. И как слева, так и справа от этого прогноза эффективность резко падает и оказывается отвратительной.
И вы хотите иметь технологию, которая позволит вам сказать: «Смотрите, да, ваша ожидаемая прибыль меньше на 80 центов, но теперь риск вынужденного закрытия склада снижается на 75%. Выгодная сделка, правда?» Это действительно выгодная сделка. И именно такие компромиссные решения вы хотите, чтобы технология помогла вам найти, ведь очень сложно сказать: «Ладно, давайте ограничим одно и оптимизируем другое», потому что тогда вы натыкаетесь на другую ловушку компромисс.
Вы хотите иметь возможность сказать: “Слушайте, у меня есть все эти опасения. Попробуйте найти хороший компромисс. Найдите мне самую дешевую страховку от того или иного события.” И это, знаете, каким-то образом замыкает круг того, с чего мы начали, обсуждая, как трудно может быть полностью понять процесс принятия решений и неопределенность.
Но по сути это именно то, что происходит. Существует заблуждение, что если у вас есть решение, оптимальное для одного предсказанного будущего, оно, вероятно, также будет работать достаточно хорошо для будущих сценариев, которые немного отклоняются от него. И это просто неверно. Вам нужно активно искать отличный компромиссный операционный план, который будет работать для значительной массы возможных будущих сценариев, и вы хотите, чтобы он действительно уравновешивал ваш риск и ожидаемую прибыль разумным образом.
Конор Дохерти: Исправьте меня, если я не прав, но конечная цель стохастической оптимизации заключается, я полагаю, в нахождении оптимального компромисса или оптимального решения, которое балансирует все ограничения и все компромиссы, которые вам приходится принимать. И это не идеальное решение, но это был бы лучший компромисс для удовлетворения всех требований или отдельных проблем, верно?
Мейноф Селлман: Верно. Мы могли бы сделать это математически, но я не хочу уводить людей по этому пути. Суть в следующем: если бы вы знали точно, что произойдет, то зачастую существовало бы лучшее решение, которое можно было бы применить. Но в отсутствии идеального знания будущего, а я имею в виду идеально, а не, скажем, на 99.9% идеально, вам нужно использовать компромисс, который по сути хорош для всех возможных вариантов.
Именно это делает для вас стохастическая оптимизация. Тем самым она устраняет хрупкость. Мы могли бы назвать это робастной оптимизацией, но этот термин слишком технический, поэтому мы не можем его использовать. Но именно это имеется в виду, верно? Вы хотите устранить ранимость, вы хотите избавиться от хрупкости в ваших операциях, чтобы получать очень надежные, стабильные и повторяющиеся результаты. Вот что даст вам стохастическая оптимизация. И в то же время ваша ожидаемая прибыль фактически вырастет за пределы того, что вы считали возможным.
Потому что если ориентироваться только на производительность при кросс-валидации и доказанную оптимальность, вы полностью упускаете суть. Существует то, что вы считаете стоимостью незнания будущего идеально, это стоимость предположения в оптимизации, стоимость предположения, что вы знали будущее идеально. Именно это делает систему уязвимой — вы предполагаете, что прогноз был точен на 100%. Так работает традиционная оптимизационная технология, и вам нужно от нее отказаться и начать работать с современными технологиями, чтобы сократить операционные затраты на легкие 20%.
Конор Дохерти: Ну, спасибо. Думаю, мы уже немного заканчиваем. Йоаннес, я дам тебе последний комментарий, а затем передам слово Мейнофу для заключения. Есть что добавить?
Йоаннес Верморель: То есть, да, самое интересное в том, как выглядит лучшая цепочка поставок, а также в тех решениях с учетом риска, что компания работает плавно и стабильно, когда не принимается какое-либо абсолютно критическое катастрофическое решение, которое просто, знаете, все бы разрушило.
И вот почему многие ожидают, что самый блестящий план по организации цепочки поставок заключается в том, чтобы выявить один продукт, который полностью игнорируется рынком, и сказать: “Знаете что, мы должны полностью сконцентрироваться на этом супернишевом продукте”, и в мгновение ока продать миллион единиц, пока никто даже не обращает внимания. Я называю это магией. Может быть, есть такие предприниматели, как Стив Джобс, которые могут это сделать, но это почти невозможно.
Таким образом, идея о том, что можно схватить будущее, выявить “золотую жилу”, возможность, похожую на биткойн, и полностью на нее поставить, чтобы разбогатеть, выглядит абсурдной. На мой взгляд, отличное управление цепочкой поставок означает стабильную, плавную работу. Вы принимаете решения с учетом риска, так что когда дела идут плохо, они идут лишь умеренно плохо. Когда дела идут хорошо, чаще всего они идут очень хорошо, поэтому бизнес стабильно прибыльный. И даже когда дела ухудшаются, это не катастрофично.
И когда вы пересматриваете принятое решение, вы оглядываетесь назад и думаете: “Да, если бы я знал, я бы поступил иначе”. Но если честно проанализировать ситуацию с учетом того, что вы знали в тот момент, то понимаете: да, это было вполне разумное решение на то время. Не позволяйте ретроспективе исказить ваше суждение об этом, потому что это может быть очень навязчиво.
И, кстати, я знаю, что некоторые из наших клиентов — сейчас они так не делают, но, например, в авиационной отрасли, после каждого случая AOG (самолет на земле) — когда отсутствует определенная деталь и самолет не может летать — проводилось полное посмертное расследование. Но реальность такова: когда у вас около 300 000 наименований, которые нужно держать на складе, чтобы самолеты всегда могли летать, отсутствие деталей в наличии, особенно если некоторые компоненты стоят полмиллиона долларов и выше за единицу, допустимо, чтобы они не были всегда под рукой.
Таким образом, мы обнаружили, что, например, для этих случаев AOG все происходило именно так, как и ожидалось согласно структуре риска их запасов. Поэтому нет смысла проводить какое-либо расследование. И мое итоговое наблюдение таково: наверное, самой сложной маркетинговой точкой для стохастической оптимизации является ее довольно скромный внешний вид. Это не что-то блестящее, это просто что-то, что работает плавно. Проблемы намного менее серьезны, успехи не столь экстраординарны, но случаются намного чаще.
Но опять же, что вы помните? Помните ли вы футбольную команду, которая последние 30 лет стабильно выигрывала 60–70% матчей? Или вы помните ту команду, которая обычно проигрывала все матчи, но вдруг выиграла 10 подряд у самых престижных команд? Очевидно, что вы запомнили бы этот совершенно экстремальный период успехов и сказали: “О, это было невероятно”, и полностью забыли бы о скромном треке, где в среднем все было хорошо, но это всего лишь средний показатель, который быстро забывается.
Видите, вот какое у меня впечатление. И я думаю, что часть этого заключается в том, что от стохастической оптимизации вы получите мягкие, не впечатляющие решения, которые в среднем оказываются довольно хорошими. Когда они плохие, они немного плохие, ничего критичного — вы не потеряете все. Здесь происходит активное управление ущербом.
И вот забавно, что у нас в Lokad, когда мы общаемся с нашими клиентами, часто, спустя несколько лет работы в продакшене, у них практически нет замечаний. Знаете, лучший, точнее не худший, а именно комплимент бывает таким: “Вы настолько невозмутимы, что мы перестаем придавать большое значение цепочке поставок”, как будто у вас есть доступ к проточной воде: все спокойно, не требует пристального внимания, просто работает. И это нормально, потому что, конечно, цепочки поставок пока не столь предсказуемы, как водоснабжение, но такое впечатление все же возникает.
Конор Дохерти: Ну, спасибо, Йоаннес. Мейноф, как обычно, слово дается гостю. Так что, слово за вами, а затем мы закончим, пожалуйста.
Мейноф Селлман: Да, еще раз спасибо, что пригласили меня, Конор и Йоаннес. Только пару секунд по поводу того, что говорил Йоаннес: мы часто обнаруживаем, что наши операционные команды удивлены, а их клиенты не удивлены. И именно это и нужно. Операционные команды удивлены тем, что внезапно все может работать так гладко, тогда как раньше, знаете, раз в неделю наступал настоящий адский день, а потом вдруг, как будто проходит два месяца, и вы понимаете: “Всё просто работает, никаких сумасшедших моментов, никакой неразберихи”.
Но что важнее, их клиенты больше не удивлены, потому что внезапно они не остаются без обслуживания или чего-то подобного. Именно для этого существует ваш бизнес, и поэтому вы должны использовать такого рода технологии для управления своими операциями, ведь вы не хотите сильно разочаровывать своих клиентов. А затем вы можете пить очень скучную маргариту на прекрасном острове и наслаждаться средней прибылью с очень низкой вариативностью.
Конор Дохерти: Ну, господа, у меня больше нет вопросов. Йоаннес, большое спасибо за ваше время. Мейноф, было огромное удовольствие, и спасибо, что присоединились к нам. И всем спасибо за просмотр. Надеемся, увидимся в следующий раз.