На розподільчому центрі федеральної мережі щоденно обробляється 150 вхідних і 200 вихідних машин. При ручному диспетчеруванні до 30% транспорту простоює в очікуванні вільного доку, а on-time departure rate ледве досягає 75%. AI-система оптимізації cross-docking вирішує це завдання: синхронізує прибуття та відправлення, знижуючи простої на 40% та підвищуючи punctuality до 95%. В одному з проєктів економія склала кілька мільйонів рублів щомісяця за рахунок скорочення понаднормових та штрафів за запізнення.
Ми — AI/ML інженери з 5+ років досвіду в логістиці, за плечима 30+ реалізованих проєктів. Гарантуємо інтеграцію з існуючими TMS та WMS без зупинки операцій. Отримайте консультацію щодо впровадження AI-оптимізації на вашому терміналі — оцінимо поточні метрики за 2 дні.
Проблеми синхронізації в крос-докінгу
Класичний склад оптимізує зберігання та збирання. Крос-докінг оптимізує синхронізацію:
- Вхідні потоки — TIR-постачальників з 50–200 артикулами.
- Вихідні потоки — регіональні розвізні машини по торгових точках.
- Завдання — який вантаж з якої машини на яку машину та в якій послідовності.
Типи крос-докінгу: Pre-distribution (постачальник маркує товар під магазини), Post-distribution (розбивка AI на терміналі), Opportunistic (змішаний склад).
Як AI-планувальник синхронізує потоки?
Тимчасова синхронізація прибуття. ML-прогноз часу прибуття кожного TIR (ETA) реалізований на градієнтному бустингу (LightGBM) — враховуємо історичні дані, погоду, дорожню обстановку. Далі CP-SAT solver з OR-Tools вирішує задачу призначення доків та розкладу з жорсткими обмеженнями: не більше однієї машини на док, часові вікна приймання, послідовність відвантаження.
from ortools.sat.python import cp_model import numpy as np def schedule_crossdock( inbound_trucks, # [{id, eta, items: [(sku, qty)], dock_time_min}] outbound_trucks, # [{id, departure, required_items: [(sku, qty)]}] n_docks=20, planning_horizon=480 # хвилин ): """Оптимізація призначення доків і розкладу перевантаження""" model = cp_model.CpModel() # Змінна: час початку розвантаження кожної вхідної машини unload_start = {} unload_end = {} for truck in inbound_trucks: earliest = max(0, int(truck['eta'])) latest = planning_horizon - truck['dock_time_min'] unload_start[truck['id']] = model.NewIntVar(earliest, latest, f"us_{truck['id']}") unload_end[truck['id']] = model.NewIntVar( earliest + truck['dock_time_min'], planning_horizon, f"ue_{truck['id']}" ) model.Add(unload_end[truck['id']] == unload_start[truck['id']] + truck['dock_time_min']) # Призначення доків: кожен вхідний вантажівка отримує один з N доків dock_assign = {} for truck in inbound_trucks: dock_assign[truck['id']] = model.NewIntVar(0, n_docks - 1, f"dock_{truck['id']}") # Обмеження: на одному доці одночасно не більше однієї машини intervals = {} for truck in inbound_trucks: intervals[truck['id']] = model.NewOptionalIntervalVar( unload_start[truck['id']], truck['dock_time_min'], unload_end[truck['id']], True, f"interval_{truck['id']}" ) # No-overlap на кожному доці for dock in range(n_docks): trucks_at_dock = [intervals[t['id']] for t in inbound_trucks if dock_assign.get(t['id'])] if len(trucks_at_dock) > 1: model.AddNoOverlap(trucks_at_dock) # Ціль: мінімізувати затримку вихідних машин delays = [] for out_truck in outbound_trucks: ready_time = model.NewIntVar(0, planning_horizon, f"ready_{out_truck['id']}") required_unload_times = [ unload_end[in_t['id']] for in_t in inbound_trucks if any(sku in [i[0] for i in in_t['items']] for sku in [r[0] for r in out_truck['required_items']]) ] for t in required_unload_times: model.Add(ready_time >= t) delay = model.NewIntVar(0, planning_horizon, f"delay_{out_truck['id']}") model.Add(delay >= ready_time - out_truck['departure']) delays.append(delay) model.Minimize(sum(delays)) solver = cp_model.CpSolver() solver.parameters.max_time_in_seconds = 30.0 status = solver.Solve(model) return solver, model, unload_start, dock_assign В одному з впроваджень на терміналі з 20 доками та 150 вхідними машинами на день вдалося досягти 95% on-time departure вже через 2 тижні роботи. Ключовий фактор — модель перераховує розклад за 3–5 секунд при будь-якому відхиленні ETA.
Порівняння типів крос-докінгу
| Тип | Опис | Коли застосовний |
|---|---|---|
| Pre-distribution | Постачальник маркує товар під магазини | Стабільні замовлення, низька варіативність |
| Post-distribution | Розбивка на терміналі AI-системою | Висока варіативність, часті зміни |
| Opportunistic | Змішаний склад використовує крос-докінг для частини потоку | Нерівномірне завантаження, сезонність |
Pre-distribution швидше, але менш гнучкий. Post-distribution вимагає AI-планувальника, але адаптується до змін за 5–10 секунд.
Чому важлива динамічна переробка плану?
Затримка вхідної машини — звичайна справа. Без AI диспетчер вручну переглядає план, що займає 20–30 хвилин. AI-система перераховує розклад за 3–5 секунд:
- Виявляє машини, які можуть почекати 30–60 хвилин (допуск по часовому вікну доставки).
- Визначає частини відправки, які можна скомплектувати з інших машин.
- Приймає рішення про перенесення відправки на наступний рейс.
Результат: on-time departure rate підвищується з 75% до 95%.
Процес впровадження AI-системи
- Аналіз — збір даних про потоки, типи вантажів, часові вікна (2–3 тижні).
- Проектування — розробка моделі прогнозу ETA та оптимізатора (4–6 тижнів).
- Реалізація — інтеграція з TMS, WMS, системою сортування (6–8 тижнів).
- Тестування — A/B-тест на одному терміналі (2–4 тижні).
- Деплой — rollout на всі термінали з паралельною роботою (4–6 тижнів).
Терміни орієнтовно — від 4 до 6 місяців залежно від масштабу.
Що входить в роботу
- Технічна документація (архітектура, API, модель даних).
- Доступи до системи через REST API та WebSocket для моніторингу в реальному часі.
- Навчання диспетчерів (2–3 дні, очно або дистанційно).
- Технічна підтримка на 3 місяці після запуску.
Метрики та інтеграції
| KPI | Без AI | З AI |
|---|---|---|
| Throughput (палет/год) | 120 | 170 |
| Dock door utilization | 60% | 85% |
| On-time departure | 75% | 95% |
Інтеграції: TMS (транспортні завдання, ETA оновлення), WMS (ярлики, сортування), ваги/сканери на воротах, відеоаналітика для підтвердження завершення операцій.
Зв'яжіться з нами для попереднього аудиту потоків та розрахунку економії — оцінимо ваш термінал за 2 дні. Замовте консультацію, щоб обговорити деталі впровадження під ваші завдання.







