Представьте огромный склад, заполненный тысячами коробок с товарами. Каждая коробка должна быть перемещена на нужное место в хранении, а затем уложена на палету. Это сложный процесс, требующий большого количества низкоэффективного ручного труда, который сопровождается неизбежными ошибками. Компания «Симботик» попробовала полностью автоматизировать складской процесс, в том числе укладку коробок в палеты. Однако путь от концепции к работающей системе занял много лет. Первые варианты автоматической системы работали очень плохо, производительность их была даже ниже, чем у ручного склада. Одним из самых критичных недостатков первой системы было очень плохое качество палет, планируемых софтверным алгоритмом и укладываемых роботами. Когда тупик развития первой системы стал очевиден, Кириллу Панкратову удалось решить очень трудную математическую задачу укладки коробок в плотные и устойчивые палеты, а команде программистов под его руководством — в основном русскоязычных — быстро внедрить этот сложнейший алгоритм в рабочий код. Это (а также другие процессы оптимизации системы, в которых автору довелось принять участие) сыграло решающую роль в том, что автоматизированная система «Симботика» заработала как часы. Коробки перемещались быстро и точно, ошибки и сбои стали редкостью, а производительность и плотность хранения на складах достигли невиданных ранее высот. Внедрение в работу искусственного интеллекта стало поворотным моментом для «Симботика»: небольшой стартап превратился в лидера индустрии, провел успешное IPO и начал вносить новаторские изменения в систему доставки и распределения товаров для крупных заказчиков. Что на самом деле стоит за успешной разработкой алгоритма, сколько ошибок можно совершить на пути к результату и каково работать в американской инженерной компании русскому ученому — об этом Кирилл Панкратов рассказывает в своей книге.
Мало кто знает, сколько многомиллиардных экономических решений базируются на расчетах какого-нибудь младшего аналитика, кочующих из презентации в презентацию вверх по организационным пирамидам и вызывающих чем выше, тем меньше сомнений, в то время как в модели с самого начала зияет множество дыр и неучтенных факторов.
Я впервые услышал о контактах с «Таргетом» в начале лета 2011 г., когда мы еще назывались «КейсПиком» и работа над проектом KP была в самом разгаре. Мне это показалось наивным — где «Таргет», а где крошечная проблемная компания, чья пробная система в медвежьем углу штата Нью-Йорк выглядит крайне сырой и не оправдывает ожиданий по многим параметрам. Трудно было предсказать тогда, что через пять лет «Таргет» — заказчик огромного масштаба — станет для нас какой-то мелкой обузой, о которой вспоминают последней и от которой хочется отмахнуться, как от назойливой мухи, потому что приоритетным к тому времени будет клиент намного крупнее.
Я заметил, что палеты строятся не совсем правильно. Когда один плоский слой накладывался на другой, алгоритм просчитывал четыре варианта симметрии и должен был выбирать вариант с максимальной метрикой устойчивости и перекрытия между слоями. Но программист, писавший этот код по моему прототипу, не до конца понял его и сделал ошибку: выбирался вариант не с максимальной, а с минимальной метрикой