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 ij ) 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.075n 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