340 likes | 711 Vues
Warehouse Storage Configuration and Storage Policies. Bibliography Bartholdi & Hackman: Chapter 6 Francis, McGinnis, White: Chapter 5 Askin and Standridge: Sections 10.3 and 10.4. I/O. Storage Policies.
E N D
Warehouse Storage Configuration and Storage Policies Bibliography Bartholdi & Hackman: Chapter 6 Francis, McGinnis, White: Chapter 5 Askin and Standridge: Sections 10.3 and 10.4
I/O Storage Policies • Main Issue: Decide how to allocate the various storage locations of a uniform storage medium to a number of SKU’s.
Types of Storage Policies • Dedicated storage: Every SKU i gets a number of storage locations, N_i, exclusively allocated to it. The number of storage locations allocated to it, N_i, reflects its maximum storage needs and it must be determined through inventory activity profiling. • Randomized storage: Each unit from any SKU can by stored in any available location • Class-based storage: SKU’s are grouped into classes. Each class is assigned a dedicated storage area, but SKU’s within a class are stored according to randomized storage logic.
Location Assignment under dedicated storage policy • Major Criterion driving the decision-making process:Enhance the throughput of your storage and retrieval operations by reducing the travel time <=> reducing the travel distance • How? By allocating the most “active” units to the most “convenient” locations...
“Convenient” Locations • Locations with the smallest distanced_j to the I/O point! • In case that the material transfer is performed through a forklift truck (or a similar type of material handling equipment), a proper distance metric is the, so-called, rectilinear or Manhattan metric (or L1 norm): d_j = |x(j)-x(I/O)| + |y(j)-y(I/O)| • For an AS/RS type of storage mode, where the S/R unit can move simultaneously in both axes, with uniform speed, the most appropriate distance metric is the, so-called Tchebychev metric (or L norm): d_j = max (|x(j)-x(I/O)|,|y(j)-y(I/O)|)
“Active” SKU’s • SKU’s that cause a lot of traffic! • In steady state, the appropriate “activity” measure for a given SKU i: Average visits per storage location per unit time = (number of units handled per unit of time) / (number of allocated storage locations) = TH_i / N_i
A fast solution algorithm • Rank all the available storage locations in increasing distance from the I/O point, d_j. • Rank all SKU’s in decreasing “turns”, TH_i/N_i. • Move down the two lists, assigning to the next most highly ranked SKU i, the next N_i locations.
5 9 8 7 5 6 7 8 9 5 6 7 6 5 4 4 4 5 8 8 6 7 4 5 4 3 3 3 6 7 6 7 5 6 5 4 2 2 2 3 6 3 4 5 3 5 4 3 2 1 0 1 2 4 5 I/O I/O Example A: 20/10=2 B: 15/5 = 3 C: 10/2 = 5 D: 20/5 = 4 A A A A A B B A D D D A A B B A A C C D D B
Problem Formulation • Decision variables: x_ij = 1 if location j is allocated to SKU i; 0 otherwise. • Formulation: min S_i S_j [(TH_i/N_i) * d_j] * x_ij s.t. i, S_j x_ij = N_i j, S_i x_ij = 1 i, j, x_ij {0,1} => x_ij 0
Problem Representation Location SKU N_1 1 1 1 c_ij = (TH_i/N_i)*d_j N_i i 1 j N_S S L 1
Remarks • The previous problem representation corresponds to a balanced transportation problem: Implicitly it has been assumed that: L = S_iN_i • For the problem to be feasible, in general, it must hold that: L S_iN_i • If L - S_iN_i > 0, the previous balanced formulation is obtained by introducing a fictitious SKU 0, with N_0 = L - S_iN_i and TH_0 = 0
Locating the I/O point • In many cases, this location is already predetermined by the building characteristics, its location/orientation with respect to the neighboring area/roads/railway tracks, etc. • Also, in the case of an AS/RS, this location is specified by the AS/RS technical/operational characteristics. • In case that the I/O point can be placed at will, the ultimate choice should seek to enhance its “proximity” to the storage locations.
5 9 8 7 5 6 7 8 9 5 6 7 6 5 4 4 4 5 8 8 6 7 4 5 4 3 3 3 6 7 6 7 5 6 5 4 2 2 2 3 6 3 4 5 3 5 4 3 2 1 0 1 2 4 5 Option B 6 7 9 10 12 13 14 11 5 5 8 4 8 11 4 5 6 7 9 10 12 13 3 3 4 5 6 8 9 10 11 7 12 4 6 8 10 2 11 2 3 5 7 9 0 1 2 3 4 5 6 7 8 9 10 I/O I/O Locating the I/O point: Example 1 Option A
I/O Locating the I/O point: Example 2 Option A 12 10 10 10 18 16 14 12 14 16 18 16 14 12 10 8 8 8 10 16 12 14 8 14 12 6 10 10 8 6 6 12 14 12 6 4 8 10 10 8 4 4 6 12 10 6 8 6 4 2 0 2 4 8 10 O Option C 11 9 6 7 11 13 15 15 9 13 7 15 7 11 11 9 7 7 9 13 15 13 15 13 11 9 7 9 11 13 7 7 15 9 7 9 13 15 15 13 11 7 7 11 15 13 11 9 7 6 7 9 11 13 15 I
Example 2 (cont.) • Option A: U-shaped or cross-docking configuration • amplifies the convenience/inconvenience of close/distant locations • appropriate for product movement with strong ABC skew • provides flexibility for interchanging between shipping and receiving docking capacity • allows for “dual command” operation of forklifts, reducing, thus, the deadhead traveling • minimizes truck apron and roadway • Option C: Flow-through configuration • attenuates the convenience difference among storage locations • conservative design: more reasonably convenient storage locations but fewer very convenient • more appropriate for extremely high volume • preferable when the building is long and narrow • limits the opportunity for efficiencies for “dual command” operations
Storage Sizing • Randomized Storage: • How many storage locations, N, should be employed for the storage of the entire SKU set? • Dedicated storage: • How many storage locations, N_i, should be dedicated to each SKU i? • Given a fixed number of available locations, L, how should these locations be distributed among the various SKU’s? • Class-based storage: • How should SKU’s be organized into classes? • How many storage locations, N_k, should be dedicated to each SKU class k?
Possible Approaches to Storage Sizing • Quite often, this issue is resolved/predetermined from the overall operational context: e.g., replenishment policies, contractual agreements, etc., which impose some structure on the manner in which requests for storage locations are posed by the various SKU’s • “Service-level” type of analysis: • Determine the number of storage locations, N_i to be assigned to each SKU i so that the probability that there will be no shortage of storage space in any operational period (e.g., day) is equal to or greater than a pre-specified value s. • Cost-based Analysis • Select N_i’s in a way that minimizes the total operational cost over a given horizon, taking into consideration the cost of owning and operating the storage space and equipment, and also any additional costs resulting from space shortage and/or the need to contract additional storage space.
Sizing randomized storage based on “service level” requirements • Q = max number of storage locations requested at any single operational period (a random variable) • p_k = Prob(Q=k), k=0,1,2,… (probability mass function for Q) • F(k) = Prob(Qk) = _{j=0,…,k} p_j (cumulative distribution function for Q) • Problem Formulation Find the smallest number of locations N, that will satisfy a requested service level s for storage availability, i.e., min N s.t. F(N) s N 0 • Solution: N = min{k: _{j=0,…,k} p_j s}
Sizing dedicated storage based on “service level” requirements • Q_i = max number of storage locations requested at any single operational period for the storage of SKU i (random variable) • F_i(k) = Prob{Q_i k} (cumulative distribution function of Q_i) • If a distinct service level s_i is defined for each SKU i, then the determination of N_i is addressed independently for each SKU, according to the logic presented for the randomized storage policy. • Next we address the problem of satisfying a single service level requirement, s, defined for the operation of the entire system, i.e., Prob{no storage shortages in a single day} s under the additional assumption that the storage requirements posed by various SKU’s are independent from each other. • Then, for an assignment of N_i locations to each SKU i, Prob{no storage shortages in a single day} = _i F_i(N_i) and Prob{1 or more storage shortages} = 1 - _i F_i(N_i)
Sizing dedicated storage based on “service level” requirements (cont.) • Formulation I: Fixed service level, s min _i N_i s.t. _i F_i(N_i) s N_i 0 i • Formulation II: Fixed number of locations, L max _i F_i(N_i) s.t. _i N_i L N_i 0 i
Class-Based Storage Sizing and Location Assignment • Divide SKU’s into classes, using ABC (Pareto) analysis, based on their number of turns TH_i/N_i. • Determine the required number of storage locations for each class C_k • ad-hoc adjustment of the total storage requirement of the class SKU’s N_k = p * _{iC_k } N_i, where 0 < p < 1 • Class-based “service-level” type of analysis: Q_k = storage space requirements per period for class k = _{iC_k} Q_i For independent Q_i: p_k(m) = Prob(Q_k=m) = _{m_i: _i m_i = m}[_ip_i(m_i)] where p_i( ) : probability mass function for Q_i. • Assign to each class the requested storage locations, prioritizing them according to their number of turns, TH_k/N_k where TH_k = _{iC_k } TH_i
A simple cost-based model for (dedicated) storage sizing • Model-defining logic:Assuming that you know your storage needs d_ti, for each SKU i, over a planning horizon T, determine the optimal storage locations N_i for each SKU i, by establishing a trade-off between the • fixed and variable costs for developing this set of locations, and operating them over the planning horizon T, and • the costs resulting from any experienced storage shortage.
A simple cost-based model for (dedicated) storage sizing (cont.) • Model Parameters: • T = length of planning horizon in time periods • d_ti = storage space required for SKU i during period t • C_0 = discounted present worth cost per unit storage capacity owned during the planning horizon T • C_1 = discounted present worth cost per unit stored in owned space per period • C_2 = discounted present worth cost per unit of space shortage (e.g., per unit stored in leased space) per period • Model Decision Variables: • N_i = “owned” storage capacity for SKU i • Model Objective: • min TC (N_1,N_2,…,N_n) = S_i [C_0 N_i + S_t {C_1 [min(d_ti, N_i)] + C_2 [max(d_ti - N_i, 0)]}]
A fast solution algorithm for the case of time-invariant costs • For each SKU i: • Sequence the storage demands appearing in the d_ti, t=1,…T, sequence in decreasing order. • Determine the frequency of the various values in the ordered sequence obtained in Step 1. • Sum the demand frequencies over the sequence. • When the obtained partial sum is first equal to or greater than C’ = C_0/ (C_2-C_1) stop; the optimum capacity for SKU i, N_i, equals the corresponding demand level.
Example • Problem Data: N=1; T=6; d = < 2, 3, 2, 3, 3, 4,>; C_0 = 10, C_1 = 3, C_2 = 5 • Solution: C’ = C_0/(C_2-C-1) = 10/(5-3) = 5 => N = 2
Storage Configuration and Policiesfor “Unit Load” warehouses: Topics covered • Storage Policies: Assigning storage locations of a uniform storage medium to the various SKU’s stored in that medium • Dedicated • Randomized • Class-based Criterion: Maximize productivity by reducing the traveling effort / cost • The placement of the I/O point(s) Criterion: Maximize productivity by reducing the traveling effort / cost
Storage Configuration and Policiesfor “Unit Load” warehouses: Topics covered (cont.) • Storage sizing for various SKU’s: Determine the number of storage locations to be assigned to each SKU / group of SKU’s. Criterion: • provide a certain (or a maximal) “service level” • minimize the total (space+equipment+labor+shortage) cost over a planning horizon • Next major theme: Storage Configuration for better space exploitation • floor versus rack-based storage for pallet-handling warehouses • determining the lane depth (mainly for randomized storage) (based on Bartholdi & Hackman, Section 6.3)
Determining the Employment (and Configuration) of Rack-based storage • Basic Logic: • For each SKU, • compute how many pallet locations would be created by moving it into rack of a given configuration; • compute the value of the created pallet locations; • move the sku into rack if the value it creates is sufficient to justify the rack. • Remark: In general, space utilization will be only one of the factors affecting the final decision on whether to move an SKU into rack or not. Other important factors can be • the protection that the rack might provide for the pallets of the considered SKU; • the ability to support certain operational schemes, e.g., FIFO retrieval; • etc.
Examples on evaluating the efficiencies from moving to rack-based storage • Case I: Utilizing 3-high pallet rack for an SKU of N=4 (pallets), which is not stackable at all. • Current footprint: 4 pallet positions • Introducing a 3-high rack in the same area creates 3x4=12 position, 8 of which are available to store other SKU’s. What are the gains of exploiting these new locations vs the cost of purchasing and installing the rack? • Case II: Utilizing a 3-high pallet rack for an SKU with N=30 (pallets), which are currently floor-stacked 3-high, to come within 4 ft from the ceiling. • Current footprint: 10 pallet positions • Introducing a 3-high rack does not create any new positions, and it will actually require more space in order to accommodate the rack structure (cross-beams and the space above the pallets, required for pallet handling)
Lane Height Lane Depth (3-deep) Lanes Determining an efficient lane depth(in case of randomized storage) • A conceptual characterization of the problem: • More shallow lanes imply more of them, and therefore, more space is lost in aisles (the size of which is typically determined by the maneuvering requirements of the warehouse vehicles) • On the other hand, assuming that a lane can be occupied only by loads of the same SKU, a deeper lane will have many of its locations utilized over a smaller fraction of time (“honeycombing”). • So, we need to compute an optimal lane depth, that balances out the two opposite effects identified above, and minimizes the average floor space required for storing all SKU’s. Aisle
Notation • w = pallet width • d = pallet depth • g = gap between adjacent lanes • a = aisle width • x = lane depth • n = number of SKU’s • N_i = max storage demand by SKU i • z_i = column height for SKU I • lane footprint = (g+w)(d*x+a/2)
Key results • Assuming that the same lane depth is employed across all n SKU’s, under floor storage, the average space consumed per pallet is minimized by a lane depth computed approximately through the following formula: x_opt = [(a/2dn)*_i (N_i /z_i)] • The optimal lane depth for any single SKU i, which is stackable z_i pallets high, is x_opt = [(a/2d)*(N_i /z_i)] • Assuming that the same lane depth is employed across all n SKU’s, under rack storage, the average space consumed per pallet is minimized by a lane depth computed approximately through the following formula: x_opt = [(a/2dn)*_i N_i ]