ARTICLE IN PRESS Control Engineering Practice 13 (2005) 1223–1241 An approach to control automated warehouse systems Francesco Amatoa, Francesco Basileb,, Ciro Carboneb, Pasquale Chiacchiob a School of Computer Science and Biomedical Engineering, Università degli Studi Magna Græcia di Catanzaro, Via Tommaso Campanella 115, 88100 Catanzaro, Italy b Dipartimento di Ingegneria dell’Informazione ed Ingegneria Elettrica, Università degli Studi di Salerno, Via Ponte Don Melillo 1, 84084, Fisciano (SA), Italy Received 18 March 2003; accepted 28 October 2004 Available online 29 January 2005 Abstract The goal of this paper is the development of control algorithms for the management of an automated warehouse system. As usual, the implementation of a control algorithm requires three preliminary steps: development of a reliable model; design of control procedures according to some optimality criteria; validation of these control procedures. As for modelling, a new level in the control architecture, namely an optimizer system, is introduced which performs real-time optimization thus simplifying the low-level control and improving the overall performance. In this context, the role of a detailed model of the whole warehouse is discussed and such a model is built up by using the colored timed Petri nets framework. As for control, we propose two control algorithms, derived under the simplifying continuity assumption of the rack locations, to optimize the operations of the cranes (moving within the aisles of the warehouse) and the operations of the shuttle (moving on a straight line placed between the aisles and the picking/refilling area), respectively. To evaluate the performance of the proposed control algorithms we define three different cost indices. As for the validation, extensive simulations are performed on the model in order to prove the effectiveness of the proposed control algorithms. A further validation of the algorithms has been performed on a test bed in order to take into account communication delays and computation times. Finally, the proposed architecture and control algorithms have been applied to a real plant. r 2004 Elsevier Ltd. All rights reserved. Keywords: Discrete event systems modelling; Colored timed Petri nets; Warehouse automation; Factory automation; Optimization 1. Introduction In the last fifteen years, a big effort has been made to find optimal strategies for planning and control of warehouse systems. These issues have become more and more challenging with the growth and diffusion of modern computer technology which allows the implementation of complex operations in a completely automatic way. Planning involves high level decisions, like assignment of goods to the storage locations (random, class-based, correlated product clustering policies) (VandenBerg, 1999) or the designing of the Corresponding author. Tel.: +39 089 964400; fax: +39 06 233227957. E-mail addresses:, (F. Basile). 0967-0661/$ - see front matter r 2004 Elsevier Ltd. All rights reserved. doi:10.1016/j.conengprac.2004.10.017 warehouse system itself. Control problems involve optimal sequencing and scheduling of storage and retrieval requests resulting in the so-called dispatching control. We refer to a general warehouse architecture consisting of a number of aisles, each one served by a crane, shuttles, picking/refilling positions and in/out buffers (see Fig. 1 for an example of a real layout). On both sides of each aisle there is a storage rack composed of nr rows and nc columns; moreover, as said, each aisle is served by a crane, capable of moving both vertically and horizontally at the same time, which performs the following operations: (i) picking of the Stock Unit (SU) to be stored at the buffer input of the aisle, referred as the input/output (I/O) point of the aisle; (ii) storage of the SU into the assigned location S ARTICLE IN PRESS 1224 F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 Fig. 1. Warehouse lay-out. of the rack; (iii) movement to location R where a retrieval has been requested; (iv) retrieval of the SU stored in R; (v) coming back to the I/O point. This set of operations is called, in the warehousing system context, a dual command (DC) machine cycle (Graves, Hausman, & Shieh, 1977; Bozer & White, 1984; Han, McGinnis, Shieh, & White, 1987; Lee, de Souza, & Ong, 1996). As to the shuttle, it moves along a mono-dimensional path placed orthogonally with respect to the aisle axis and performs picking actions (from the main input buffer, the aisles output locations and the picking/ refilling output locations) and deposit actions (into the main output buffer, the aisles input locations, the picking/refilling input locations). The picking–refilling areas represent an interface with the shop floor of the factory. A picking–refilling bay (denoted as ‘‘BayPR’’ in Fig. 1) consists of a picking location, a deposit location and a shop floor interface location connected via conveyors so that an SU (carried on a pallet) can be partially emptied by a human operator at the shop floor location and then carried back on the same pallet to an aisle rack location. The in/out buffers represent the interface of the warehouse with the rest of the plant. In this paper an approach to the control of warehouse systems is presented. The first contribution of this paper is the development of a new hierarchical level in the control architecture (Basile, Carbone, & Chiacchio, 2003). Indeed, in previous applications, only long-term optimization was performed: it usually has a day or week time horizon and it is based on simplified models of warehouse systems and on statistical characterization of the system performance. Conversely, we introduce a further level constituted by a real time optimizer, whose core is the dispatcher unit, with the aim of performing the shortterm optimization of handling sequences, that usually has the objective to minimize the time to complete a little number of picking or storage missions and is based on the current state of the system. The role of a detailed model for the designing and implementation of this level is also discussed. The main advantages obtained are:     The short-term optimization leads to better performance. Design, implementation and testing of low-level handling sequences is greatly simplified since all the optimization issues are taken in charge by the dispatcher. Since the optimizer relies on the current state of the system (it works in real time) it can also manage faults and degradation of the system. Roughly speaking, the dispatcher output is the order to start handling sequences whose control code is executed at low-level; therefore, it can be easily adapted to different plants. The second contribution of this paper is the development of a detailed formal reliable model of an automated warehouse, as shown in Fig. 1, in the framework of discrete event systems; model building is fundamental for both control design and performance evaluation. The obtained model is based on the colored timed Petri net ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 (CTPN) approach (Jensen, 1995; Hsieh, HWang, & Chou, 1998). In this context the key contributions of the paper can be summarized as follows:      A detailed formal model of the whole warehouse is built up, while the previous literature mainly considered the formal modelling of the individual components (Hsieh, HWang, & Chou, 1998) or only implemented a simplified model for simulation purposes (Lee et al., 1996; Chincholkar & Krishnaiah Chetty, 1996). The model is highly modular and each module is parameterized: the reuse of model components to model different warehouse systems is very easy. The interface with a higher level scheduler (dispatcher) is embodied in the obtained model, thus allowing off-line performance evaluation of state-dependent dispatching control algorithms. There is a clear correspondence between model entities and layout, thus allowing the model to be used for on-line monitoring (see (Feldmann & Colombo, 1999) for monitoring of flexible manufacturing systems). The detailed model can be used on-line in complex control algorithms which are based on look-ahead (or what-if) techniques (Hsieh & Chen, 1999). The third contribution is the development of the control algorithms implemented in the optimizer system (OS). More precisely we focus on simultaneous optimization of the DC cycles operations of the cranes and the picking/deposit actions performed by the shuttle. Previous papers (Bozer & White, 1984) and (Han, McGinnis, Shieh, & White, 1987) considered the DC optimization problem under the continuous rack assumption, i.e. the rack is viewed as an infinite number of pointwise locations each one addressed by a pair of real numbers. In (Han, McGinnis, Shieh, & White, 1987) the nearestneighbor algorithm to optimize the sequence of retrievals was proposed. This algorithm assumes that, for any given DC operation, a number of locations is available for storage and one of the empty locations is paired with a retrieval location in an optimal way. The throughput derived by the application of such policy is evaluated analytically by an approximated formula, and then validated via computer simulations on both continuous and discrete racks. In the same context of Bozer and White (1984) and Han, McGinnis, Shieh, and White (1987), Lee and Schaefer (1996) proposed a procedure to optimize the sequencing of retrieval requests based on the solution of a linear assignment problem. By following the guidelines of Bozer and White (1984), Han, McGinnis, Shieh, and White (1987) and Lee and Schaefer (1996), in this paper we develop an algorithm to optimally sequence the retrieval orders. 1225 However, we start from the more restrictive assumption (which is based on real world experience) that the SU to be stored arrives at the I/O point with the address of the destination location already assigned. This means that it is not possible, at this level, to choose the destination among a number of empty locations, as assumed in previous papers. Moreover we propose a procedure, based on parametric identification techniques, to compute precisely the throughput of the crane/aisle subsystem which comes out from the application of our algorithm. The continuous approximation allows us to express the throughput improvement as a function of a small number of meaningful parameters. The problem of shuttle optimization in warehouse system of the type in Fig. 1 has not been previously discussed in the literature. We propose an algorithm to optimize the sequence of picking and deposit operations performed by the shuttle, so as to minimize the time required by each cycle. Assuming again a continuous structure for the locations placed along the shuttle path, we evaluate the theoretical improvement of the shuttle sub-system throughput obtained by the application of the proposed algorithm, with respect to the case in which no optimization is considered. A key point in the development of our optimization is that, as we shall show, the cranes optimization is independent (in a sense to be specified) from the shuttle optimization and therefore they can be performed separately. The CTPN model of the warehouse is used for the performance evaluation of the control algorithms. 2. Automated warehouse control: the role of the optimizer system The main task of a warehouse system is to store and retrieve goods. We refer to the goods in terms of SUs, which are the entities the system can handle. In most part of the systems operating today the automated warehouse management is carried out by a control system which consists of three different levels:    PS (Planning System—Level 3), MS (Management System—Level 2), HS (Handling System—Level 1). In this context, the MS receives the loading/unloading planning from the PS and based also on the location map (i.e. the list of the SUs stored in the warehouse and the coordinates of their location), provides to the HS a set of complex handling requests, hereafter named missions, to be executed. It also communicates to the PS the inventory items. The role of PS can be resumed as follows: PS does not know where an SU is, but it only knows whether an SU ARTICLE IN PRESS 1226 F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 is or is not in the warehouse, thus it can order to pick it by sending a retrieval mission to MS; PS does not know where an SU has to be stored but it only knows that there is at least an empty location in the warehouse, thus it can send a storage mission to MS. PS works on a statistical characterization of the system performance. Its main task is material planning and lot-sizing keeping in mind the constraints concerning the inventory levels, buffer capacities and production times. The MS at level 2 knows only the warehouse location map, but not the actual state of the whole plant (crane and shuttle positions, tracking position state). Therefore, level 2 schedules the missions to be performed exclusively on the basis of the state of the warehouse location map by using its optimal management algorithm. The HS is dedicated to the control and coordination of the plant devices (conveyors, buffers, cranes, shuttle, etc.). As said, it receives by the MS the set of missions, which must be executed by controlling and coordinating different devices. For instance, a mission could request to move an SU from the main input buffer to a specific location in one of the aisles. Moreover, the HS has to manage multiple missions at the same time. Finally it communicates to the MS the result of the missions. A number of physical locations where an SU can stand and be detected are distributed within the plant. A logical record corresponds to each location where the data concerning the SUs and their state (present/absent) are stored; these locations are called tracking positions. The HS task is to manage the shifting of tracking data according to the real SU movements in the plant. To this end the HS knows all plant information (actual location of cranes and shuttles, the state of SUs, etc.). On the other hand, performing real-time optimization at this level presents some disadvantages, as it is discussed afterwards. On the basis of the above considerations, we propose to separate the handling phase from the optimization phase by introducing another intermediate level, the OS, between the MS and the HS (Fig. 2). This reflects the recent trend to bridge the gap between the planning/ management system and the control system of a factory using on-line information to manage the current application of manufacturing resources; more in general this level is referred in technical literature as Manufacturing Execution System. In our approach, the SU movements in an automated warehouse are carried out by subdividing the given mission into several basic handling sequences. In this context, the HS is used for the sole basic handling sequences (for example crane_goes_to_position_X, shuttle_picks_SU_from_buffer, etc.) while the OS takes charge of the real-time optimization based on the current state of the plant. Therefore, the OS receives the list of missions from level 2 MS, Fig. 2. Optimization module in the software architecture. reschedules and segments them into basic sequences according to the plant state and the appropriate optimization policy; such sequences are then communicated to the HS to be executed. To perform the movement, simple functions which implement those basic sequences are needed. The expected advantages are:       The development of the HS code is greatly simplified. Testing and debugging of the HS is simplified and can also be performed if other levels have not been developed yet, thus reducing the start-up time for the plant. The basic sequences are similar for different warehouse systems; therefore code reusability is easily achieved. The OS can be developed and tested via computer simulation if a detailed model of the plant, as controlled by the HS, is available. Currently the HS is implemented on a programmable logic controller which does not always allow the coding of complex algorithms. Since, by our approach, the OS can be physically separated from the HS, it is possible to implement the OS on a different machine. As will be presented later, the interface between the OS and the HS is very simple, thus making software portability easier. 3. Model requirements The modelling of a warehouse system can be performed at various levels of complexity. The level of ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 modelling can range from very aggregate to very detailed, according to the user’s requirements for system analysis and control. In this paper, a detailed modelling approach is presented. The proposed model can be used at different steps of the automated warehouse system design. In the initial phase of warehouse sizing the availability of a detailed model allows the evaluation of the storage area sizes. At this level the user needs to determine the number of shuttles and cranes required to handle the expected amount of materials. This is often an important design issue due to costs and lead times for special vehicles. The user may also wish to model the interactions of the warehouse with other areas of the factory in order to see how these interactions affect the overall system performance. During the test phase the logic of the warehouse control system has to be verified. The purpose is to check if all the movements of the warehouse components are executed according to the specifications and that no deadlock occurs. Moreover, in the presence of decisions based on priorities, it is very important to evaluate the validity of the control algorithm, in order to observe how mission dispatching affects the system performance. In this paper we refer to the automated warehouse architecture shown in Fig. 1. The main problems encountered in warehouse system modelling are listed below. Resource attributes: SUs are identical in their functionality. However the state attributes (e.g. loaded, empty), the destination of the load (coordinates of the rack location), the kind of operation to be performed (storage operation, retrieval operation) make them different from each other. Higher-level scheduler integration: It is important to remark that the model must represent the plant ‘‘as controlled by the HS’’. This means that the communication interface between the HS and the OS must be included in the model. Operation time: The model must include timing information. For instance, all loading/unloading activities of cranes take time; moreover, the time required to pick-up a pallet depends on the distance between the current position of the crane and the rack location where it is stored. Modular design: During the system life-cycle, it may happen that a component (e.g. a shuttle, a crane, etc.) is added or removed; moreover, it is important to achieve the component re-use. Therefore, it is convenient to divide the warehouse model into sub-models and define a standard interface for the communication between them; also, this approach may reduce the simulation complexity. We use colored timed Petri nets for the model since they allow us to fulfill all the above requirements. 1227 4. The model For the sake of brevity, we present in detail only the obtained sub-model of the cranes. See (Basile, Carbone, & Chiacchio, 2001) for more details about the whole model. Indeed this sub-system is present in almost all warehouse systems and therefore it is of general interest. Moreover, most of the complexity in modelling a warehouse system relies on the above sub-systems. Indeed the input and output buffers, their size, number and placement are strictly dependent on the particular warehouse; in addition, they do not present any conceptual difficulty in the modelling phase. The CTPN model of the generic crane sub-system, called CRANEi ; and of the interface between a generic crane and the shuttle sub-systems (with two bays) are shown in Figs. 3 and 4, respectively. In Tables 1 and 2 the interpretation of all transitions and places of the crane CTPN model is described. The sub-system models are all parameterized. For instance, the CRANEi net model is parameterized with respect to the size of aisle input/output buffers (index p in Fig. 3 and Table 2). Other parameters are related to the operation timing. After recalling some technical details concerning PN modelling (DiCesare, Harhalakis, Proth, Silva, & Vernadat, 1993; Murata, 1989; Silva & Teruel, 1997; Ramaswamy & Valavanis, 1994), we show how the four problems described in the previous section are solved for each sub-system of the warehouse. 4.1. Background CTPNs extend the framework of PNs by adding color, time and modular attributes to the net. The color attribute is developed to deal with systems that have similar or redundant logical structures. The time attribute allows various time-based performance measures to be added in the system model. We assume that the reader already knows CPN concepts and terminology as introduced in Jensen (1995). Let us recall here the main characteristics of CPNs we deal with in this work. A multi-set m is a set which may contain multiple occurrences of elements of a non-empty set S. Formally, a multi-set is a function m : S ! N; where N is the set of non-negative integers, which we represent as a formal sum X mðsÞs: s2S We denote by: S MS the set of all multi-sets over S; TypeðvÞ the type of a variable v; TypeðexprÞ the type of an expression expr; VarðexprÞ the set of variables in an expression expr. In addition we define the binding of a ARTICLE IN PRESS 1228 F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 Fig. 3. CRANEi CTPN module. set of variables V as the function b associating to each variable v 2 V an element bðvÞ 2 TypeðvÞ and exprhbi as the value obtained by evaluating an expression expr in a binding b, i.e. substituting for each variable v 2 VarðexprÞ the value bðvÞ 2 TypeðvÞ determined by the binding. Now we recall the following definition (Jensen, 1995). Definition 1. A CPN is ðS; P; T; A; N; C; G; E; IÞ where a 9-tuple CPN ¼ S is a set of non-empty types, called color sets; P is a finite set of places drawn by circles; T is a finite set of transitions including immediate transitions drawn by black bars and timed transitions drawn by empty boxes; A is a finite set of arcs such that P \ T ¼ P \ A ¼ T \ A ¼ ;; N is a node function defined from A to P T [ T P; C is a color function defined from P into S; G is a guard function defined from T into expressions such that 8t 2 T : ½TypeðGðtÞÞ is boolean ^TypeðVarðGðtÞÞÞ  S; E is an arc expression function defined from A into expressions such that 8a 2 A : ½TypeðEðaÞÞ ¼ CðpÞMS ^ TypeðVarðEðaÞÞÞ  S; where p is a place of NðaÞ; I is an initialization function defined from P into closed expressions such that 8p 2 P : ½TypeðIðpÞÞ ¼ CðpÞMS : In order to define the binding of a transition t we introduce the following notation: ARðtÞ ¼ fa 2 AjNðaÞ 2 P ftg [ ftg Pg; VarðtÞ ¼ fvjv 2 VarðGðtÞÞ _ 9a 2 ARðtÞ : v 2 VarðEðaÞÞg: A binding of a transition t is a function b defined on VarðtÞ such that v 2 VarðtÞ : bðvÞ 2 TypeðvÞ and GðtÞhbi ¼ 1; ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 1229 changes according to M 2 ðpÞ ¼ M 1 ðpÞ  X Eðp; tÞhbi ðt;bÞ2Y þ X Eðt; pÞhbi 8p 2 P: ðt;bÞ2Y In this case we say that M 2 is reachable by M 1 : This is written as M 1 ½Y 4M 2 : The introduction of a timing specification is essential in order to use Petri net models for performance evaluation of distributed systems. We consider nets with deterministic timing and one phase firing rule, i.e. a timed enabling (called the service time of the transition) followed by an atomic firing. Service times of transitions are supposed to be mutually independent and time independent. A time function f : BðtÞ ! R is introduced; it is the time required by the timed transition t associated with a binding b to complete the firing. After time function has been introduced, we speak of CTPN models. In a colored Petri net model two kinds of conflicts may arise: conflicts among transitions and conflicts among bindings. In this paper the following solution has been adopted:  Fig. 4. Interface between shuttle and Cranei CTPN modules. i.e. the guard function is true. BðtÞ denotes the set of all bindings for t. A token is a pair ðp; cÞ where p 2 P and c 2 CðpÞ; while a binding element is a pair ðt; bÞ where t 2 T and b 2 BðtÞ: The set of all token elements is denoted by TE while the set of all binding elements is denoted by BE. A marking is a multi-set over TE while a step is a non-empty and finite multi-set over BE. The sets of all markings and steps are denoted by M and Y, respectively. We assume S ¼ S1 S 2    S n and that a function between each set S i and the integer number set Z is defined; this leads us to represent a token in a place p by a n-tuple hti ¼ ðc1 ; c2 ; . . . ; cn Þ; where cj is an integer. We represent by ð1Þ the black token, i.e. the token having no color. A step Y is enabled in a marking M iff the following property is satisfied: X 8p 2 P : Eðp; tÞhbipMðpÞ: ðt;bÞ2Y When a step is enabled in a marking M 1 it can occur and, if the transition t fires in binding b, the net marking  In order to avoid the coupling between resolution of conflicts1 and duration of activities,2 transitions in conflict are supposed to be immediate except for timed transitions modelling a watchdog timer or immediate transitions modelling a failure detection; only in these special cases it is allowed that a timed transition, modelling a watchdog timer, can interrupt another timed transition or that an immediate transition, modelling an error detection, can be in conflict with a timed transition. In general, in a PN model there is no need of removing tokens from a place in the same order as they were added. However, in our case, when the tokens contained in a place represent SUs, it is important to preserve the incoming order for their removing. Therefore, we assume each place as being a queuing place with a FIFO policy. Thus, no conflict among bindings may arise. We denote a net place by Pfx; yg; where x denotes the sub-system of the model and y denotes the index of the place inside the sub-model; we assume that, in general, a number of nt aisles is present and therefore nt þ 1 1 We say that two or more transitions are in conflict if they have common input places. 2 When a timed activity is associated with transitions, a conflict resolution policy may be a race between conflicting transitions, that has no sense in presence of a physical plant. ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 1230 denotes the shuttle sub-system net model. Fusion places, source places and sink places (see Sections 4.3 and 4.5) are denoted by Pf fxg; Psrfxg; Pskfxg; respectively, and are all drawn by double circles. The following expression functions, used in the arc expressions and guard functions, are defined: (i) prðp; c1 ; c2 ; . . . ; ck Þ: for each token hti in the place p the function builds a new token formed only by the specified components c1 ; c2 ; . . . ; ck of the token hti; (ii) concðht1 i; ht2 i; . . . ; htk iÞ: the function builds the new token ðht1 i; ht2 i; . . . ; htk iÞ formed by the concatenation of the specified components; (iii) id: this function selects all the components of a token. 4.2. Resource attributes The use of a CPN allows us to completely solve the problem of the resource attribute representation, since the token color univocally identifies a pallet or the state of a device. For example, in the crane model (see Fig. 3), place Pf f2ig has format ðsh; bay; IDSU ; comÞ: Thus, the presence of a token in this place means that a shuttle is aligned to the input buffer of the crane with pallet IDSU on bay bay; moreover, command com (explained later) has to be performed on pallet IDSU. Without using CPN formalism we would need a different place for each identification number of the pallet and for each bay of the shuttle. 4.3. Higher level scheduler integration The modelling of the communication between the OS and the sub-systems as controlled by the HS can be performed via sink and source places; source (sink) places are places having no input (output) arcs; in the source (sink) places command tokens are delivered by (got from) the dispatcher (Fig. 5). Further on we focus on some details about the integration of the subsystems. For example, concerning the communication between the OS and CRANEi ; the OS sends a sub-mission order by putting in place Psrfig (that is a source place) of the CRANEi model a token whose format is ðop; x; y; z; wÞ with      op: operation type (0 homing operation, 1 storage operation, 2 retrieval operation); x: x-coordinate of rack location; y: y-coordinate of rack location; z: rack location depth; w: rack side. 4.4. Operation time A CTPN is a CPN where a time delay is associated with each transition; such delay represents the time required to complete the firing. In this paper timed transitions, having a finite time delay and drawn by empty boxes, are used to model the vehicles travelling time and loading/unloading time. The time delay may be either constant, like for loading/ OPTIMIZER Psr{4} Psr{1} Psk{1} Psr{2} Psk{2} Psr{3} Psk{3} Psk{4} Part OUT Part IN BufferIN (i = 5) CRANE 1 (i = 1) CRANE 2 (i = 2) CRANE 3 (i = 3) Buffer OUT (i = 6) SHUTTLE (i=4) Pf{1} Pf{2} Pf{3} BayPR 1 (i = 7) Pf{4} Pf{5} BayPR 2 (i = 8) Pf{6} Pf{7} BayPR 3 (i = 9) Pf{8} Pf{9} BayPR 4 (i = 10) Fig. 5. Interaction between CTPN modules of the whole model and the optimizer sub-system. ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 unloading operations, or depending on the distance between the current position of the crane machine and the rack location of the pallet destination/location, for the retrieval/storage time. Immediate transitions, having a null time delay and drawn by bars, are used to model the logical activities and failure detection. An example of logical activity is the choice between storage, homing or retrieval missions which is modelled by a conflict between three immediate transitions: the start of each mission is conditioned by the value of the token color (the component Op of the token in place Pfi; 2g determines which of the three transitions Ts1i; Th1i; Tr1i is enabled, see Fig. 3.) 4.5. Distributed and modular design The interface among modules is performed via fusion places. Each fusion place is a set of places that are considered to be identical, i.e. they all represent a single conceptual place even though they are drawn as individual places. Fig. 5 represents the merging of the sub-models to obtain the whole model of the warehouse system depicted in Fig. 1. Note that for each sub-system present in the warehouse there is a corresponding submodel and the interfaces among the sub-modules are represented by fusion places. When a token is added to (removed from) one of these places, an identical token is added to (removed from) all other places in the fusion set. For example, let us consider more in detail the communication between the shuttle and the CRANEi during a delivering operation (see Figs. 3 and 4). As said, the command token format for place Pf f2ig is ðsh; bay; IDSU; comÞ where:     sh: shuttle identifier; bay: number of shuttle bay aligned with CRANEi input buffer; IDSU: stock unit identifier (pallet number); com: command to execute on pallet IDSU: (e.g. 0 nothing, 1 picking, 2 delivering) or mission status (e.g. -3 bay already busy, -2 buffer full, -1 end mission). In the shuttle model the com component is used to distinguish a delivering operation from a picking one. In the crane model the IDSU component is used to identify the pallet. Once the pallet has reached the position represented by place Pfi; 15 þ 4p  4g; it is possible to assign the correct coordinates of the destination to the crane machine (see the token format of place Pfi; 5g). Remark 2. To further clarify this point, we show how a loading/unloading operation can be executed only when the pallet colors and the buffer location place colors are 1231 matched. For example in the crane model (see Fig. 3), a pallet can be loaded on the input buffer if and only if: (a) the first location of the input buffer is free since a black token is present in place Pfi; 16g; (b) in place Pf f2ig token ðsh; bay; IDSU ; comÞ is present, i.e. bay bay of the shuttle is aligned with the input buffer; (c) guard ½prðPf f2ig; 4Þ ¼ 2 and prðPf f2ig; 3Þa0 associated with transition TbIi is true, i.e. the component com of the pallet token must correspond to a delivering operation ðprðPf f2ig; 4Þ ¼ 2Þ and the pallet is present on the shuttle bay ðprðPf f2ig; 3Þa0Þ: Notice that token ðIDSUÞ moves from place Pfi; 15g to place Pfi; 15 þ 4p  4g having no rack destination location. When transition TbIpi fires, token ðx; y; z; wÞ is merged with token ðIDSU Þ producing token ðx; y; z; w; IDSUÞ: This solution has been chosen in order to give the IDSU a rack destination location at the last moment, according to the CRANEi optimization policy. 5. Optimizer system architecture For the OS we propose the architecture shown in Fig. 6. Its inputs are mission queues, while its outputs are order (sub-mission) queues. All the missions created at the same time by level 2 MS are placed into the FIFO queue called Mission. First of all, the OS makes a separation between storage and retrieval missions. The storage missions are all saved in the Storage queue, which is composed of the missions starting from BufferIN and the missions whose starting point is on one of the picking/refilling bays. On the other hand, the retrieval missions have as their starting point a location in the rack. Therefore, for each aisle there is a different Retrievalfig queue. In general these queues are not FIFO since, on the basis of the implemented control policies, there could be a dynamic rescheduling of the missions depending on the plant state. From each mission, the following information are taken out: SU identifier (IDSU), starting point (SP) and end point (EP), as shown in Table 3. These information are transferred to the MissionSeg function which derives the basic sequences to be performed in order to move the SU from the SP to the EP, by segmenting the mission itself in basic handling sequences (Table 3). For example, as for the mission from BufferIN to Aislei ; the dispatcher produces the following orders (segments of mission):    a movement order for the Shuttle sub-system from its current position to the SP (BufferIN); a movement order for the Shuttle sub-system from the SP to the input buffer of Aislei ; a movement order for the CRANEi from its current position to its input buffer; ARTICLE IN PRESS 1232 F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 Fig. 6. Optimizer model.  a movement order for the CRANEi from its input buffer to the EP (Aislei rack location). As said, the OS core is the dispatcher block, in which the control policies are implemented. It decides the order of the mission segments to be executed, by dynamically rescheduling the missions inside the order queues. Therefore, the dispatcher controls the system progression by adding appropriate tokens to the source places of the shuttle and of the cranes (Psrfnt þ 1g and Psrfig; i ¼ 1; 2; 3) (see Fig. 6). The dispatcher bases its decisions also on the results of previous sequences assigned to the shuttle and the cranes (Pskfnt þ 1g and Pskfig; i ¼ 1; 2; 3). 6. Automated warehouse systems control: background The goal of this section is to propose an optimal strategy for improving the throughput of the warehouse; we focus first on the cranes/aisles sub-system and then on the shuttle sub-system. 6.1. The crane/aisle sub-system We abstractly assume to deal with a single aisle, onesided rack warehouse under the assumption that a DC cycle is adopted. For a single aisle one-sided rack warehouse, the throughput is defined as the inverse of the mean time required to perform the cycle; obviously, a simple way to improve the throughput could be that of reducing the dimension of the aisle, and therefore of the corresponding rack. However, in a real warehouse (consisting of two or more two-sided aisles), this approach would lead to build more aisles if one desires the storage capacity of the warehouse to remain unchanged. This way of proceeding requires further replication of expensive sub-systems and therefore should be avoided; in particular, in an automatic system, each aisle is equipped with its own crane, which generally mounts a rather expensive technology on-board. The above discussion leads to the following conclusion: it is mandatory to improve the throughput without reducing the rack dimension. From now on we shall make the following assumptions: A1 We deal with an SU system; an SU is regarded as an indivisible part (at least from the system point of view) of a certain product. The crane can carry one SU at the time (one in the storage phase and one in the retrieval phase). Each location of the rack can contain exactly one SU of the given product; A2 The crane travels simultaneously in both rack directions, with constant speed (acceleration and deceleration ramps are not considered); ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 1233 Table 1 Transition description of CRANEi CTPN model Table 2 Place description of CRANEi CTPN model Label Transition guard Label Token color—place interpretation Transition activity description Psrfig Pfi; 2g ðOp; x; y; z; wÞ—List of crane missions. ðOp; x; y; z; wÞ—The crane is waiting the choice of mission to be executed. ðx; y; z; wÞ—The crane is moving to the input buffer to pick up a pallet to be stored at location ðx; y; z; wÞ ðx; y; z; wÞ—The crane is waiting for a pallet from the input buffer ðx; y; z; w; IDSUÞ—The crane is moving to location ðx; y; z; wÞ with pallet IDSU ðx; y; z; w; IDSUÞ—The crane is delivering the pallet at location ðx; y; z; wÞ ð1Þ—The crane is going back to the home position ð1Þ—End mission ðx; y; z; wÞ—The crane is moving to location ðx; y; z; wÞ to execute a retrieval operation ðx; y; z; wÞ—The crane is picking up a pallet from rack location ðx; y; z; wÞ ðIDSUÞ—The crane is moving to the output buffer with pallet IDSU ðIDSUÞ—The crane is delivering the pallet IDSU to the output buffer ð1Þ—Crane ready to execute a new mission ðsh; bay; IDSU; comÞ—Bay ‘‘bay’’ of shuttle aligned with input buffer delivery station ðIDSUÞ—Pallet IDSU is on the input buffer ð1Þ—State of input buffer locations (if marked the associated location is empty) ðsh; bay; IDSU; comÞ—Bay ‘‘bay’’ of shuttle aligned with output buffer picking station ðIDSUÞ—Pallet IDSU is on the output buffer ð1Þ—State of output buffer locations (if marked the associated location is empty) ðemÞ—Mission result Topi Absent Start crane mission. Ts1i ½prðPfi; 2g; 1Þ ¼ 1 Start storage mission Ts2i Absent The crane is moving to the input buffer TbIpi Absent The crane is loading the pallet from input buffer Ts3i Absent The crane is moving to the rack location Ts4i Absent The crane is delivering the pallet Th1i ½prðPfi; 2g; 1Þ ¼ 0 Start homing mission Th2i Absent The crane is going back to the home position Tr1i ½prðPfi; 2g; 1Þ ¼ 2 Start retrieval mission Tr2i Absent The crane is moving to the rack location Tr3i Absent The crane is picking up the pallet from the rack location Tr4i Absent The crane is moving to the output buffer TbO1i Absent The crane is delivering the pallet TbOji Absent j ¼ 2::p A pallet is moving to the next output buffer location TbOi ½prðPf f2i þ 1g; 3Þ ¼ 0 and prðPf f2i þ 1g; 4Þ ¼ 1 The shuttle bay is free and there is a load command A pallet is moving onto the shuttle bay from the output buffer TnOi ½prðPf f2i þ 1g; 3Þa0 and prðPf f2i þ 1g; 4Þ ¼ 1 The shuttle bay is not free and there is a load command Error detection TbIji Absent j ¼ 1::p  1 A pallet is moving to the next input buffer location TbIi ½prðPf f2ig; 4Þ ¼ 2 and prðPf f2ig; 3Þa0 Shuttle bay loaded and there is an unload command A pallet is moving onto the input buffer from the shuttle bay TeOi Absent End crane mission TnIi ½prðPf f2ig; 4Þ ¼ 2 Unload command Watchdog timer A3 Storage assignment is performed by the upper level and the policy is unknown; to evaluate our algorithms we suppose that a completely random storage assignment is used. This means that no specific rule is followed when assigning a storage location to an incoming SU; the problem of throughput optimization under more sophisticated storage strategies (for example class based (Hausman, Schwarz, & Graves, 1976)) will be discussed in future papers; Pfi; 3g Pfi; 4g Pfi; 5g Pfi; 6g Pfi; 7g Pfi; 8g Pfi; 9g Pfi; 10g Pfi; 11g Pfi; 12g Pfi; 13g Pf f2ig Pfi; 15 þ ð4j  4Þg j ¼ 1::p Pfi; 15 þ ð4j  3Þg j ¼ 1::p Pf f2i þ 1g Pfi; 15 þ ð4j  2Þg j ¼ 1::p Pfi; 15 þ ð4j  1Þg j ¼ 1::p Pskfig A4 The rack is continuous; this means that it is composed of an infinite number of virtual locations. Each location is addressed by a pair of real numbers. Remark 3. Assumption A4 is standard in the study of warehouse systems (see for example, Graves, Hausman, & Shieh, 1977; Bozer & White, 1984). Indeed it is not possible to develop a general theory if we try to take into account the discrete nature of the rack structure. The following notation will be used:      sh sv L H th horizontal speed of the crane [m/min] vertical speed of the crane [m/min] rack length [m] rack height [m] L=sh time to reach the horizontal end of the rack [min] ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 1234 Table 3 Possible missions in lay-out of Fig. 1 SP EP BufferIN Aislei rack location Aislei rack location BayPRj Aislei rack location BayPRj  E½TB BufferOUT  tC Aislei rack location  tW  E½DC C  Table 4 Coefficients of the function d k ðbÞ k a0 a1 a2 a3 a4 a5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0.4997 0.3336 0.2503 0.1993 0.1663 0.1422 0.1245 0.1114 0.0999 0.0904 0.0825 0.0764 0.0712 0.0662 0.0622 0.0584 0.0551 0.0519 0.0494 0.0471 0.4864 0.5136 0.4968 0.4615 0.4376 0.3980 0.3737 0.3503 0.3137 0.2839 0.2518 0.2300 0.2109 0.1834 0.1687 0.1469 0.1308 0.1116 0.1006 0.0867 0.4237 1.1575 1.5516 1.7505 1.9227 1.9223 1.9613 1.9492 1.8515 1.7755 1.6601 1.5835 1.5145 1.3838 1.3286 1.2216 1.1479 1.0574 1.0039 0.9283 0.1586 1.0501 1.9574 2.5666 3.1653 3.3451 3.5894 3.6822 3.5835 3.5201 3.3441 3.2365 3.1397 2.8832 2.8057 2.5918 2.4591 2.2877 2.1874 2.0307 0.1525 0.5085 1.2351 1.8095 2.4564 2.6994 3.0003 3.1439 3.1070 3.1010 2.9727 2.9048 2.8425 2.6121 2.5649 2.3682 2.2594 2.1111 2.0245 1.8795 0.0202 0.0811 0.2876 0.4742 0.7127 0.8114 0.9296 0.9917 0.9916 1.0025 0.9670 0.9526 0.9380 0.8611 0.8518 0.7844 0.7514 0.7037 0.6756 0.6263 NS bS  100% 2 3 4 5 6 7 8 9 10 3.4084 5.6305 7.2506 8.5113 9.5347 10.3904 11.1218 11.7575 12.3176 tv   T b  E½SC Without loss of generality we assume that th otv ; therefore the rack is the rectangular region depicted in Fig. 7(a). If we locate the I/O point at the left-lower corner of the rack and fix a pair of coordinate axis with origin at the I/O point, the rack region can be identified with the set of points belonging to the interval ½0; b ½0; 1: According to Fig. 7(b), it is simple to recognize that E½DC C  can be computed according to the following expression: E½DC C  ¼ E½SC þ E½TB þ E½SC ¼ 2E½SC þ E½TB: In Bozer and White (1984) it is shown that   1 1 2 þ b T; E½SC ¼ 2 6   1 1 2 1 3 þ b  b T: E½TB ¼ 3 6 30 Table 5 Behavior of bS versus N S  from the I/O point (the retrieve location) to the storage location (the I/ O point) [min] expected time for Travel-Between (TB), i.e. time to travel from the storage location to the retrieve location [min] time the crane needs to store or retrieve an SU [min] average time the crane has to wait at the aisle input buffer for an incoming SU [min] expected time for the crane DC cycle [min]. H=sv time to reach the vertical end of the rack [min] maxfth ; tv g [min] minfth =T; tv =Tg rack shape factor (adimensional) expected time for the crane Single Command (SC) cycle, i.e. time to travel Therefore, from (1) we have   4 1 2 1 3 þ b  b T: E½DC C  ¼ 3 2 30 ð1Þ (2a) (2b) (3) If we consider a set of n DC cycles the crane throughput gC is defined as 2n nE½DC C  þ 4ntC þ ntW 2 ¼ : E½DC C  þ 4tC þ tW gC ¼ ð4Þ Now let us assume obtaining a reduction of the travelbetween (TB) time equal to a  100%; the new throughput can be written as g~ C ¼ 2 : E½DC C   aE½TB þ 4tC þ tW (5) Obviously, g~ C 4gC ; therefore we let g~ C ¼ ð1 þ bC ÞgC ; where bC  100 represents the percentage throughput ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 improvement. We have g~ C  gC gC E½DC C  þ 4tC þ tW ¼  1: E½DC C   aE½TB þ 4tC þ tW bC ¼ ð6Þ Remark 4. Note that bC depends on the design parameters b, th and tC which, for a given warehouse, are fixed, and on the optimization parameters a and tW ; a is increased when the TB time is optimized, while tW is reduced when the shuttle operations are optimized. Remark 5. It is important to recall that, while the values of E½DC C ; E½TB are exactly evaluated in (2b) and (3), the value tc is known and a will be evaluated in the next section, the parameter tW can only be evaluated via simulation and therefore only when a whole model of the warehouse is available. In Fig. 8 the behavior of the function bC ðaÞ parameterized in tW is depicted for b ¼ 0:316; th ¼ 1235 0:360 and tC ¼ 0:04 (these are the parameter values of the real warehouse system we shall consider later in the paper). Note that, as expected, bC is an increasing function of a and a decreasing function of tW : We note that for tW ¼ 0:5 a TB time reduction of 60% (that is a ¼ 0:6) corresponds to a throughput improvement of 12%; which, according to Han, McGinnis, Shieh, and White (1987), leads in a large warehouse, to the elimination of an aisle without reducing the overall warehouse performance. Also note that in correspondence to a smaller tW there is a strong improvement of the throughput; for example for tW ¼ 0:2 we have that bC 40:14: 6.2. The shuttle sub-system We assume that the shuttle cycle is composed of a picking operation followed by a deposit operation. Therefore, also in the shuttle case, we talk of DC cycle. We make the following further assumptions: A5 The shuttle travels with constant speed; A6 Along the mono-dimensional path of the shuttle there is a continuous distribution of picking/deposit location; we place the origin of the path abscissa in correspondence of the main input buffer and the end in correspondence of the main output buffer. The following notation will be used:  Fig. 7. (a) Rack shape; (b) Computation of E½DC: sS speed of the shuttle [m/min] 0.18 0.16 τw=0.0 βC (α) parameterized in τw 0.14 τ =0.1 w τ =0.5 w τ =0.6 w τ =0.3 τ =0.7 w w τ =0.4 τw=0.8 w τ =0.9 w τw=1.0 0.12 τw=0.2 0.1 0.08 0.06 0.04 0.02 0 0.2 0.3 0.4 0.5 α 0.6 Fig. 8. Behavior of bC ðaÞ parameterized in tW : 0.7 0.8 ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 1236   LS tS  E½P  E½D  tS  E½DC S  length of the shuttle path [m] LS =sS time to go from the origin of the path to the end of the path [min] expected time to go from a given point to the next picking location [min] expected time to go from the picking location to the next deposit location [min] (E½P ¼ E½D when no optimization algorithm is used) time the shuttle needs to pick up or deposit an SU [min] expected time to go from a given point to the deposit location in the shuttle DC cycle [min] (E½DC S  ¼ 2E½P ¼ 2E½D when no optimization algorithm is used). At the moment, we assume to have a sequence of n pair of pick-up and deposit orders LIST ord ¼ fðPi ; Di Þ; i ¼ 1; . . . ; ng; where Pi and Di denote the location of the ith pick-up and deposit, respectively, and to follow a FIFO policy; therefore each pair ðPi ; Di Þ is executed according to the ordered list LIST ord : In this case we have E½DC S  ¼ E½P þ E½D ¼ 2E½P: (7) E½P ¼ 13 tS ; @Gðx; zÞ ¼ > 1; @z > > : 0; zo0; 0ozox; xo1  x; z41  x (12) The expected value, EðxÞ; of the distance of an arbitrary chosen point in the interval ½0; 1 from x 2 ½0; 12 is therefore given by EðxÞ ¼ Z 1x 0 1 zgðx; zÞ dz ¼ x2  x þ : 2 (13) By symmetric arguments, it is simple to recognize that EðxÞ; for x 2 ½12; 1; has the same expression as (13). Therefore, by integrating over x, we obtain E½P as follows E½P ¼ 2tS Z 1=2 EðxÞ dx ¼ 0 1 tS : 3 (14) 6.3. A performance index for the whole warehouse (8) 2 E½DC C  þ 4tC þ tW gC ¼ therefore, from (7) we have (15) and the shuttle/picking refilling sub-system throughput E½DC S  ¼ 23 tS : (9) Therefore, when no optimization is performed, the shuttle throughput is 2 3 ¼ : E½DC S  þ 2tS tS þ 3tS (10) To prove formula (8), without loss of generality, we consider a path of unit length; the final result will be then multiplied by tS : Let us denote by x 2 ½0; 12 the position of the picking location. Denote by Zx the stochastic variable whose realization represents the distance of an arbitrary chosen point of the interval ½0; 1 from the point x. The probability density function (pdf) Gðx; zÞ of Zx is given by 8 0; > > > < 2z; Gðx; zÞ:¼ProbðZ x pzÞ ¼ > z þ x; > > : 1; gðx; zÞ:¼ 8 0; > > > < 2; So far we have introduced two partial performance indices: the crane/aisle sub-system throughput In the sequel we shall show that gS ¼ Therefore the cumulative distribution function (cdf) gðx; zÞ has the following expression: zo0; 0ozox; xozo1  x z41  x: (11) gS ¼ 2 : E½DC S  þ 2tS (16) From the above formulae it is evident that an improvement of the crane throughput gC can be obtained, as observed in Section 6.1, via the reduction of E½DC C ; in the same way an improvement of the shuttle throughput gS can be obtained by reducing E½DC S ; note that the improvement of gS also brings a benefit to the index gC through the reduction of tW : In any case, from the point of view of the indices defined above, the crane and shuttle optimizations can be performed independent of each other. Now we shall introduce a further index which looks at the warehouse as a whole. This index is a measure of the warehouse system throughput, since it considers complete missions, starting from the main input buffer and ending at the main output buffer or at some of the rack locations. This index is defined as follows: number of complete operations : (17) time From the point of view of index (17) there is interaction between the crane and shuttle optimizations. gW ¼ ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 For this reason the separate optimization of the two sub-systems leads to a sub-optimization of index (17).3 On the other hand, finding an optimization policy which looks at the system as a whole is a very complex objective (and may be not achievable by simple strategies), and is beyond the scope of this paper. According to the above considerations, in the sequel we shall develop two strategies: (i) reduction of the TB time in order to minimize E½DC C ; i. e. to maximize the parameter a introduced in Section 6.1; (ii) reduction of tW by optimization of the shuttle operations. The impact of the optimization policies on the index (17) will be a posteriori evaluated in Section 9. 7. An optimization algorithm for the crane/aisle subsystem In this section we shall describe the proposed optimization policy, under the following further assumption. A7 Each SU arrives at the I/O point with the storage location already assigned. Due to Assumption A7, the only degree of freedom, in the optimization procedure, is the clever sequencing of the retrieval orders. The approach followed in this paper can be roughly described as follows: consider a list of N C storage and retrieval orders; optimize the sequencing of the N C retrievals; when the N C DCs have been performed consider a new list of N C orders and repeat the same procedure. This approach belongs to the category of the so-called static approaches. An alternative way to proceed, which is not considered here, is known in the literature as the dynamic approach (Seidmann, 1988; Linn & Xie, 1993). It consists of resequencing the list of orders whenever a new pair storage/ retrieval is available; in this case it is necessary to assign due dates to the retrievals, to avoid that retrievals from locations at the end of the rack are never executed. To describe the algorithm we propose, let us denote by R the set composed of the retrieval location addresses, by S the ordered list of storage location addresses and by N C the cardinality of R and S. Algorithm 1. S1 Take the first element s 2 S: Select the element of R with the minimum TB distance from s measured by the Chebichev metric. Recall that, given two points P1 ¼ ðx1 ; y1 Þ and P2 ¼ ðx2 ; y2 Þ; the Chebichev distance d C ðP1 ; P2 Þ between P1 3 Simulation experiments show that an almost perfect decoupling between crane and shuttle optimizations is reached for very small values of tW : 1237 and P2 is defined as d C ðP1 ; P2 Þ:¼ maxfjx1  x2 j; jy1  y2 jg: We need to use Chebichev metric because the crane moves simultaneously in both directions. S2 Perform the DC cycle with storage in s and retrieval from r. S3 Update R ¼ R  frg; S ¼ S  fsg: S4 If R ¼ ; then stop; otherwise goto Step S1. The performance of an optimization procedure similar to Algorithm 1 has been evaluated in Han, McGinnis, Shieh, and White (1987). However, in that study it was assumed that the destination address of the incoming SU could be chosen among a number of empty locations; moreover, the theoretical computation of the expected performance of that procedure was obtained in an approximate way. The aim of this section is that of computing exactly the expected performance of the procedure described in Algorithm 1 under the Assumptions A1–A4, A7. This result will be then validated in Section 9 on a real warehouse. Note that, at step S1 of Algorithm 1, it is chosen, between the elements of R, the one which guarantees the minimum distance between the storage address and the retrieval address. Therefore the first question to be answered is the following: What is the expected mean value d k ðbÞ of the distance between a point in the rectangular region ½0; b ½0; 1 and the nearest (in the Chebichev sense) of k arbitrary chosen points in the same region? Experience (see formulae (2a)–(2b)) suggests that average distances typically are polynomial functions of the shape factor b. Therefore, we assume the following structure for the function d k ðbÞ: d k ðbÞ ¼ a0k þ a1k b þ a2k b2 þ a3k b3 þ a4k b4 þ a5k b5 : (18) Moreover, note that a fifth-order polynomial is, in any case, a very good approximation of any continuous function around zero (remember that b 2 ð0; 1Þ). In (Amato & Basile, 2002) a procedure which makes use of a parametric identification based method to evaluate the coefficients of the vector ak ¼ ða0k a1k a2k a3k a4k a5k ÞT has been presented. By applying this procedure we found the coefficients for d̄ k ðbÞ; k ¼ 1; y, 20, reported in Table 4. 8. An optimization algorithm for the shuttle sub-system The goal of this sub-section is the development of an optimal strategy for improving the throughput of the ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 1238 sub-system composed by the shuttle and the picking/ refilling locations. The proposed algorithm makes a clever sequencing of the scheduled picking/deposit operations to improve the throughput of the shuttle system. Algorithm 2. (See Section 6.2 for the notation) distance of an arbitrary chosen picking location from the starting point x 2 ½0; 1=2 plus the distance of an arbitrary chosen deposit location from the picking location. The cdf G O ðx; zÞ of the stochastic variable Z O x has the following expression: G O ðx; zÞ S0 (Initialization) Choose N S such that n=N S ¼: nbatch 2 N: Let START ¼ The initial location of the shuttle COUNT ¼ 0: S1 Consider the first N S elements of LIST ord ; ðPi ; Di Þ; i ¼ 1; . . . ; N S : Let N left ¼ N S LIST ¼ fðPi ; Di Þ; i ¼ 1; . . . ; N left g LIST ord ¼ LIST ord  LIST: S2 Compute: DIST i ¼ distðSTART; Pi Þ þ distðPi ; Di Þ i ¼ 1; . . . ; N left : k ¼ argmin DIST i i¼1;...;N left Pcurr ¼ Pk Dcurr ¼ Dk : S3 Execute ðPcurr ; Dcurr Þ: Let START ¼ Dcurr N left ¼ N left  1 LIST ¼ LIST  fðPcurr ; Dcurr Þg COUNT ¼ COUNT þ 1: S4 if N left a0 goto Step S2; elseif COUNT onbatch goto Step S1; else end of the algorithm. :¼ProbðZO x pzÞ 8 0; > > > > > > 2z2 ; > > > > > 3 2 3 1 2 > > 4 z þ 2 xz  4 x ; > > > > <  12 z2 þ 32 z  12 x2 ¼ > þ 12 x  14 ; > > > > > > >  14 z2 þ  12 x þ 1 z > > > > > þ  14 x2 þ x ; > > > > : 1; zo0; 0pzox; xpzo1  x; 1  xpzo1 þ x; : ð19Þ 1 þ xpzo2  x; zX2  x: The corresponding pdf is gO ðx; zÞ d :¼ G O ðx; zÞ dz 8 0; > > > > > > 4z; > > > > > < 32 z þ 32 x; ¼ > z þ 32 ; > > > > > > >  12 z þ  12 x þ 1 ; > > > : 0; zo0; 0pzox; xpzo1  x; 1  xpzo1 þ x; ð20Þ 1 þ xpzo2  x; zX2  x: Now, by ZO x;k we denote the stochastic variable whose realization represents the minimum between k distances (corresponding to k picking/deposit pairs) starting by point x. It is simple to recognize that the pdf of Z O x;k is given by k O GO k ðx; zÞ ¼ 1  ð1  G ðx; zÞ Þ: (21) Remark 6. Note that Pi ’s represents the coordinates of the buffer locations where the SUs have to be picked and Di ’s the coordinates of the buffer locations where the SUs have to be stored; therefore, in order to implement the control algorithm described above, the knowledge of current position of the shuttle is necessary. Therefore, as in the classical control context, the control algorithm we finally use is state dependent. Therefore the expected travel time, starting from x, corresponding to the minimum travel time between k possible picking/deposit pairs is To evaluate analytically the expected time to execute a DC under the application of Algorithm 2, let us assume to deal with a unit length path and denote by ZO x the stochastic variable whose realization represents the EO k ½DC S ðxÞ Z 2x ¼ tS zkð1  G O ðx; zÞÞk1 gO ðx; zÞ dz: From (21) it is possible to derive the cdf of Z O x;k d O G ðx; zÞ dz ¼ kð1  G O ðx; zÞÞk1 gO ðx; zÞ: k1 O gO k ðx; zÞ ¼ kð1  G ðx; zÞÞ 0 ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 Finally, by integration over x, we obtain E O k ½DC S ; the expected time to perform a shuttle DC cycle by choosing among k picking/deposit pairs the one with minimum travel time from an arbitrary starting point in ½0; 1 Z 1=2 EO ½DC  ¼ 2 EO S k k ½DC S ðxÞ dx: 0 Now if we have a block of N S picking/deposit pairs, the first time we select the minimum between N S distances, the second time the minimum between N S  1 distances, etc. Therefore the expected time to perform a set of N S DC cycles, in presence of optimization, is given by PN S O k¼1 E k ½DC S  : (22) EO ½DC  ¼ S N NS Now the shuttle throughput in presence of optimization is given by     To test our algorithm we have integrated it with the CTPN model of the real warehouse as developed in the first part of the paper. A simulation experiment has been conducted under the following assumptions.   therefore, the shuttle throughput improvement bS is given by g~ S  gS 2 tS þ 3tS ¼  1; gS 3 EO ½DC S  þ 2tS N where E O N ½DC S  is given by (22). In Table 5 the values of bS for N S ¼ 2; 3; . . . ; 10; tS ¼ 0:067 and tS ¼ 0:181 (these are the parameter values of the real warehouse system we shall consider later in the paper) are reported. 9. Case study: control of a medium-size warehouse In this section we refer to the automated warehouse of a real plant. The main characteristics of the warehouse model are the following:          sh ¼ sv ¼ 50 ½m= min; rack location size¼ 1 ½m 1 ½m 1 ½m; number of x location¼ 18; thus L ¼ 18 ½m; number of y location¼ 57; thus H ¼ 57 ½m; speed of shuttle machine ss ¼ 100 ½m= min; length of the shuttle path LS ¼ 18:10 ½m; time to move the SU to the next buffer position tB ¼ 0:083 ½min; time to load/unload the pallet on the crane machine tC ¼ 0:04 ½min; time the shuttle needs to load/unload a pallet tS ¼ 0:067 ½min: Note that, according to the notation of Section 6, we have:  th ¼ 0:36 ½min; tv ¼ 1:14 ½min; T ¼ tv ¼ 1:14 ½min; b ¼ 0:316; tS ¼ 0:181 ½min: 9.1. Simulation results 2 g~ s ¼ O ; E N ½DC S  þ 2tS bS ¼ 1239   A number of 120 complete DC missions is considered. In this set of missions a number of 40 complete DC missions is considered for each crane machine. A complete DC mission consists of a storage mission starting from the first location of the main input buffer or from a picking/refilling area output location and terminating at an aisle rack location and of a retrieval mission starting from an aisle rack location and terminating at the last location of the main output buffer or at a picking/refilling area input location. A partial DC mission consists of the part of a complete mission which starts at the input buffer of the aisle and terminates at the output buffer of the same aisle (this is the classical DC cycle considered in Section 6.1). The experiment is repeated a number of times by permuting the list of storage orders S. For each set of the 40 complete DC missions, two simulation experiments, according to Algorithm 1 with N C ¼ 1 and 20, have been executed. In both simulations we did not perform the shuttle optimization. We denote by DC N C ¼1 and DC N C ¼20 the average time to perform a partial DC mission in the two cases. We obtained DC N C ¼1 ¼ 2:80; DC N C ¼20 ¼ 2:53; tW ¼ 0:9: Now let us compare the theoretical and simulation results. According to the theory developed in Section 6.1, in the case of one-sided aisle and b ¼ 0:3 we have that a20 ð0:3Þ ¼ 0:69 (see Fig. 9). From Fig. 8 we have that the theoretical improvement bC of the throughput should be about 11% (for tW ¼ 0:9 and a ¼ 0:69). Concerning the simulation results, taking into account that the computed average time to perform a simulated partial DC cycle also incorporates the term 4t þ tW ; we have (see formulae (4)–(6)) gC ¼ 2 2 ¼ 0:714; ¼ DC N C ¼1 2:80 ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 1240 Therefore, concerning the throughput improvement of the whole warehouse, we have 0.7 b=0.3 0.6 b=0.5 b=0.7 α N (b) parameterised in b bW  100% ¼ 0.5 b=0.9 0.4 0.3 0.2 0.1 0 0 2 4 6 8 10 12 14 16 18 20 N Fig. 9. Behavior of aN ðbÞ parameterized in b. g~ C ¼ 2 DC N C ¼20 ¼ 2 ¼ 0:791: 2:53 Therefore, the real improvement is bC  100% ¼ g~ C  gC  100% ¼ 10:8% gC which is in accordance with the theoretical result. For the same sets of DC missions considered above, we have executed another simulation experiment in which also the shuttle optimization has been considered; indeed Algorithm 2 with N S ¼ 5 has been applied. We denote by DC N C ¼20;N S ¼5 the average time to perform a partial DC mission in this case. We obtained DC N C ¼20;N S ¼5 ¼ 2:42; tW ¼ 0:5: Thus we have g~ 0 C ¼ 2 DC N C ¼20;N S ¼5 ¼ 2 ¼ 0:826: 2:42 In this case the real improvement is 0 bC  100% ¼ g~ 0 C  gC  100% ¼ 13:6% gC g~ W  gW  100% ¼ 12:8%: gW In order to test the algorithm on the real architecture to be used on the plant, the test bed represented in Fig. 10 has been built. The plant low-level control is performed by the Handling Systems which is a Programmable Logic Controller connected to a process emulator via Profibus DP. The Management System is the upper level which sends storage and retrieval missions, where storage locations are specified. The optimizer system has been implemented in the C++ language and interfaced with the Management System and Handling System, according to the architecture described in the first part of the paper. It has been executed on a Personal Computer with a Pentium III processor at 800 MHz and 512 Mb of RAM on board. The purpose of these further tests is to show that some approximations used in algorithm synthesis, e.g. neglecting the communication delays and the computation times, do not affect system performances. Test bed validation results have confirmed the validity of these approximations. Finally, simulation results as well as test bed validation results have been confirmed by the application of the proposed architecture and control algorithms to the real automated warehouse in the sense that no considerable difference has been measured in the real automated warehouse. 10. Conclusions The introduction of a new level, the OS, in the control architecture of warehouse systems has been illustrated. In this way it is possible to separate handling from short-term optimization. The development, as well as the testing and debugging, of handling sequences code is very simplified; the basic sequences code is very similar for different warehouse systems, so its reuse is easily achieved. In addition, the OS can be developed and which is in accordance with the theoretical result, obtained by looking at Fig. 8 with a ¼ 0:69 and tW ¼ 0:5: Concerning the throughput improvement index (17) associated with the global optimization of the warehouse, we compare the case in which no optimization is performed (N C ¼ 1; N S ¼ 1) with the full optimization case (N C ¼ 20; N S ¼ 5); we obtain gW ¼ 0:465; g~ W ¼ 0:525; where gW and g~ W are the throughputs before and after the optimization, respectively. Fig. 10. Testing environment architecture. ARTICLE IN PRESS F. Amato et al. / Control Engineering Practice 13 (2005) 1223–1241 tested using simulations of the plant since a detailed model of the plant—as controlled by handling sequences code—is available. CTPNs have resulted to be an effective tool for automated warehouse modelling. The main problems encountered in modelling such systems (resource attributes, higher level scheduler integration, operation time, modular design) can be solved by using a unique formal model. This makes possible to test the whole control architecture of an automated warehouse and to work on the same model for the development of complex control strategies and the on-line plant monitoring. The availability of a detailed model opens the door to the implementation of fault detection functions, after failures—not considered in this paper—have been modelled, as well as to the application of modern optimization techniques to the warehouse low-level control field, thus obtaining more efficient warehouse control systems. In this paper, we have proposed two control algorithms to manage the cranes and the shuttle movements; the expected performance of such control algorithms has been derived under the simplifying assumption that the distribution of the locations within the warehouse is continuous; such assumption is standard in the warehouse system context and is necessary in order to obtain general results holding for any rack shape and depending on a few meaningful parameters. The evaluation of the control system performance on a real world warehouse, both validates the theoretical analysis previously obtained and shows the effectiveness of the proposed control algorithms. Open problems which are not discussed in this paper and will be investigated in future works are: (i) Use of the cranes optimization algorithm in a dynamic way, but assigning due dates to the retrieval orders. (ii) Development of control algorithms which take into account the different working conditions of the warehouse. Indeed it may happen that a set of only retrieval orders or only storage orders can be assigned from the high-level scheduler; in this case by using an ad hoc algorithm better results could be achieved. References Amato, F., & Basile, F. (2002). Crane and shuttle optimization in warehousing systems. 2002 IEEE International Conference on Robotics and Automation (ICRA’02). 1241 Basile, F., Carbone, C., & Chiacchio, P. (2001). Modeling of as/rs via coloured petri nets. IEEE International Conference on Advanced Intelligent Mechatronics (AIM 01). Basile, F., Carbone, C., & Chiacchio, P. (2003). An approach to control automated warehouse systems. IEEE international conference on computational engineering in systems applications (CESA’03). Bozer, Y. A., & White, J. A. (1984). Travel-time models for automated storage/retrieval systems. IEE Transactions, 16(4), 329–338. Chincholkar, A. K., & Krishnaiah Chetty, O. V. (1996). Simultaneous optimization of control factors in automated and retrieval systems and FMS using stochastic coloured Petri nets and the Taguchi method. The International Journal of Advanced Manufacturing Technology, 12, 137–144. DiCesare, F., Harhalakis, G., Proth, J. M., Silva, M., & Vernadat, F. B. (1993). Practice of petri nets in manufacturing. London: Chapman and Hall. Feldmann, K., & Colombo, A. W. (1999). Monitoring of flexible production systems using high-level Petri net specifications. Control Engineering Practice, 7, 1449–1466. Graves, S. C., Hausman, W. H., & Schwarz, L. B. (1977). Storageretrieval interleaving in automatic warehousing systems. Management Science, 23(9), 935–945. Han, M. H., McGinnis, L. F., Shieh, J. S., & White, J. A. (1987). On sequencing retrievals in an automated storage/retrieval system. IEE Transactions, 19(3), 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. Hsieh, S., & Chen, Y. F. (1999). Agvsimnet: A Petri-net-based agvs simulation system. The International Journal of Advanced Manufacturing Technology, 15, 851–861. Hsieh, S., Hwang, J. S., & Chou, H. C. (1998). A Petri net based structure for AS/RS operation modeling. International Journal of Production Research, 36(12), 3323–3346. Jensen, K. (1995). Colored Petri nets. Basic concepts, analysis methods and practical use. Volume 1. Monographs on theoretical computer science. New York: Springer. 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. Lee, S. G., de Souza, R., & Ong, E. K. (1996). Simulation modelling of a narrow aisle automated storage and retrieval system (AS/RS) serviced by rail-guided vehicles. Computers in Industry, 30, 241–253. Linn, R. J., & Xie, X. (1993). A simulation analysis of sequencing rules in a pull-based assembly facility. International Journal of Production Research, 31(10), 2355–2367. Murata, T. (1989). Petri nets: Properties, analysis and applications. Proceedings of IEEE, 77(4), 541–580. Ramaswamy, S., & Valavanis, K. P. (1994). Modeling, analysis and simulation of failures in a material handling systems with extended Petri net. IEEE Transactions on System, Man and Cybernetics, 24(9), 1358–1373. Seidmann, A. (1988). Intelligent control schemes for automated storage and retrieval systems. International Journal of Production Research, 26(5), 931–952. Silva, M., & Teruel, E. (1997). Petri nets for the design and operation of manufacturing systems. European Journal of Control, 3(3), 182–199. Van den Berg, J. P. (1999). A literature survey on planning and control of warehousing systems. IIE Transactions, 31, 1–13.