Разработка AI-системы управления запасами сырья и комплектующих
Управление запасами в производстве принципиально отличается от ритейла: сырьё нужно в точном количестве к конкретному моменту производственного цикла. Дефицит останавливает линию. Избыток замораживает оборотный капитал и создаёт риск устаревания. AI-система балансирует эти требования с учётом вариабельности поставок.
Специфика производственных запасов
Bill of Materials (BOM): Каждый готовый продукт раскладывается в дерево компонентов. Изменение в производственном плане → каскадный пересчёт потребности в сырье по всем уровням BOM.
Lead Time вариабельность: Сырьё от разных поставщиков имеет разную надёжность. ML-модель lead time учитывает:
- Поставщик (его исторический OTIF — On Time In Full)
- Сезон (порт работает медленнее в январе)
- Категория сырья (критическое сырьё vs. стандартные расходники)
- Текущая макро-обстановка (COVID-подобные шоки в ретроспективе)
Минимальные партии (MOQ): Поставщики требуют минимальный размер заказа. Оптимизация с MOQ — дискретная задача, LightGBM или genetic algorithm.
AI-модель потребности в сырье
MRP II vs. AI-MRP:
Классический MRP (Material Requirements Planning):
Net Requirement = Gross Requirement - Available Inventory - Scheduled Receipts
Order Quantity = max(Net Requirement, MOQ)
Проблема: использует детерминированный прогноз спроса на готовую продукцию. Ошибка в прогнозе → каскадная ошибка во всей MRP.
AI-MRP:
- Probabilistic demand forecast: не точечный прогноз, а p10/p50/p90
- Stochastic MRP: расчёт потребности для каждого сценария → distribution of requirements
- Safety stock: не по формуле с историческим σ, а из distribution × service level target
def ai_mrp_requirements(demand_scenarios, bom, lead_time_distribution, service_level=0.95):
"""
demand_scenarios: матрица [n_scenarios × n_periods]
Для каждого сценария → потребности сырья через BOM
Safety stock = (service_level)-й квантиль потребности минус mean
"""
requirements = []
for scenario in demand_scenarios:
finished_goods_needed = scenario
raw_material_needed = explode_bom(finished_goods_needed, bom)
requirements.append(raw_material_needed)
req_array = np.array(requirements)
safety_stock = np.percentile(req_array, service_level * 100, axis=0) - req_array.mean(axis=0)
return req_array.mean(axis=0) + safety_stock
Управление рисками поставок
Supplier Reliability Score:
supplier_features = {
'otif_3m': otif_last_3_months, # On-Time In-Full
'lead_time_cv': lead_time_std / lead_time_mean, # вариативность
'quality_rejection_rate': rejected_qty / received_qty,
'financial_stability': altman_z_score,
'geographic_risk': country_risk_index,
'single_source_flag': 1 if only_supplier else 0
}
reliability_score = reliability_model.predict(supplier_features)
Dual/Multi-sourcing оптимизация: При высоком риске единственного поставщика — AI рекомендует квалификацию альтернатив. Расчёт premium за split sourcing vs. volume discount от одного поставщика.
Supply Chain disruption forecasting: Предсказание сбоев на 4-8 недель вперёд:
- Мониторинг новостей о поставщиках (NLP)
- Геополитические индексы (GPR Index)
- Погодные прогнозы для ключевых регионов поставки
- AIS данные о движении грузовых судов (для import-dependent сырья)
Динамический safety stock
Классическая формула:
SS = Z × √(ADL × σ²_demand + D² × σ²_lead_time)
AI-улучшение:
- σ_demand — из квантильной модели, а не из исторического std
- σ_lead_time — из ML-модели lead time variability
- Z (service level) — может варьироваться по SKU критичности: для критического сырья Z=2.0 (97.7%), для стандартного Z=1.28 (90%)
Сезонный safety stock: Перед пиком производства — увеличить safety stock. В низкий сезон — уменьшить для экономии капитала.
Интеграция с ERP и закупками
Workflow:
- Еженедельно: пересчёт прогноза спроса → MRP run → плановые потребности
- Ежедневно: мониторинг текущих уровней запасов, обновление supplier reliability scores
- При отклонении: alert закупщику + автоматический draft RFQ
SAP PP/MM интеграция:
- Чтение MRP элементов через RFC BAPI
- Запись ML-прогнозов в Planning Data (MPDOKP)
- Создание planned orders через CO40
- Обновление safety stock через MM60 или MARC поле
Ключевые метрики:
- Raw material inventory turnover: увеличение на 20-30%
- Stockout caused production downtime: снижение на 60-80%
- Excess & obsolescence write-offs: снижение на 30-50%
- OTIF от поставщиков: улучшение через supplier scorecards
Сроки: AI-MRP с probabilistic demand и ML lead time — 6-8 недель. Полноценная система с supplier risk, disruption forecasting и SAP-интеграцией — 4-5 месяцев.







