Оптимизация цепочки поставок с помощью Python
Оптимизация цепочки поставок позволяет наилучшим образом использовать аналитику данных, чтобы найти оптимальное сочетание заводов и распределительных центров для соответствия спросу и предложению.
Из-за текущего роста стоимости доставки компании начинают бросать вызов своим нынешним возможностям, чтобы адаптироваться к постковидной «новой нормальности» .
В этой статье мы представим простую методологию с использованием линейного программирования для оптимизации цепочки поставок с учетом
- Фиксированные производственные затраты ваших объектов ($/Месяц)
- Переменные производственные затраты на единицу продукции ($/единица)
- Стоимость доставки ($)
- Потребительский спрос (ед.)
Новые статьи прямо в вашем почтовом ящике бесплатно: Информационный бюллетень
Если вы предпочитаете смотреть, вы можете посмотреть видеоверсию этой статьи.
I. Как спроектировать сеть цепочки поставок с помощью Python?
Постановка задачи
Как руководитель отдела управления цепочками поставок международной производственной компании, вы хотите переопределить сеть цепочек поставок на следующие 5 лет с учетом недавнего увеличения стоимости доставки и прогнозов будущего спроса.
Ваша сеть цепочки поставок
- 5 рынков в Бразилии, США, Индии, Японии, Германии
- 2 типа производственных мощностей : маломощные и высокопроизводительные площадки
- Стоимость доставки ($/контейнер)
- Потребительский спрос (шт./год)
- Капитальные затраты на оборудование (машины, склады, ..)
- Коммунальные услуги (Электричество, Вода, ..)
- Руководство завода, административный персонал
- Аренда помещений
Производственные переменные затраты
- Операторы производственных линий
- Сырье
Переменные расходы на доставку
- Стоимость за контейнер ($/контейнер)
- Предположение: 1 контейнер может содержать 1000 единиц.
Производственные мощности по объектам
Например, завод большой мощности в Бразилии может производить 1 500 000 (единиц) в месяц.
Спрос клиентов на рынке
Вы можете найти полный код в этом репозитории Github: Связать
мое портфолио с другими проектами: Samir Saci
II. Полученные результаты
Давайте попробуем три сценария
- Сценарий 1: начальные параметры
- Сценарий 2: увеличиваем производственные мощности Индии (x2)
- Сценарий 3: рост стоимости доставки из-за нехватки контейнеров
- Завод в Бразилии производит продукцию для местного рынка и США
Facilities: 1 high capacity plant
('Brazil','Brazil') = 145,000 (Units/Month)
('Brazil','USA') = 1,250,000 (Units/Month)
Facilities: 1 high capacity plant and 1 low capacity plant
('India','Germany') = 90,000 (Units/Month)
('India','India') = 160,000 (Units/Month)
('India','Japan') = 200,000 (Units/Month)
('India','USA') = 1,550,000 (Units/Month)
Facilities: 1 high capacity plant
('Japan','Japan') = 1,500,000 (Units/Month)
Total Costs = 62,038,000 ($/Month)
Давайте попробуем удвоить размер завода высокой мощности в Индии, предполагая, что это удвоит фиксированные затраты.
- Завод в Бразилии по-прежнему производит продукцию для местного рынка и США.
Facilities: 1 high capacity plant
('Brazil','Brazil') = 145,000 (Units/Month)
('Brazil','USA') = 1,250,000 (Units/Month)
Facilities: 2 high capacity and 1 low capacity plants
('India','Germany') = 90,000 (Units/Month)
('India','India') = 160,000 (Units/Month)
('India','Japan') = 1,700,000 (Units/Month)
('India','USA') = 1,550,000 (Units/Month)
-19.4(%) vs. Scenario 1
Total Costs = 51,352,000 ($/Month)
Что, если у нас есть стоимость контейнера, умноженная на 5?
- Бразилия производит только для местного рынка
Facilities: 1 low capacity plant
('Brazil','Brazil') = 145,000 (Units/Month)
Facilities: 1 high capacity plant
('USA','Japan') = 200,000 (Units/Month)
('USA','USA') = 1,300,000 (Units/Month)
Facilities: 1 high capacity plant
('India','Germany') = 90,000 (Units/Month)
('India','India') = 160,000 (Units/Month)
('India','USA') = 1,500,000 (Units/Month)
Facilities: 1 high capacity plant
('Japan','Japan') = 1,500,000 (Units/Month)
Total Costs = 92,981,000 ($/Month)
Подпишитесь на меня на Medium, чтобы узнать больше о науке о данных для цепочки поставок.
Мы будем использовать библиотеку Python PuLP. PuLP — это среда моделирования для задач линейного (LP) и целочисленного программирования (IP), написанная на Python и поддерживаемая COIN-OR Foundation (вычислительная инфраструктура для исследования операций).
1. Объявите свои переменные, параметры и модель
- LpMinimize : ваша цель — минимизировать свои расходы.
- lowBound =0: у вас не может быть отрицательных значений произведенных единиц
3. Решите свою модель и проанализируйте результаты
III. Заключение и следующие шаги
Не стесняйтесь подписываться на меня в среде для получения дополнительных статей, связанных с аналитикой данных и управлением цепочками поставок.
Заключение
Эта модель позволяет моделировать несколько сценариев, влияющих на эксплуатационные и коммерческие параметры.
- Что, если спрос резко возрастет в Индии?
- Что, если нам придется закрыть наш завод в Бразилии?
- Что, если мы утроим производственные мощности в Японии?
Устойчивое снабжение
Аналогичный подход можно использовать для выбора поставщиков с учетом целевой функции, которая минимизирует выбросы CO2 .
Устойчивое снабжение — это процесс интеграции социальных, этических и экологических факторов эффективности при выборе поставщиков.
Это включает в себя оценку и оценку поставщиков на основе набора критериев устойчивости, таких как трудовые права, здоровье и безопасность, воздействие на окружающую среду, права человека и многое другое.
Используйте аналитику данных для автоматического выбора лучшего поставщика с учетом сочетания экономических и экологических ограничений.
В этой статье мы узнаем, как использовать аналитику данных для разработки оптимальной сети цепочки поставок, чтобы минимизировать затраты и воздействие на окружающую среду.
Улучшите свою модель
Эта простая модель может помочь вам получить потенциал линейной оптимизации для оптимизации сети цепочки поставок. Мы можем быстро улучшить эту модель, добавив ограничения
- Затраты на хранение
- Ограничения выбросов углерода (CO2 = f(расстояние, вес))
- Время выполнения поставки
- Плата за оформление клиента
- Изменение валюты
Обо мне
Давайте подключимся через Linkedin и Twitter . Я инженер по цепочке поставок, который использует аналитику данных для улучшения логистических операций и снижения затрат.
Если вас интересует аналитика данных и цепочка поставок, загляните на мой веб-сайт.
Рекомендации
[1] Вычислительная инфраструктура для исследования операций, оптимизация с помощью PuLP (документация), ссылка

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































