Model and Heuristic Solutions for the Multiple Double-Load Crane Scheduling Problem in Slab Yards

This article studies a multiple double-load crane scheduling problem in steel slab yards. Consideration of multiple cranes and their double-load capability makes the scheduling problem more complex. This problem has not been studied previously. We first formulate the problem as a mixed-integer linear programming (MILP) model. A two-phase model-based heuristic is then proposed. To solve large problems, a pointer-based discrete differential evolution (PDDE) algorithm was developed with a dynamic programming (DP) algorithm embedded to solve the one-crane subproblem for a fixed sequence of tasks. Instances of real problems are collected from a steel company to test the performance of the solution methods. The experiment results show that the model can solve small problems optimally, and the solution greatly improves the schedule currently used in practice. The two-phase heuristic generates near-optimal solutions, but it can still only solve comparatively modest problems within reasonable (4 h) computational timeframes. The PDDE algorithm can solve large practical problems relatively quickly and provides better results than the two-phase heuristic solution, demonstrating its effectiveness and efficiency and therefore its suitability for practical use. Note to Practitioners—Bridge cranes are commonly used to move heavy items in manufacturing and logistics systems. Generally, more than one crane runs on a common track. The latest versions of such cranes, such as those used in slab yards in the steel industry, can hold two items simultaneously. Operations scheduling of multiple double-load cranes involves the assignment of tasks to the cranes, the combination of tasks to double-load operations, and sequencing of the tasks, considering the noncrossing constraint between cranes. Effective solution of this complex problem can help to fully utilize the crane capability, increase productivity, and reduce energy consumption. This article models this problem and develops a heuristic solution that combines differential evolution (DE) and DP. Experiment results show that the algorithm is effective and efficient for practical use in slab yards. It may also be applicable to other systems using similar cranes.


I. INTRODUCTION
S TEEL slabs are intermediate products in the steel production system. They are produced in the continuous casting stage and are used as materials in the hot-rolling stage. To ensure smooth production, slabs are stacked in a storage yard/warehouse that functions as a buffer between the two stages. Based on production requirement, the slabs may need to be moved between two stacks or between a stack and an entry or exit point. These movement tasks are carried out by bridge cranes. The warehouse may consist of several halls, but their operations are independent of each other and so can be planned separately. There can be two or more cranes in the same hall, running on a common overhead rail track. Fig. 1 shows the layout of an example storage hall with two cranes.
The hall is often divided into several areas in practice, such that each area is served by one crane. With this practical strategy, a single-crane scheduling problem can be solved to optimize the operations of each storage area. The most advanced cranes can hold up to two slabs simultaneously. The problem of scheduling such double-load cranes is more complex than scheduling the traditional cranes, which hold only one slab at a time. Zhao et al. [1] studied the problem of scheduling a single crane with double-load capability.
However, cranes in the same hall can travel to different areas. In situations where the workloads are not balanced, higher productivity may be achieved if cranes are allowed to assist each other rather than being restricted to their own areas. As the cranes run on the same track, they cannot cross each other and must also maintain a safety distance. When more than one crane is considered, there are also new decisions on the assignment of tasks to cranes. These new constraints and decisions add additional complexity to the problem. In this article, we study this problem of scheduling multiple cranes each with double-load capability. 1545-5955 © 2019 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.
Problems of scheduling multiple cranes on a common track have been studied previously in different contexts. Lieberman and Turksen [2] studied a crane scheduling problem in production systems and proposed heuristic solutions considering situations where the tasks are ready at the same time and at different times, respectively. More research was done on crane scheduling problems in container terminal operations, mostly at container ports. These include yard crane scheduling problems [3]- [6], quay crane scheduling problems [7]- [10], and combined problems [11]. Guo et al. [12] studied a crane scheduling problem in a railroad container terminal. Zheng et al. [13] studied a crane scheduling problem with uncertain release times of retrieval tasks in a container yard. They proposed a two-stage stochastic programming model and developed a heuristic algorithm to solve the problem. The tasks in our problem are all ready to perform though there may be precedence constraints among them. If anticipated future tasks are also included in the problem, then the method in the above reference could be useful for handling possible uncertainties in the task arrivals. In all these problems, each task needs to be performed by a crane at one fixed position, while the tasks in the problem studied in this article involve a crane movement from one position to another.
Crane scheduling problems with movement tasks are often seen in production systems. Hirsch et al. [14] studied a two-crane routing problem in the roof-tile industry, where the tasks involved moving workpieces on iron pallets from stage to stage and moving the pallets back in a four-stage hybrid flow shop system. An ant colony optimization (ACO)based solution approach was used to solve the problem. Other studies examined cyclic production in electroplating lines, where items for plating are moved between the line stages by hoists on a common track. Lei and Wang [15] studied a problem with two hoists where part movements were all in one direction. The line was partitioned into two nonoverlapping zones, and the tasks in each zone were assigned to one hoist. Che and Chu [16] proposed a branch-and-bound algorithm for a multihoist problem with all part movements in one direction. Zhou and Liu [17] proposed a heuristic search algorithm for the two-hoist problem allowing movements in both directions. Leung and Zhang [18] and Leung et al. [19] presented mixedinteger linear programming (MILP) models for the multihoist scheduling problem. Liu and Jiang [20] and Jiang and Liu [21] analyzed a no-wait version with fixed processing times for multihoist scheduling problems and developed polynomialtime algorithms to solve them optimally. Based on the analysis, a new MILP model is developed for the general problem, which enables an efficient branch-and-bound solution [22].
There has been some previous research studying crane scheduling problems in the steel industry. Dohn and Clausen [23] studied a slab yard planning problem to decide the slab movements, and a crane scheduling problem to carry out the movement tasks. The crane scheduling problem was solved using a greedy heuristic and local search. Xie et al. [24] studied a multicrane scheduling problem arising in the batch annealing process, to move heaters and coolers among the steel coils stacked on annealing bases. An MILP was formulated, and a heuristic solution algorithm was proposed with an analysis of its worst case performance. Maschietto et al. [25] studied a two-crane scheduling problem in a steel coil distribution center and solved it using a genetic algorithm. Zhou et al. [26] studied a new combined transportation problem for China's "the Belt and Road" initiative, they proposed a time-distance-based cost to compare with traditional transportation. The research considered the combination of sea-rail transportation, while our problem is to consider the combination of different tasks.
In all of the above studies, the cranes or hoists can only handle one item. In this article, the crane can hold two slabs simultaneously, and so two slab moving tasks can be combined in one loaded trip. Considering this new feature, we need to decide both the task combination and the crane routes to perform all the tasks.
In the following sections of this article, we first describe the problem in more details and present an MILP model (Section II). A two-phase heuristic is proposed in Section III. Section IV combines differential evolution (DE) and dynamic programming (DP) to solve the problem. Section V reports experiment results. Conclusions are drawn in Section VI.

II. PROBLEM DESCRIPTION AND MODELING
Slabs are stored in stacks in the warehouse hall. These stacks are arranged in rows and columns as shown in Fig. 1. The position of a stack can be indicated by its row and column numbers. There are m cranes in the hall. When a crane moves a slab from one stack to another, the crane bridge travels along the length of the hall and the hoist travels on the bridge along the width of the hall. The time needed for the movement is the longer one of these two travel times. In practice, the width of the hall is much shorter and so the travel time is determined by the distance traveled in the length direction. Therefore, it is sufficient to just use the column position to represent the stack position and only consider the crane movements in one dimension. An entry or exit point can be viewed as a stack. All the cranes run on a common track. Although each of them can travel along the full length of the hall, they cannot cross each other, and any two adjacent cranes must also maintain a minimum safety distance.
In the problem studied, a set of slab movement tasks is given. These may include receiving and storage, rearrangement, retrieval, and shuffling. Each task requires the movement of one slab from its initial stack to its target stack. There may be precedency requirements among the tasks. For example, priority must to be given to urgent tasks; the task of picking up a slab in a higher position must be performed before the task of picking up a slab underneath it.
A crane can hold at most two slabs simultaneously. Therefore, it can perform single tasks one after another or combine two tasks in a double-load operation. In a double-load operation, the crane picks up the first slab from its initial stack, travels to the initial stack of the second slab, picks up the second slabs, travels to the target stack of the second slab, drops off the second slab, then travels to the target stack of the first slab and drops it off there. Some of these steps may be saved if the two slabs have the same initial stack and/or the same target stack. No more than two slabs are allowed to be combined in a double-load operation, i.e., the crane cannot pick up another slab before both slabs are dropped off. Note that a double-load operation combining task A and task B is different from that combining B and A. To combine two tasks, the slab of the first task cannot be wider than that of the second task. Slab widths are known for the given tasks.
Considering the tasks and constraints described above, the scheduling problem is to allocate the tasks to the cranes and determine the schedule for the cranes to perform the tasks, including the combination of tasks into double-load operations, so as to complete all the tasks as soon as possible, i.e., to minimize the makespan.

A. Parameters
maximum crane speed when carrying one slab. v + maximum crane speed when carrying two slabs. v − maximum crane speed when empty. p i+, j − 1 if task j must complete later than task i starts, otherwise 0. p i+, j + 1 if task j must start later than task i starts, otherwise 0. p i−, j − 1 if task j must complete later than task i completes, otherwise 0. p i−, j + 1 if task j must start later than task i completes, otherwise 0. q i j 1 if task i and j meet the double-load conditions, otherwise 0. d min safety distance between cranes. M A sufficiently large constant.

B. Decision Variables
x i+, j + = 1, if task j starts later than task i starts 0, otherwise.
x i+, j − = 1, if task j completes later than task i starts 0, otherwise.
x i−, j + = 1, if task j starts later than task i completes 0, otherwise.
x i−, j − = 1, if task j completes later than task i completes 0, otherwise. C. Mathematical Formulation Using the above notation, our crane scheduling problem can be formulated as the following integer programming model.
In this model, the objective is to minimize the time required to complete all the crane tasks. Constraints (1) ensure that each task is performed by one crane. Constraints (2)-(5) ensure that any two events (start and completion time points of tasks) can happen in only one order. Constraints (6) and (7) require that the two tasks in a double-load operation must be performed by the same crane. Constraint (8) means that any task may be carried out in a double-load operation with at most one other task. Constraint (9) indicates that the double-load conditions must be met if two tasks are combined in a double-load operation. Constraints (10)-(13) link the positions of cranes to those of tasks: if a crane k performs a task i , constraints (10) and (11) ensure that crane k must be at the initial stack of task i when the task starts, while constraints (12) and (13) ensure that the crane must be at the target stack of the task when the task completes. If crane k is not assigned to perform task i , then its positions at the start and completion times of this task will be determined by the model and not restricted by the positions of this task. Constraints (14) and (15) guarantee the minimum safety distance between any two adjacent cranes at all times. These two constraints also ensure that the cranes will never cross each other, as any crane k is required to be always on one side of crane k+ 1 and to maintain at least the safety distance. Constraints (16)- (23) require that there are sufficient times for the cranes to perform the tasks and also to make the necessary empty movements between tasks. Constraints (16) are for single-load tasks, constraints (17)- (19) are for double-load tasks, and constraints (20)-(23) are for empty crane movements. Constraints (24)- (27) ensure that the precedence requirements are satisfied. Constraint (28) states that the completion time of all tasks cannot be earlier than the completion time of any of the individual tasks. Constraints (29) and (30) define the range of variable values.
The value of M in the constraints needs to be sufficiently large to ensure model correctness. However, too large value of M may affect the efficiency of the solution process. The value of M can be set differently in different constraints. For constraints (10)-(13), it is sufficient to set the value of M to the largest distance between any two stacks. For constraints (16)-(23), the value of M needs to be greater than the makespan. We set it to the time required for one crane to perform all tasks one by one. We tested the model by running it on some small problem instances. CPLEX 12.51 was used to solve the model with the maximum running time set to 14400 s (4 h). The solution time increases quickly with the number of tasks in the problem, and when the number of tasks reaches 9, some instances cannot be solved optimally within the given time. If the problem size increases any further, the model cannot generate even a feasible solution within the 4-h limit.

III. TWO-PHASE DECOMPOSITION HEURISTIC
As an attempt to solve larger problems, we try to decompose the problem into two phases: the first phase determines the task combinations assuming that all tasks are performed by a single crane; then, with the task combinations fixed, the second phase decides the task assignment and schedule. Each phase can also be formulated as a smaller MILP model.

A. Phase 1: Solve the Problem as if it is a Single-Crane Problem
This phase assumes that there is only one crane. Therefore, the z variables and safety distance constraints are not needed. Some of the other constraints may also be simplified accordingly. Using the notation defined in Section II, the model for this phase can be represented as follows.
min C max The meanings of the constraints in this model are similar to the corresponding ones in the overall MILP model. Note that the assignment constraints and the large number of collision avoidance constraints do not appear in this model, making it easier to solve.
After solving this first phase model, any two tasks that are performed in the same double-load operation in the solution will be viewed as one new task approximately in the second phase. Each of the tasks that are performed in single-load operations is also considered as a new task. For each new task representing a double-load operation, the "initial" and "target" positions and the duration can be calculated as follows.
Suppose that the task picked up first in this double-load operation (the new task i ) is task A, and the other task is task B. The "initial" position o n i+ and "target" position o n i− of the "new task" can be set based on the direction of task A, i.e., the relationship between its initial and target positions.
If Otherwise The duration of the "new task" Fig. 2 shows the initial and target positions of two tasks (A and B) of a double-load operation. The initial position of A is on the left of its target position (o A+ ≤ o A− ). According to the above formulae, the "initial" and "target" positions of the "new task" will be positions 2 and 9, respectively. The duration of the "new task" is the sum of empty travel time from position 2 to position 4, single-load travel time from position 4 to position 2, double-load travel time from position 2 to position 7, and single-load travel time from position 7 to position 9.

B. Phase 2: Allocate the New Tasks to Cranes and Schedule the Tasks for Each Crane
The phase-two problem is then to assign the cranes to perform the new tasks without further task combination. We redefine the following parameters and variables to present the phase-two model. The parameters concerning cranes remain unchanged. duration of task i . p i+, j − 1 if task j must complete later than task i starts, otherwise 0. p i+, j + 1 if task j must start later than task i starts, otherwise 0. p i−, j − 1 if task j must complete later than task i completes, otherwise 0. p i−, j + 1 if task j must start later than task i completes, otherwise 0. M a sufficiently large constant.

Parameters
Decision Variables x i+, j + = 1, if task j starts later than task i starts 0, otherwise.
x i+, j − = 1, if task j completes later than task i starts 0, otherwise.
x i−, j + = 1, if task j starts later than task i completes 0, otherwise.
1, if task j completes later than task i completes 0, otherwise.  Using the parameters and variables, the following integer programming model is established.
x i+, j + + x j +,i+ = 1, i, j = 1, . . . , N, i = j (52) This is a multicrane model, and the constraints are similar to those in the overall MILP model. However, all tasks in this model are "single-load" tasks and so there are no variables and constraints related to decisions on combining tasks to doubleload operations. This model is thus smaller than the overall model.
This two-phase heuristic was also tested using a maximum allowable running time of 4 h for each problem instance that was used for testing the overall MILP model. The first-phase model can reach optimal solutions relatively quick, and all the remaining time is used to solve the second-phase model. For the instances that are solved optimally by the overall MILP model, the two-phase heuristic solution is about 5.2% to optimal on average, and its solution time is about half that of the overall MILP model. With such time performance, this heuristic is still not suitable for solving large problems, and therefore, a more efficient method is needed.

IV. HEURISTIC SOLUTION WITH DIFFERENTIAL EVOLUTION
The problems that can be solved by the two-phase heuristic within a reasonable time limit are still relatively small. To solve larger practical problems, we turn to metaheuristics. DE is one of the latest metaheuristics and has shown excellent performance in solving optimization problems. It was initially proposed for solving continuous optimization problems. Subsequent modifications have made it applicable to discrete optimization problems. Tang et al. [27] studied an improved DE for steelmaking-continuous casting production. A new mutation strategy and an incremental mechanism are proposed, which can prove the efficiency and effectiveness of DE for solving scheduling problems in the steel industry. Tang et al. [28] studied DE with an individual-dependent mechanism. They proposed a new parameter setting and mutation strategy for DE, which significantly improves the computational efficiency of DE. Dong and Zhao [29] proposed a pointer-based discrete DE (PDDE) for problems where the solutions are expressed as a permutation of integers. They defined addition and multiplication operations based on the concept of memory pointers in some programming languages and used them in the genetic operators of the algorithm. We adopt the PDDE algorithm to solve our problem, as the solution can be expressed as a permutation.

A. Individual Representation
We represent a solution using a permutationof integers, 1, 2, . . . , N + m − 1. Here, integers 1, 2, . . . , N represent the N tasks. The positions of the m − 1 largest numbers N + 1, . . . , N + m − 1 in the sequence separate the tasks into m subsequences. The first subsequence is used as the sequence of tasks performed by crane 1, the second subsequence is used as the sequence of tasks performed by crane 2, and so on. Fig. 3 shows an example solution code for a problem with 13 tasks (N = 13) and 3 cranes (m = 3). As seen from Fig. 3, the two largest numbers (14 and 15) separate the whole sequence into three subsequences, which indicate that crane 1 performs tasks 9, 3, 8, and 11; crane 2 performs tasks 12, 7, 2, and 13; and crane 3 performs tasks 6, 10, 4, 5, and 1.
For each solution represented by a sequence, we need to calculate the objective function value of the corresponding schedule. This objective value will be used as the fitness function. In Sections IV-B-IV-D, we first introduce the operators of mutation, crossover, and selection. Then, we provide a method for scheduling the tasks and calculating the objective value based on the sequence. Finally, the overall PDDE procedure is presented.

B. Discrete Mutation, Discrete Crossover, and Selection
The mutation, crossover, and selection operators in this PDDE procedure are defined by Dong and Zhao [29]. The DE mutation operation generates a mutant individual v i for each current individual x i . The mutation operation of PDDE is a combination of addition (using symbol ⊕) and subtraction (using symbol ) operations of individuals as shown in the following equation: The difference vector d i = x r2 x r3 is obtained by using subtraction operations as illustrated in Fig. 4(a), and the new mutant v i = x r1 ⊕ d i is obtained through addition operations as illustrated in Fig. 4(b). The mutation factor F determines whether the current individual is mutated, as shown in the following equation. If a random real number in the interval of (0, 1) is less than F, the new mutant v i is x r1 ⊕d i ; otherwise, it is the base individual x r1 : Single-point crossover operation is then applied to combine the mutation individual v i and the target individual x i .
First, a random integer is selected from the interval (1, N + m − 1) as the intersection point. Next, the first segment of one of these two individuals and the second segment of the other individual are connected to constitute a preliminary child individual u i . Finally, the second segment of this preliminary individual is checked, and the missing elements are added replacing the repeated elements to obtain a feasible child individual u i . We use ⊗ as the crossover operation symbol. Then, the situations shown in Fig. 5(a) and (b) can be expressed as u i = x i ⊗ v i and u i = v i ⊗ x i . With the crossover rate (CR), the crossover operator in PDDE is defined as in the following equation:

C. Fitness Function Calculation
According to the coding method above, for a given sequence, the assignment of tasks and the order for each crane to perform its tasks are determined. However, we still need to work out an overall schedule and calculate the objective value. This is not a straightforward problem. On the one hand, we need to decide which tasks should be combined as doubleload operations so that the operation time can be minimized. On the other hand, we need to avoid conflict between cranes to ensure the feasibility of the schedule. The objective value of each individual solution must be calculated in the DE search process, and so the calculation has to be quick. Therefore, we address the above two issues separately in two steps, first working out a schedule for each crane and then checking the schedules to resolve conflicts, to obtain a feasible overall schedule and the objective value.
Given the subsequence of tasks for one crane, we first check whether any precedence requirements are violated. If the precedence requirement of two tasks is violated, then the order of the two tasks is changed. This is done until all the precedence requirements are satisfied. For the modified subsequence, we develop a forward DP procedure to efficiently generate the schedule for the crane to perform the tasks. In each stage of the DP, one of the tasks is considered. We denote the total number of tasks in the sequence as n and use [i ] to represent the i th task in the sequence. There are two states in each stage i : 1) performing task [i ] as a single-load operation and 2) combining it with task [i − 1] in a doubleload operation. Note that if task [i − 1] is combined with task [i − 2], then tasks [i ] and [i − 1] cannot be combined. The links between the states in different stages can be expressed as a network in Fig. 6.
Let F i (s) be the objective function of state s in stage i representing the time for completion of all tasks up to this state. To simplify the presentation, so that stage 2 needs not be treated as a special case, we define o [0]− = o [2]+ . Then, the DP can be presented as follows.
First Stage: Recursion for Other Stages: Finally, min {F n (1), F n (2)} will be the optimal objective value for the complete solution. The corresponding schedule for this crane can also be worked out backward.
The schedules of the cranes are then put together to determine whether they are feasible and, if not, to resolve any conflict. This is done by checking the crane positions at each time point. The cranes cannot cross each other, and they must maintain at least the safety distance at all times. In case of conflict between any two cranes, the operation of one of them will be delayed to avoid the conflict. To decide which crane's operation should be delayed, the tasks they are performing at that time are considered. If the two tasks have a precedence relationship, then the crane performing the task with lower priority will give way to the other. Otherwise, the crane carrying less load will give way. In case the cranes carry the same load, the crane with earlier final completion time will give way. Fig. 7 shows a conflict between cranes 1 and 2 as well as the resolution by delaying the operation of crane 1. Although the rules used in this checking process eliminate conflicts, the resulting makespan may not be optimal even if the task assignment, combination, and sequencing decisions are optimal. Nevertheless, as will be seen from the experimental results described in Section V, the solution obtained is close to optimal. In addition, the rules, such as giving way to the crane with a heavier load, lead to solutions with good operational safety.
In this way, an overall schedule can be obtained. Based on the task start and finish times in the schedule, we can conduct a final check of the precedence requirements between tasks of different cranes. If they are all satisfied, the schedule is feasible and the makespan of the schedule is taken as the fitness function value. Otherwise, a large penalty value is imposed on this infeasible solution as its fitness function value.

D. PDDE Procedure
With the integer coding and the above method for calculating the fitness values, the PDDE framework can be followed to solve our problem. Algorithm 1 summarizes the overall PDDE procedure used.

V. COMPUTATIONAL EXPERIMENTS
Computational experiments are carried out to test the effectiveness and efficiency of the solution methods, using a 64-bit Windows 10 system with an Intel Core i5 2.30-GHz CPU and 8-GB RAM. All the methods are implemented using C++ programming language, and the MILP models are solved using CPLEX 12.51 with default parameter settings.
We used an orthogonal experimental design to tune the PDDE algorithm parameters. The orthogonal experiments were conducted on an eight-task instance taken from actual production. The PDDE has three parameter factors: NP, F, and CR. For each factor, four value levels are chosen to test (see Table I). Therefore, the orthogonal table is selected as L 16 (4 3 ) for 16 tests.
The test plan and results are shown in Table II. For each test, we use the average objective value of ten instances as the response value. Column "AVG" in Table II shows the response values. Row AVG1 is the average of the response values at Algorithm 1 The PDDE procedure Initialization: Set the maximum number of iterations g max ; let the initial iteration index g = 0; randomly generate an initial population of NP individuals P g = {x 1,g , . . . , x N P,g }; and calculate the fitness value f (x i,g ) of each individual x i,g . WHILE g < g max FOR each individual in P g. Generate a mutant v i,g using the following mutation operation: Generate an offspring u i,g using the following crossover operation: Calculate the fitness value of u i,g : f (u i,g ) . Select the better one of u i,g and x i,g to survive into the next generation WHILE   TABLE I PARAMETERS, FACTORS, AND LEVELS level 1 for each factor. Similarly, AVG2, AVG3, and AVG4 are averages at other levels. The best performance level for each factor is highlighted in Table II, and the parameters used in PDDE are set accordingly as NP = 100, CR = 0.5, and F = 0.5. Fig. 8 shows the evolution of the best objective value up to the current generation of the PDDE solution process for one instance. It can be seen that the evolution converges before 5000 generations. This is also observed for other instances and with different parameter settings. Based on this, we set g max = 5000.
Instances of actual problems of different sizes were collected from the slab yard of a steel company. Each instance corresponds to a crane scheduling scheme in the production plan. The plan contained the initial position and target position of the slab of each task, the precedence relationship between the tasks, and whether the tasks meet the doubleload operation conditions. The actual slab yard is equipped with two cranes that are used to perform all tasks in practice. For consistency and fair comparison, two cranes are used for each instance in our numerical experiments. The overall MILP model, the two-phase heuristic, and the PDDE heuristic were used to solve each of the instances. The actual production schedules that were used for these instances were also obtained for comparison. According to the actual production schedule of each instance, we obtain the objective value by using the calculation method in Section IV-C as a benchmark to compare the performances of the solution methods.
We also proposed a lower bound of the problem based on the first phase of the heuristic method in Section III. Considering any optimal schedule of the problem with m cranes, we can obtain the route of each crane in it. Linking these routes by adding (m − 1) empty moves, a feasible single-crane solution to perform all tasks can be obtained. The makespan of this solution should not be shorter than the optimal makespan of the single-crane problem. The above analysis leads to a method of calculating a lower bound of our problem. First, solve the first-phase problem in the two-phase heuristic method to obtain the optimal makespan of the single-crane problem. Then, from this makespan, subtract the longest (m − 1) empty move times between the target stack of a task and the initial stack of The maximum computation time allowed for solving an instance is 4 h. Within this time limit, the overall MILP model solved instances with up to nine tasks, and the two-phase heuristic solved instances with up to 11 tasks. We first compare the performances of different methods for these small instances.
For each instance, the objective value of the schedule, in practice, is used as the benchmark. The percentage improvement made by a tested method over this benchmark is then calculated. The experiment results also show the gaps of the proposed methods to the lower bound. The formulas are as follows: Improvement = (benchmark − objective value of the test method)/benchmark × 100% Gap = (objective value of the test method − lower bound)/lower bound × 100%. Table III shows the improvement, the gap, and computation time (in CPU seconds) for each method. From Table III, it can be seen that the overall MILP model achieved optimal solutions to the first 16 instances, with an average improvement of 24.83%. This indicates that there is great potential for improving the present, manually constructed schedule. For the same 16 instances, the average improvements made by the two-phase heuristic and the PDDE heuristic are 20.93% and 22.50%, respectively. Neither is far from the optimal solution, with the PDDE solution being better than the twophase heuristic solution. These can also be seen from their gaps to the lower bound. While the average gap of the optimal solution to the lower bound is 9.16%, those for the two-phase heuristic and PDDE are 14.82% and 12.55%, respectively. For all 24 instances in the table, the average improvements of the two-phase heuristic and the PDDE heuristic are 22.79% and 24.23%, respectively, which are slightly higher than those for the first 16 instances. Part of these increases is due to one exceptionally high improvement in instance 24. Overall, the performances of the heuristic solutions appear quite stable.
In terms of computation time, MILP spends more than 3 h to solve one of the nine-task instances and cannot find a feasible solution for any instances larger than that within 4 h. The two-phase heuristic reached the 4-h limit when solving one of the instances with 11 tasks. The PDDE algorithm solved any of the instances within 2 min, demonstrating that the PDDE algorithm could solve larger problems in reasonable time. Therefore, we tested it on large practical instances ranging from 20 to 60 tasks. The improvements of the PDDE solution over the current benchmark schedule, the gaps between the  Table IV. It can be seen that the computation time of the PDDE algorithm is only around 15 min even for the large problem instances with 60 tasks. PDDE required only a few minutes to solve most of the common instances seen in the company's real operations, which comprise 20-30 tasks. Such a solution time is suitable for practical use. For these large problems, the average improvements of the PDDE solution over the current benchmark schedule are also stable and similar to those for small problems. The average improvement of the PDDE solution over the actual production schedule is 23.58%, and its average gap to the lower bound is 9.44%. These are similar to the averages for small instance. The gap is actually smaller, which may be because the lower bound is better for large instances. We also calculated another performance measure, namely, the average operation time for each task, which is the makespan divided by the number of tasks completed. These are shown in the last two columns in Table IV. The overall average task operation time of the PDDE solution for all the test large instances is 135 s. For the first 16 small instances, the average task operation times of the optimal solution and the PDDE solution are 129.7 and 134.4 s, respectively. This indicates that the quality of the PDDE solution for large instances is similar to that for small instances and is close to optimal.

VI. CONCLUSION
In this article, we have studied a multiple double-load crane scheduling problem in steel slab yards. The double-load crane can handle two slabs simultaneously and so requires additional decisions on combinations of tasks for double-load operations. Scheduling multiple cranes on a common track needs to consider noncrossing and safety distance constraints. Each of these features makes the problem more complex. We are not aware of any previous research on crane-scheduling problems that combine both of these features. We first formulated the problem as an MILP model. Then, a two-phase heuristic was proposed with each phase formulated as a smaller MILP model. A PDDE algorithm was then developed with a DP algorithm embedded to solve the one-crane subproblem for a fixed sequence of tasks. Computational experiments were conducted on real instances collected from a steel company, to test the performance of the solution methods. The results show that the MILP solutions greatly improve upon the schedules used in practice, with an average improvement of about 24.83%, although it can only solve small test instances. The qualities of the two-phase heuristic and the PDDE solutions are both near-optimal, with the PDDE solution performing better. In addition, while the problem size that can be solved by twophase heuristic is still relatively small, the PDDE algorithm solves large practical problems in an acceptable time.
Ren Zhao received the B.Eng. degree in industrial automation, the M.Eng. degree in systems engineering, and the Ph.D. degree in logistics optimization and control from Northeastern University, Shenyang, China, in 2004China, in , 2006China, in , and 2011 She is currently a Post-Doctoral Faculty Member with the Institute of Industrial and Systems Engineering, Northeastern University. Her research interests include production scheduling problems of iron and steel enterprises, logistics scheduling, port container logistics scheduling problems, and optimization theories and methods. As the main researcher of the project, she participated in the National Science Foundation for Outstanding Youth (70425003) He is currently a Lecturer with the Institute of Industrial and Systems Engineering, Northeastern University. His research interests include planning and scheduling, modeling and optimization, metaheuristics, machine learning, and the development of decision support systems. His research articles have been published in academic journals such as the IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, IISE Transactions, and the International Journal of Production Research.