Toward perpetually organized unit-load warehouses

Toward perpetually organized unit-load warehouses

Computers & Industrial Engineering 63 (2012) 1003–1012 Contents lists available at SciVerse ScienceDirect Computers & Industrial Engineering journal...

520KB Sizes 1 Downloads 56 Views

Computers & Industrial Engineering 63 (2012) 1003–1012

Contents lists available at SciVerse ScienceDirect

Computers & Industrial Engineering journal homepage: www.elsevier.com/locate/caie

Toward perpetually organized unit-load warehouses Héctor J. Carlo a,⇑, Germán E. Giraldo b a b

Industrial Engineering Department, University of Puerto Rico – Mayagüez, Call Box 9000, Mayagüez, PR 00681, United States Projects Unit, Colombian School of Engineering, Bogotá, Colombia

a r t i c l e

i n f o

Article history: Received 19 September 2011 Received in revised form 11 May 2012 Accepted 22 June 2012 Available online 3 July 2012 Keywords: Warehouse Storage location assignment Optimization Facilities planning and design Facility logistics

a b s t r a c t Determining the optimal storage assignment for loads in a unit-load warehouse has been extensively addressed in the facility logistics literature. However, the process of implementing a particular storage assignment given the current assignment of loads has not received much attention. Typically, unit-load warehouses use downtime or overtime to remove loads from their current location and move them to the suggested location. This study presents Rearrange-While-Working (RWW) as a strategy to optimize the process of rearranging a warehouse while serving a list of move requests. This study examines three scenarios: (1) one empty location in the warehouse and the material handling equipment (MHE) is idle; (2) one empty location in the warehouse under the RWW strategy; and (3) when there are multiple empty locations in the warehouse under RWW. In the first scenario, the MHE can make any movement desired as it is idle. For the other two scenarios it is assumed that the MHE is not idle so loads can only be moved when requested to perform a move request. Due to the complexity of the problems, several heuristics are proposed. Experimental results indicate that the proposed heuristics perform satisfactorily in terms of solution quality and computational time. Ó 2012 Elsevier Ltd. All rights reserved.

1. Introduction An important operational decision in unit-load warehouses is to determine the best storage location for each product in order to minimize the total material handling effort (or cost). This problem is known in the literature as the storage location assignment problem (SLAP) (Hausman, Schwarz, & Graves, 1976). In general, given a storage assignment policy the SLAP can be easily solved. Gu, Goetschalckx, and McGinnis (2007) and Roodbergen and Vis (2009) provide overviews of the most common storage assignment policies and the existing solution approaches for the SLAP. In this paper, we assume a full-turnover-based dedicated storage assignment policy (Roodbergen & Vis, 2009), where there is only one load (i.e. pallet) of each product. Typically, when loads are first stored in the warehouse, the SLAP is solved to optimize the assignment of loads (or products) to storage location. However, it is inevitable that the demand profiles change over time due to competition, introduction of new products, product maturity, and seasonality, among others. The initial storage location assignment used eventually becomes inefficient as the demand changes. Typically, at some point companies will identify some downtime (idle time or overtime) to reorganize the warehouse by repositioning items according to the solution of the ⇑ Corresponding author. E-mail addresses: [email protected] (H.J. Carlo), german.giraldo@escuelain g.edu.co (G.E. Giraldo). 0360-8352/$ - see front matter Ó 2012 Elsevier Ltd. All rights reserved. http://dx.doi.org/10.1016/j.cie.2012.06.012

SLAP with the updated demand. In this paper we propose the Rearrange-While-Working (RWW) strategy to methodically reorganize the warehouse while serving a set of move requests (without requiring idle time). The basic idea in RWW is to consider all available empty storage locations when (re-)storing a load. Although the work presented in this paper applies to any general warehouse with one material handler, for convenience, we assume that the material handling equipment (MHE) is an end-of-aisle Automated Storage/Retrieval System (AS/RS) or a Miniload AS/RS. The system is composed of a single storage/retrieval (S/R) machine that has a pickup and deposit point that coincides with a (splitcase) picking workstation. In other words, the retrieved loads (i.e. pallets) are taken to a workstation where a picker will take the required amount of products from the unit-load while the AS/RS waits. Once the picking is completed, the AS/RS will store the current load and retrieve the next load according to pre-determined sequence in an order list. The AS/RS is assumed to operate under a dual command cycle. Hence, the AS/RS will first store a load, travel empty to the location of the next load to be retrieved, and retrieve this load. In RWW, instead of returning each load to its original location, a decision is made to determine the best (open) storage location to which the load should be assigned. The strategic reassignment of loads is made to methodically rearrange the loads until the (updated) SLAP-optimal solution is obtained. In RWW, when a load is retrieved to fulfill a particular order, its assigned storage location is permanently changed to systematically update the rack arrangement. We

1004

H.J. Carlo, G.E. Giraldo / Computers & Industrial Engineering 63 (2012) 1003–1012

assume that the initial (current) and final (i.e. optimal SLAP) storage location assignments are known. Hence, the problem is to rearrange the warehouse from an initial arrangement to a final (SLAP-optimal) arrangement by repositioning the loads as they are required by the picker. The remainder of this paper is organized as follows: Section 2 presents a review of the pertinent literature. In Section 3 presents a more detailed description of RWW and the modeling assumption made. Section 4 considers repositioning loads with an idle AS/RS with only one empty location. Section 5 examines the RWW strategy for an AS/RS with only one empty location. Section 6 considers the RWW strategy with multiple empty locations. Section 7 revisits the modeling assumptions made. Lastly, Section 8 presents the conclusions and future work. 2. Literature review The SLAP can be classified according to the amount of information that is known about the arrival and departure of the loads stored in the warehouse: (1) item information (SLAP/II), (2) product information (SLAP/PI), or (3) no information (SLAP/NI) (Gu et al., 2007). The SLAP/II problem assumes that the complete information about the arrival and departure times of individual items is known. A commonly used policy for the SLAP/II is the Duration-of-Stay (DOS) policy where items with the expected shortest visit are assigned to the most desirable locations (Goetschalckx & Ratliff, 1990). In the SLAP/PI the information available is at the product level (instead of the item level, where items are instances of products). At the same time, products may be classified into product classes, typically according to physical characteristics or requirements. The SLAP/PI seeks to assign product classes to storage locations. After product classes are assigned to storage locations, the item location within its class is determined by simple rules (e.g. randomly). As described by Hausman et al. (1976), the special case where the number of classes equals the number of products (n) is called Dedicated (or Fixed Slot) Storage as each product would have a specific set of storage locations for storage. If there is only one class, the storage policy is referred to as Randomized or Floating Slot as any item could go to any storage location. On the other hand, when the number of classes is between two and n  1, it is known Class-Based Storage. A commonly used policy for the SLAP/PI is to assign classes with small cube-per-order index (COI) to the most desirable locations (Heskett, 1963). In the SLAP/NI, no information is available on the characteristics of the arriving items. Hence, only simple storage policies can be developed (e.g. Closest-Open-Location). For a survey of the literature pertaining the SLAP and the reader is referred to Jeroen and Van den Berg (1999), Gu et al. (2007), and Roodbergen and Vis (2009). Besides the classification of the SLAP problem according to the amount of information known, the SLAP can be further classified as static or dynamic. In the static version of the problem the material flows are assumed constant over the planning horizon. On the other hand, the dynamic version continuously adjusts storage assignments based on material flows. Most of the existing literature focuses on the static version of the problem (Gu et al., 2007). An interesting compromise was proposed by Christofides and Colloff (1973) (i.e. warehouse rearrangement), Linn and Wysk (1990a, 1990b) (i.e. restoring policy), and Muralidharan, Linn, and Pandit (1995) (i.e. shuffling). The basic idea in all of these studies is to reposition loads during idle times in order to actualize the storage location assignment. Christofides and Colloff (1973) proposed a two-stage algorithm to sequence load movements to minimize the material handling effort required to rearrange the products in a dedicated warehouse. Linn and Wysk (1990a, 1990b) suggested a restoring policy for AS/RSs using Class-Based

Storage where idle times are used to move fast-moving items closer to the input/output point (I/O). The authors do not provide details or computation results. Muralidharan et al. (1995) formulated the problem of updating the warehouse configuration under ClassBased Storage for AS/RSs as a Precedence Constrained Selective Asymmetric Travelling Salesman Problem. It is assumed that the S/R becomes idle for a limited amount of time in which reshuffling is performed. The objective is relocated loads to their corresponding classes in order to maximize the total weighed savings in terms of service time (referred to as profit). Given the computational complexity of the problem, the authors proposed two heuristics: Shuffling with Nearest Neighbor Heuristic (SNN) and Shuffling with Insertion (SI). Based on simulation results the authors conclude that using idle times to update the warehouse (AS/RS) configuration increases the AS/RS operating efficiency. Clearly, these (reshuffling) policies are not effective in highly utilized AS/RSs. It is worth mentioning that the proposed RWW strategy could be complemented by using these reshuffling policies during idle time. Han, McGinnis, Shieh, and White (1987) and Lee and Schaefer (1996) study the problem of sequencing the retrievals where loads may be stored in any open location on the rack. The main objective of these studies was to find a sequence of AS/RS dual cycles that minimize the total travel time required to fulfill all the requests. There are two main differences between Han et al. (1987), Lee and Schaefer (1996) and our study are: (1) they allow order (or move request) sequencing while we assume move requests are performed according to a pre-determined sequence; (2) their objective is to minimize the total travel time to perform a set of move requests, while our objective is to reorganize the rack from its current arrangement to the SLAP arrangement. Han et al. (1987) and Lee and Schaefer (1996) pursue a short term objective (minimize travel time to perform a set of move requests) while our objective is longer term (maintain an organized rack). Several authors have addressed the puzzle problem, where n  1 tiles and one open space need to be organized in a specific pattern. Tiles can only be moved to the empty space, creating a new open space. Archer (1999) shows that there is no single solution to the problem of the 15-puzzle. Reinefeld (1993) shows a comprehensive assessment of the number of possible configurations for the 8-puzzle problem, where all possible movements are evaluated using a database. Gue and Kim (2007) presents a model for reorganization of articles in a shelf, based on the 15 pieces puzzle game (15-puzzle). Like the traditional 15-puzzle problem, an array of 15 numbers must be ordered numerically, taking as its starting point a random arrangement, where only adjacent locations articles can be mobilized to the empty location. The study shows results for an array of high-density storage, where only an empty space available for movement of items, and experimental results for multiple storage spaces. The problem with 1 empty space (gap) is solved by a simple heuristic. The problem with 2 or more empty spaces is solved by dynamic programming. Other authors have addressed other problems related to reorganizing items for different applications which have some analogy to our problem. These applications include reorganizing containers in a container terminal (e.g. Kim & Bae, 1998), sorting vectors (e.g. Drozdek, 2005), and disk defragmentation (e.g. Texas Instruments Incorporated, 1995), among others. 3. RWW description and modeling assumptions As discussed in Section 1, in the Rearrange-While-Working (RWW) strategy we seek to update the arrangement of a warehouse from the current arrangement to the SLAP-optimal arrangement while serving a list of move requests. In RWW, when a load is retrieved, its assigned storage location is permanently changed to systematically update the warehouse arrangement. We assume

H.J. Carlo, G.E. Giraldo / Computers & Industrial Engineering 63 (2012) 1003–1012

that the initial (i.e. current) and final (i.e. optimal SLAP) storage location assignments are known. Hence, the problem is to rearrange the warehouse from an initial arrangement to a final arrangement by moving the loads as they are requested to fulfill orders. The objective is to determine the rearrangement sequence that minimizes the total material handling effort (measured in distance in this study) of serving all requests and completing the SLAP-optimal arrangement. In general, any metric that can be expressed as a function of distances (e.g. time) could be used with the proposed solution methods. The following assumptions are made in this study for convenience, although the proposed RWW strategy is not limited by these assumptions. We assume that an AS/RS retrieves (stores) loads from (to) a rack following a predetermined (fixed-sequence) list of move requests that corresponds to a list of orders to be fulfilled. Hence, the next move request assigned to the S/R machine will require a particular load that is requested in the order being fulfilled. In general, it is assumed that orders are fulfilled in order of arrival (i.e. First-ComeFirst-Served); hence the move request sequence is given. In other words, orders arrive to a virtual queue according to some predetermined sequence which could be priority-based or following a manufacturing schedule and create move requests. These move requests are grouped into a block of move requests that need to be performed during a predetermined window of time (e.g. in the next two hours). While these move requests are performed, more orders arrive to the virtual queue which will be served in the next block. It is also assumed that the S/R machine will retrieve the loads using dual command (i.e. performing one storage and one retrieval before returning to the I/O point). A picker will pick the required items from the load before the S/R stores the load back on the rack. The question is if the load should be returned to its original location on the rack, or if it should be stored in any of the other empty spaces on the rack. Theoretically, if the SLAP-optimal location of the load being stored is available, then it would be desirable have this load stored in this location. As typically done in the AS/RS literature, we will only consider one rack (i.e. one side of the aisle) served by the S/R. We also assume that there will be exactly one load of each product on the rack. A discussion on how to extend the proposed methodologies to the case where there is more than one load per product is presented later. As stated earlier, these assumptions are made for convenience and in no way are meant to limit the applicability of the proposed RWW strategy. In general terms, the proposed RWW strategy can be applied if the problem can be static (compute the SLAP-optimal arrangement once and focus on achieving it) or dynamic (if the SLAP is continuously solved as new information arrives). However, for simplicity, throughout the remainder of this paper we will assume that the problem is static. In order to optimize the RWW strategy for the scenario where there are multiple empty locations on the rack one needs to study some simpler scenarios. This study considers three scenarios: when there is only one empty location in the warehouse and the S/R is idle (Section 4); when there is only one empty location in the warehouse under the RWW strategy (Section 5); when there are multiple empty locations in the warehouse under the RWW strategy (Section 6). In the first case, the MHE can make any movement desired as it is idle. In the other cases, the movements correspond to a list of move requests. In Section 7 we discuss how the modeling assumptions may be relaxed.

block of move requests. Unfortunately, it is highly unlikely that all loads that are not in their optimal-SLAP location (i.e. their corresponding storage location in the optimal-SLAP) are requested in a block of move requests. Further, if all loads were included in the block of move requests, it is unlikely they are requested in the sequence that allows them to be completely rearranged to the optimal-SLAP arrangement. Therefore, when comparing two candidate solutions (i.e. a combination of reassignment decision for a particular block of move requests) in RWW one will likely end up with different rack arrangements that are not the optimal-SLAP arrangement. To assess the desirability of a non-SLAP-optimal resulting rack we will assume the remaining rearrangement, necessary to obtain the SLAP-optimal arrangement, will be done during idle time. Note that we are not assuming the racks will be rearranged during idle time, but rather we use it as a metric to determine the fitness of the racks. For this reason, in this Section we explore the case where the S/R is idle (i.e. it is allowed to perform any movement), but there is only one empty space on the rack. This scenario is a special case of the reshuffling (repositioning) problem where there is only one empty space. Since every candidate solution for the RWW problem will need to be evaluated, we are interested in a balance between solution quality and computational time. Consider the product arrangement in the 3  3 rack shown in Fig. 1. The rack on the left contains the initial (or current) arrangement while the right rack contains the final (SLAP-optimal) arrangement. Let matrices A and B be associated with these racks such that A(1, 1) = 6 and B(1, 1) = 1. Notice that load 1, currently in location A(1, 2) needs to be moved to location A(1, 1) on the rack. The zero in location A(3, 2) and B(3, 3) represent the empty location. Since the S/R is idle, any load can be moved to the empty location. Graphically, this movement would be equivalent to exchanging the location of a load with the empty location. Fig. 2 presents the natural movement required to move loads 6 and 8 to their final locations. The S/R machine moves from the I/O (assumed in the lower-left corner) to location (2, 3), picks up load 8 and moves it to location (3, 2), travel empty to location (1, 1) to pick up load 6 and moves it to location (2, 3). The S/R paths represented in Fig. 2 correspond to Chebyshev movements resulting from the two independent motors in the S/R. A similar process can be used to relocate the remaining loads. The optimal solution that minimizes the travel distance required to rearrange loads from rack A to rack B during idle time can be obtained using Dynamic Programming or the algorithm in Christofides and Colloff (1973). Unfortunately, as highlighted by Muralidharan et al. (1995) this problem is NP-Complete. Hence, we develop heuristic approaches to solve this problem. The proposed heuristics will only consider moving those loads that are not in their final (corresponding optimal-SLAP) location. These loads, if possible, should be moved to their final storage loca-

4. One empty location – S/R idle In RWW the only loads that will be retrieved (and hence potentially relocated) are those containing the items requested in the

1005

Fig. 1. Sample initial (a) and final (b) rack arrangement.

1006

H.J. Carlo, G.E. Giraldo / Computers & Industrial Engineering 63 (2012) 1003–1012

Fig. 2. S/R machine path to relocate loads 6 and 8.

tion without any intermediate steps. Hence, every time a load is moved to its final storage location the remaining problem size is reduced, until all loads have reached their final storage location. All the proposed heuristics in this Section will try to move each load directly to their final location. However, the heuristics will differ in how to perform the movements when no loads can be moved directly to their final location. Notice that this situation only happens when the empty location coincides with its own final location. The following subsections present six different heuristics for the scenario with one empty space and S/R idle. 4.1. Heuristic 1 (H1): evaluate all possible movements to the empty location As with all proposed heuristics, H1 will start by moving the loads whose final location is the current location of the empty space and continues until the location of the empty space coincides with its location in the final arrangement. At this point H1 will branch to consider moving each load that is not in its final location to the empty location. At each branch the heuristic continues moving the load whose final destination is the current location of the empty space. If the location of the empty space once again coincides with its final location, another set of branches are generated. The solution will be the branch that yields the minimum cost. H1 is design to obtain good solution quality at the expense of the computational time.

4.5. Heuristic 5 (H5): breaking cycles Fig. 3a presents an initial rack with three cycles. In Fig. 3a loads 3 and 6 create a cycle as load 3 needs to be moved to the current location of 6 and vice versa. If the problem would have exactly one cycle, each load can be moved to its final location without double handling them (as in H1–H4). H5 will explore ways to patch the cycles into one cycle. The heuristic is as follows: Step 1: Compute the number of cycles in the initial arrangement. Label the number of cycles as L. Step 2: Create a list P containing all possible permutations of one load from each cycle, except from the cycle containing the empty location. Each permutation in P will have L  1 loads. (In the example illustrated in Fig. 3, P will contain 16 permutations of two loads each.) Step 3: For each permutation in P, start by rearranging the loads in the list. The first load in the permutation will be moved to the empty space, then the second load in the permutation is moved to the newly created empty space, until all loads in the permutation are moved. Record the distances incurred in breaking the cycles. Note that at this point there should be only one cycle. Step 4: For each permutation, add the distance travelled to break the cycles (from Step 3) to the distance required to complete the rearrangement by moving the loads directly to their final location. Select the minimal (total) distance permutation.

4.2. Heuristic 2 (H2): maximum index 4.6. Heuristic 6 (H6): greedy-breaking cycles In this heuristic, instead of branching when the location of the empty location coincides with its final location, the load closest to the I/O in the horizontal axis is moved to the empty location. In case of a tie, choose the load closest to the I/O in the horizontal axis, further ties favor the load closest to the I/O in the vertical axis. Evidently, this rule is somewhat arbitrary. H2 is designed to provide fast solutions. 4.3. Heuristic 3 (H3): closest load

H6 is a relaxation of H5 where the permutation selected is the one that minimizes the cost of breaking the cycles. In other words, the permutation selected is the one with minimal cost after Step 3 in H5. 4.7. Experimental results and conclusions A full factorial experimental design was used to determine the best heuristic for the scenario with one empty location operating

This heuristic is different from H2 in that the load to be moved to the empty location (if the empty location is in its final location) is the one closest to the empty space. The logic behind H3 is to minimize the travel distance required to create a new empty space. Ties are settled by favoring the load closest to the S/R in the horizontal direction. Further ties are broken randomly. 4.4. Heuristic 4 (H4): closest to its final location In H4, the load selected to be moved to the empty location (if the empty location is in its final location) is the one that is closest to its final location (shortest distance from its destination). Ties are settled as in H3. The logic behind H4 is to move loads closer to their final location.

(a)

(b)

Fig. 3. Initial rack with three cycles (a) and final rack (b).

1007

H.J. Carlo, G.E. Giraldo / Computers & Industrial Engineering 63 (2012) 1003–1012

in some instances with rack sizes of 400 (20  20). An ANOVA was performed using the data in Table 1 to eliminate insignificant factors for our regression analysis. After eliminating the insignificant factors the resulting regression (for the natural logarithm of the distances) is presented in Eq. (1).

during idle time. The factors were size of the rack (at levels 9, 100, 400, assuming a square rack), the rack organization (i.e. percent of loads that require repositioning, at levels 0%, 50%, and 85%), and the seven solution procedures. Five replicates of each instance complete the experiments, for a total of 315 runs. Each pallet space measures one distance unit (DU) by one DU. All instances were randomly generated using different random seeds in VBA. On the other hand, the solution procedures were coded in MATLAB 8.0, which are available in Giraldo (2011). The experiments were run in a Dell Core 2 vPro 4 GB of memory and an AMD Turion 2.1 GHz processor. Table 1 presents the results for the total distance travelled and the runtime for each instance. Columns 1–3 in Table 1 identify the replicate and experiment number, rack size level, and organization level, respectively. Columns 4–10 presents the solution found with dynamic programming (DP) and the six heuristics (H1–H6). Columns 11–17 present the corresponding runtime for each solution methodology. The missing numbers in Table 1 are instances where the solution methodology took more than 3 days to solve. It can be observed from Table 1 that DP and H1 are not viable for rack sizes of 100 (10  10) or larger. H5 and H6 also struggled

lnðDistanceÞ ¼ 0:0455029  Size  1:52144  Organization 2

 7:56612  105 Size  0:00190252Org  Size 8 9 2:87975 if method ¼ DP > > > > > > 2:95794 if method ¼ H1 > > > > > > > > > > > > > > 3:05419 if method ¼ H2 > > < = þ 3:05216 if method ¼ H3 þ Normal Errorð0; 0:235Þ ð1Þ > > > > > > 3:06335 if method ¼ H4 > > > > > > > > > > 2:95461 if method ¼ H5 > > > > > > : ; 2:96898 if method ¼ H6

From the regression in Eq. (1) it can be observed that size of the rack (Size), rack organization (Org), method, and some interactions resulted significant. The regression has an R2 of 99.01% meaning that almost all of the observed variability in the ln(distances) can be explained. By comparing the constants in Eq. (1) one can conclude that

Table 1 Results for one empty space and idle time. Rep.-exp.

R1–1 R1–2 R1–3 R1–4 R1–5 R1–6 R1–7 R1–8 R1–9 R2–1 R2–2 R2–3 R2–4 R2–5 R2–6 R2–7 R2–8 R2–9 R3–1 R3–2 R3–3 R3–4 R3–5 R3–6 R3–7 R3–8 R3–9 R4–1 R4–2 R4–3 R4–4 R4–5 R4–6 R4–7 R4–8 R4–9 R5–1 R5–2 R5–3 R5–4 R5–5 R5–6 R5–7 R5–8 R5–9

Size

9 9 9 100 100 100 400 400 400 9 9 9 100 100 100 400 400 400 9 9 9 100 100 100 400 400 400 9 9 9 100 100 100 400 400 400 9 9 9 100 100 100 400 400 400

Org.%

0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85 0 50 85

Distance (DUs)

Time in secs. (s), mins. (m), hrs. (h), or days (d)

DP

H1

H2

H3

H4

H5

H6

DP

H1

H2

H3

H4

H5

H6

22 12 8 – – – – – – 27 12 9 – – – – – – 20 12 6 – – – – – – 27 15 8 – – – – – – 25 15 7 – – – – – –

27 16 8 945 471 171 – – – 27 12 9 982 452 151 – – – 20 12 6 – – 175 – – – 32 15 8 – 482 166 – – – 27 18 7 – 477 153 – – –

27 16 8 958 480 174 7557 3924 1109 27 12 17 995 457 151 7597 3854 1231 20 20 6 964 517 179 7696 3662 1214 42 22 16 981 482 166 7626 3824 1203 28 19 7 999 487 153 7321 3812 1156

27 16 8 960 479 174 7552 3922 1119 27 12 17 993 457 151 7574 3854 1231 20 19 6 957 513 179 7703 3662 1213 42 22 16 977 482 166 7634 3824 1227 27 19 7 999 483 153 7299 3829 1154

30 17 8 966 476 178 7599 3961 1115 27 12 17 1007 452 151 7719 3876 1300 20 19 6 983 533 194 7764 3679 1216 39 22 16 1017 482 179 7707 3841 1208 27 19 7 1004 483 153 7354 3842 1159

23 12 8 917 463 164 – 3834 1011 27 12 9 956 449 151 – 3783 1103 20 12 6 940 468 152 – 3634 1198 29 15 8 918 482 133 7503 3784 1143 25 15 7 957 472 146 7222 3275 1129

23 12 8 932 463 170 – 3859 1034 27 12 9 964 449 151 – 3794 1141 20 12 6 949 477 166 – 3641 1201 29 15 8 935 482 133 – 3784 1185 25 15 7 957 472 146 7287 3811 1129

2d 3s 2s – – – – – – 13 m 2s 2s – – – – – – 13 m 2s 2s – – – – – – 2d 3s 3s – – – – – – 6h 6s 2s – – – – – –

2s 2s 2s 9m 4s 2s – – – 2s 2s 2s 1h 2s 2s – – – 2s 2s 2s – – 2s – – – 2s 2s 2s – 3s 3s – – – 2s 2s 2s – 5s 3s – – –

2s 2s 2s 2s 2s 2s 4s 3s 2s 2s 2s 2s 2s 2s 2s 4s 3s 2s 2s 2s 2s 2s 2s 2s 4s 3s 2s 2s 2s 2s 2s 2s 2s 4s 3s 3s 2s 2s 2s 2s 2s 2s 4s 3s 2s

2s 2s 2s 2s 2s 2s 4s 3s 2s 2s 2s 2s 2s 2s 2s 4s 3s 2s 2s 2s 2s 2s 2s 2s 4s 2s 2s 2s 2s 2s 2s 2s 2s 4s 3s 3s 2s 2s 2s 2s 2s 2s 4s 3s 2s

2s 2s 2s 2s 2s 2s 4s 3s 2s 2s 2s 2s 2s 2s 2s 4s 3s 2s 2s 2s 2s 2s 2s 2s 4s 3s 2s 2s 2s 2s 2s 2s 2s 4s 3s 3s 2s 2s 2s 2s 2s 2s 4s 3s 2s

2s 2s 2s 7s 2s 2s – 1d 1m 3s 2s 2s 28s 2s 2s – 14s 1m 2s 2s 2s 25s 1m 2s – 3s 3s 2s 2s 2s 34 m 2s 2s – 12s 23s 2s 2s 2s 8s 2s 3s 2m 1m 6s

1s 1s 1s 1s 1s 1s – 3h 5s 1s 1s 1s 2s 1s 1s – 2s 48s 1s 1s 1s 2s 5s 1s – 2s 4s 1s 1s 1s 18 m 1s 1s – 3s 3s 2s 2s 2s 5s 3s 3s 1m 9s 6s

1008

H.J. Carlo, G.E. Giraldo / Computers & Industrial Engineering 63 (2012) 1003–1012

Table 2 Percentage differences between the methods and the best method. Method

Ave.% diff. (size = 9)

Ave.% diff. (size = 100)

Ave.% diff. (size = 400)

Ave.% diff. (overall)

H2 H3 H4

30.17% 29.34% 30.07%

6.33% 6.12% 8.41%

3.74% 3.92% 4.79%

13.41% 13.13% 14.42%

the best methods in terms of solution quality are DP, H5, H1, H6, H3, H2, and H4, respectively. Out of these methods, only H2, H3, and H4 are able to consistently solve large problem instances. Table 2 presents the average percent difference (Ave.% Diff.) between each method and the best solution found in each problem. It can be extracted from Table 2 that H3 has the lowest overall average percent difference between the methods that are able to solve large problem instances consistently in a reasonable amount of time. Interestingly, H2 obtained a lower average percent difference than H3 in large problem instances. However, H3 outperformed H2 in 46.67% of the large instances (H2 outperformed in only 33.33% and in 20% of the large instances the methods performed equally) in terms of solution quality. In terms of average computational time, H3 was faster than H2 and H4 by 0.69% and 0.44%, respectively. Hence, we select H3 as the most practical of the heuristics for assessing the fitness of candidate solutions under RWW. Unfortunately, as shown in Table 2, the average percent difference between H3 and the best solution found for each instance was 13.13%.

The following sub-Sections present four heuristic methods for the Rearrange-While-Working strategy when there is only one empty location. 5.1. Heuristic 7 (H7): recognizing repeated move requests This heuristic finds the first move request that is repeated in the list of move requests and finds the optimal solution for this subproblem (including from the next request to the first repeated). Then, the next sub-problem (which includes from the next request in the list to the first repeated) is solved given the solution to the first sub-problem. All combinations of this sub-problem are evaluated assuming idle time as in Section 3. The basic idea is to dramatically reduce the number of combinations considered. In Fig. 4 there are 13 move requests in the list. The first load to be repeated in the list is load 1. All possible combination of this sub-problem (that includes 7 loads) is explored and evaluated. Then the next five loads would be considered for the second sub-problem in Fig. 4, and so on. 5.2. Heuristic 8 (H8): greedy In H8 the decision to return a load to its original location or to move it to the empty location is optimized for each move request. H8 is similar to H7, except that sub-problem contains only one move request. Hence H8 evaluates 2k combinations. 5.3. Heuristic 9: steepest descent (SD)

5. One empty location using RWW This Section explores the scenario where the rack has exactly one empty location and uses the RWW strategy. In other words, the moves performed by the S/R are limited to those in a list of move requests. As an example, assume that the S/R is expected to fulfill the following list of k move requests {8, 1, 7, 2, 6, 5, 3, 1, 7}. This means that the S/R must retrieve load 8, then load 1, and so on. We assume that the load will be returned to the rack as soon as it has been retrieved (i.e. a picker is waiting for the load). Since there is only one empty location on the rack, there are two options when storing a load: return it to its original location, or move it to the empty location. After storing load 8, the process is repeated with the remainder k  1 move requests in the list. It is important to observe that the same load might be requested more than once in the list. As mentioned earlier, under RWW it is not expected that racks can be organized into the SLAP-optimal arrangement by serving one block of move requests. Hence, one needs to be able to quantify how close to the final rack configuration is a particular rack arrangement. In other words, given two rack configurations one needs to determine which one is closer to the final configuration. In this study, we propose using the distance required to rearrange the rack using idle times as a measure of how close a rack is to its final arrangement (Section 3). Notice that RWW can be used in combination with the ‘‘shuffling’’ concept in Christofides and Colloff (1973), Linn and Wysk (1990a, 1990b), and Muralidharan et al. (1995) when idle time exists. However, in this study, rearranging while in idle time is only considered as a measure of how close a rack is to its final arrangement. To explicitly enumerate the solution space under RWW with one empty space 2k combinations need to be considered (for each of the k move requests, consider moving to current location or moving to empty location). The best combination is the one that minimizes the distance to fulfill the k move requests, plus the time to take the resulting configuration to the final configuration using idle time (as in Section 3).

In the steepest descent-based heuristic (SD) the decision to return each load to its original location or to relocate it to the empty location is represented by a binary vector. The initial vector is a randomly selected binary vector of size k, representing that all loads will be relocated to the empty location after serving the move request. This solution (referred to as a parent solution) is evaluated similar to previous heuristics, that is, determine the distance incurred to perform all move requests under the reassignment decision and add the travel distance necessary to complete the rearrangement during idle time. Then, a generation is created by toggling one element of the parent solution to zero (i.e. return to its original location) and each candidate solution in the generation is evaluated. If the best candidate solution in the generation outperforms the parent, it is selected as the new parent solution and a new generation is created from it until the best candidate solution of a generation does not outperform its parent. 5.4. Heuristic 10: genetic algorithm (GA) Genetic algorithm (GA) is a meta-heuristic based on the mechanics of natural selection and natural genetics, created by John Henry Holland in the 1970s (Goldberg, 1989). In Genetic Algorithm a set of candidate solutions is generated and variants are developed using various standard operators (selection, mating, and mutation). The quality of a solution is obtained by evaluating the fitness function. GA was selected over other existing meta-heuristics, such as Simulated Annealing and Tabu Search, as it is particularly suited for problems whose search space is encoded using a binary representation. In the context of our problem, the solution space for our GA-based heuristic is encoded as a binary vector as in SD (Section 5.3). The fitness of a candidate solution is obtained as in the other RWW heuristics. The GA scheme used is described below. Step 0: Select the maximum number of individuals in the population P and the maximum number of generations G. Generate P solutions for the first generation’s population randomly. Set generation counter Ngen = 1.

1009

H.J. Carlo, G.E. Giraldo / Computers & Industrial Engineering 63 (2012) 1003–1012

1

2

3

5

4

8

1

7

4

5

2

7

2

1

2

3

5

4

8

1

7

4

5

2

7

2

1

2

3

5

4

8

1 7

4

5

2

7

2

7

4

5

2

7

1

2

3

5

4

8

1 2

Fig. 4. Recognizing repeated move requests heuristic.

Step 1: Determine the fitness of each solution in the current generation’s population and record the string that has the best fitness. Step 2: Generate solutions for the next generation’s population using selection, crossover, and mutation. Step 3: Update Ngen = Ngen + 1. If Ngen 6 G, go to Step 1. Otherwise, stop The implementation of the GA was done using the function gatool from Matlab 8.0. The GA parameter values were selected via experimentation using randomly generated problem instances. In the parameter tuning phase the objective was to find a combination of parameter values that allowed the GA to consistently converge rapidly to a good solution. In the parameter tuning experiments the initial population was varied between 10 and 50 and the maximum number of generations was varied between 100 and 500. It was concluded that increasing the initial population to over 20, and the number of generations above 300, did not further improve the solution quality. Similarly, multiple GA operators were considered. The following GA parameter combination was selected: P = 20, G = 300, Selection is Stochastic Uniform – uses stochastic universal sampling from Baker (1987), Mutation is Uniform (0.1) where 10% of the chromosomes randomly change their value from the allowable values {0, 1} in this case, Crossover is Scattered – where two parents are randomly selected and each chromosomes is randomly inherited from one of the parents, all other parameters were left at the default values.

ory and an AMD Turion 2.1 GHz processor. The MATLAB codes used are available in Giraldo (2011). For the experiments we used H3 to complete the reorganization during idle time. H3 was used in the experiments as it was the preferred method from Section 3. It is important to highlight that by using H3 we are adding variability to the results in this Section. Ideally, we would use the optimal solution for reorganizing during idle time so we could claim that the variability is from the proposed solution methodologies. However, we do not expect H3 to bias our results towards a particular solution methodology as it will be used for all methods. Table 3 presents some sample results for the case where the organization level is at 0%. Columns 1–3 describe the problem instance using the size, load distribution in list, and number of move requests, respectively. Columns 4–7 present the total distance travelled for DP, H7, H8, and SD, respectively. Since GA is a stochastic procedure, we present the minimum, maximum, and average results of four independent runs in columns 8–10, respectively. This distance travelled reported includes the travel from the methods, plus the necessary travel to complete the rearrangement during idle time using H3. Columns 11–15 present the runtimes (in seconds) for each solution procedure (average runtimes for GA). As before, the missing values in Table 3 correspond to those cases where the runtime exceeded 3 days. A regression analysis was performed on the data. After eliminating insignificant factors and interactions the resulting regression is presented in Eq. (2) 2

5.5. Experimental results and conclusions A full factorial experiment was meticulously conducted to determine the best heuristic for the one empty location under the RWW policy. The factors were size of the rack (at levels 9, 100, 400), rack organization (at levels 0%, 50%, and 85%), the number of move requests in the list (at levels k = 10, 25, and 50), and load distribution in list (at levels uniform, where all loads are equally likely to be in list, a case where one load has a 15% higher probability of being selected, and lastly a case where one load is 25% more likely to be selected). Five replicates of each instance complete the experiment (405 runs per method). It was assumed that the S/R machine takes 1 DU to move horizontally and vertically according to Chebyshev distances. The data used in all experiments was randomly generated for each of the 405 problem instances using VBA. The heuristics were coded in MATLAB 8.0, and the experiments were run in a Dell Core 2 vPro 4 GB of mem-

lnðDistanceÞ ¼ 0:0255561k  5:1143  105 Size  5:90467 9 8 0:0333909 if method ¼ PD > > > > > > > > > > > = < 0:0333278 if method ¼ H7 > 5  Size  10 Size  k þ 0:032986 if method ¼ H8 > > > > > > > 0:0331732 if method ¼ HSD > > > > > ; : 0:0332784 if method ¼ HGA 9 8 3:81882 if method ¼ PD > > > > > > > > > > > = < 3:84277 if method ¼ H7 > þ Normal Errorð0; 0:1202Þ þ 3:97185 if method ¼ H8 > > > > > > > 3:89883 if method ¼ HSD > > > > > ; : 3:85381 if method ¼ HGA

ð2Þ

It is observed from Eq. (2) that the only significant factors were the size of the rack (Size), number of move requests in the list (k), solution method, and some interactions. The rack organization and load distribution in list factors were not significant. The R2 for the regression in Eq. (2) is 99.54%, implying that the regression is very good at

1010

H.J. Carlo, G.E. Giraldo / Computers & Industrial Engineering 63 (2012) 1003–1012

Table 3 Results for case one empty location and RWW with Organization at level 0%. Size

Dist.

k

9 9 9 9 9 9 9 9 9 100 100 100 100 100 100 100 100 100 400 400 400 400 400 400 400 400 400

U U U 15 15 15 25 25 25 U U U 15 15 15 25 25 25 U U U 15 15 15 25 25 25

10 25 50 10 25 50 10 25 50 10 25 50 10 25 50 10 25 50 10 25 50 10 25 50 10 25 50

Distance (DU)

Runtime (s)

DP

H7

H8

SD

GA min.

GA max.

GA ave.

DP

H7

H8

SD

GA

63 – – 78 – – 71 – – 1018 – – 1073 – – 1106 – – 7618 – – 7708 – – 7784 – –

63 – – 78 – – 71 – – 1018 – – 1073 – – 1110 – – 7618 – – 7708 – – 7784 – –

74 154 276 82 135 297 83 170 287 1035 1388 1911 1089 1406 1931 1110 1364 1821 7677 8224 9501 7748 8421 9282 7828 8218 9151

71 145 266 78 140 264 71 151 250 1020 1364 1878 1079 1388 1790 1128 1345 1751 7625 8234 9453 7756 8406 9176 7797 8170 9187

64 141 248 78 133 253 71 143 239 1018 1343 1828 1073 1345 1751 1106 1303 1682 7618 8154 9311 7708 8325 9023 7784 8098 8998

64 145 256 78 134 262 73 148 258 1018 1344 1847 1073 1351 1769 1106 1311 1700 7618 8163 9333 7708 8329 9038 7784 8103 9034

64 143 252 78 134 258 71.5 145 246 1018 1343 1834 1073 1349 1758 1106 1308 1692 7618 8158 9323 7708 8328 9031 7784 8100 9017

5 – – 5 – – 6 – – 9 – – 10 – – 10 – – 29 – – 33 – – 33 – –

4 – – 6 – – 4 – – 11 – – 8 – – 9 – – 28 – – 28 – – 29 – –

4 5 6 4 6 4 4 6 8 6 4 5 5 4 5 6 6 5 5 5 5 5 5 5 5 5 5

4 4 5 4 3 4 4 5 5 5 5 6 3 5 5 3 4 3 5 6 7 5 6 10 5 7 14

9 12 17 9 12 18 9 13 18 37 38 45 35 39 44 35 39 46 150 161 158 146 152 162 152 153 162

explaining the variability. Further, from Eq. (2) one can concludes that the best methods are DP, H7, GA, SD, and H8, respectively. Unfortunately, DP and H7 were not able to solve most of the instances tested (even smaller instances). Hence, GA is the preferred solution methodology in terms of solution quality for the case with one empty location under RWW. However, the GA runtimes are more sensitive to the complexity of the instance than those of SD, the next best heuristic according to the regressions. 6. Multiple empty locations using RWW This Section explores the scenario where the rack has h > 1 empty locations and uses RWW. Fig. 5 illustrates the complexity added by considering h = 2 empty locations. If load 6 is retrieved as in Fig. 5 (left), there are now three possible empty locations to store it (Fig. 5, right). The solution space when h > 1 is much higher than the case with h = 1. To exhaustively explore all possible combinations for this problem one has to evaluate (h + 1)k combinations. Given the complexity of the problem two of the heuristics from Section 5.3 and 5.4, namely SD and GA, are modified to address multiple empty locations. 6.1. Heuristic 9: modified steepest descent (MSD) Modified Steepest Descent heuristic (MSD) is a direct extension of SD (in Section 5.3) for the case with multiple empty locations. The only difference between SD and MSD is that in the latter the value of 1 in the vector represents that the load will be stored in the empty location closest to its final location. The other empty locations are not considered in MSD. 6.2. Heuristic 10: Modified Genetic Algorithm (MGA) As in MSD, in Modified Genetic Algorithm (MGA) a vector of size k is used to represent the reallocation decision for each move request. In MGA, however, the vector is allowed to assume integer values 2 f0; 1; 2; . . . ; hg. A value of zero indicates that the load is re-

turned to its original (retrieval) location. The other h possible values indicate to the empty location to which the load will be moved, where a value of 1 is the first empty location as defined by the user. In our case, the first rack location is location (1, 1), then (1, 2), and we continued with the typical row-by-row matrix convention. The genetic algorithm scheme from Matlab 8.0’s gatool was used once again. The Selection and Crossover operators were done as in GA. For the Mutation operator the chromosome was assigned to a random value between 0 and h. All other parameters for the genetic algorithm remained the same.

6.3. Experimental results and conclusions To determine the best heuristic for the multiple empty locations under the RWW policy, a full factorial experimental design was conducted. The factors were size of the rack (at levels 9, 100, 400), number of empty locations (5%, 20%, 40%), rack organization (at levels 0%, 50%, and 85%), the size of the list of move requests (at levels 10, 25, 50), and load distribution in list (at levels uniform, 15%, and 25%). Five replicates of each instance complete the experiment (1215 runs per method). As before, it was assumed that the travel distance between adjacent pallet locations is one DU and the S/R machine travels according to the Chebyshev distance. The experiments were randomly generated in VBA for each experimental condition. The heuristics were coded in MATLAB 8.0 and the experiments were run in a Dell Core 2 vPro 4 GB of memory and an AMD Turion 2.1 GHz processor. The MATLAB codes used are available in Giraldo (2011). As before, H3 (from Section 4.3) was used to evaluate candidate solutions as if the rearrangement was done during idle time. Since this scenario has more than one empty location, H3 needs to be modified. H3 will now start by repositioning the load closest to the S/R, whose final location is available. In the case that all h empty locations are in their final position before reaching the SLAP-optimal arrangement, the load closest to the S/R (which requires repositioning) is moved to the closest empty location. Alternatively, any fast reshuffling heuristic could be used.

H.J. Carlo, G.E. Giraldo / Computers & Industrial Engineering 63 (2012) 1003–1012

1011

Fig. 5. S/R machine path to relocate load 6.

Table 4 Sample results for case multiple empty locations and RWW with size = 100 and organization = 0%. Dist

1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3

k

10 25 50 10 25 50 10 25 50 10 25 50 10 25 50 10 25 50 10 25 50 10 25 50 10 25 50

Empty (%)

5 5 5 5 5 5 5 5 5 20 20 20 20 20 20 20 20 20 40 40 40 40 40 40 40 40 40

Quality (Chebyshev distance) MSD

MGAMin

MGAMax

MGAAvg

1083 1290 1658 1012 1247 1631 1009 1346 1630 842 1023 1559 879 1097 1478 849 1149 1497 696 911 1247 731 941 1433 644 909 1367

1007 1197 1554 978 1159 1514 965 1265 1549 778 953 1404 814 1005 1347 788 1030 1327 583 716 1061 609 761 1131 561 734 1073

1012 1232 1588 986 1178 1547 972 1291 1589 790 1001 1428 820 1027 1374 798 1049 1354 593 760 1122 614 774 1170 571 749 1138

1009 1213 1574.5 982 1166.25 1534 967.75 1281.5 1569.75 783.25 966 1412.25 816.75 1015.25 1361.25 791.25 1042.75 1346.75 587 739.25 1089.25 610.75 766.75 1149 564.25 741.25 1113

Unfortunately, none of the existing solutions for reshuffling problems seem practical for our need. The algorithm in Christofides and Colloff (1973) takes a very long time due to the complexity of the problem, and the heuristics in Muralidharan et al. (1995) were not designed to handle cycles. One can claim that the modified version of H3 is an extension of the SNN heuristic in Muralidharan et al. (1995). Table 4 presents a sample of the results with a 10  10 rack and 0% organization. In Table 4, columns 1–3 present the load distribution level, number of move requests, and number of empty locations, respectively. Columns 4–7 present the total distance travelled (RWW plus H3) for MSD, and the minimum, maximum, and average of 4 MGA runs. A regression equation was obtained from the experimental results. The resulting regression equation for ln(distance), after eliminating non-significant factors and interactions, is presented in Eq. (3).

It is observed from Eq. (3) that the significant factors were the size of the rack (Size), number of move requests in the list (k), rack organization (Org), number of empty locations (h), solution method, and some interactions. The load distribution in list factor was not significant. The resulting regression has an R2 of 99.42%. From Eq. (3) one can observe that MGA outperforms MSD in terms of solution quality. (Note that even when h is at its lowest level (i.e. h = 5%), the constant added to the ln(distances) of MSD (i.e. 1.31425⁄.05 + 4.1998 = 4.8655125) is larger than the corresponding constant for MGA which is 4.223881.) As a matter of fact, an ANOVA confirms that MGA outperforms MSD (P-value = 0.000). The average of the four MGA runs (MGAAvg.) outperformed MSD by an average of 7.41% and the best MGA run outperformed MSD by an average of 8.30%. MSD outperformed the average of the MGA runs in only 7.43% of the experiments (7.50% of the runs versus the best MGA run). In terms of runtime, the MGA took a few seconds for small racks, a couple of minutes for medium racks, and over half an hour for some large instances. On the other hand MSD ran much faster, typically under one minute even for large instances. The maximum runtime for MSD was 8.15 min. Clearly, the MGA runtimes could be controlled by modifying the stopping criteria. However, in our study we did not control the stopping criteria as we understand that runs under one hour are practical for the reality of our problem considering the block of move requests. Additional details regarding the analysis performed are available in Giraldo (2011). 7. Revisiting our modeling assumptions Throughout this paper it was assumed that there is one load of each product on the rack. Without this assumption for each move request one would need to determine which of the loads to retrieve. On the other hand, since each product has multiple empty locations to store its loads, it is more likely that one of the empty locations assigned to the product is empty. The MGA can be easily modified by adding one chromosome (i.e. one element to the solution space vector) for each move request. The additional chromosomes would specify the particular load (for each move request) to be moved. For simplicity, it was also assumed that the sequence of the move requests is fixed. This assumption can also be relaxed by adding a chromosome for each move request in MGA. These chromosomes could indicate the sequence in which move requests would be performed. Typically, adding chromosomes to the solution space negatively affects the performance of meta-heuristics. The extensions to the MGA are presented merely as concepts to demonstrate the potential of the heuristic.

lnðDistanceÞ ¼ 0:0298409Size þ 0:0218282k  4:41286 2

 105 Size  5:6408  105 Size  k  0:00111427Size  h   1:31425 if MSD þ 5:5985  105 Org  Size þ h  k  1:43822 if MGA   4:1998 if MSD hþ þ Normal Errorð0; 0:2551Þ 4:15197 if MGA

ð3Þ

8. Conclusions and future research This paper introduces the rearrange-while-working (RWW) strategy, which seeks to organize a warehouse by rearranging loads as they are retrieved and re-stored according to a move request list. The proposed RWW strategy is particularly useful for high throughput warehouses or distribution centers. The pro-

1012

H.J. Carlo, G.E. Giraldo / Computers & Industrial Engineering 63 (2012) 1003–1012

posed RWW policy can be used in parallel with existing repositioning policies while the equipment is idle. Three cases were studied in this paper: (1) one empty location with idle equipment; (2) one empty location with RWW; and (3) multiple empty locations with RWW. A total of ten heuristics were tested for the three cases studied. In the one empty location with idle time the closest load heuristic (H3) was selected as it provided the best combination of solution quality and runtime. For the one empty location with RWW and the multiple locations with RWW the genetic algorithm-based approaches (GA and MGA) were preferred. The proposed RWW strategy could be used to solve the static or dynamic version of the problem. For the static version of the problem, the optimal SLAP is computed once and the RWW is used to pursue this arrangement. In the dynamic version, the optimal SLAP is computed after performing each block of move requests. With the existing Warehouse Management Systems (WMSs) it is possible to incorporate more sophisticated storage location strategies. Clearly, the scope of this paper was on the optimization of the rearrangement process as opposed to comparing the effect of the proposed storage location strategy with existing policies (e.g. dedicated, class-based, etc.). However, it would be interesting to compare RWW with these policies. Further, it would be interesting to study the short term impact of implementing RWW. Future research should also explore more efficient heuristics (in terms of solution quality and time) to solve the reshuffling problem during idle time as it is a key component in evaluating candidate solutions under RWW. RWW can be applied to warehouses operating under any storage location policy. Clearly, the optimal-SLAP for each storage location policy is computed differently. It would be interesting to study if RWW benefits more any particular storage location policy. Acknowledgement The authors would like to thank Dr. Noel Artiles-León forhis valuable input and discussions regarding the statistical analyses presented in this paper.

References Archer, A. F. (1999). A modern treatment of the 15 puzzle. American Mathematical Monthly, 106(9), 793–799. Baker, J. E. (1987) Reducing bias and inefficiency in the selection algorithm. In Proceedings of the second international conference on genetic algorithms and their application (pp. 14–21). Hillsdale, New Jersey: L. Erlbaum Associates. Christofides, N., & Colloff, I. (1973). The rearrangement of items in a warehouse. Operations Research, 21(2), 577–589. Drozdek, A. (2005). Data structures and algorithms in C++ (3rd ed.). Boston, MA: Course Technology. Giraldo, G. E. (2011) Metodología Para la Reorganización Perpetua de Almacenes. Master’s thesis. University of Puerto Rico – Mayaguez. Goetschalckx, M., & Ratliff, H. D. (1990). Shared storage policies based on the duration stay of unit loads. Management Science, 36(9), 1120–1132. Goldberg, D. (1989). Genetic algorithms in search, optimization, and machine learning (1st ed.). Boston, MA, USA: Addison-Wesley Longman Publishing Co. Inc. Gu, J., Goetschalckx, M., & McGinnis, L. F. (2007). Research on warehouse operation: a comprehensive review. European Journal of Operational Research, 177(1), 1–21. Gue, K. R., & Kim, B. S. (2007). Puzzle-based storage systems. Naval Research Logistics, 54(5), 556–567. Han, M. H., McGinnis, L. F., Shieh, J. S., & White, J. A. (1987). On sequencing in an automated storage/retrieval system. IIE Transactions, 19(1), 56–66. Hausman, W. H., Schwarz, L. B., & Graves, S. C. (1976). Optimal storage assignment in automatic warehousing systems. Management Science, 22(6), 629–638. Heskett, J. L. (1963). Cube-per-order index: A key to warehouse stock location. Transportation and Distribution Management, 3, 27–31. Jeroen, P., & Van den Berg, J. P. (1999). A literature survey on planning and control of warehousing systems. IIE Transactions, 31(8), 751–762. Kim, K. H., & Bae, J. W. (1998). Re-marshaling export containers in port container terminals. Computers & Industrial Engineering, 35(3–4), 655–658. Lee, H. F., & Schaefer, S. K. (1996). Retrieval sequencing for unit-load automated storage and retrieval systems with multiple openings. International Journal of Production Research, 34(10), 2943–2962. Linn, R. J., & Wysk, R. A. (1990a). An expert system framework for automated storage and retrieval system control. Computers & Industrial Engineering, 18(1), 37–48. Linn, R. J., & Wysk, R. A. (1990b). An expert system based controller for an automated storage/retrieval system. International Journal of Production Research, 28(4), 735–756. Muralidharan, B., Linn, R. J., & Pandit, R. (1995). Shuffling heuristics for the storage location assignment in an AS/RS. International Journal of Production Research, 33(6), 1661–1672. Reinefeld, A. (1993). Complete solution of the eight-puzzle and the benefit of node ordering in IDA. Thirteenth International Joint Conference on Artificial Intelligence, 1, 248–253. Roodbergen, K. J., & Vis, I. F. A. (2009). A survey of literature on automated storage and retrieval systems. European Journal of Operational Research, 194, 343–362. Texas Instruments Incorporated (1995). System and method for defragmenting a file system. Inventor: James A. Capps. Filed: 5–22-1995. Int. CL. G06F 12/08. United States Patent. US6397311B1, 5–28-2002.