Abstract

This paper studies a single crane scheduling problem arising in the cold-rolling material warehouse in an iron and steel enterprise. A set of coils stored in two levels are needed to be picked up and transported to designated positions. If a required coil is at the upper level, it can be picked up right away and transported to its designated position (transportation operation). A required coil at the lower level cannot be picked up until all its blocking coils at the upper level are moved to other positions (shuffling operation). One overhead crane is used to perform all the transportation and shuffling operations. Our problem is to schedule the crane operations so as to all required coils retrieve to their designated positions in the shortest possible time (makespan). Since the problem is shown to be NP-hard, a genetic algorithm (GA) is proposed. We identify some analytical properties which enable us to develop an effective heuristic algorithm as initial solutions of the GA. We further analyze its performance from the worst-case point of view. To evaluate the average performances, a numerical test compared with some existing methods is carried out and its results show the good quality of the proposed algorithm.

1. Introduction

In iron and steel enterprises, cold rolling is the last main stage of production process that produces final steel products with customer required dimension, surface finish, mechanical properties, and so forth. The materials used in the cold-rolling process are steel coils from hot rolling. These coils are stored in the cold-rolling material warehouse and are retrieved when they are required according to the cold-rolling production plan. Usually one area in warehouse is served by a single bridge crane. Please see Figure 1 with three rows as an example. The crane moves along the track over the area while its pickup device (hoist) can move along the crane bridge. In this way, the hoist of the crane can reach any position in the area. From here onwards, we will refer to the hoist position of the crane simply as the crane position. In each area, coils are stored in rows. According to technological requirements, the coils may be stored in at most two levels. Any coil stored at the upper level must be supported by two coils at the lower level. When a coil is required, it can be retrieved directly if it is stored at the upper level or stored at the lower level and not being blocked by coils at the upper level. If it is stored at the lower level and there is one or two coils at the upper level blocking it, the blocking coils have to be shuffled to other empty positions in the area before the required coil can be retrieved. The retrieval of all required coils and the shuffling of all blocking coils are performed by the overhead crane.

Throughout the paper, picking-up of a required coil and moving it to its designated place will be called a crane transportation operation. Picking-up of a blocking coil and moving it to an empty position will be called a crane shuffling operation. In either a transportation operation or a shuffling operation, the coil concerned needs to be lifted up from its current position, moved to another position, and then dropped off. The whole process is considered as a loaded move for the crane. After the crane drops off a coil, the empty crane can move to another coil to perform the next loaded move. We explore the single crane scheduling problem to determine the sequence for transportation and shuffling moves and to decide the positions that the blocking coils should be shuffled to. The objective is to minimize the makespan, that is, the time by which the retrieval of all required coils is completed.

Effective solution of this scheduling problem helps to achieve better use of the expensive overhead crane and provide better logistics support for the steel production process. Similar problems also exist in other warehouses, such as material and product warehouses for hot-galvanizing and acid-rolling operations and stack yards at container terminals, but have not received much research attention. One apparent reason for this phenomenon is the difficulty associated with the simultaneous consideration of interrelated transportation and shuffling operations.

Up to date, research on related crane scheduling problem has been mainly on different contexts, such as quay crane scheduling problem (QCSP) and yard crane scheduling problem (YCSP) in container terminal to determine a sort of crane operational planning for improving the efficiency of the terminal, and hoist scheduling problem (HSP) in electroplating line by optimizing hoist movements to minimize the production cycle. There is a rich literature on these various crane scheduling problems. Interested readers may refer to Steenken et al. [1], Stahlbock and Voß [2], and Bierwirth and Meisel [3] for surveys in container terminal and Lee et al. [4], Hall et al. [5], and Crama et al. [6] for surveys in HSP system. However, the amount of researches on crane scheduling in steel coil warehouses is relatively small. Zäpfel and Wasner [7] investigated a single crane scheduling problem in a distribution center of steel coils to store incoming coils and retrieve coils required by customers. The problem is viewed as a coil shop scheduling problem and formulated as a nonlinear integer programming model which is hard to solve. Local search based heuristics is proposed and tested through computation. Rei et al. [8] considered a single crane scheduling problem to store and retrieve steel items with known arrival and retrieval dates to minimize the number of crane movements. The items are stacked one on top of another in a similar way to container stacking. Simulation based heuristics is proposed to solve the problem. Most related to our problem studied is researched by Tang et al. [9], but they proposed a heuristic algorithm with worst-case performance analyzed without using genetic algorithm for solving the problem. Xie et al. [10] further studied the multicrane scheduling problem in steel coil warehouse and still they did not propose genetic algorithm.

Moreover, the problem studied here concerns material handling activities in warehouses and may be viewed as one of the warehousing operation management problems. There is a rich literature on various warehousing operation management problems. Interested readers may refer to van den Berg and Zijm [11] for a discussion of warehousing systems and a classification of warehouse management problems and de Koster et al. [12] for a review of studies on warehouse design and control issues. Research on these, order picking involves only retrieving products from the storage area in response to specific customer orders. Ratliff and Rosenthal [13] solved the problem of routing order pickers, considering horizontal travel time and as a special case of the traveling salesman problem (TSP), in a linear computation time in terms of the number of aisles and the number of pick locations. Ascheuer et al. [14] modeled the picker route problem, considering both horizontal and vertical travel times, as an online asymmetric TSP. Kim et al. [15] solved an order picking problem using an intelligent agent-based model where there are separated storage areas each having a dedicated picker, and goods are stored at multiple locations and the picking location of the goods can be selected dynamically. Petersen and Aase [16] examined the effect of picking, storage, and routing using a simulation model based on the operations of a distribution center. Rei et al. [8] presented a situation where a stacking crane delivers all items for a client order in a steel stacking warehouse to minimize the number of movements (total delivery and reshuffling or shifting operations). Petersen and Aase [16] examined the effect of picking, storage, and routing using a simulation model based on the operations of a distribution center. They took entities (goods or parts) and resources (storage area and order pickers) as intelligent agents which cooperate with each other so as to fulfill individual and whole system goals. However, these order picking problems do not involve shuffling decisions which is a main concern in our problem.

Research involving shuffling activities is usually on container handling problems. Kim and Hong [17] mentioned a branch and bound procedure and presented a heuristic for determining the storage positions for shuffled containers during retrieving a given sequence of export containers to minimize the number of shuffles needed. Wan et al. [18] developed a linear integer programming model for the container retrieval and shuffling problems and presented heuristics for handling container storage and retrieval dynamically. Y. Lee and Y. J. Lee [19] presented a three-phase heuristic for retrieving containers in a given sequence to minimize the weighted sum of the number of container movements and the crane’s working time. Given the storage configuration and a sequence of containers to be retrieved, Lee and Hsu [20] proposed an integer programming model for premarshalling containers with minimum number of marshalling movements so that the required containers can be retrieved later without shuffling. Lee and Chao [21] solved larger instances of the problem by neighborhood search heuristics. Avriel et al. [22] studied a ship stowage planning problem to minimize the number of shuffles needed in unloading at destination terminals. At a more aggregated level, Zhang et al. [23] assign storage spaces in the yard for incoming containers to balance the workloads of cranes in different blocks in each period. The problem under our consideration has its own features which makes the existing models are not able to be applied to our problem directly. The stacking of coils is different from that of containers or other flat items. These problems are easier than ours as coils are placed on top of each other in stack and therefore one required coil may be blocked by only one coil.

The paper is organized in the following way. The problem is described and formulated in Section 2. In Section 3, we develop an MILP to describe our problem in detail. Section 4 is devoted to develop a genetic algorithm with worst-case performance analysis. Computational results are reported in Section 5 comparing the solutions with those given by the MILP model and the genetic algorithm. Some conclusions are finally given in Section 6.

2. Problem Statement and Notation

In the section, we unify the problem notation which is proposed by Tang et al. [9] and the problem studied here is described as follows. Consider a warehouse area with positions served by one bridge crane. The area is arranged into rows. Each row can store at most two levels of coils. The lower and upper levels are called levels 1 and 2, respectively. There are storage positions at level in each row. Obviously , due to the special stacking structure. Let be the set of all positions in the area. Each position can be identified uniquely by its row-level-position coordinates . In the rest of the paper, we may refer to a position using its number or its coordinates, whichever being more convenient. Figure 2 shows a top view of an area where large and small patterned circles represent coils at lower and upper positions, respectively, and an empty circle indicates an empty position. The number in a circle is the number for that position at that level in that row.

There are coils stored in the warehouse area. The coils are numbered in such a way that the set of coils required to be retrieved and moved to their designated places is . For convenience of expression, the required coils are also called target coils. Let be the set of all blocking coils and let be the set of coils blocking target coil . Then set includes other coils in the area. Each coil has a known initial storage position .

To perform a loaded move, the time needed for the crane to lift up or drop off a coil is (this can be easily extended to situations with different lift-up and drop-off times). For loaded moves, the crane traveling speeds along the track and along the bridge are and , respectively. Similarly, the empty crane speeds in the two directions are and , respectively. As all the positions are known in advance, and the distance between positions and in the two directions, and (), is also known. Then the time for a loaded move between positions and can be calculated by and that for an empty move between positions and can be calculated by . Here, the traveling time satisfies the triangular inequality. Considering that a position can also be represented by its coordinates, each move time can be denoted in two ways: .

Our problem is to determine the retrieval sequence of the target coils and to decide the positions that the blocking coils should be shuffled to with the objective of minimizing the time by which the retrieval of all target coils is completed. Although a blocking coil may be shuffled to any empty position, to avoid further shuffling, we do not allow any blocking coil to be shuffled to a position that blocks another target coil.

According to their positions, the target coils in may be categorized into four classes as described below. A side view of a row shown in Figure 3 can help understand the classification. The grid circles in the figure represent the target coils.

Class  1. These are the target coils located on level 2 (e.g., coils 1 and 5 in Figure 3) or located on level 1 but not blocked by other coils (e.g., coil 2 in Figure 3). Let denote the subset of coils in this class.

Class  2. These are the target coils located on level 1 and only blocked by other target coils (e.g., coil 6 in Figure 3). Let denote the subset of coils in this class.

Class  3. These are the target coils located on the lower level, each of which is blocked by one nontarget coil (e.g., coil 3 blocked by coil 10, coil 7 blocked by coil 13, and coil 9 blocked by coil 14 in Figure 3). Let denote the subset of coils in this class and let denote the set of the nontarget coils blocking the coils in .

Class  4. These are the target coils located on the lower level, each of which is blocked by two nontarget coils (e.g., coil 4 blocked by coils 11 and 12 and coil 8 blocked by coils 13 and 14). Let denote the subset of coils in this class and let denote the set of the coils blocking the coils in .

According to the above definitions, we have . Note that some blocking coils may block two target coils simultaneously, for example, coil 13 blocks both coil 7 and coil 8. In addition, a blocking coil such as 13 and 14 may belong to both and . Hence, it is possible that . The number of the blocking coils is thus . It is clear from the above classification that coils in can be retrieved directly and those in can also be retrieved directly after retrieving the ones in blocking them. In order to retrieve a coil in or , the coils blocking it need to be shuffled first to other positions.

For easy reference, we summarize all the notations mentioned above in the Notations Section. Some further notations will be defined later when needed.

3. Mathematical Formulation

To present our problem more clearly, in this section, we continue to use a mixed integer linear programming (MILP) model proposed by Tang et al. [9].

3.1. Problem Parameters
3.1.1. Input Data

is the initial position of coil (). With this information we can also work out the indicator , for every , which equals 1, if the initial position of coil is or otherwise equals 0. That is, , all other . Note that each is a known parameter, rather than a variable, representing the fact whether coil is initially at position . is the designated place of target coil (). is the initial position of the crane. is the time needed for loaded move from position to position . is the time needed for empty move from position to position . is a large positive number.

3.1.2. Decision Variables

One has the following:

3.2. Mathematical Model

The problem can be formulated as the following model:

The objective (2) in the model is to minimize the makespan. Constraints (3) guarantee that the crane performs a loaded move for one coil at a time. Constraints (4) guarantee that the retrieval of each target coil and the shuffling of each blocking coil are performed only once. Constraints (5) ensure that, before retrieving a target coil, its blocking coils must be shuffled. Constraints (6) ensure that if a blocking coil is shuffled to a position () which is initially occupied by another coil , coil must be moved away before shuffling . Constraints (7) guarantee that a blocking coil must be shuffled to only one position. Constraints (8) ensure that a blocking coil cannot be shuffled to positions occupied by other coils that are not moved during the whole operation. Constraints (9) ensure that a blocking coil can be shuffled to a level-2 position only if both positions beneath it are occupied by coils always being there or being shuffled to there. Note that the value of in (9) can be at most 1 as position () can only hold at most one coil. Similarly, the value of can also be at most 1. Constraints (10) ensure that the shuffling of a blocking coil to a level-1 position must be done before another blocking coil is shuffled to a position above it. Note that at most one of and in (10) can be 1, since coil can only be shuffled to one position. Constraints (11) and (12) ensure that there is enough time for the empty move of the crane between the completion time of the loaded move and the start time of the loaded move. The two sets of constraints are for the cases where the loaded move is for a blocking coil and for a target coil, respectively. Constraint (13) ensures that the first loaded move can start only after the empty crane reaches the starting position of the loaded move. Constraints (14) and (15) state that between the start and completion times of a loaded move, there must be enough time for the crane to perform the move. The two sets of constraints are for the loaded moves of blocking coils and target coils, respectively. Constraints (16)–(18) are nonnegativity and binary constraints on the variables.

Note that the problem definition assumes that each blocking coil will be shuffled to a position that is not blocking other target coils; that is, a blocking coil needs to be shuffled only once during the process of retrieving all the target coils. This is in line with what is observed in practice. The above model is developed under this assumption. Extension of the model to include the case where each blocking coil is allowed to be shuffled more than once will need more variables to represent the positions of the blocking coils after each target coil is retrieved. Interested readers are referred to Wan et al. [18] for the method of modeling such a shuffling problem in a container yard environment.

4. The Proposed Genetic Algorithm and Performance Analysis

Since our problem is NP-hard in the strong sense (see Tang et al. [9]) and the fast growth of the solution time with the size of the instance remains the major drawback of MILP, a genetic algorithm presented offers, in contrast, a reasonable comprise in terms of computational burden and solution quality. A genetic algorithm is a well-known metaheuristic approach inspired by the natural evolution of the living organisms that works on a population of the solutions simultaneously. It is a randomized optimization technique that draws it inspiration from the biological science. Specially, it uses the idea that genetics determines the evolution of any species in the nature world. Integer strings are used to encode an optimization problem and these strings are subject to combinatorial operations called reproduction, crossover, and mutation, which improve these strings and cause them to “evolve” to an optimal or nearly optimal solution.

4.1. The Proposed Genetic Algorithm

Genetic algorithms (GAs) have been used extensively in combinatorial optimization problems, such as sequencing and scheduling problems. GA is a well-known metaheuristic approach inspired by the natural evolution of the living organisms that works on a population of the solutions simultaneously. The exploration process is performed both by a genetic operator, namely, crossover, and another genetic operator, namely, mutation. The trade-off between these two processes is controlled by the parent selection and offspring acceptance strategies. A single iteration is called a generation. The individuals of the new generation are obtained from the individuals of the previous one by applying reproduction and mutation procedures.

4.2. Genetic Operations Design and Chromosome Representation

As we know, GA starts with a population of individuals and each solution is called a chromosome consisting of genes that represent the decision variables. The chromosome representation used in this paper demonstrates each coil in the schedule as a gene in the chromosome. The total number of decision variables plays a significant role in the computational time. Problem with more variables will require longer computation time. In the mathematical formulation presented in Section 3, the total number of decision variables is . In the paper we define a chromosome to have two parts. The first part represents the sequence of the shuffled coils and the required coils, and the second part represents the shuffled positions for each shuffled block coils correspondingly. A GA chromosome encoding is depicted as in Figure 4. This chromosome represents our problem with 3 required coils and 3 shuffled coils. As indicated in the first part of the chromosome, there are six loaded moves (numbered 1–6). Coils 1, 2, and 3 are the required coils and coils 4, 5, and 6 are the shuffled ones. The second part of the chromosome indicates that empty positions 8, 9, 7 are for the shuffled coils 4, 5 and 6 correspondingly. This chromosome encoding approach can reduce the number of decision variables.

4.3. Initial Solution Procedure

It is a well-known fact that the structure of the initial population plays an essential role in determining the efficiency of GAs (Goldberg [24]). However, most GA implementations in the literature employs randomly generated populations for initiation. To generate the random solutions for the initial population, we consider the following steps.

Step 1. Transport all coils belonging to and , by choosing coil with the minimal () as the first coil and the left coils are in arbitrary sequence. Go to Step 2.

Step 2. If there are enough positions for coils in to be shuffled without making coils in and to be blocked, shuffle the blocking coils one by one according to the following principle: choose one coil with the nearest distance from crane current position and shuffle it to the nearest position. Else, go to Step 3.

Once all the blocking coils in are shuffled completely, then go to Step 1.

Step 3. Compare the two distances created by (3.1) and (3.2) for choosing the nearest one to perform. If two distances are equal, then choose the coils in prior to coils in . If there is no shuffled position for any one coil in , go to Step 1 for transporting current coils in . Once all coils in are transported to the designated place, stop. One has the following:(3.1) the total distances from crane current position to one coil in and then to its nearest shuffled position;(3.2) the total distances from crane current position to one coil in and then to the designated place.

4.4. Arithmetic Crossover

It is important to maintain the feasibility of the newly generated offspring for the problem at hand. Thus, we use the arithmetic crossover (AC) operator to explore the solution space and maintain the feasibility of the newly generated offspring simultaneously. The AC produces a new offspring as complimentary linear combination of the parents as follows.

Offspring = × Parent 1 + () × Parent 2, where is a randomly generated number within an interval from 0 to 1. Thus, each gene value (i.e., allele) in the newly generated offspring is obtained. To increase the effect of the parent with better fitness, we set the parent with better fitness to Parent 1. The AC guarantees that the generated offspring will remain feasible if its parents are feasible. Since values in genes are integer values, the rounded of gene value (offspring) must be considered as a true value.

4.5. Parent Selection Strategy

Parent selection is important in regulating the bias in the reproduction process. The parent selection strategy means how to choose the chromosomes in the current population that will create offspring for the next generation. Generally, it is better that the best solutions in the current generation have more chance for being selected as parents for creating offspring. The most common method for the selection mechanism is the ‘‘roulette wheel” sampling, in which each chromosome is assigned a slice of a circular roulette wheel and the size of the slice is proportional to the chromosome’s fitness.

4.6. Offspring Acceptance Strategy

We use a semigreedy strategy to accept the offspring generated by the genetic operators. In this strategy, an offspring is accepted for the new generation if its fitness is less than the average fitness of its parent(s). This strategy reduces the computational time of the algorithm and leads to a monotonous convergence toward the optimum solution neighborhood.

4.7. Stoppage Rules

We use two criteria as stoppage rules: (1) maximum number of elapsed generation that is a common criterion and (2) standard deviation of the fitness value of chromosomes in the current generation. This parameter implies the degree of diversity or similarity in the current population in terms of the objective function value. If this criterion reduces below an arbitrary constant, say , then the algorithm is stopped.

4.8. Performance Analysis

Let the schedule derived from the genetic algorithm be . A lower bound of the problem can be derived from the following two bounds: for the convenience of expression, we will refer to the distance between crane initial position and coil as , the distance between coil and its designated place as , and the distance between coils and as . Let and . Considerwhere .

is the optimal objective value if all the required coils are in and . The rationale for is that we consider the minimal sum of transporting and shuffling times.

As a single crane must transport all the required coils to designated place and shuffle all the blocking coils, the makespan depends on crane performing sequence. The aim of the algorithm is to minimize crane transporting and shuffling distance as soon as possible. Since the algorithm includes all the possible cases, we analyze the worst-case performance in the following three cases.

Case 1 (). In this case, all the required coils are in and , and we can get the optimal scheduling by applying Step 1 of the algorithm and the objective value which is equal to optimal objective value . Hence, we derive

Case 2 (). In this case, there are enough positions for all the blocking coils in shuffled without making coils in blocked. According to Step 2, before transporting all the required coils, we first shuffle all the blocking coils. The objective value of the scheduling cannot be larger than the following expression where the sum of the first two items is the longest time for shuffling all the coils and the sum of the last three items is the shortest time for transporting all the required coils

Case 3 (). In this case, as there are not enough positions for all the blocking coils in shuffled without making coils in blocked, one blocking coil may be shuffled more than once. For the sake of decreasing shuffling time as much as possible, the crane may shuffle and transport coils alternately. Thereby, the makespan for completing all required coils always satisfies the following expression where the first item is the maximal time for crane empty move from its initial position, the second and third items are the maximal time for shuffling coils and transporting all required coils, respectively, and the forth item is the sum of loading and unloading time:Together with Case 2 above and , we get one worst-case performance bound combined with and ,Together with Case 3 above and , we get the other worst-case performance bound combined with and ,Hence, is the worst-case performance bound.

Theorem 1. For any schedule of our problem generated by the genetic algorithm, it provides the worst-case performance guarantee, where , , Note that this ratio only bounds the performance for the potential worst case. This bound correlates with the distance parameters.

5. Computational Experiments

To test the performances of the proposed GA, the computational experiments used the methods which were provided by Tang et al. [9]. These methods are MILP, sequential approach, heuristic algorithm, and modified heuristic. For each problem setting, 10 problem instances were solved. Different set of problem instances were generated, each of which is characterized by the number of rows in the storage area, the number of storage positions at the lower level in each row ( positions at the upper level), the space utilization , and the number of target coils . The possible positions for designated places are at one end of the rows (near position 1 of each row). For each instance, the number of designated places is generated randomly from 1 to , and their positions are randomly selected from the potential positions. The designated place for each target coil is then randomly chosen from these selected positions. The distance of two adjacent positions in the same row (As shown in Figure 2, the two adjacent positions in the same row are defined by the respective positions of two contact coils located at different level in the same row) is 1 and the distance between two adjacent rows is 2. The crane traveling speeds for loaded and empty moves in the two directions are . The time for lifting up and dropping off a coil is . To test the effect of that is not related to distance, we doubled its value and solved the problem instances again. The corresponding results are shown in the lower part of Tables 1 and 2.

A time limit of 10 hours was set to solve the MILP of each instance. In case an optimal solution was not obtained within the time limit, the best feasible solution was recorded. the number in the brackets indicates the number of instances in the group for which the MILP models were not solved to optimality within their time limit. These algorithms were implemented using Visual C++ and ran on a PC with a 2.33 GHz Pentium CPU and 1 G RAM. The MILP models of the instances were solved using CPLEX version 11.0 on a PC with the same configuration. We use the lower bound LB, as a basis to compare the solution quality. For a solution with a makespan of , the quality is measured by its relative deviation from the LB, .

From Tables 1 and 2 we can make the following observations.

For most of the smaller instances, GA can obtain an optimal solution. Although the computation time of GA is a little longer than that of the heuristic algorithms, the ARD of GA is smaller than that of the MILP. As problem size or the space utilization increases, the GA solution time taken for problems with 90% space utilization is longer than those for lower (50%) and (70%) space utilizations. This may be because for very high space utilization there are fewer empty slots for the shuffled coils and so is the number of iterations, and for low space utilization, there are fewer blocking coils, which also helps reducing search time.

From the results in Table 3, we can see that the results of the GA continued the trend shown for the smaller problems. As the problem size increases, the ARD to LB increases steadily. Therefore, looking at the trend of ARD in Tables 1 and 3, we can see that the GA solution may be not far from optimal. The ARD for the GA is very similar to that of the heuristic algorithm and the modified heuristic. The computation time of the GA increases with the problem size. However, it only takes a fraction of a second to solve a problem with over 100 target coils. Even a problem with 800 coils can be solved within half a minute. Since in practice it is rare for the problem size to reach , the proposed GA is capable of generating good solutions within very short time. Therefore they are suitable for practical use.

6. Conclusions

To conclude, the contributions of this paper are as follows. Unlike the previous related literature, the purpose of our study is to shed light on this practical problem through some theoretical analyses. The problem is formulated as an MILP model. As the strongly NP-hard nature, we develop a genetic algorithm for producing good and quick approximate solutions for practical applications. The performance of this algorithm has been demonstrated efficiently and effectively which is related with some problem parameters. It provides a solution for improving the efficiency of the cranes and output of the production in warehouse of the iron and steel enterprise. These contributions can be used for enterprise to achieve a more efficient productivity in warehouse management and utilize expensive facilities.

Note that our study is fit for solving single crane scheduling problem for picking up required coils in warehouse of the steel enterprises. Further research may consider applying other well-known population-based metaheuristics such as a memetic algorithm to solve our problem involving other similar shuffle and reshuffling processes in steel plate warehouse and in container terminals while considering implementation details.

Notations

The number of all positions in the warehouse area being considered
The set of all positions in the area
The number of rows in the area
Index of levels; and represent the lower and upper levels, respectively
The row-level-position coordinates for
The number of all stored coils in the area
The set of target coils (required to be retrieved and moved to their designated places),
The set of blocking coils,
The set of coils blocking target coil
The set of other coils,
The subset of target coils located on level 2 or located on level 1 but not blocked by other coils
The subset of target coils located on level 1 and only blocked by other target coils
The subset of target coils located on level 1, each of which is blocked by one nontarget coil
The set of the nontarget coils blocking the coils in
The subset of target coils located on level 1, each of which is blocked by two nontarget coils
The set of the coils blocking the coils in
The time needed for the crane to lift up or drop off a coil
and The crane traveling speeds along the track and along the bridge, respectively
and The empty crane traveling speeds along the track and along the bridge , respectively
and The distance between positions and along the track and along the bridge, respectively
and The time for a loaded move and for an empty move, respectively, between positions and , , . They can also be denoted in another way: , .

Conflict of Interests

The authors declare that there is no conflict of interests regarding the publication of this paper.

Acknowledgments

This research is supported by National Natural Science Foundation of China (Grant no. 71201104).