О несовместимости

moloko-seledkaМаксимальная консолидация заказов — самая желанная оптимизация в TMS. Чем больше удалось уложить в машину, чем больше мест получилось объехать, чем плотнее смогли утилизировать полезный объем — тем лучше! Но знатоки сейчас только хитро ухмыльнутся: Ах, если бы все было так просто! Несовместимость разного толка безжалостно разбивает идеально выстроенные маршруты с минимальным пробегом и оптимальным объездом точек.

Иногда даже доходит до того, что приходится следовать очевидно неоптимальным маршрутом и преступно недогружать машины, только бы учесть все запреты, ограничения и несовместимости. Но если на минуту представить, что сокращение пробега не есть самоцель? Что если сомнительная экономия на нужной машине может привести к ощутимым убыткам от порчи товара?

Как вы уже догадались, речь пойдет о работе с несовместимостями в ОТМ.

Вообще слова «совместимость» и «несовместимость» (а точнее «compatibility» и «incompatibility») встречаются в ОТМ постоянно: в справочниках, параметрах настройки, в логах при построении решений.  Конкретно в справочниках номенклатуры грузов или подвижного состава настройки несовместимости реализованы через концепцию разрешающих и запрещающих меток.

Несовместимость грузов между собой

Итак, есть вполне совместимые на столе, но несовместимые при перевозке товары, например, свежий хлеб и ароматная колбаса копчёная на вишневых веточках. В справочнике товарных групп укажем для хлеба метку несовместимости с колбасой.

commodity_bread

Обратите внимание, что ни слова пока нет про температурный режим перевозки, хотя возможно он будет разным для этих товаров. Мы двигаемся последовательно и пока рассматриваем исключительно несовместимость грузов между собой без дополнительных факторов. То есть предполагаем, что у нас есть такие универсальные машины, которые могут возить и хлеб, и колбасу.

Теперь для эксперимента заведем три заказа на хлеб и один на колбасу. Все заказы одинаковые по весу и объему и в одну машину по грузоподъемности входит два любых заказа. Никаких пожеланий по подвижному составу на товарных группах мы не указывали.

orders_commodity_1

Планируем все четыре заказа и получаем три рейса. Это показывает, что ОТМ при планировании учел несовместимость товаров и не стал консолидировать заказы при планировании, хотя это дало бы значительный выигрыш в виде сокращения количества машин с трех до двух.

shipments_commodity_1

Несовместимость грузов с подвижным составом

Это взгляд на несовместимость товаров под других углом. То есть теоретически можно не прописывать правила совместимости товаров друг относительно друга, но сделать это на уровне «товар — подвижной состав». Этого также может быть достаточно для того, чтобы два товара никогда не поехали в одной машине.

Для этого эксперимента мы заведем две машины и условно назовем их «хлебовоз» и «колбасовоз». Свяжем эти типы машин с соответствующими товарными группами и попутно уберем ограничение по несовместимости товаров между собой.

comm_breadcomm_meat Результаты планирования аналогичны результатам первого эксперимента, кроме того, что ОТМ взял разные типы машин для разных товарных групп в соответствии с ограничениями.

shipments_commodity_2

Несовместимость температурных режимов

ice_shoco

Теперь перейдем к более тонкой сущности — к температуре. Товары в принципе могут друг другу не мешать никак, могут быть вообще в герметичной упаковке, но при этом могут требовать кардинально разных температурных режимов перевозки.

Возьмем опять же вполне сочетаемые продукты — шоколад и мороженое. Как известно шоколад нельзя переохлаждать (чтобы он не покрылся неприятным, хотя и безвредным белёсым налетом), но и перегревать не стоит, а мороженое нужно доставить как следует замороженным. Оба продукта может возить рефрижератор, способный поддерживать температурный режим от +25°C до -25°C.

Отразим на товарных группах требуемый температурный режим перевозки, а на подвижном составе укажем диапазон возможных температур в кузове.

comm_icecreamcomm_choco Создадим отдельные заказы на наши товары и запустим в планирование. В результате получаем два разных рейса. В обоих один и тот же подвижной состав, но предполагаются разные температурным режимы в процессе перевозки.

shipments_commodity_3

Кстати для такого случая можно было даже использовать разные тарифы — для более низкой температуры дороже, а для более высокой — дешевле. Такая возможность тоже есть в ОТМ.

На этом, разумеется, нельзя закончить рассказ об ограничениях, которые влияют на консолидацию и даже построение маршрутов, и в следующих статьях я уже готовлюсь продемонстрировать как ОТМ справляется со сложными окнами доставки.