Наука к Образование
МГТУ им. Н.Э. Баумана
Сетевое научное издание
Представлена в редакцию: 03.04.2015
© МГТУ им. Н.Э. Баумана
УДК 658.5
Процесс комплектования заказов на складе. Задача маршрутизации сборщиков заказов
Коробков Е. В.' еизЛсогоЬкоу @ gmail.com
1МГТУ им. Н.Э. Баумана, Москва, Россия
Задача маршрутизации сборщиков заказов на складе является наиболее трудозатратной подзадачей процесса комплектования заказов. Перемещение сборщиков по складу во время ее выполнения достигает до 50% от всех временных затрат. В статьей приводятся аналогии задачи маршрутизации сборщиков заказов на складе с частной формулировкой задачи коммивояжера, описывается оптимальный алгоритм Рэтлиффа-Розенталя для решения задачи маршрутизации сборщиков заказов на одноблочном складе, а также его расширение на большее число блоков, приводятся причины, по которым на практике использование точных оптимальных алгоритмов заменяется использованием эвристик, а также представлены формулировки восьми эвристических методов маршрутизации сборщиков заказов на складе. Статья является второй в цикле статей «Процесс комплектования заказов на складе».
Ключевые слова: склад, комплектование, заказ, маршрутизация, сборщик, коммивояжер, эвристики
Введение
Среди складских функций можно выделить комплектование заказов (order picking) как наиболее важную. Комплектование заказов — это процесс поиска и извлечения товаров из ячеек хранения с целью удовлетворения потребительского заказа. Подзадачами процесса комплектования заказов являются:
- проектирование планировки (layout design) и размеров (dimensioning) складской системы;
- распределение товаров по ячейкам хранения (storage assignment);
- распределение по партиям (batching) и зонирование (zoning);
- накопление заказов/сортировка (accumulation/sortation);
- маршрутизация (routing) сборщиков заказов.
Первые четыре подзадачи рассмотрены в первой статье цикла «Процесс комплектования заказов на складе» [1]. Данная статья посвящена подзадаче маршрутизации сборщиков заказов. Структура статьи следующая. В п. 1 задача маршрутизации сборщиков заказов описывается как частный случай задачи коммивояжера. В п. 2 представлено получение оптимального алгоритма решения задачи маршрутизации сборщиков заказов для одноблочных складов. В п. 3 полученный
алгоритм расширяется на многоблочные склады, а также приводятся недостатки использования точных методов. В п. 4 представлены эвристические методы решения задачи маршрутизации сборщиков заказов.
1. Штейнеровская задача коммивояжера
Задача маршрутизации сборщиков заказов (order-pickers routing problem) является частным случаем задачи коммивояжера (traveling salesman problem) [2]. Задача коммивояжера получила свое название благодаря следующей ситуации. Коммивояжеру требуется посетить определенное число городов только один раз и вернуться обратно в родной город на место старта. Он знает расстояния между каждой парой городов и хочет определить такой порядок их посещения, чтобы общее пройденное расстояние было минимальным. Очевидно, что ситуация с коммивояжером имеет несколько точек соприкосновения с задачей сборщиков заказов на складе. Сборщик стартует с базы, т.е. места получения заказа, (depot, родного города), где получает сборочный лист (picking list), содержащий строки заказа, затем ему необходимо «посетить» определенное число сборочных ячеек, т.е. ячеек с необходимым товаром (picking cells, городов) и, наконец, вернуться обратно на базу. Пример планировки склада с типовым заданием на сборку заказа, а также соответствующее представление в виде графа проиллюстрированы на рис. 1.
Рис. 1. а) Планировка склада с типовым заданием на сборку (затрихованные прямоугольники обозначают сборочные ячейки) и б) представление планировки склада с типовым заданием на сборку в виде графа (заштрихованные вершины — сборочные ячейки и база; незаштрихованные — пересечения проходов)
Между стандартной формулировкой задачи коммивояжера и ситуацией со сборщиком заказов на складе существует несколько различий. Во-первых, если взглянуть на рис. 1, можно заметить, что некоторые вершины-«города» могут остаться не посещенными (незаштрихованные вершины). Эти вершины являются пересечениями продольных (crossing) и поперечных (или, сборочных, picking) проходов (aisles). Сборщик заказов может, но не обязан посещать их. Заштрихованные вершины представляют собой
сборочные ячейки и базу, которые сборщику заказов посетить необходимо. Разрешается посещать сборочные ячейки и/или базу более одного раза. Задача маршрутизации сборщиков заказов классифицируется как штейнеровская задача коммивояжера (Steiner traveling salesman problem) по двум причинам — некоторые вершины могут остаться посещенными, а некоторые — посещены более одного раза. Штейнеровская задача коммивояжера является #Р-трудной. Однако, для планировок складов, аналогичных представленной на рис. 1 (в виде последовательно-параллельных графов, parallel-series graphs), существует алгоритм, позволяющий найти решение задачи за линейное время в зависимости от числа проходов и сборочных ячеек [3].
2. Оптимальный алгоритм Рэтлиффа-Розенталя решения задачи маршрутизации сборщиков заказов для одноблочных складов
Рассмотрим заказ, содержащий m элементов (товаров), которые необходимо собрать на одноблочном (с двумя поперечными проходами, single-block) складе, конфигурация которого представлена на рис. 1.
2.1. Представление планировки склада и типового заказа в виде графа
Определим граф G как совокупность вершин Vj, представляющих собой местоположение каждого из i = 1,2, ...,m элементов заказа (т.е. расположение сборочных ячеек), и вершин ау и by, являющих собой начало и конец каждого из j = 1,2, ...п проходов. Все смежные вершины графа соединяем дугами, длины которых соответствуют реальному расстоянию между точками склада, представленными смежными вершинами графа. Граф, описывающий конфигурацию склада, заданную на рис. 1, представлен на рис. 2. Для наглядности, между совпадающими вершинами v0 и b4 добавлена дуга нулевой длины.
©
Рис. 2. Граф, описывающий конфигурацию склада, представленную на рис. 1
2.2. Эквивалентные классы частичных маршрутных подграфов (ЧМП)
Маршрут сборщика заказов — это цикл в G, включающий в себя все вершины vi,i = 0, 1,..,т, хотя бы один раз. Задачей маршрутизации сборщика заказов является нахождение минимального такого цикла.
Подграф T a G, который содержит все вершины v i,i = 0,1, .. .,т, назовем маршрутным подграфом (tour subgraph), если существует сборочный маршрут, использующий каждую дугу из T только один раз.
Таким образом, подграф является маршрутным подграфом тогда, и только
тогда, когда а) все вершины v¿, i = 0, 1,2 ,...,т имеют положительную степень в T; б) при исключении всех вершин нулевой степени граф T является связным; в) каждая вершина в T имеет четную, либо нулевую степень.
Для нахождения минимального маршрута обхода сборщиком заказов сборочных ячеек необходимо найти минимальный маршрутный подграф, то есть маршрутный подграф минимальной длины, при этом доказывается, что такой подграф не имеет вершин, соединенных друг с другом более чем двумя дугами [3].
Для любого подграфа подграф является частичным маршрутным
подграфом (ЧМП, partial tour subgraph, PTS) для L, если существует подграф Cj a G — L ( G — L определяет граф, получающийся удалением всех вершин и дуг графа L из графа G) такой, что является маршрутным подграфом G. Подграф назовем дополнением
(completion) к .
Положим, что — подграф G, включающий вершины и , а также все вершины и дуги из G по левую сторону от a j и bj. Положим, что Aj — подграф G, состоящий из вершин и , а также всех вершин и дуг из G между и . Наконец, положим, что Lj = LJ U Aj. Рис. 3 иллюстрирует данные определения. Обозначение L j используется для случаев, когда результат справедлив как для , так и для .
Рис. 3. а) Ъ2 ЧМП; б) Ъ2 ЧМП для графа, представленного на рис. 2
Существуют следующие необходимые и достаточные условия, при которых подграф Т) с Ъ } будет ЧМП Ъу:
- степени всех вершин 17у £ ¿у — четны в 7у;
- каждая вершина в 7у, за возможным исключением ау и Ьу, имеет четную, либо нулевую степень;
- по исключении вершин с нулевой степенью, 7у либо не имеет связных компонент, либо имеет одну связную компоненту с вершиной ау или Ьу в ней, либо — две связные компоненты с вершиной в одной, и в другой.
Два ЧМП ¿у 7)1 и 7у2 называются эквивалентными, если для любого подграфа Су с С — ¿у такого, что 7у1 и Су является маршрутным подграфом, 7у2 и Су также является маршрутным подграфом (т.е., любое дополнение одного ЧМП является дополнением другого ЧМП).
Таким образом, два ЧМП ¿у Ту1 и 7у2 эквивалентны, если:
- ау имеет тождественную степень (т.е., четную, нечетную, либо нулевую) в обоих подграфах и имеет тождественную степень в обоих подграфах;
- по исключении вершин с нулевой степенью, и 7у1, и 7у2 — либо оба не имеют связных компонент, либо оба имеют одну связную компоненту с вершиной или в ней, либо — две связные компоненты с вершиной в одной и в другой.
Определим эквивалентные классы каждого ЧМП ¿у как совокупность трех параметров — четности степени , четности степени и числа связных компонент. Например, ЧМП ¿ 2 (рис. 4) являются эквивалентные классы (0, Ч, 1), (Ч, Ч, 2), (Н, Н, 1), где 0 обозначает нулевую степень, Ч — четную, Н — нечетную, а третья цифра — количество компонент связности.
Рис. 4. Примеры ¿ 2 ЧМП для графа, представленного на рис. 2
Существует семь эквивалентных классов ЧМП ¿у: (Н, Н, 1), (0, Ч, 2), (Ч, 0, 2), (Ч, Ч, 1), (Ч, Ч, 2), (0, 0, 0), (0, 0, 1). Класс (0, 0, 0) возможен только в случае, если ни один проход в ¿у не содержит сборочных ячеек, а класс (0, 0, 1) — если ни один проход в С — ¿у не содержит сборочных ячеек (т.е., одна связная компонента находится по левую сторону от или , и не содержит ни , ни ). В случае, когда все проходы (поперечные и продольные), имеют одинаковую длину, проходы не содержащие сборочных ячеек, а
следовательно и классы (0, 0, 0) и (0, 0, 1), могут быть удалены и не использоваться в расчетах.
Если Т1 — ЧМП Ъ I минимальной длины i-го класса, а С^ — дополнение минимальной длины для Т^, то маршрутным подграфом С минимальной длины является частичный подграф минимальной длины для .
Заметим, что для Ъ£ дополнением минимальной длины для ЧМП классов (Ч, 0, 1), (0,
4, 1), (Ч, Ч, 1) и (0, 0, 1) является нулевой граф (т.е., ЧМП уже является маршрутным подграфом минимальной длины). Также, т.к. С — Ъ+ = 0, то для оставшихся классов дополнения не существует. Таким образом, при нахождении ЧМП минимальной длины классов (Ч, 0, 1), (0, Ч, 1), (Ч, Ч, 1) и (0, 0, 1) в Ъминимальный из подграфов этих классов будет минимальным маршрутом сборщика заказов.
2.3. Построение ЧМП минимальной длины
Поиск маршрутного подграфа минимальной длины ведется для каждого прохода } = 1,2,...,п по очереди. С использованием ЧМП минимальной длины Ъ^ каждого эквивалентного класса, строятся ЧМП минимальной длины Ъ+. С использованием ЧМП минимальной длины каждого эквивалентного класса, строятся ЧМП минимальной длины +г. Наконец, после определения ЧМП минимальной длины Ъ£ для каждого из эквивалентных классов, цикличный подграф минимальной длины является ЧМП минимальной длины среди (Ч, 0, 1), (0, Ч, 1), (Ч, Ч, 1) и (0, 0, 1) из Ъ
Рассмотрим некий у-ый проход. Поскольку ЧМП минимальной длины не может содержать более двух дуг между двумя любыми парами вершин, то для данного прохода возможны лишь шесть случаев соединения вершин дугами, которые представлены на рис.
5. В случае двух заходов в один проход с противоположных сторон (рис. 5г), необходимо рассматривать наилучший возможный случай (с наименьшей длиной). Простейшим способом отыскания такого случая, является отыскание наиболее длинного участка между смежными вершинами прохода, и добавление промежутка на место связывающей их дуги.
Рис. 5. Возможные конфигурации дуг для у-го прохода в оптимальном ЧМП
В табл. 1 приведены эквивалентные классы ¿+, получаемые добавлением конфигураций минимальной длины среди представленных на рис. 5 к ЧМП ¿у каждого из эквивалентных классов.
При наличии ЧМП ¿у минимальной длины для каждого эквивалентного класса, возможно получить ЧМП минимальной длины для каждого эквивалентного класса путем выбора из табл. 1 конфигурации, обеспечивающей минимальную длину ЧМП ¿+ для каждого из эквивалентных классов.
Для определения ЧМП ¿у+ г минимальной длины для каждого эквивалентного класса, необходимо для заданных ЧМП для каждого эквивалентного класса добавить одну из конфигураций дуг, представленных на рис. 6 для обеспечения перехода между у-ым и (у + 1 ) -ым проходами.
Табл. 1. Эквивалентные классы ¿+ , добавлением конфигурации минимальной длины среди представленных
на рис. 5 к ЧМП ¿у каждого из эквивалентных классов
ч Конфигурация дуг с рис. 5
а б в г д е1
(Н, Н, 1) (Ч, Ч, 1) (Н, Н, 1) (Н, Н, 1) (Н, Н, 1) (Н, Н, 1) (Н, Н, 1)
(Ч, 0, 1) (Н, Н, 1) (Ч, 0, 1) (Ч, Ч, 2) (Ч, Ч, 2) (Ч, Ч, 1) (Ч, 0, 1)
(0, Ч, 1) (Н, Н, 1) (Ч, Ч, 2) (Ч, 0, 1) (Ч, Ч, 2) (Ч, Ч, 1) (0, Ч, 1)
(Ч, Ч, 1) (Н, Н, 1) (Ч, Ч, 1) (Ч, Ч, 1) (Ч, Ч, 1) (Ч, Ч, 1) (Ч, Ч, 1)
(Ч, Ч, 2) (Н, Н, 1) (Ч, Ч, 2) (Ч, Ч, 2) (Ч, Ч, 2) (Ч, Ч, 1) (Ч, Ч, 2)
(0, 0, 0)2 (Н, Н, 1) (Ч, 0, 1) (Ч, 0, 1) (Ч, Ч, 2) (Ч, Ч, 1) (0, 0, 0)
(0, 0, 1)3 4 — — — — (0, 0, 1)
нецелесообразная конфигурация при наличии в проходе сборочных ячеек 2только если слева от у-го прохода нет сборочных ячеек 3только если справа от у-го прохода нет сборочных ячеек 4не может быть оптимальным
Рис. 6. Возможные конфигурации дуг при переходе от у-го к (У+1)-му проходу в оптимальном ЧМП
Табл. 2 описывает эквивалентные классы ¿у+1, получаемые добавлением конфигураций минимальной длины на рис. 6 к ЧМП ¿у" минимальной длины для каждого эквивалентного класса. Прочерки соответствуют конфигурациям однозначно не ведущим к оптимальному маршруту.
Таким образом, при наличии ЧМП ¿у" минимальной длины для каждого эквивалентного класса, возможно построить ЧМП ¿у+1 минимальной длины путем выбора из табл. 2 конфигурации, обеспечивающей минимальную длину ЧМП ¿у+1 для каждого эквивалентного класса.
Таким образом, путем последовательного вычисления ЧМП для каждого из проходов, возможно получить оптимальный маршрут для сборки всего заказа.
Табл. 2. Эквивалентные классы, получаемые путем добавления каждой из представленных на рис. 6 конфигураций дуг к ЧМП ¿+ каждого из эквивалентных классов
ч Конфигурация дуг с рис. 6
а б в г д
(Н, Н, 1) (Н, Н, 1) 1 1 1 1
(Ч, 0, 1) 1 (Ч, 0, 1) 2 (Ч, Ч, 2) (0, 0, 1)
(0,Ч, 1) 1 2 (0,Ч, 1) (Ч, Ч, 2) (0, 0, 1)
(Ч, Ч, 1) 1 (Ч, 0, 1) (0,Ч, 1) (Ч, Ч, 1) (0, 0, 1)
(Ч, Ч, 2) 1 2 2 (Ч, Ч, 2) 2
(0, 0, 0) 1 3 3 3 (0, 0, 0)
(0, 0, 1) 2 2 2 2 (0, 0, 1)
1 степени ау и ¿у — нечетные
2ни одно дополнение не может сделать граф связным 3никогда не будет оптимальным
2.4. Числовой пример
В качестве примера воспользуемся типовым заказом (рис. 1) на складе, представленном на рис. 2. Расстояния между смежными вершинами представлены на рис. 7. Табл. 3 содержит информацию по определению ЧМП минимальной длины для каждого эквивалентного класса. Три числа в каждой ячейке таблицы обозначают длину ЧМП минимальной длины для эквивалентного класса, номер предшествующего эквивалентного класса, на основе которого был построен текущий частичный подграф минимальной длины, и конфигурацию дуг (из рис. 5 для ¿+ и рис. 6 для ¿у), которые были добавлены для получения текущего частичного подграфа.
Рис. 7. Пример графа-представления типового заказа Табл. 3. Решение примера из рис. 8
№ Эквивалентный класс Проход 1 Проход 2 Проход 3
£ Г Ь+2 Ц ц
1 (Н, Н, 1) — 15, -, а 19, 1, а 37, 1, г 41, 1, а 53, 2, а
2 (Ч, 0, 1) — 24, -, б 28, 2, б 48, 2, б 38, 4, б 62, 2, б
3 (0, Ч, 1) — 22, -, в 26, 3, в 48, 3, в 38, 4, в 62, 3, в
4 (Ч, Ч, 1) — 30, -, д 38, 4, г 34, 1, а 42, 4, г 56, 1, а
5 (Ч, Ч, 2) — 20, -, г 28, 5, г 44, 3, г 52, 5, г 56, 2, г
6 (0, 0, 0) — — — — — —
7 (0, 0, 1) — — 22, 3, д — 34, 4, д —
Эквивалентный класс Проход 4 Проход 5 Проход 6
Ц IX ¿5 Ц Ц п
1 (Н, Н, 1) 57, 1, а 57, 1, в 61, 1, а 75, 1, в 79, 1, а 95, 1, г
2 (Ч, 0, 1) 60, 4, б 90, 2, б 68, 4, б 84, 2, б 80, 4, б 106, 2, б
3 (0, Ч, 1) 60, 4, в 60, 3, в 64, 3, в 78, 3, в 80, 4, в 104, 3, в
4 (Ч, Ч, 1) 64, 4, г 64, 4, в 72, 4, г 76, 1, а 84, 4, г 94, 1, а
5 (Ч, Ч, 2) 64, 5, г 60, 2, в 68, 3, г 80, 3, б 86, 3, г 96, 2, г
6 (0, 0, 0) — — — — — —
7 (0, 0, 1) 56, 4, д — 60, 3, д — 76, 4, д —
Не существует ЧМП . ЧМП минимальной длины получены добавлением конфигураций дуг из рис. 5 к нулевому графу. Прочерки у ЧМП Ь 1 означают, что у ЧМП не было предшественника.
Для получения столбца Ь 2 используется табл. 2. Например, из табл. 2 видно, что существует два способа получения ЧМП ¿2 для эквивалентного класса (Ч, 0, 1). Возможно добавление конфигурации б) из рис. 6 к ЧМП Ь 1 эквивалентных классов (Ч, 0, 1) и (Ч, Ч, 1). Из табл. 3 видно, что ЧМП класса (Ч, 0, 1) имеет длину 24, а ЧМП класса (Ч, Ч, 1) — 30. Таким образом, ЧМП минимальной длины для эквивалентного класса (Ч, 0, 1) получается путем добавления конфигурации дуг б) из рис. 6 к ЧМП минимальной длины класса (Ч, 0, 1). Длина результирующего ЧМП равна 28. Таким образом, происходит последовательная обработка проходов с поиском ЧМП минимальных длин.
Оптимальный маршрут сборщика заказов находится как наикратчайший из ЧМП Ь£ классов (Ч, 0, 1), (0, Ч, 1), (Ч, Ч, 1), (0, 0, 1). Из столбца табл. 3 видно, что оптимальный маршрут сборщика заказов — класса (Ч, Ч, 1) и имеет длину 94. Последовательность конфигураций дуг может быть прослежена путем из подчеркнутых элементов табл. 3. Построение маршрута возможно путем добавления конфигураций дуг из рис. 5-6 к подчеркнутым элементам табл. 3 для каждого прохода. На рис. 8 представлен итоговый маршрут минимальный длины.
Рис. 8. Маршрут минимальной длины для примера, представленного на рис. 7
2.5. Процедура получения последовательности обхода по оптимальному маршруту
минимальной длины
После описанной процедуры получения маршрута минимальной длины T, последовательность обхода ячеек сборщиком заказов может быть получена следующим образом.
1) Начинаем обход из вершины v0.
2) Допустим, v* — только что посещенная вершина.
3) Если существует пара неиспользованных параллельных дуг в T, инцидентных с v*, используем одну из них, чтобы добраться до следующей вершины. Возвращаемся на шаг 2.
4) Если существуют неиспользованные одиночные дуги в T, используем одну из них, чтобы добраться до следующей вершины. Возвращаемся на шаг 2.
5) Если существует пара параллельных дуг в T, и одна из дуг пары все еще не была использована, используем ее, чтобы добраться до следующей вершины. Возвращаемся на шаг 2.
6) Завершение. Последовательность обхода сборщиком заказов сборочных ячеек составлена.
3. Расширение алгоритма Рэтлиффа-Розенталя для решения задачи маршрутизации сборщиков заказов во многоблочных складах
Рассмотренный выше алгоритм Рэтлиффа-Розенталя для получения оптимального маршрута сборщика заказов может быть расширен на многоблочные (multi-block warehouses) склады. Ввиду экспоненциального роста числа эквивалентных классов ЧМП, в рамках данной статьи будет рассмотрено только расширение на двухблочные склады, т.е. склады с тремя поперечными проходами.
3.1. Представление планировки склада и типового заказа в виде графа
Склад состоит из определенного числа параллельных проходов. Артикулы хранятся по обе стороны от прохода. Сборщики заказов могут двигаться вдоль проходов в оба направления и изменять направление движения внутри прохода. Каждый заказ состоит из артикулов, хранящихся в ячейках, распределенных по складу. Подразумевается, что артикулы одного заказа могут быть собраны за один обход. Смена прохода возможна в начале, конце и середине прохода. Собранные товары должны быть доставлены на базу, где сборщик заказов затем получает следующий сборочный лист на заказ.
В качестве примера рассмотрим склад, состоящий из n сборочных и трех поперечных проходов. Таким образом, можно заключить, что склад состоит из двух блоков по n проходов в каждом. Конфигурация склада представлена на рис. 9. Типовой заказ состоит из m строк (артикулов). Среди них, тх расположены во блоке X, а ту — во блоке Y (тх + ту = т).
Склад со сборочными ячейками заказа может быть описан в виде графа О, состоящего из следующих вершин:
I ( I = 1, ■ ■ — вершины, соответствующие сборочным ячейкам блокаX;
Уу,I ( * = 1, ■ ■ -,™у) — вершины, соответствующие сборочным ячейкам блока У;
а £ ( / = 1, ■ . ) — вершины, соответствующие дальнему (от базы) концу /-го прохода;
Ъ£ ( / = 1, ■ . .,]У) — вершины, соответствующие середине /-го прохода;
— вершины, соответствующие ближнему (к базе) концу /-го прохода;
Уу, 0 — вершина, соответствующая базе.
Любые две вершины, соответствующие смежным ячейкам на складе соединены дугами, длина которых определяется временем передвижения между соответствующими ячейками на складе.
Рис. 9. а) Планировка склада с типовым заказом; б) представление планировки склада с типовым заказом в виде графа
3.2. Построение ЧМП минимальной длины
Положим, что Ьу является подграфом графа склада, включающим в себя вершины ау, Ьу, Су, а также все ребра и вершины по левую сторону от ау, Ьу, су. Положим, что Уу является подграфом графа склада, включающим в себя вершины , , а также все ребра и
Л-Л7 _
вершины между Ь у и су, и определим Ь- = Ь у и Уу. Аналогично, положим, что X у является подграфом графа склада, состоящим из вершин ау, Ьу, а также всех ребер и вершин между ними, и определим Ь*х = ЬуиХу. Обозначение Ь у используется, при сохранении результата для Ь у = Ьу, Ь у = Ь*у , Ь у = Ь*х.
Алгоритм построения ЧМП минимальной длины основан на динамическом
^ +17
программировании. Поиск начинается для всех ЧМП , состоящих только из ребер и вершин между и . На следующем шаге, ЧМП расширяется путем добавления вершин и ребер между а 1 и Ь1 для получения ЧМП Ь\х. Затем, определяются ЧМП Ь2 путем расширения ЧМП Ьребрами между проходами 1 и 2. Из ЧМП Ь2 могут быть найдены ЧМП . Таким образом, в завершении определяются ЧМП , которые являются искомыми маршрутными подграфами, среди которых и выбирается оптимальный. Для описания алгоритма введем несколько понятий.
Параметры эквивалентных классов ЧМП. Эквивалентные классы ЧМП Ьу могут быть охарактеризованы пятью параметрами: четностью степени ау, четностью степени Ьу, четностью степени , числом компонент связности, а также распределением , , по различным компонентам.
Четность степени описывает число инцидентных данной вершине ребер. Оно может быть четным (Ч), нечетным (Н), либо нулевым (0). Число компонент связности может варьироваться от нуля до трех. Распределение ау, Ьу, с у по различным компонентам показывает, какие из вершин , , содержатся в одном и том же связном компоненте. Для простоты нотации, опустим параметр распределения , , по компонентам связности, за исключением случая, когда две компоненты связности имеют четную степень. Таким образом, пятый параметр может принимать значения: а-Ьс, Ь-ас, е-аЪ. Например, нотация а-Ьс подразумевает, что вершина ау находится в одной компоненте связности, а вершины Ьу, Су — в другой.
Доказывается, что существует 25 следующих эквивалентных классов [4]: (0, 0, 0, 0), (0, 0, 0, 1), (Ч, Ч, Ч, 1), (Ч, Ч, Ч, 3), (Ч, 0, 0, 1), (0, Ч, 0, 1), (0, 0, Ч, 1), (Ч, Ч, 0, 1), (Ч, 0, Ч, 1), (0, Ч, Ч, 1), (Н, Н, 0, 1), (Н, 0, Н, 1), (0, Н, Н, 1), (Ч, Н, Н, 1), (Н, Ч, Н, 1), (Н, Н, Ч, 1), (Ч, Ч, 0, 2), (Ч, 0, Ч, 2), (0, Ч, Ч, 2), (Ч, Н, Н, 2), (Н, Ч, Н, 2), (Н, Н, Ч, 2),
(Ч, Ч, Ч, 2, a-bc), (Ч, Ч, Ч, 2, b-ac), (Ч, Ч, Ч, 2, c-ab).
Заметим, что класс (0, 0, 0, 0) возможен, только если ни один из проходов в Ly не содержит сборочных ячеек, а класс (0, 0, 0, 1) — только если ни один из проходов в ( G — Ly) не содержит сборочных ячеек.
Согласно [3-4], после вычисления ЧМП маршрутным подграфом минимальной длины маршрута сборщика заказов будет являться кратчайший среди следующих ЧМП:
(0, 0, 0, 1), (Ч, 0, 0, 1), (0, Ч, 0, 1), (0, 0, Ч, 1),
(Ч, Ч, 0, 1), (Ч, 0, Ч, 1), (0, Ч, Ч, 1), (Ч, Ч, Ч, 1).
Перемещения. Перемещения (transitions) между вершинами при построении маршрутного подграфа подразумевают добавление вершин и ребер. Различают три
»-. — +V
следующих вида перемещений. В первом случае, при перемещении от Ly к L- , добавляются вершины и ребра между вершинами , . Во втором случае, при перемещении от к , добавляются вершины и ребра между вершинами , . Наконец, в третьем случае, при перемещении от Ly" х к Ly+ ъ делается связь между j-ым и (J + 1 ) -ым проходами.
— +V »-» »-» л—г
Перемещение от Ly к L- . Рассмотрим некоторый j-ый проход. Поскольку, между парой любых вершин не может быть более двух ребер (п. 2.2), ребра между by и Су могут быть одного из возможных видов, изображенных на рис. 10. Эквивалентные классы, получаемые при данных перемещениях, представлены в табл. 4.
Рис. 10. Возможные способы перемещния внутри j-го прохода между by и cy
ч - ^у 1 2 3 4 5 61
(0, 0, 0, 0)2 (0, Н, Н, 1) (0, Ч, Ч, 1) (0, Ч, 0, 1) (0, 0, Ч, 1) (0, Ч, Ч, 2) (0, 0, 0, 0)
(0, 0, 0, 1)3 4 4 4 4 4 (0, 0, 0, 1)
(Ч, 0, 0, 1) (Ч, Н, Н, 2) (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, 0, 2) (Ч, 0, Ч, 2) (Ч, Ч, Ч, 3) (Ч, 0, 0, 1)
(0, Ч, 0, 1) (0, Н, Н, 1) (0, Ч, Ч, 1) (0, Ч, 0, 1) (0, Ч, Ч, 2) (0, Ч, Ч, 2) (0, Ч, 0, 1)
(0, 0, Ч, 1) (0, Н, Н, 1) (0, Ч, Ч, 1) (0, Ч, Ч, 2) (0, 0, Ч, 1) (0, Ч, Ч, 2) (0, 0, Ч, 1)
(Ч, Ч, 0, 1) (Ч, Н, Н, 1) (Ч, Ч, Ч, 1) (Ч, Ч, 0, 1) (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, 0, 1)
(Ч, 0, Ч, 1) (Ч, Н, Н, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 2, Ь-ас) (Ч, 0, Ч, 1) (Ч, Ч, Ч, 2, Ь-ас) (Ч, 0, Ч, 1)
(0, Ч, Ч, 1) (0, Н, Н, 1) 5 (0, Ч, Ч, 1) (0, Ч, Ч, 1) (0, Ч, Ч, 1) (0, Ч, Ч, 1)
(Ч, Ч, Ч, 1) (Ч, Н, Н, 1) 5 (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 1)
(Н, Н, 0, 1) (Н, Ч, Н, 1) (Н, Н, Ч, 1) (Н, Н, 0, 1) (Н, Н, Ч, 2) (Н, Н, Ч, 2) (Н, Н, 0, 1)
(Н, 0, Н, 1) (Н, Н, Ч, 1) (Н, Ч, Н, 1) (Н, Ч, Н, 2) (Н, 0, Н, 1) (Н, Ч, Н, 2) (Н, 0, Н, 1)
(0, Н, Н, 1) (0, Ч, Ч, 1) 5 (0, Н, Н, 1) (0, Н, Н, 1) (0, Н, Н, 1) (0, Н, Н, 1)
(Ч, Н, Н, 1) (Ч, Ч, Ч, 1) 5 (Ч, Н, Н, 1) (Ч, Н, Н, 1) (Ч, Н, Н, 1) (Ч, Н, Н, 1)
(Н, Ч, Н, 1) (Н, Н, Ч, 1) 5 (Н, Ч, Н, 1) (Н, Ч, Н, 1) (Н, Ч, Н, 1) (Н, Ч, Н, 1)
(Н, Н, Ч, 1) (Н, Ч, Н, 1) 5 (Н, Н, Ч, 1) (Н, Н, Ч, 1) (Н, Н, Ч, 1) (Н, Н, Ч, 1)
(Ч, Ч, 0, 2) (Ч, Н, Н, 2) (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, 0, 2) (Ч, Ч, Ч, 3) (Ч, Ч, Ч, 3) (Ч, Ч, 0, 2)
(Ч, 0, Ч, 2) (Ч, Н, Н, 2) (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, Ч, 3) (Ч, 0, Ч, 2) (Ч, Ч, Ч, 3) (Ч, 0, Ч, 2)
(0, Ч, Ч, 2) (0, Н, Н, 1) (0, Ч, Ч, 1) (0, Ч, Ч, 2) (0, Ч, Ч, 2) (0, Ч, Ч, 2) (0, Ч, Ч, 2)
(Ч, Ч, Ч, 2, а-Ьс) (Ч, Н, Н, 2) 5 (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, Ч, 2, а-Ьс)
(Ч, Ч, Ч, 2, Ь-ас) (Ч, Н, Н, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 2, Ь-ас) (Ч, Ч, Ч, 2, Ь-ас) (Ч, Ч, Ч, 2, Ь-ас) (Ч, Ч, Ч, 2, Ь-ас)
(Ч, Ч, Ч, 2, с-аЬ) (Ч, Н, Н, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, Ч, 2, с- аЬ)
(Ч, Н, Н, 2) (Ч, Ч, Ч, 2, а-Ьс) 5 (Ч, Н, Н, 2) (Ч, Н, Н, 2) (Ч, Н, Н, 2) (Ч, Н, Н, 2)
(Н, Ч, Н, 2) (Н, Н, Ч, 1) (Н, Ч, Н, 1) (Н, Ч, Н, 2) (Н, Ч, Н, 2) (Н, Ч, Н, 2) (Н, Ч, Н, 2)
(Н, Н, Ч, 2) (Н, Ч, Н, 1) (Н, Н, Ч, 1) (Н, Н, Ч, 2) (Н, Н, Ч, 2) (Н, Н, Ч, 2) (Н, Н, Ч, 2)
(Ч, Ч, Ч, 3) (Ч, Н, Н, 2) (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, Ч, 3) (Ч, Ч, Ч, 3) (Ч, Ч, Ч, 3) (Ч, Ч, Ч, 3)
может быть использован только, если в Ьу нет сборочных ячеек 3может быть использован только, если в С — Ьу нет сборочных ячеек
4
4нарушает введенные ограничения
5 никогда не приведет к оптимальному решению
Перемещение от к . Данное перемещение похоже на перемещение от к . Различают также шесть способов преодоления ребер в у'-ом проходе между вершинами ау и Ьу. Эквивалентные классы, получаемые при данном перемещении, приведены в табл. 5.
Чу - Чх 1 2 3 4 5 61
(0, 0, 0, 0)2 (Н, Н, 0, 1) (Ч, Ч, 0, 1) (Ч, 0, 0, 1) (0, 0, Ч, 1) (0, Ч, Ч, 2) (0, 0, 0, 0)
(0, 0, 0, 1)3 4 4 4 4 4 (0, 0, 0, 1)
(Ч, 0, 0, 1) (Н, Н, 0, 1) (Ч, Ч, 0, 1) (Ч, 0, 0, 1) (Ч, Ч, 0, 2) (Ч, Ч, 0, 2) (Ч, 0, 0, 1)
(0, Ч, 0, 1) (Н, Н, 0, 1) (Ч, Ч, 0, 1) (Ч, Ч, 0, 2) (0, Ч, 0, 1) (Ч, Ч, 0, 2) (0, Ч, 0, 1)
(0, 0, Ч, 1) (Н, Н, Ч, 2) (Ч, Ч, Ч, 2, с- аЬ) (Ч, 0, Ч, 2) (0, Ч, Ч, 2) (Ч, Ч, Ч, 3) (0, 0, Ч, 1)
(Ч, Ч, 0, 1) (Н, Н, 0, 1) 5 (Ч, Ч, 0, 1) (Ч, Ч, 0, 1) (Ч, Ч, 0, 1) (Ч, Ч, 0, 1)
(Ч, 0, Ч, 1) (Н, Н, Ч, 1) (Ч, Ч, Ч, 1) (Ч, 0, Ч, 1) (Ч, Ч, Ч, 2, Ь-ас) (Ч, Ч, Ч, 2, Ь-ас) (Ч, 0, Ч, 1)
(0, Ч, Ч, 1) (Н, Н, Ч, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 2, а-Ьс) (0, Ч, Ч, 1) (Ч, Ч, Ч, 2, а-Ьс) (0, Ч, Ч, 1)
(Ч, Ч, Ч, 1) (Н, Н, Ч, 1) 5 (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 1)
(Н, Н, 0, 1) (Ч, Ч, 0, 1) 5 (Н, Н, 0, 1) (Н, Н, 0, 1) (Н, Н, 0, 1) (Н, Н, 0, 1)
(Н, 0, Н, 1) (Ч, Н, Н, 1) (Н, Ч, Н, 1) (Н, 0, Н, 1) (Н, Ч, Н, 2) (Н, Ч, Н, 2) (Н, 0, Н, 1)
(0, Н, Н, 1) (Н, Ч, Н, 1) (Ч, Н, Н, 1) (Ч, Н, Н, 2) (0, Н, Н, 1) (Ч, Н, Н, 2) (0, Н, Н, 1)
(Ч, Н, Н, 1) (Н, Ч, Н, 1) 5 (Ч, Н, Н, 1) (Ч, Н, Н, 1) (Ч, Н, Н, 1) (Ч, Н, Н, 1)
(Н, Ч, Н, 1) (Ч, Н, Н, 1) 5 (Н, Ч, Н, 1) (Н, Ч, Н, 1) (Н, Ч, Н, 1) (Н, Ч, Н, 1)
(Н, Н, Ч, 1) (Ч, Ч, Ч, 1) 5 (Н, Н, Ч, 1) (Н, Н, Ч, 1) (Н, Н, Ч, 1) (Н, Н, Ч, 1)
(Ч, Ч, 0, 2) (Н, Н, 0, 1) (Ч, Ч, 0, 1) (Ч, Ч, 0, 2) (Ч, Ч, 0, 2) (Ч, Ч, 0, 2) (Ч, Ч, 0, 2)
(Ч, 0, Ч, 2) (Н, Н, Ч, 2) (Ч, Ч, Ч, 2, с- аЬ) (Ч, 0, Ч, 2) (Ч, Ч, Ч, 3) (Ч, Ч, Ч, 3) (Ч, 0, Ч, 2)
(0, Ч, Ч, 2) (Н, Н, Ч, 2) (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, Ч, 3) (0, Ч, Ч, 2) (Ч, Ч, Ч, 3) (0, Ч, Ч, 2)
(Ч, Ч, Ч, 2, а-Ьс) (Н, Н, Ч, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, Ч, 2, а-Ьс) (Ч, Ч, Ч, 2, а-Ьс)
(Ч, Ч, Ч, 2, Ь-ас) (Н, Н, Ч, 1) (Ч, Ч, Ч, 1) (Ч, Ч, Ч, 2, Ь-ас) (Ч, Ч, Ч, 2, Ь-ас) (Ч, Ч, Ч, 2, Ь-ас) (Ч, Ч, Ч, 2, Ь-ас)
(Ч, Ч, Ч, 2, с-аЬ) (Н, Н, Ч, 2) 5 (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, Ч, 2, с- аЬ)
(Ч, Н, Н, 2) (Н, Ч, Н, 1) (Ч, Н, Н, 1) (Ч, Н, Н, 2) (Ч, Н, Н, 2) (Ч, Н, Н, 2) (Ч, Н, Н, 2)
(Н, Ч, Н, 2) (Ч, Н, Н, 1) (Н, Ч, Н, 1) (Н, Ч, Н, 2) (Н, Ч, Н, 2) (Н, Ч, Н, 2) (Н, Ч, Н, 2)
(Н, Н, Ч, 2) (Ч, Ч, Ч, 2, с- аЬ) 5 (Н, Н, Ч, 2) (Н, Н, Ч, 2) (Н, Н, Ч, 2) (Н, Н, Ч, 2)
(Ч, Ч, Ч, 3) (Н, Н, Ч, 2) (Ч, Ч, Ч, 2, с- аЬ) (Ч, Ч, Ч, 3) (Ч, Ч, Ч, 3) (Ч, Ч, Ч, 3) (Ч, Ч, Ч, 3)
2может быть использован только, если в нет сборочных ячеек 3может быть использован только, если в С — Ь* у нет сборочных ячеек
4
нарушает введенные ограничения 5никогда не приведет к оптимальному решению
Перемещение от к . Данное перемещение устанавливает связь между '-ым и О' + 1 ) -ым проходами путем добавления одной из конфигураций, представленных на рис. 11 . Эквивалентные классы, получаемые при данном перемещении, приведены в табл. 6-7. Все комбинации, не попавшие в данные таблицы, нарушают накладываемые ограничения.
Рис. 11. Возможные конфигурации дуг при смене у'-го прохода на Ц + 1) -ый проход
Табл. 6. Эквивалентные классы, получаемые при добавлении перемещений из рис. 11 ко всем возможным конфигурациям
/ + х — / " 1 2 3 7 8 9
(Н, Н, 0, 1) (Н, Н, 0, 1) 1 1 1 1 2
(Н, 0, Н, 1) 1 (Н, 0, Н, 1) 1 1 2 1
(0, Н, Н, 1) 1 1 (0, Н, Н, 1) 2 1 1
(Ч, Н, Н, 1) 1 1 (0, Н, Н, 1) (Ч, Н, Н, 1) 1 1
(Н, Ч, Н, 1) 1 (Н, 0, Н, 1) 1 1 (Н, Ч, Н, 1) 1
(Н, Н, Ч, 1) (Н, Н, 0, 1) 1 1 1 1 (Н, Н, Ч, 1)
(Ч, Н, Н, 2) 1 1 1 (Ч, Н, Н, 2) 1 1
(Н, Ч, Н, 2) 1 1 1 1 (Н, Ч, Н, 2) 1
(Н, Н, Ч, 2) 1 1 1 1 1 (Н, Н, Ч, 2)
1нарушает введенные ограничения
2
2никогда не приведет к оптимальному решению
1 +х —► / ~ 4 5 6 10 11 12 13 14
(0, 0, 0, 0)1 2 2 2 2 2 2 2 (0, 0, 0, 0)
(0, 0, 0, 1)3 4 4 4 4 4 4 4 (0, 0, 0, 1)5
(Ч, 0, 0, 1) (Ч, 0, 0, 1) 4 4 2 2 4 2 (0, 0, 0, 1)5
(0, Ч, 0, 1) 4 (0, Ч, 0, 1) 4 2 4 2 2 (0, 0, 0, 1)5
(0, 0, Ч, 1) 4 4 (0, 0, Ч, 1) 4 2 2 2 (0, 0, 0, 1)5
(Ч, Ч, 0, 1) (Ч, 0, 0, 1) (0, Ч, 0, 1) 4 (Ч, Ч, 0, 1) 2 2 2 (0, 0, 0, 1)5
(Ч, 0, Ч, 1) (Ч, 0, 0, 1) 4 (0, 0, Ч, 1) 2 (Ч, 0, Ч, 1) 2 2 (0, 0, 0, 1)5
(0, Ч, Ч, 1) 4 (0, Ч, 0, 1) (0, 0, Ч, 1) 2 2 (0, Ч, Ч, 1) 2 (0, 0, 0, 1)5
(Ч, Ч, Ч, 1) (Ч, 0, 0, (0, Ч, 0, (0, 0, Ч, (Ч, Ч, 0, (Ч, 0, Ч, (0, Ч, Ч, (Ч, Ч, Ч, 1) (0, 0, 0,
1) 1) 1) 1) 1) 1) 1)5
(Ч, Ч, 0, 2) 4 4 4 (Ч, Ч, 0, 2) 4 4 2 4
(Ч, 0, Ч, 2) 4 4 4 4 (Ч, 0, Ч, 2) 4 2 4
(0, Ч, Ч, 2) 4 4 4 4 4 (0, Ч, Ч, 2) 2 4
(Ч, Ч, Ч, 2, a- 4 4 4 (Ч, Ч, 0, (Ч, 0, Ч, 4 (Ч, Ч, Ч, 2, 4
bc) 2) 2) a-bc)
(Ч, Ч, Ч, 2, b- 4 4 4 (Ч, Ч, 0, 4 (0, Ч, Ч, (Ч, Ч, Ч, 2, 4
ac) 2) 2) b-ac)
(Ч, Ч, Ч, 2, c- 4 4 4 4 (Ч, 0, Ч, (0, Ч, Ч, (Ч, Ч, Ч, 2, c- 4
ab) 2) 2) ab)
(Ч, Ч, Ч, 3) 4 4 4 4 4 4 (Ч, Ч, Ч, 3) 4
1 может быть использован только, если в Цх нет сборочных ячеек
2
нарушает введенные ограничения
3может быть использован только, если в G — V-х нет сборочных ячеек
4
никогда не приведет к оптимальному решению 5возможно только, если в G — V-х нет сборочных ячеек
Стоимость. Стоимость (cost) каждого перемещения равна сумме длин ребер, включаемых в перемещение.
3.3. Применение расширенного алгоритма Рэтлиффа-Розенталя
Расширенный алгоритм Рэтлиффа-Розенталя может быть применен на складах с различной планировкой. Очевидно, что средний поперечный проход не обязательно должен находиться точно в середине, но может быть расположен между ближним и дальним поперечными проходами. Более того, данный алгоритм может быть применен на складах с одной или двумя возможностями для смены проходов, путем установления соответствующих расстояний между проходами в бесконечность. Алгоритм обладает линейной сложностью в зависимости от числа проходов и числа строк заказа (числа артикулов, ячейки хранения которых необходимо посетить).
3.4. Недостатки точных оптимальных методов
Существуют следующие недостатки точных оптимальных методов маршрутизации.
Во-первых, маршрут, получаемый благодаря использованию данных методов, может представляться сборщику заказов нелогичным, или неоптимальным, что в свою очередь может привести к отклонениям от заданного маршрута [5]. Авторами работ [6-7] данный феномен исследуется на реально существующих складах нидерландских компаний De Bijenkorf и Ankor.
Во-вторых, точные методы зависят от таких параметров, как расположение базы, ее фиксированности, числа блоков и формы склада (прямоугольная или нет). Точные методы могут быть использованы только для стандартных планировок (т.е., на прямоугольных одно- или многоблочных складах). Использование точных методов для многоблочных складов нецелесообразно ввиду огромного числа возможных эквивалентных классов и их комбинаций.
В-третьих, при использовании точных методов необходимо рассчитывать маршруты сборщиков для каждого заказа, что может сильно осложнить и замедлить работу всей системы управления складом.
В-четвертых, точные методы не принимают во внимание загруженность проходов, в то время как использование эвристических методов маршрутизации позволяет в некоторых случаях избежать чрезмерной загруженности.
Наконец, точные методы не учитывают тот факт, что на практике смена прохода или направления движения внутри прохода также влияют на затраты по времени. Использование эвристических методов маршрутизации позволяет снизить число смен проходов.
По этим причинам, обычно используются простые или комбинированные эвристические методы маршрутизации.
4. Эвристические методы маршрутизации
Конфигурация склада, на которой рассматриваются описываемые далее эвристические методы представлена на рис. 12.
Рис. 12. Конфигурация склада с ячейками типового заказа (заштрихованные прямоугольники)
Прямоугольный склад состоит из шести сборочных проходов. Склад разделен на три блока, каждый состоит из шести под-проходов. Под-проход (sub-aisle) — это часть сборочного прохода внутри одного блока. Дальним блоком считается блок, наиболее удаленный от базы, которая располагается в ближней стороне склада, рядом с первым (слева) проходом. Заметим, что расположение базы также может оказывать влияние на среднее время сборки заказа. В работе [8] рассматривается влияние расположения базы, а также размера заказа на среднее время сборочного процесса. Показывается, что разница между расположением базы по центру ближнего прохода и расположением вблизи первого прохода меньше 1%. Также, на складе присутствует три поперечных прохода, один — в ближней стороне, один — в дальней, один — в середине. Поперечные проходы не содержат сборочных ячеек и используются только для перемещения от одного
сборочного прохода к другому. Для каждого блока существуют ближний и дальный (по отношению к базе) поперечные проходы, при этом дальний проход n-го блока является также ближним для -го блока. Число поперечных проходов определяется числом
блоков плюс один и равно четырем.
Сборщики заказов могут пересекать проходы, двигаясь в любом направлении, а также могут изменять направление движения внутри прохода. Допускается, что проходы достаточно узки, чтобы сборщик заказов мог собирать товары с обеих сторон прохода без дополнительного изменения своего положения. Каждый заказ состоит из определенного числа товаров, случайным образом распределенных по складским ячейкам. Подразумевается, что заказ может быть собран полностью за один проход. Смена прохода возможна с использованием любого из поперечных проходов. Сборочные листы получаются на базе, также как и собранный заказ должен быть доставлен на базу.
Для моделирования конфигурации склада, распределения типовых заказов и маршрутов, получаемых с использованием различных методов маршрутизации, используется программа «Interactive Warehouse» [9].
4.1. ^-образный метод
Наиболее простой эвристикой является S-образный (S-shaped) метод маршрутизации (еще одно встречающееся в литературе названием данного метода — метод пересечений, traversal). Он основан на том, что любой проход, содержащий хотя бы одну сборочную ячейку должен быть пересечен полностью от ближнего (дальнего) поперечного прохода до дальнего (ближнего) поперечного прохода. Пример применения S-образной эвристики на типовом заказе представлен на рис. 13. Данной эвристике посвящены работы [3-4, 6-8, 10-19].
Алгоритм S-образной эвристики состоит из следующих шагов [19].
1) Определяем крайний левый (далее, КЛ) проход, содержащий как минимум одну сборочную ячейку, и наиболее удаленный от базы блок (далее, НУБ), содержащий как минимум одну сборочную ячейку.
2) Маршрут начинается из базы по направлению к ближнему концу КЛ прохода.
3) Пересекаем КЛ проход до ближнего поперечного прохода НУБ, попутно собирая товары из пересекаемых сборочных ячеек.
4) Идем направо по ближнему поперечному проходу НУБ до первого под-прохода с непосещенными сборочными ячейками (далее, ПНСЯ). Если это единственный ПНСЯ в данном блоке, то собираем все необходимые товары и возвращаемся на ближний поперечный проход данного блока, не меняя под-проход. Если в данном блоке ПНСЯ более одного, то полностью пересекаем под-проход, не меняя направления движения.
Рис. 13. Пример маршрута, полученного с использованием ^-образной эвристики маршрутизации
5) На данном шаге, сборщик заказов находится на дальнем поперечном проходе блока. Возможны следующие варианты.
а) Если в текущем блоке еще остаются ПНСЯ. Определяем наиболее удаленный от текущей позиции ПНСЯ текущего блока. Идем в ближайший из этих двух проходов. Полностью пересекаем данный под-проход и идем на шаг 6.
б) Если в текущем блоке больше нет ПНСЯ. В данном случае, продолжаем движение в текущем сборочном проходе до следующего поперечного прохода и идем на шаг 8.
6) Если в текущем блоке остаются ПНСЯ, то проходим по поперечному проходу до следующего ПНСЯ и полностью пересекаем данный под-проход. Повторяем данный шаг до тех пор, пока а текущем блоке не останется только один ПНСЯ.
7) Идем на последний в данном блоке ПНСЯ. Собираем необходимый товар из последнего ПНСЯ и идем на ближний под-проход текущего блока. Данный шаг может привести к двум различным способам прохождения под-прохода: а) пересечение под-прохода целиком без смены направления движения внутри под-прохода, или б) заход в под-проход и выход из него с использованием одного поперечного прохода со сменой направления движения внутри под-прохода.
8) Если ближний к базе блок еще не был пройден, то возвращаемся на шаг 5.
9) Возвращаемся на базу.
4.2. Метод с возвратами
Еще одним простым эвристическим методом маршрутизации является метод с возвратами (return), при использовании которого сборщик заказов заходит и выходит из сборочных проходов через один поперечный проход, пересекая сборочный проход целиком только в случае перехода из одного блока в другой, причем это возможно сделать только либо через КЛ ПНСЯ, либо через крайний правый (далее, КП) ПНСЯ. Данный эвристический метод маршрутизации рассматривается в работах [8, 11, 13-14, 20-21]. Пример применения эвристики с возвратами на типовом заказе представлен на рис. 14.
Рис. 14. Пример маршрута, полученного с использованием эвристики маршрутизации с возвратами
Алгоритм эвристики с возвратами состоит из следующих шагов.
1) Определяем КЛ ПНСЯ и НУБ, содержащий как минимум одну сборочную ячейку.
2) Маршрут начинается из базы по направлению к ближнему концу КЛ ПНСЯ.
3) Пересекаем КЛ ПНСЯ до ближнего поперечного прохода НУБ, попутно собирая товары из пересекаемых сборочных ячеек.
4) Идем направо по ближнему поперечному проходу НУБ до первого ПНСЯ. Собираем все необходимые товары в ПНСЯ и возвращаемся на ближний поперечный проход данного блока, не меняя под-проход.
5) На данном шаге, сборщик заказов находится на ближнем поперечном проходе блока. Возможны следующие два варианта.
а) Если в текущем блоке еще остаются ПНСЯ. Определяем наиболее удаленный от текущей позиции ПНСЯ текущего блока. Идем на шаг 6.
б) Если в текущем блоке больше нет ПНСЯ. В данном случае, определяем наиболее удаленный от текущей позиции ПНСЯ следующего блока, идем по направлению к ближнему из них, пересекаем его полностью, попутно собрав в нем необходимые артикулы, идем на шаг 7.
6) Следуем наиболее коротким путем по ближнему поперечному проходу, начиная с текущей позиции, заходя во все еще ПНСЯ, собираем все необходимые товары и возвращаемся на ближний поперечный проход блока. Повторяем данный шаг для всех ПНСЯ текущего блока.
7) Если ближний к базе блок еще не был пройден, то возвращаемся на шаг 5.
8) Возвращаемся на базу.
4.3. Серединный метод
Серединный (т1ёрвШ) метод маршрутизации фактически разбивает каждый блок склада на две секции. Сборочные ячейки, относящиеся к ближней (к базе) секции блока, посещаются через ближний поперечный проход блока; сборочные ячейки дальней секции — через дальний поперечный проход. Сборщик заказов пересекает проход целиком только для перехода из одного блока в другой, при этом это возможно сделать только через КЛ ПНСЯ, либо через КП ПНСЯ. Данный эвристический метод маршрутизации представлен в работах [8, 11, 20-21]. Пример применения серединной эвристики на типовом заказе представлен на рис. 15.
Алгоритм серединной эвристики состоит из следующих шагов.
1) Определяем КЛ ПНСЯ и НУБ, содержащий как минимум одну сборочную ячейку.
2) Маршрут начинается из базы по направлению к ближнему концу КЛ ПНСЯ.
3) Пересекаем КЛ ПНСЯ до ближнего поперечного прохода НУБ, попутно собирая товары из пересекаемых сборочных ячеек.
4) Идем направо по ближнему поперечному проходу НУБ до первого ПНСЯ. Если это единственный ПНСЯ в данном блоке, то собираем все необходимые товары и возвращаемся на ближний поперечный проход данного блока, не меняя под-проход. Если в данном блоке более одного ПНСЯ, то полностью пересекаем под-проход.
5) На данном шаге, сборщик заказов находится на дальнем поперечном проходе блока. Возможны следующие два варианта.
а) Если в текущем блоке еще остаются ПНСЯ. Определяем наиболее удаленный от текущей позиции ПНСЯ текущего блока. Идем на шаг 6.
б) Если в текущем блоке больше нет ПНСЯ. В данном случае, продолжаем движение в текущем сборочном проходе до следующего поперечного прохода и идем на шаг 9.
6) Следуем наиболее коротким путем по дальнему поперечному проходу, начиная с текущей позиции, заходя во все ПНСЯ на расстояние, не превышающее половины длины под-прохода, собираем все необходимые товары, возвращаемся на дальний поперечный проход текущего блока.
Рис. 15. Пример маршрута, полученного с использованием серединной эвристики маршрутизации
7) Полностью пересекаем последний под-проход текущего блока до ближнего поперечного прохода данного блока.
8) На данном шаге, сборщик заказов находится на ближнем поперечном проходе блока. Возможны следующие два варианта.
а) Если в текущем блоке еще остаются ПНСЯ. Определяем наиболее удаленный от текущей позиции ПНСЯ текущего блока. Идем на шаг 9.
б) Если в текущем блоке больше нет ПНСЯ. В данном случае, определяем наиболее удаленный от текущей позиции ПНСЯ следующего блока, идем по направлению к ближнему из них, переходим на шаг 10.
9) Следуем наиболее коротким путем по ближнему поперечному проходу, начиная с текущей позиции, заходя во все ПНСЯ на расстояние, не превышающее половины длины под-прохода, собираем все необходимые товары, возвращаемся на ближний поперечный проход текущего блока.
10) Если ближний к базе блок еще не был пройден, то возвращаемся на шаг 5, принимая во внимание, что ближний поперечный проход п-го блока является дальним поперечным проходом -го блока.
11) Возвращаемся на базу.
4.4. Метод с захождением на наибольший интервал
Метод с захождением на наибольший интервал (largest gap) схож со серединным методом за исключением того, что сборщик заказов заходит в под-проход со сборочными ячейками не на половину длины под-прохода, а на длину наибольшего интервала между: а) смежными сборочными ячейками данного под-прохода; б) наиболее удаленной сборочной ячейки и дальним поперечным проходом; в) наименее удаленной сборочной ячейкой и ближним поперечным проходом. Если наибольший интервал приходится на расстояние между двумя смежными сборочными ячейками, то сборщик заказов заходит в под-проход дважды — один раз через ближний поперечный проход, один раз через дальний поперечный проход. Таким образом, наибольший интервал — это та часть под-прохода, которая остается непосещенной сборщиком заказов. Дальний поперечный проход блока может быть достигнут только через КЛ или КП ПНСЯ. Данный эвристический метод маршрутизации представлен в работах [8, 14, 19-20, 22]. Пример применения эвристики с захождением на наибольший интервал на типовом заказе представлен на рис. 16.
Рис. 16. Пример маршрута, полученного с использованием эвристики маршрутизации с захождением на
наибольший интервал
Алгоритм серединной эвристики состоит из следующих шагов. 1) Определяем КЛ ПНСЯ и НУБ, содержащий как минимум одну сборочную ячейку.
2) Маршрут начинается из базы по направлению к ближнему концу КЛ ПНСЯ.
3) Пересекаем КЛ ПНСЯ до ближнего поперечного прохода НУБ, попутно собирая товары из пересекаемых сборочных ячеек.
4) Идем направо по ближнему поперечному проходу НУБ до первого ПНСЯ. Если это единственный ПНСЯ в данном блоке, то собираем все необходимые товары и возвращаемся на ближний поперечный проход данного блока, не меняя под-проход. Если в данном блоке более одного ПНСЯ, то полностью пересекаем под-проход.
5) На данном шаге, сборщик заказов находится на дальнем поперечном проходе блока. Возможны следующие два варианта.
а) Если в текущем блоке еще остаются ПНСЯ. Определяем наиболее удаленный от текущей позиции ПНСЯ текущего блока. Идем на шаг 6.
б) Если в текущем блоке больше нет ПНСЯ. В данном случае, продолжаем движение в текущем сборочном проходе до следующего поперечного прохода и идем на шаг 9.
6) Следуем наиболее коротким путем по дальнему поперечному проходу, начиная с текущей позиции, заходя во все ПНСЯ на расстояние, не превышающее наибольший интервал для под-прохода, собираем все необходимые товары, возвращаемся на дальний поперечный проход текущего блока.
7) Полностью пересекаем последний под-проход текущего блока до ближнего поперечного прохода данного блока.
8) На данном шаге, сборщик заказов находится на ближнем поперечном проходе блока. Возможны следующие два варианта.
а) Если в текущем блоке еще остаются ПНСЯ. Определяем наиболее удаленный от текущей позиции ПНСЯ текущего блока. Идем на шаг 9.
б) Если в текущем блоке больше нет ПНСЯ. В данном случае, определяем наиболее удаленный от текущей позиции ПНСЯ следующего блока, идем по направлению к ближнему из них, переходим на шаг 10.
9) Следуем наиболее коротким путем по ближнему поперечному проходу, начиная с текущей позиции, заходя во все ПНСЯ на расстояние, не превышающее наибольший интервал для под-прохода, собираем все необходимые товары, возвращаемся на ближний поперечный проход текущего блока.
10) Если ближний к базе блок еще не был пройден, то возвращаемся на шаг 5, принимая во внимание, что ближний поперечный проход п-го блока является дальним поперечным проходом -го блока.
11) Возвращаемся на базу.
4.5. Последовательный метод
Последовательный (или, метод «проход за проходом», aisle-by-aisle) эвристический метод маршрутизации во многоблочных складах представлен в работе [23]. Сборочный маршрут, получающийся в результате использования данной эвристики, посещает каждый
сборочный проход только один раз. Таким образом, вначале собираются все необходимые артикулы из первого прохода, затем — из второго и т.д. Для определения поперечного прохода для перехода между сборочными проходами используется динамическое программирование. Пример применения последовательной эвристики на типовом заказе представлен на рис. 17.
Рис. 17. Пример маршрута, полученного с использованием последовательной эвристики маршрутизации
Данный последовательный метод основывается на работах [24-25]. Он позволяет, в частности, сузить ширину поперечных проходов, т.к. движение по ним будет осуществляться только в одну сторону.
Алгоритм последовательной эвристики состоит из следующих шагов.
1) Определяем КЛ ПНСЯ и НУБ, содержащий как минимум одну сборочную ячейку.
2) Маршрут начинается из базы по направлению к ближнему концу КЛ ПНСЯ.
3) Пересекаем КЛ ПНСЯ до ближнего поперечного прохода НУБ, попутно собирая товары из пересекаемых сборочных ячеек.
4) Если существуют ПНСЯ, то выбираем поперечный проход для перехода на следующий сборочный проход, иначе идем на шаг 5. Для текущего сборочного прохода m рассчитываем расстояние Ст ( /,_/') , которое требуется пройти, стартовав из /-го поперечного прохода (на первой итерации, из ближайшего к базе ближнего
поперечного прохода), собрав все необходимые артикулы в первом проходе и перейдя на следующий сборочный проход через j-ый поперечный проход, следующим образом:
— Bim(i,}) + |i — }\{L + Ä) + B2m(i, })■
Здесь Blm (/,_/') — длина плеча для обхода всех сборочных ячеек прохода m, находящихся дальше поперечного прохода min ( /,_/') ; В2т ( ¿<У) — длина плеча для обхода всех сборочных ячеек прохода m, находящихся ближе поперечного прохода m ах ( i ,_/' ) ; L — длина блока склада (без учета поперечных проходов); А — ширина поперечных проходов.
Величина В l т ( /,_/' ) определяется по формуле
ßim(U) - I 2
min (iL, Д) - + Л 0.5 +
0, если Кт = 0 или > min(iL,)L) ; min (iL, Д) — Хй
в противном случае.
Здесь — число сборочных ячеек прохода m; = тт п с(Хт ( ;) } — продольная координата наиболее удаленной (от базы) сборочной ячейки прохода т; Хт ( ;) — продольная координата сборочной ячейки I прохода m ( 0 < Хт ( Г) < Г) , т = 1, 2 ,...,М,
; 1 , 2 , . ■ ■ , ^т •
Величина В 2 т ( £,_/' ) определяется по формуле
0, если Кт = 0 или ^ < max(iL,jL) ;
B2m(.Uj) -
2
таx(iL,)L) - + Л ( 0.5 +
^ — та x(iL,jL)
в противном случае.
Здесь = m ах t{Xm ( t) } — продольная координата ближайшей (к базе) сборочной ячейки прохода т. Переходим на следующий проход, используя такой поперечный проход, для которого это расстояние минимально. Выполняем данный шаг, пока не останется ПНСЯ.
5) Возвращаемся на базу.
4.6. Составной метод
Составной (composite) метод предложен в работе [26]. Он сочетает в себе преимущества ^-образной эвристики и эвристики с возвратами. Метод минимизирует преодолеваемое расстояние между наиболее удаленными сборочными ячейками двух смежных ПНСЯ и определяет наилучший способ преодоления прохода — пересечение или заход с возвратом. Пример применения составной эвристики на типовом заказе представлен на рис. 18.
Алгоритм составной эвристики состоит из следующих шагов.
1) Определяем КЛ ПНСЯ и НУБ, содержащий как минимум одну сборочную ячейку.
2) Маршрут начинается из базы по направлению к ближнему концу КЛ ПНСЯ.
3) Пересекаем КЛ ПНСЯ до ближнего поперечного прохода НУБ, попутно собирая товары из пересекаемых сборочных ячеек.
4) Идем направо по ближнему поперечному проходу НУБ до первого ПНСЯ. Если это единственный ПНСЯ в данном блоке, то собираем все необходимые товары и возвращаемся на ближний поперечный проход данного блока, не меняя под-проход, переходим на шаг 6.
5) Если в данном блоке более одного ПНСЯ, то вычисляем расстояние между наиболее удаленными ячейками текущего ПНСЯ и ближайшего смежного ПНСЯ текущего блока при пересечении текущего прохода целиком и при заходе в него с возвратом. Выбираем способ, ведущий к наименьшему преодолеваемому расстоянию. Повторяем данный шаг до тех пор, пока не попадем в последний проход со сборочными ячейками.
Рис. 18. Пример маршрута, полученного с использованием составной эвристики маршрутизации
6) Определяем ближайший ПНСЯ следующего блока. Если это единственный ПНСЯ в данном блоке, то собираем все необходимые артикулы, пересекаем его целиком и вновь выполняем данный шаг.
7) Если ближний к базе блок еще не был пройден, то возвращаемся на шаг 5.
8) Возвращаемся на базу.
4.7. Комбинированный метод
Комбинированный (combined) метод схож с составным методом, однако решение, пересекать проход целиком или сделать заход с возвратом без изменения поперечного прохода принимается на основе динамического программирования [4, 19]. Каждый ПНСЯ посещается только один раз. Пример применения комбинированной эвристики на типовом заказе представлен на рис. 19.
Рис. 19. Пример маршрута, полученного с использованием комбинированной эвристики маршрутизации
Введем следующие обозначения: к — число блоков; п — число сборочных проходов;
а ¿у — координата дальнего (от базы) конца у'-го под-прохода /-го блока (/ = 1,.. .Д;
);
— координата ближнего (к базе) конца '-го под-прохода /-го блока ( ;
);
ё — база.
Заметим, что для / = 1,2 ,. ..,/с —1 справедливо равенство Ъ¿у = а ^+^у, т.к. мы допускаем, что сборщик заказов перемещается по середине поперечных проходов.
Расстояние между концами под-проходов и серединой поперечных проходов включается в расстояние под-проходов. Для каждого блока используется метод динамического программирования.
Метод динамического программирования используется для маршрутизации сборщиков заказов внутри /-го блока (/ = 1,. ..Д). Маршрут начинается с КЛ ПНСЯ I и заканчивается в КП ПНСЯ г. Пусть ¿у определяет ЧМП, с помощью которого можно обойти все сборочные ячейки начиная с под-прохода I до под-прохода у'. Будем различать два вида ЧМП:
— ЧМП, заканчивающийся в дальнем поперечном проходе ';
— ЧМП, заканчивающийся в ближнем поперечном проходе '.
Будем различать два способа перехода из (у- 1) -го под-прохода в у'-ый под-проход (рис. 20):
^ — переход через дальний поперечный проход блока;
— переход через ближний поперечный проход блока.
Рис. 20. Перемещения, используемые в методе динамического программирования
Будем различать способы сборки всех артикулов из '-го под-прохода. Для этого определим четыре вида перемещений (рис. 20):
^ — полное перемещение через под-проход;
— без захождения в под-проход; tз — вхождение в под-проход и выход из него осуществляется через ближний поперечный проход блока;
t4 — вхождение в под-проход и выход из него осуществляется через дальний поперечный проход блока.
Очевидно, что перемещение t2 применяется только в случае отсутствия в данном под-проходе сборочных ячеек.
С помощью Ly + tw определим, что ЧМП Ly дополнен перемещением tw (w = 1, 2, 3 ,4, а, Ъ). Функция с( • ) возвращает время передвижения, соответствующее аргументу функции, например, с (Ly + tx) возвращает время, необходимое для прохода по частичному маршруту Ly, плюс время, необходимое для совершения перемещения t Заметим, что перемещения содержат информацию только о том, каким образом происходит посещения под-проходов или выход из них. Точный путь внутри под-прохода, и, таким образом, соответствующее время передвижения, зависит от расположения сборочных ячеек внутри рассматриваемого под-прохода.
С использованием потенциальных состояний, возможных перемещений между состояниями и стоимостей (времени передвижения) данных перемещений, можно описать метод динамического программирования. Данный метод будет определять ЧМП передвижения через один блок.
Рассмотрим i-ый блок. Если i-ый блок — НУБ, содержащий хотя бы один ПНСЯ, то начинаем с двух ЧМП:
- L", который начинается в узле Ъ г, заканчивается в узле ац и состоит из перемещения t
- , который начинается и заканчивается в узле , и состоит из перемещения .
В противном случае, начинаем с двух ЧМП:
- L", который начинается и заканчивается в узле а ¿ г и состоит из перемещения t4;
- , который начинается в узле , заканчивается в узле , и состоит из перемещения .
Для каждого последующего j-го под-прохода ( I < j < г) определим Ly и Ly следующим образом. Если j-ый под-проход — ПНСЯ, то
í¿y-i + ta + Í4- если c(¿y_1 + ta + t4) < c(Lj_x + tb + t±),
+ tb + tv в противном случае,
|Ly_x + tb + t3, если c(Lj_x + tb + t3) < + ta + t±),
+ ta + tv в противном случае.
Если j-ый под-проход — не ПНСЯ, то
¡a _ ¡а , t j — ' а*
ib _ jb ,t
L,j — L*j-\ T ib.
Для последнего под-прохода блока (под-прохода r) необходимо вычислить только величину по следующей формуле:
,ь _ {^г-1 + Ь + если с{рг-1 + Ь + < с(Ьг-1 + + ^1)'
1 - I л
+ £а + в противном случае.
Получившийся в результате ЧМП будет использован для формирования полного сборочного маршрута. На данном шаге не требуется, т.к. по завершении сборки всех элементов в блоке, необходимо перейти на ближайший (к базе) поперечный проход блока для возможности продолжения маршрута на следующем блоке. Алгоритм построения маршрута.
1) Определяем КЛ ПНСЯ и НУБ, содержащий хотя бы одну сборочную ячейку.
2) Маршрут начинается из базы по направлению к началу КЛ ПНСЯ.
3) Пересекаем КЛ ПНСЯ до ближнего поперечного прохода НУБ (блок / т 1 п ), попутно собирая товары из посещаемых сборочных ячеек.
4) Устанавливаем / = / т ^ п.
5) Определяем, содержит ли /-ый блок ПНСЯ, которые не были посещены на шаге 3.
а) Если в /-ом блоке нет ни одного ПНСЯ, то пересекаем ближайший под-проход /го блока до следующего блока. Идем на шаг 7.
б) Если в /-ом блоке есть ПНСЯ, то определяем КЛ ПНСЯ и КП ПНСЯ (под-проход I и под-проход г, соответственно), исключая все под-проходы, которые уже были посещены на шаге 3. Из текущей позиции переходим в ближайший из данных двух под-проходов ( ).
6) Применяем для /-го блока описанный выше метод динамического программирования. Если на шаге 5 величина ут 1 п = /, то добавляем получившийся ЧМП к маршруту сборщика заказов. Если _/'т 1 п = г, то «переворачиваем» получившийся ЧМП (таким образом, чтобы маршрут начинался в под-проходе г и завершался в под-проходе I). Добавляем «перевернутый» ЧМП к маршруту сборщика заказов. «Переворачивание» маршрута означает, что сборщик заказов будет посещать под-проходы справа налево, в то время как вычисления были произведены слева направо.
7) Когда был вычислен к-ый (ближайший к базе) блок, сборщик заказов возвращается на базу. В противном случае, увеличиваем / на единицу и возвращаемся к шагу 5.
4.8. Модифицированный комбинированный метод
Комбинированный метод, рассмотренный в предыдущем разделе, возможно модифицировать следующим образом [19] и получить модифицированный комбинированный метод (еотЫпвё+).
Рис. 21. Пример маршрута, полученного с использованием модифицированной комбинированной эвристики
маршрутизации
Во-первых, рассмотрим маршрут в ближайшем к базе блоке. Начальной точкой маршрута в данном блоке является позиция, где сборщик заказов закончил свой маршрут в предыдущем блоке. Это может привести к маршруту, в котором проходы пересекаются слева направо, что в свою очередь приводит к тому, что сборщик заказов заканчивает свой маршрут где-то в правой части ближнего поперечного прохода. После чего, для возвращения на базу сборщику необходимо преодолеть значительную часть ближнего поперечного прохода. Этого можно избежать, заставив сборщика заказов посещать под-проходы ближайшего к базе блока справа налево. Легко видеть, что данные изменения в эвристике либо приведут к сокращению времени передвижения, либо не повлияют на него.
Во-вторых, рассмотрим маршрут сборщика от базы к НУБ. Данный маршрут проходит через КЛ ПНСЯ. Однако, можно предположить ситуацию, когда целесообразнее будет отклониться от данного маршрута. На примере использования данной эвристики (рис. 21) время передвижения было сокращено с помощью прохождения к НУБ не через первый сборочный проход. Возможно задать такой маршрут, при котором сборщик заказов будет собирать элементы из х левых проходов на пути к НУБ. Метод динамического программирования применяется для левых х под-проходов каждого блока
на пути к НУБ, и для правых (п — х) под-проходов каждого блока на обратном пути. В итоге, мы получаем маршрут, гарантированно короче, или такой же длины, что и маршрут, полученный комбинированной эвристикой.
Заключение
Задача маршрутизации сборщиков заказов на складе является частным случаем задачи коммивояжера. Существующие точные алгоритмы получения оптимальных маршрутов сложны в применении, вследствие чего широко используются эвристические методы маршрутизации. Алгоритмы восьми эвристических методов маршрутизации сборщиков заказов приведены в данной статье. В продолжении цикла статей «Процесс комплектования заказов на складе» будет проведено сравнение эффективности приведенных эвристических методов, а также их отклонение от оптимальных результатов.
Список литературы
1. Коробков Е.В. Процесс комплектования заказов на складе. Обзор // Наука и образование. МГТУ им. Н.Э. Баумана. Электрон. журн. 2015. № 3. С. 153-183. DOI: 10.7463/0315.0763161
2. Lawler E.L., Lenstra J.K., Kan A.R., Shmoys D.B. The Travelling Salesman Problem: A Guided Tour of Combinational Optimization. Vol. 3. New York, NY: Wiley, 1985. 476 p.
3. Ratliff H.D., Rosenthal A.S. Order-Picking in a Rectangular Warehouse: A Solvable Case of the Traveling Salesman Problem // Operations Research. 1983. Vol. 31, no. 3. P. 507-521. DOI: 10.1287/opre.31.3.507
4. Roodbergen K.J., de Koster R. Routing Order Pickers in a Warehouse with a Middle Aisle // European Journal of Operational Research. 2001. Vol. 133, no. 1. P. 32-43. DOI: 10.1016/S0377-2217(00)00177-6
5. Gademann N., Velde S. Order Batching to Minimize Total Travel Time in a Parallel-Aisle Warehouse // IIE Transactions. 2005. Vol. 37, no. 1. P. 63-75. DOI: 10.1080/07408170590516917
6. De Koster R., Roodbergen K.J., van Voorden R. Reduction of Walking Time in the Distribution Center of De Bijenkorf // In: New Trends in Distribution Logistics / ed. by M.G. Speranza. Berlin: Springer-Verlag, 2000. P. 215-234. DOI: 10.1007/978-3-642-58568-5 11
7. Dekker R., de Koster R., Roodbergen K.J., van Kalleveen H. Improving Order-Picking Response Time at Ankor's Warehouse // Interface. 2004. Vol. 34, no. 4. P. 303-313. DOI: 10.1287/inte.1040.0083
8. Petersen II C.G., Schmenner R.W. An Evaluation of Routing and Volume-Based Storage Policies in an Order Picking Operation // Decision Sciences. 1999. Vol. 30, no. 2. P. 481501. DOI: 10.1111/j.1540-5915.1999.tb01619.x
9. Interactive Warehouse: web-site. Available at:
http://www.roodbergen.com/warehouse/index.php , accessed January 2015.
10. Petersen II C.G., Aase G. A Comparison of Picking, Storage, and Routing Policies in Manual Order Picking // International Journal of Production Economics. 2004. Vol. 92, no. 1. P. 11-19. DOI: 10.1016/j.ijpe.2003.09.006
11. De Koster R., Le-Duc T., Roodbergen K.J. Design and Control of Warehouse Order Picking: A Literature Review // European Journal of Operational Research. 2007. Vol. 182, no. 2. P. 481-501. DOI: 10.1016/j.ejor.2006.07.009
12. Gu J., Goetschalckx M., McGinnis L.F. Research on Warehouse Design and Performance Evaluation: A Comprehensive Review // European Journal of Operational Research. 2010. Vol. 203, no. 3. P. 539-549. DOI: 10.1016/j.ejor.2009.07.031
13. Le-Duc T., De Koster R. Travel Distance Estimation and Storage Zone Optimization in a 2-Block Class-Based Strategy Warehouse // International Journal of Production Research. 2005. Vol. 43, no. 17. P. 3561-3581. DOI: 10.1080/00207540500142894
14. Petersen II C.G. The Impact of Routing and Storage Policies on Warehouse Efficiency // International Journal of Operations and Production Management. 1999. Vol. 19, no. 10. P. 1053-1064. DOI: 10.1108/01443579910287073
15. Petersen II C.G., Aase G.R., Heiser D.R. Improving Order-Picking Performance through the Implementation of Class-Based Storage // International Journal of Physical Distribution and Logistics Management. 2004. Vol. 34, no. 7. P. 532-544. DOI: 10.1108/09600030410552230
16. De Koster R., van der Poort E.S., Wolters M. Efficient Orderbatching Methods in Warehouse // International Journal of Production Research. 1999. Vol. 37, no. 7. P. 1479-1504. DOI: 10.1080/002075499191094
17. Le-Duc T., De Koster R. Travel Time Estimation and Order Batching in a 2-Block Warehouse // European Journal of Operational Research. 2007. Vol. 176, no. 1. P. 374-388. DOI: 10.1016/j.ejor.2005.03.052
18. De Koster R., van der Poort E. Routing Orderpickers in a Warehouse: A Comparison between Optimal and Heuristic Solutions // IIE Transactions. 1998. Vol. 30, no. 5. P. 469-480. DOI: 10.1080/07408179808966487
19. Roodbergen K.J., de Koster R. Routing Methods for Warehouses with Multiple Cross Aisles // International Journal of Production Research. 2001. Vol. 39, no. 9. P. 1865-1883. DOI: 10.1080/00207540110028128
20. Hall R.W. Distance Approximations for Routing Manual Pickers in a Warehouse // IIE Transactions. 1993. Vol. 25, no. 4. P. 76-87. DOI: 10.1080/07408179308964306
21. Hwang H., Oh Y.H., Lee Y.K. An Evaluation of Routing Policies for Order-Picking Operations in Low-Level Picker-to-Part System // International Journal of Production Research. 2004. Vol. 42, no. 18. P. 3873-3889. DOI: 10.1080/00207540410001696339
22. Roodbergen K.J., Sharp G.P., Vis I.F. Designing the Layout Structure of Manual Order Picking Areas in Warehouses // IIE Transactions. 2008. Vol. 40, no. 11. P. 1032-1045. DOI: 10.1080/07408170802167639
23. Vaughan T.S. The Effect of Warehouse Cross Aisles on Order Picking Efficiency // International Journal of Production Research. 1999. Vol. 37, no. 4. P. 881-897. DOI: 10.1080/002075499191580
24. Jarvis J.M., McDowell E.D. Optimal Product Layout in an Order Picking Warehouse // IIE Transactions. 1991. Vol. 23, no. 1. P. 93-102. DOI: 10.1080/07408179108963844
25. Gray A.E., Karmarkar U.S., Seidmann A. Design and Operation of an Order-Consolidation Warehouse: Models and Application // European Journal of Operational Research. 1992. Vol. 58, no. 1. P. 14-36. DOI: 10.1016/0377-2217(92)90232-X
26. Petersen II C.G. An Evaluation of Order Picking Routeing Policies // International Journal of Operations and Production Management. 1997. Vol. 17, no. 11. P. 1098-1111. DOI: 10.1108/01443579710177860
DOI: 10.7463/0415.0763691
Received:
03.04.2015
Science^Education
of the Bauman MSTU
ISS N 1994-0408 © Bauman Moscow State Technical Unversity
Warehouse order-picking process. Order-picker
routing problem
1 *
E.V. Korobkov1,
euaitorobkov @ amail.com 1Bauman Moscow State Technical University, Moscow, Russia
Keywords: warehouse, order-picking, order, routing, order-picker, traveling salesman, heuristics
This article continues "Warehouse order-picking process" cycle and describes order-picker routing sub-problem of a warehouse order-picking process. It draws analogies between the order-pickers' routing problem and traveling salesman's problem, shows differences between the standard problem statement of a traveling salesman and routing problem of warehouse order-pickers, and gives the particular Steiner's problem statement of a traveling salesman.
Warehouse layout with a typical order is represented by a graph, with some its vertices corresponding to mandatory order-picker's visits and some other ones being noncompulsory. The paper describes an optimal Ratliff-Rosenthal algorithm to solve order-picker's routing problem for the single-block warehouses, i.e. warehouses with only two crossing aisles, defines seven equivalent classes of partial routing sub-graphs and five transitions used to have an optimal routing sub-graph of a order-picker. An extension of optimal Ratliff-Rosenthal order-picker routing algorithm for multi-block warehouses is presented and also reasons for using the routing heuristics instead of exact optimal algorithms are given. The paper offers algorithmic description of the following seven routing heuristics: S-shaped, return, midpoint, largest gap, aisle-by-aisle, composite, and combined as well as modification of combined heuristics. The comparison of order-picker routing heuristics for one- and two-block warehouses is to be described in the next article of the "Warehouse order-picking process" cycle.
References
1. Korobkov E.V. Warehouse Order-Picking Process. Review. Nauka i obrazovanie MGTU im. N.E. Baumana = Science and Education of the Bauman MSTU, 2015, no. 3, pp. 153-183. DOI: 10.7463/0315.0763161 (in Russian).
2. Lawler E.L., Lenstra J.K., Kan A.R., Shmoys D.B. The Travelling Salesman Problem: A Guided Tour of Combinational Optimization. Vol. 3. New York, NY, Wiley, 1985. 476 p.
3. Ratliff H.D., Rosenthal A.S. Order-Picking in a Rectangular Warehouse: A Solvable Case of the Traveling Salesman Problem. Operations Research, 1983, vol. 31, no. 3, pp. 507-521. DOI: 10.1287/opre.31.3.507
4. Roodbergen K.J., de Koster R. Routing Order Pickers in a Warehouse with a Middle Aisle. European Journal of Operational Research, 2001, vol. 133, no. 1, pp. 32-43. DOI: 10.1016/S0377-2217(00)00177-6
5. Gademann N., Velde S. Order Batching to Minimize Total Travel Time in a Parallel-Aisle Warehouse. IIE Transactions, 2005, vol. 37, no. 1, pp. 63-75. DOI: 10.1080/07408170590516917
6. De Koster R., Roodbergen K.J., van Voorden R. Reduction of Walking Time in the Distribution Center of De Bijenkorf. In: Speranza M.G., ed. New Trends in Distribution Logistics. Berlin, Springer-Verlag, 2000, pp. 215-234. DOI: 10.1007/978-3-642-58568-5 11
7. Dekker R., de Koster R., Roodbergen K.J., van Kalleveen H. Improving Order-Picking Response Time at Ankor's Warehouse. Interface, 2004, vol. 34, no. 4, pp. 303-313. DOI: 10.1287/inte.1040.0083
8. Petersen II C.G., Schmenner R.W. An Evaluation of Routing and Volume-Based Storage Policies in an Order Picking Operation. Decision Sciences, 1999, vol. 30, no. 2, pp. 481-501. DOI: 10.1111/j.1540-5915.1999.tb01619.x
9. Interactive Warehouse: web-site. Available at: http://www.roodbergen.com/warehouse/index.php , accessed January 2015.
10. Petersen II C.G., Aase G. A Comparison of Picking, Storage, and Routing Policies in Manual Order Picking. International Journal of Production Economics, 2004, vol. 92, no. 1, pp. 1119. DOI: 10.1016/j .ijpe.2003.09.006
11. De Koster R., Le-Duc T., Roodbergen K.J. Design and Control of Warehouse Order Picking: A Literature Review. European Journal of Operational Research, 2007, vol. 182, no. 2, pp. 481-501. DOI: 10.1016/j.ejor.2006.07.009
12. Gu J., Goetschalckx M., McGinnis L.F. Research on Warehouse Design and Performance Evaluation: A Comprehensive Review. European Journal of Operational Research, 2010, vol. 203, no. 3, pp. 539-549. DOI: 10.1016/j.ejor.2009.07.031
13. Le-Duc T., De Koster R. Travel Distance Estimation and Storage Zone Optimization in a 2-Block Class-Based Strategy Warehouse. International Journal of Production Research, 2005, vol. 43, no. 17, pp. 3561-3581. DOI: 10.1080/00207540500142894
14. Petersen II C.G. The Impact of Routing and Storage Policies on Warehouse Efficiency. International Journal of Operations and Production Management, 1999, vol. 19, no. 10, pp. 1053-1064. DOI: 10.1108/01443579910287073
15. Petersen II C.G., Aase G.R., Heiser D.R. Improving Order-Picking Performance through the Implementation of Class-Based Storage. International Journal of Physical Distribution and Logistics Management, 2004, vol. 34, no. 7, pp. 532-544. DOI: 10.1108/09600030410552230
16. De Koster R., van der Poort E.S., Wolters M. Efficient Orderbatching Methods in Warehouse. International Journal of Production Research, 1999, vol. 37, no. 7, pp. 1479-1504. DOI: 10.1080/002075499191094
17. Le-Duc T., De Koster R. Travel Time Estimation and Order Batching in a 2-Block Warehouse. European Journal of Operational Research, 2007, vol. 176, no. 1, pp. 374-388. DOI: 10.1016/j.ejor.2005.03.052
18. De Koster R., van der Poort E. Routing Orderpickers in a Warehouse: A Comparison between Optimal and Heuristic Solutions. IIE Transactions, 1998, vol. 30, no. 5, pp. 469-480. DOI: 10.1080/07408179808966487
19. Roodbergen K.J., de Koster R. Routing Methods for Warehouses with Multiple Cross Aisles. International Journal of Production Research, 2001, vol. 39, no. 9, pp. 1865-1883. DOI: 10.1080/00207540110028128
20. Hall R.W. Distance Approximations for Routing Manual Pickers in a Warehouse. IIE Transactions, 1993, vol. 25, no. 4, pp. 76-87. DOI: 10.1080/07408179308964306
21. Hwang H., Oh Y.H., Lee Y.K. An Evaluation of Routing Policies for Order-Picking Operations in Low-Level Picker-to-Part System. International Journal of Production Research, 2004, vol. 42, no. 18, pp. 3873-3889. DOI: 10.1080/00207540410001696339
22. Roodbergen K.J., Sharp G.P., Vis I.F. Designing the Layout Structure of Manual Order Picking Areas in Warehouses. IIE Transactions, 2008, vol. 40, no. 11, pp. 1032-1045. DOI: 10.1080/07408170802167639
23. Vaughan T.S. The Effect of Warehouse Cross Aisles on Order Picking Efficiency. International Journal of Production Research, 1999, vol. 37, no. 4, pp. 881-897. DOI: 10.1080/002075499191580
24. Jarvis J.M., McDowell E.D. Optimal Product Layout in an Order Picking Warehouse. IIE Transactions, 1991, vol. 23, no. 1, pp. 93-102. DOI: 10.1080/07408179108963844
25. Gray A.E., Karmarkar U.S., Seidmann A. Design and Operation of an Order-Consolidation Warehouse: Models and Application. European Journal of Operational Research, 1992, vol. 58, no. 1, pp. 14-36. DOI: 10.1016/0377-2217(92)90232-X
26. Petersen II C.G. An Evaluation of Order Picking Routeing Policies. International Journal of Operations and Production Management, 1997, vol. 17, no. 11, pp. 1098-1111. DOI: 10.1108/01443579710177860