Product Mix Optimization для S&OP - MILP нам в помощь.
В предыдущей статье я писал о Product Mix Optimization — поиске такого сочетания продуктов, которое при имеющихся ресурсах и ограничениях даст предприятию лучший результат. Но между самой идеей оптимизации и работающей системой есть самый сложный этап: реальное производство нужно описать математически. Для человека многие ограничения очевидны. Опытный планировщик знает, какой шпон куда можно направить, какие сочетания слоев допустимы, где фактическая производительность отличается от нормативной, какие маршруты формально возможны, но на практике нежелательны. Для математической модели ничего этого не существует, пока мы явно не превратим эти знания в правила. В фанерном производстве нужно связать в одной системе баланс шпона по сортам, форматам и толщинам, возможные конструкции пакетов, технологические маршруты, мощности оборудования, складские остатки, спрос и экономику продукции. При этом один и тот же полуфабрикат может использоваться в нескольких продуктах. Если направить его в один маршрут, уменьшается возможность выпуска других SKU. То есть модель должна видеть не только отдельные продукты, но и все связи между ними. Для описанных выше целей я решил самостоятельно попробовать использовать MILP — Mixed Integer Linear Programming, смешанное целочисленное линейное программирование, которое будет работать на базе класса программ "solver". Тем более, что коллеги из ритейла уже давно думают в этом направлении (https://habr.com/ru/companies/X5Tech/articles/685590/?ysclid=mubcnmppki161059063). Так почему бы и производственному сектору не обратиться к технологиям для решения стратегических задач? :) Если сильно упростить, MILP-solver позволяет сказать компьютеру: вот решения, которые ты можешь принимать, вот ограничения, которые нельзя нарушать, а вот показатель, который нужно сделать максимальным или минимальным. Например, модель может выбирать, сколько кубометров каждого вида фанеры производить. При этом ей задаются условия: шпона сорта 1(2,3) имеется не более определенного количества, пресс располагает ограниченным числом часов, спрос на конкретный продукт не превышает заданного объема. Можно добавить и дискретные решения: например, использовать определенный маршрут или нет, запускать продукт в производство или не запускать. А целевой функцией может быть максимальная суммарная маржа портфеля в сочетании с максимизацией утилизации сырья. После этого специализированная программа — MILP solver — ищет лучшее сочетание решений, которое одновременно выполняет все заданные условия. А может ли это сделать нейросеть? Сегодня такой вопрос возникает вполне естественно. Современные нейросети умеют писать код, работать с данными и анализировать достаточно сложные задачи. Но языковая модель и математический solver — это принципиально разные инструменты. Нейросеть может помочь сформулировать производственное правило, перевести его в математическое ограничение, написать код модели, найти логическую ошибку или объяснить полученный результат. Но сама по себе языковая модель не выполняет строгую оптимизацию MILP, то есть ничего не считает сама. Когда в задаче существуют сотни или тысячи взаимосвязанных переменных и ограничений, недостаточно предложить решение, которое выглядит разумным, а именно так AI и работает. Нужно найти вариант, который одновременно удовлетворяет всей системе условий и является лучшим по заданному критерию, причем математически доказанно лучший. Именно это делает класс программ "solver". Методы математической оптимизации существуют десятилетиями. Но благодаря AI сегодня специалист, хорошо понимающий производство, может намного быстрее превратить свои знания в работающую модель. Но набросать концепцию превращения классических, традиционных подходов S&OP во что-то более оптимальное и продвинутое с точки зрения скорости и доказанности лучшего результата - это одно. А вот реализовать на практике - совсем другое дело. Об этом — в следующей статье.
· 3 ч
Сергей, спасибо за материал - тема действительно живая. Мы тоже используем S&OP-модель, но пока всё ещё в Excel. И во многом именно потому, что там я вижу прозрачность расчётов и могу вернуть в модель управленческое решение как новую вводную для следующего цикла.
Отсюда вопрос: какую ML-модель вы взяли за основу и - главное - как проверяете, не "насοчиняла" ли она чего-то нереального? Кто и как валидирует качество расчётов? Особенно интересно, как вы ловите логические ошибки в ограничениях, когда модель предлагает решение, которое формально допустимо, но на практике невыполнимо.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 3 ч
Спасибо за Ваш интерес к теме, просто следите за циклом статей, все будет ;) Задавайте конкретные вопросы в комментариях и я буду стараться отвечать на них сразу будущими статьями
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён