Order Picking: Pick Sequencing and Batching

advertisement
Order Picking:
Pick Sequencing and Batching
The Pick Sequencing Problem
Given a picking list, sequence the visits to the picking
locations so that the overall traveling effort (time) is
minimized.
x
x
x
x
x
x
x
x
x
Docking station
x
Problem Abstraction:
The Traveling Salesman Problem (TSP)
Given a complete TSP graph:
2
c_ij
3
1
5
4
find a tour that visits all cities, with minimal total (traveling) cost;
2
e.g.:
3
1
5
4
<1, 2, 5, 3, 4>
Analytical Problem Formulation
Parameters:
– N : graph size (number of graph nodes)
– c_ij : cost associated with arc (i,j)
Decision Variables:
– x_ij : binary variable indicating whether arc (i,j) is in the optimal
tour
– u_i : auxiliary (real) variable for the formulation of the “no
subtour” constraints
min _i _j c_ij x_ij
s.t.
_j x_ij = 1  i
_i x_ij = 1  j
(No subtours:
u_i - u_j + N x_ij  N-1  i,j  {2,…,N} and ij )
x_ij  {0, 1}  i,j
Some remarks on the TSP problem and
its application in pick sequencing
• The TSP problem is an NP-complete problem: It can be solved
optimally for small instances, but in general, it will be solved through
heuristics.
• There is a vast literature on TSP and the development of heuristic
algorithms for it (e.g., Lawler, Lenstra, Rinnooy Kan and Shmoys,
“The Traveling Salesman Problem: A guided tour of combinatorial
optimization”, John Wiley and Sons, 1985).
• When the “no subtour” constraint is removed, the remaining
formulation defines a Linear Assignment Problem (LAP) (which is an
easy one; e.g., the “Hungarian Algorithm”) => Solving the
corresponding LAP can provide lower bounds for assessing the suboptimality of the solutions provided by the applied heuristics.
• In the considered application context, the distances c_ij should be
computed based on the appropriate distance metric; i.e., rectilinear,
Tchebychev, “shortest path”
The closest insertion algorithm:
A TSP heuristic (symmetric version)
Initialization:
S_p = <1>; S_a = {2,…,N}; c(j) = 1,  j  {2,…,N}; n=1;
While n < N do
n = n+1;
Selection step:
j* = argmin_{j  S_a}
S_a = S_a \ {j*};
Insertion step:
{c_{j,c(j)}};
i* = argmin_{i =1}^|S_p| {c_{[i],j*} + c_{j*,[i mod |S_p|+1]}
- c_{[i],[i mod |S_p|+1]}};
S_p = < [1],…,[i*], j*, [i*+1],…,[n]>;
 j  S_a, if c_{j,j*} < c_{j,c(j)} then c(j) = j*;
Remarks: 1. [i] denotes the node at i-th position of the constructed sub-tour.
2. If the distances are symmetric and satisfy the triangular inequality, the cost of
the solution provided by this heuristic is no worse than twice the optimal cost.
k-STRIP: A computationally simple
heuristic for rectangular areas
x
x
x
x
x
x
x
x
x
x
x
x
I/O point
• When A is the unit square, an optimized k =  (n/2) , and for this value, the worstcase tour length generated by the heuristic is between 1.075n and 1.414 n, for large n.
• The computational complexity is O(n logn).
• Supowit, Reingold and Plaisted, “The traveling salesman problem and minimum
matching in the unit square”, SIAM J. Computing, 12(1): 144-156, 1983.
The bin-numbering heuristic
(Bartholdi and Platzman, Material Flow, 4: 247-254, 1988)
• Basic idea: Number bins / storage locations in a way that
filling the orders by visiting the associated bins in
increasing numbers will lead to efficient routings.
• Advantages:
– Once the numbering is established, developing the order routes
becomes extremely simple.
– Easy to adjust routes dynamically upon the arrival of new orders.
• Basic underlying problem:
How do you establish good bin-numbering schemes?
Example of a numbering scheme
(Is it a good one?)
25
27
28
26
30
2
2
42
29
15 4 58
14
13
1
1
43
2
5
64
47
4
8
48
44
31
32
33
3
19
11
20
21
41
12
18
45
4 46
7
9
6
16
50
52
51
36
57
35
7
37
53
7
49
56
60
38
34
59
54
61
55
11
22
6
24
17
23
10
62
39
63
40
Order: {1, 10, 13, 28, 30, 44, 50, 62}
Resulting route length: 44 (using rectilinear distances of the cell
centroids)
An alternative numbering scheme
16
13
15
2
12
9
8
4
5
17
18
20
4 19
11
21
22
44
10
24
23
41
42
7
25
26
40
39
57
58
6
28
27
37
38
60
59
14
2
48
45
4
3
29
30
36
1 1
2
32
31
33
1
7
Order: {1,4,12,14,21,48,58,64}
Resulting route length: 32
47
46
49
50
52
51
43 7 53
54
35
34
56
61
64
55
4
62
63
Key concept: Space-filling curves
(see also http://www.isye.gatech.edu/faculty/John_Bartholdi/mow/mow.html)
• Closed curves that sweep the entire region while preserving nearness.
• Technically, they define a continuous mapping of the unit interval on the unit
square.
• Typical example: Sierpinski’s space-filling curve:
The Sierpinski space-filling curve
Applying the Sierpinski space-filling curve
in the previous bin-numbering example
20
21
23
19
18
22
17
2
14
6
5
2
1
1
1
6
13
32
33
35
36
25
31
30
34
37
28
297
38
39
27
42
41
40
15
12
26
11
7
9
10
43
44
45
46
4
8
61
60
59
48
47
2
16
4
24
3
62
57
58
53
64
63
56
55
54
7
Order: {1,2,13,17,18,32,46,52}
Resulting route length: 34
49
52
4
50
51
Some properties of the bin-numbering
schemes based on the Sierpinski
space-filling curve
• If n locations are to be visited throughout a warehouse of
area A, then the length of the retrieval route is at most
(2nA).
• If every location is equally likely to be visited, then on
average, the retrieval route produced by the corresponding
bin-numbering heuristic will be 25% longer than the
shortest possible route length.
• The above results have been derived using the Euclidean
metric for measuring the traveling distances, but they are
robust with respect to other metrics that preserve
“closeness” according to the Euclidean metric.
Characterizing the best bin-numbering
scheme...
• …is computationally very hard.
• Some good schemes can be obtained through interchange
techniques (e.g., 2 or 3-opt), where the efficiency of each of
the considered schemes is evaluated through simulation.
• The optimal bin-numbering scheme depends on:
– the underlying geometry of the picking facility
– the frequency with which the various storage locations are visited
(and therefore, the applying storage policy)
• In general, the logic underlying the utilization of the spacefilling curves is more useful / pertinent for storage areas with
small visitation frequencies for their locations.
• For areas with high visitation frequencies, numbering
schemes suggesting an exhaustive sweeping of the region
tend to perform better (c.f., Bartholdi & Platzman, pg. 252).
Bin-numbering in structures with
complicated geometry
When the considered area has a structure too complex to
measure traveling effort by Euclidean or a relative metric,
the logic underlying the application of space-filling curves
to bin-numbering can be applied in a hierarchical fashion:
• separate the entire area under consideration to smaller
areas of simpler geometry;
• design a numbering sequence for each of these areas using
the space-filling curve logic;
• develop a visiting sequence for the areas developed in step
1, by passing a space-filling curve among their I/O points.
Order Batching
(based on De Koster et. al., “Efficient
orderbatching methods in warehouses”, Inlt.
Jrnl of Prod. Res., Vol. 37, No. 7, pgs 14791504, 1999)
Problem Description
• Given a set of orders, cluster them into batches - i.e.,
subsets of orders that are to be picked simultaneously by
one picker at a single trip – such that
– the total traveling distance / time is minimized
– while each batch does not exceed some measure of the
picker capacity (e.g., number of items / volume of the
resulting batch, number of distinct orders in a batch)
• Theoretically, the problem can be solved by:
– enumerating all feasible partitions of the given order set into
batches;
– evaluating the total traveling distance / time for each partition;
– picking the partition with the smallest traveling distance / time.
• However, combinatorial explosion of partitions =>
heuristics
Order-Batching Heuristics
Naive
FCFS
Intelligent
Seed Algorithms
(Orders are clustered (Batches are built
based on the sequence sequentially, one at
a time)
of their appearance)
Savings Algorithms
(All batches are built
simultaneously, by
merging partially
developed batches)
The generic structure for seed algorithms
• While there are unprocessed orders,
– Pick a new seed order according to some seed selection
rule;
– while there are unprocessed orders and the batch has
not reached the imposed capacity limit
• pick a new order to be added to the batch according
to an order addition rule;
• add the selected order to the batch, provided that the
imposed capacity limit is not violated;
• (update the batch seed to the union of the previous
batch seed and the new order)
Typical seed selection rules
•
•
•
•
Random selection
the order with the farthest item (w.r.t. the shipping station)
the order with the largest number of aisles to be visited
the order with the largest aisle range (absolute difference
between the most left aisle number and the most right aisle
number to be visited)
• the order with the largest number of items
• the order with the longest travel time
• Remark: If the batch seed is updated after every order
addition, the algorithm is characterized as dynamic or
cumulative mode; ow., it is said to be static or single mode.
Typical order addition rules
• Time saving: choose the order that, together with the batch
seed, ensures the largest time saving compared with the
individual picking of the two orders.
• Choose the order that minimizes the number of additional
aisles, compared to the seed order, that have to be visited
by the resulting batch route.
• Choose the order for which the absolute difference
between the order’s center of gravity (COG) and the COG
of the batch seed is the smallest; COG is the weighted
average aisle number of the order, with the aisle weights
defined by the number of items in the aisle.
• Choose the order with the property that the sum of
distances* between every item of the seed and the closest
item in the order is minimized.
• * distances must be measured by an appropriately selected
metric
The (standard) savings algorithm
• Initialization: B: = order set (each order defines its own
batch)
• Repeat
– For each pair (i,j) in the current batch set B
• compute the time savings s_ij = t_i + t_j - t_ij,
where t_i (resp., t_j) is the time required for picking
batch I (resp., j) and t_ij is the time required for
picking the batch resulting from the merging of
batches i and j.
– Rank batch pairs (i,j) in decreasing s_ij.
– Pick the first batch pair (i,j) in the ranked list, for which
the merging of its constituent batches does not violate
the imposed capacity limit, and merge batches i and j: B
:= (B-{i,j}) U {i+j}
until no further batch merging is possible.
• Remark: The algorithm result depends on the adopted pick
sequencing rule.
Some findings regarding the (relative)
performance of the presented batch
algorithms (De Koster et. al.)
• Intelligent batching leads to significant improvements compared to
single-order picking and naïve batching schemes.
• In seed algorithms, dynamic seed definition leads to better
performance than static seed definition.
• The best seed selection rules are focusing on orders dispersed over a
large number of aisles and involving long travel times.
• The best order addition rules (c.f. corresponding slide) tend also to be
the most robust (i.e., they yield the best results in all warehouse
configurations considered in the simulation).
• Savings algorithms have good performance, in general, but they tend
to be computationally more expensive than seed algorithms.
• The performance of the applied batching algorithm has a significant
dependence on the adopted pick sequencing rule.
• The largest the number of orders per batch (the batch capacity limit),
the smaller the savings from intelligent batching (and therefore,
simpler batching schemes become more eligible candidates)
Addendum:
A special case admitting
polynomial solution
(Ratliff and Rosenthal, Operations Research,
31(3): 507-521, 1983)
The considered warehouse layout
Crossover Aisles
x
x
x
x
x
x
x
x
x
x
Items
to be
picked
x
x
Picking Aisles
Docking station
A graph-based representation of the
underlying topology
a2
a3
2
a4
2
a5
2
a6
2
2
3
4
v3
3
v2
v5
v4
3
v7
v11
15
v9
x
7
6
x
7
v1
5
v6
3
b1
8
6
x
3
2
b2
v12
x
3
x
x
5
x
v8
x
2
x
v10
x
x
4
3
x
a1
b3
0
2
b4
v0
2
2
b5
2
b6
A picking tour
a2
a3
2
a4
2
a5
2
a6
2
2
3
4
v3
3
v2
v5
v4
3
v7
v11
15
v9
x
7
6
x
7
v1
5
v6
3
b1
8
6
x
b2
2
x
v10
v0
3
2
v12
x
3
x
x
5
x
v8
x
x
x
4
3
x
a1
b3
2
b4
2
2
b5
2
b6
Lj-, Aj and Lj+ sub-graphs, j=1,2,…,n
a2
a3
2
a4
2
a5
2
a6
2
2
3
4
v3
3
v2
v5
v4
3
v7
v11
15
v9
x
7
6
x
7
v1
5
v6
3
b1
8
6
x
b2
2
x
v10
v0
3
2
v12
x
3
x
x
5
x
v8
x
x
x
4
3
x
a1
b3
2
b4
Lj+ = Lj-  Aj
2
2
b5
2
b6
Lj(- or +) PTS (partial tour sub-graph)
a2
a3
2
a4
2
a5
2
a6
2
2
3
4
v3
3
v2
v5
v4
3
v7
v11
15
v9
x
7
6
x
7
v1
5
v6
3
b1
8
6
x
b2
2
x
v10
v0
3
2
v12
x
3
x
x
5
x
v8
x
x
x
4
3
x
a1
b3
2
b4
L3- PTS : (E, E, 2C)
L3+PTS: (U, U, 1C)
2
2
b5
2
b6
A key observation
The only possible characterizations for an Lj (- or +) PTS are the
following:
• (U, U, 1C)
• (0, E, 1C)
• (E, 0, 1C)
• (E, E, 1C)
• (E, E, 2C)
• (0, 0, 0C)
• (0, 0, 1C)
where the triplet (X, Y, Z) should be interpreted as follows:
• X (Y): degree parity for node a_j (b_j) - 0, Even, Uneven (odd)
• Z: number of connected components in Lj PTS, excluding the
vertices with zero degree
Going from Lj- to Lj+…
a_j
b_j
(I-i)
a_j
a_j
a_j
a_j
b_j
b_j
b_j
b_j
(I-ii)
(I-iii)
(I-iv)
(I-v)
a_j
b_j
(I-vi)
Going from Lj- to Lj+…(cont.)
TABLE I
Lj- class
(U,U,1C)
(E,0,1C)
(0,E,1C)
(E,E,1C)
(E,E,2C)
(0,0,0C)b
(0,0,1C)c
(I-i)
(E,E,1C)
(U,U,1C)
(U,U,1C)
(U,U,1C)
(U,U,1C)
(U,U,1C)
d
(I-ii)
(U,U,1C)
(E,0,1C)
(E,E,2C)
(E,E,1C)
(E,E,2C)
(E,0,1C)
(I-iii)
(U,U,1C)
(E,E,2C)
(0,E,1C)
(E,E,1C)
(E,E,2C)
(0,E,1C)
(I-iv)
(U,U,1C)
(E,E,2C)
(E,E,2C)
(E,E,1C)
(E,E,2C)
(E,E,2C)
(I-v)
(U,U,1C)
(E,E,1C)
(E,E,1C)
(E,E,1C)
(E,E,1C)
(E,E,1C)
(I-vi)a
(U,U,1C)
(E,0,1C)
(0,E,1C)
(E,E,1C)
(E,E,2C)
(0,0,0C)
(0,0,1C)
a: This is not a feasible configuration if there is any item to be picked in aisle j
b: This class can occur only if there are no items to be picked to the left of aisle j
c: This class is feasible only if there are no items to be picked to the right of aisle j
d: Could never be optimal
Going from Lj+ to L(j+1)-…
a_j
a_j
a_j+1
b_j
b_j+1
a_j+1
b_j
(II-i)
a_j
b_j+1
b_j
a_j+1
b_j
b_j+1
(II-iv)
b_j+1
(II-iii)
(II-ii)
a_j
a_j+1
a_j
a_j+1
b_j
b_j+1
(II-v)
Going from Lj+ to L(j+1)-…(cont.)
TABLE II
Lj+ class
(II-i)
(U,U,1C) (U,U,1C)
(E,0,1C)
a
(0,E,1C)
a
(E,E,1C)
a
(E,E,2C)
a
(0,0,0C)
c
(0,0,1C)
b
(II-ii)
a
(E,0,1C)
b
(E,0,1C)
b
c
b
(II-iii)
a
b
(0,E,1C)
(0,E,1C)
b
c
b
a: The degrees of a_j and b_j are odd.
b: No completion can connect the graph.
c: Would never be optimal.
(II-iv)
a
(E,E,2C)
(E,E,2C)
(E,E,1C)
(E,E,2C)
c
b
(II-v)
a
(0,0,1C)
(0,0,1C)
(0,0,1C)
b
(0,0,0C)
(0,0,1C)
A polynomial-complexity algorithm for
computing a minimum-length tour
• Initialization: L1- PTS = null graph for every class type
• For <L1+, L2-, L2+,…,Ln-, Ln+)
– compute a minimum-length PTS for each of the seven
classes, using the minimum-length PTS’s constructed in
the previous stage, and the information provided in
Tables I and II.
– Remark: For case (I-iv), a minimum-length PTS is
obtained by putting the gap between the two adjacent
v_i’s in aisle j that are farthest apart.
• A minimum-length tour is defined by a minimumlength Ln+ PTS.
Example (c.f., slide 8)
PTS-class
1.(U,U,1C)
2.(E,0,1C)
3.(0,E,1C)
4.(E,E,1C)
5.(E,E,2C)
6.(0,0,0C)
7.(0,0,1C)
L1-
PTS-class
1.(U,U,1C)
2.(E,0,1C)
3.(0,E,1C)
4.(E,E,1C)
5.(E,E,2C)
6.(0,0,0C)
7.(0,0,1C)
L457,1,II-I
60,4,II-ii
60,4,II-iii
64,4,II-iv
64,5,II-iv
L1+
15,-,I-I
24,-,I-ii
22,-,I-iii
30,-,I-v
20,-,I-iv
L219,1,II-I
28,2,II-ii
26,3,II-iii
38,4,II-iv
28,5,II-iv
L2+
37,1,I-iv
48,2,I-ii
48,3,I-iii
34,1,I-I
44,3,I-?
22,3,II-v
56,4,II-v
L4+
57,1,I-iii
90,2,I-ii
60,3,I-iii
64,4,I-iii
60,2,I-iii
L561,1,II-I
68,4,II-ii
64,3,II-iii
72,4,II-iv
68,3,II-iv
60,3,II-v
L341,1,II-I
38,4,II-ii
38,4,II-iii
42,4,II-iv
52,5,II-iv
L3+
53,2,I-I
62,2,I-ii
62,3,I-iii
56,1,I-I
56,2,I-iv
34,4,II-v
L5+
75,1,I-iii
84,2,I-ii
78,2,I-iii
76,1,I-I
80,3,I-ii
L679,1,II-I
80,4,II-ii
80,4,II-iii
84,4,II-iv
86,3,II-iv
76,4,II-v
L6+
95,1,I-iv
106,2,I-ii
104,3,I-iii
94,1,I,I
96,2,I,iv
Example: The optimal tour
a2
a3
2
a4
2
a5
2
a6
2
2
3
4
v3
3
v2
v5
v4
3
v7
v11
15
v9
x
7
6
x
7
v1
5
v6
3
b1
8
6
x
3
2
b2
v12
x
3
x
x
5
x
v8
x
2
x
v10
x
x
4
3
x
a1
b3
0
2
b4
v0
2
2
b5
2
b6
Download