# Modelling and Metaheuristic for Gantry Crane Scheduling and Storage Space Allocation Problem in Railway Container Terminals

Authors: Ming Zeng; Wenming Cheng; Peng Guo
Journal: Discrete Dynamics in Nature and Society
 (2017)

---

## Abstract

The gantry crane scheduling and storage space allocation problem in the main containers yard of railway container terminal is studied. A mixed integer programming model which comprehensively considers the handling procedures, noncrossing constraints, the safety margin and traveling time of gantry cranes, and the storage modes in the main area is formulated. A metaheuristic named backtracking search algorithm (BSA) is then improved to solve this intractable problem. A series of computational experiments are carried out to evaluate the performance of the proposed algorithm under some randomly generated cases based on the practical operation conditions. The results show that the proposed algorithm can gain the near-optimal solutions within a reasonable computation time.


---

## Body

## 1. Introduction

With the promotion of OBOR (One Belt and One Road) strategy, the trade contacts between China and the other countries have been improved significantly. As one of the most convenient and efficient modes of transportation, container transport has been popularized and developed all over the world. For some developed countries, the containerization ratio of general cargo has reached 80%, and the proportion of container cargo also has achieved 20%~40% in all the amount of railway freight [1]. Although the railway container transportation of China starts relatively late, the trend of development is very well. For example, in 2015, the year-on-year growth of the railway container freight volume in China is up to 20.2% [2]. In terms of the mid-long term railway network plan and the eleventh five-year plan of China Railway, a railway container transportation support system which takes 18 railway container terminals as the hub will be established. These terminals are located in the main economic centers and the significant ports, so the transportation resources are extremely rich and the developing potential is tremendous.Multimodal and door to door transports are the main modes of modern railway container freight organization. The logistics service functions and levels determine the survivability and competitive capacity of the railway container terminals in the entire networked logistics system. As the crucial operation processes, the container handling and storage play a vital role at the aspects of accelerating cargo movement and saving circulation costs in the railway container terminals. Currently, the railway container terminals of China especially the sea port, land port, and metropolis located container freight transport hubs already had comparatively comprehensive handling, transferring, and storage system. However, some problems still exist in the operation systems of railway container terminals, such as low efficiency, high expenses, and weak response to the demand changes; thus the needs of modern logistics cannot be satisfied and even the competitiveness of the whole railway container transportation system is influenced. The reasonable management and control to the processes of railway container terminal have great importance to rationalize the equipment utilization, improve the operation ability and service quality, and enhance the safety and convenience of freight delivery.Compared with the traditional railway freight station, the railway container terminal is quite different in respect of the function and the equipment. As the product of modern logistics, railway container terminal is a complete logistics system to carry out many service tasks. In accordance with the modern logistics service functions of railway container terminal, there are certain functional zones established such as railway handling line, main area, assistant area, intrachannel, gate system, parking area, administration center, and other auxiliary facilities. The specific layout and functional zone division are presented in Figure1.Figure 1
Sketch map of railway container terminal.In a typical railway container terminal, there are several operation regions established along with the rail line, and a number of gantry cranes are distributed in these regions to implement the handling tasks of container trains. When a railway container train arrived, the suitable stop position must be determined promptly. Normally, the container trains are assigned to the stop position near to the storage spaces in the main area, namely, the expected position. Whereas if the real position that the container train stopped is far away from the expected position, the unloading time of containers to the storage spaces will increase greatly, and the operation efficiency would be adverse influenced accordingly.After fixing the stop position, that is, the railway handling line in main area, then accordingly the unloading operations will be carried out. Some containers are unloaded to the outer container trucks through the gantry cranes and then delivered directly to the consignee. The rest of containers are unloaded to the available storage space of the main area through the gantry cranes, or to the inner container trucks, and then transferred to the assistant area. However, during the practical operation process, the number of containers unloaded to the assistant area is comparatively less and the storage position is relatively fixed in the actual unloading operation process; therefore the research of this paper is mainly focus on the gantry crane scheduling and storage space allocation problem in the main area.For the purpose of facilitating the analysis and mathematical modelling, the containers that need to be unloaded are ranked from the tail to the head of a train, and the serial numbers are applied to indicate the task numbers of the unloading operations. Figure2 illustrates the task division of a container train. Gantry crane is the main equipment placed over two railway tracks and have the cantilever to conduct the parallel processing of container transferring in the railway container terminal. For the sake of safety, all the gantry cranes which share the same tracks are not allowed to cross each other, and adequate distance between the adjacent gantry cranes must be kept as well, which will be the interference constraints in the mathematical model.Figure 2
Task division of a container train.In this paper, the gantry crane scheduling and storage space allocation problem are integrated to be investigated which has more practical significance comparatively. The remainder of this paper is structured as follows: Section2 surveys the literatures with respect to the gantry crane scheduling and storage space allocation problems in both railway container terminals and port terminals. Section 3 formulates a mixed integer programming model, and subsequently in Section 4, an improved backtracking search algorithm is proposed to obtain the solution. Then the computational experiments are conducted in Section 5. And finally, Section 6 concludes the article with an outline of future study.


## 2. Literature Review

Because the effect factors of the gantry crane scheduling and storage space allocation in railway container terminal are complex and the constraints are numerous, the simulation methods based on software are adopted to present the practical situation in most of the researches. Guo et al. [3] and Benna and Gronalt [4] established the simulation model according to the operation process in railway container terminal separately, and a series of experiments were conducted to evaluate the performance under various configuration. Nonetheless, the mathematical model is required for providing a precise description to the problem. Jeong and Kim [5] integrated the gantry crane scheduling, in and out container flow, and inner truck stop position decision problems as the railway freight station scheduling problem and proposed the relevant genetic and heuristic algorithm. Wang and Zhu [6] constructed a optimization model to minimize the idle time of gantry crane, and an ant colony algorithm was presented correspondingly. They also formulated the storage space allocation optimization models and introduced the rolling horizon method to solve this problem [7]. Boysen et al. [8] carried out a train scheduling model in railway container yard and acquired the solution by using the dynamic programming method together with the beam search heuristic algorithm. The above-mentioned researches have begun to study the gantry crane scheduling and storage space allocation problem in railway container terminals, whereas these models are relatively simple and without considering the interference constraints.Unlike the small number of studies in railway container terminals, the researches of quay gantry crane scheduling and berth allocation problems in port terminals which can provide some crucial inspiration for our research are comparatively rich. The quay gantry crane scheduling problem was first concerned by Daganzo [9] and then this problem has been studied constantly and intensively. As the objectives of operation, containers are gathered by different scopes by the researchers. Lee et al. [10] and Boysen et al. [11] carried on the research of quay gantry crane scheduling problem with bays. The former adopted a mixed integer programming method to establish the mathematical model and took the noncrossing constraints into consideration. The latter subdivided the bay area and regarded the cranes as two different sets. Meanwhile, the relevant optimization model was developed and two solution procedures (exact and heuristic) were proposed. However, the quay gantry crane scheduling problem with bays is proven to be NP-complete when the noncrossing and safety distance constraints were included [12]. So currently, the tasks are often aggregated by container groups [13–15]. Chen et al. [16] took a further study for the quay crane scheduling problem in the indented berth. Some properties of this problem were carefully analyzed and a mixed integer programming model was set up. Unsal and Oguz [17] synthetically considered some practical constraints and offered a programming model for this quay crane scheduling problem as well as the integrated scheduling problem. Expósito-Izquierdo et al. [18] illustrated the importance of the quay crane scheduling problem and designed a hybrid estimation of distribution algorithm along with the local search to obtain the best solution. Beyond that, an approximate evaluation is adopted to improve the computation.The gantry cranes are assumed to travel freely and without any interference constraints in the original researches [19, 20]; however it does not conform to the actual operation situations of the gantry cranes in port terminals. As the research continues, the interference constraints of the gantry cranes have been widely concerned [21–23]. Although the introduction of interference constraints is more realistic, the complexity of the problem increases as well. In some related optimization field, the evolutionary or heuristic methods are put forward. Chlumecký et al. [24] adopted the genetic algorithm to optimize a rainfall-runoff model and provided a new concept of a random number generator. Su et al. [25] proposed a comprehensive learning artificial bee colony algorithm which used a pool of optimal foraging strategies to balance the exploration and exploitation tradeoff to solve the dynamic environments problems. Cui et al. [26] provided a ranking-based adaptive ABC algorithm, the parent food sources are chosen based on their rankings, and the selection probability of the food source is on the basis of the corresponding ranking. Particle swarm optimization is also widely used in solving the optimization problems. However, the premature convergence and stagnation which are caused by the subtraction-based solution update mechanism are the prominent problems. Kiran [27] presented a distribution-based update rule to overcome these issues and investigated it on 13 benchmark functions together with 3 engineering optimization problems. Meanwhile, some researchers employ the hybrid approach to improve the single algorithm [28, 29]. Li et al. [30] combined the local search phase in PSO with two global search phases in ABC in order to avoid the local optimal problem of PSO when solving the high-dimensional optimization problems and the slow convergence speed of ABC. Kıran and Gündüz [31] recombined the global best solutions gained by the PSO and ABC and took the recombination solution as the global best of PSO and the neighbor food source of ABC. For the gantry crane scheduling problem, Diabat and Theodorou [32] presented a genetic algorithm to solve the quay crane assignment and scheduling problem; meanwhile they proved the solution of genetic algorithm was better than that of exact methods from a series of computational experiments. Monaco and Sammarra [33] established a mixed integer model for the quay crane scheduling problem and proposed a tabu search algorithm to obtain the feasible solutions. Other heuristic approaches such as variable neighborhood search [34] and simulated annealing [35] are also used quite commonly.To achieve a more realistic and reliable programming, the quay crane assignment problem, the quay crane scheduling problem, and the berth allocation problem are integrated to study at present. The implementation of integration mainly includes two approaches: (1) take the solution of the first problem as the input of the other problem. (2) Settle the two problems alternately. Raa et al. [36] combined the factors of vessel priorities, operation time, and preferred berthing locations to form a MILP model for the quay crane assignment and berth allocation problem; besides a hybrid heuristic approach was provided to get the solution. Elwany et al. [37] simultaneously handled the quay crane assignment and berth allocation problem. They also used a heuristics-based method to solve this NP-hard problem and acquired the satisfactory solutions. Different with the above two papers which focus on the number of cranes distributed to the vessel, Zeng et al. [38] pay more attention to the specific crane assigned to serve the vessel. In comparison, the researches of integrated quay crane scheduling and berth allocation problem are seldom. Song et al. [39] made use of the bilevel programming approach to solve this integrated problem and applied an improved genetic algorithm together with the branch-and-bound method to gain the solution. Lee and Wang [40] proposed a mixed integer programming model with the genetic algorithm to figure out the discrete quay crane scheduling and berth allocation problem. Nonetheless, some significant affecting factors as berthing position are not concerned adequately in these researches.The storage space allocation problem in port terminals is first studied by Zhang et al. [41]. And then Chen and Lu [42] deal with the problem of storage location assignment for outbound containers. They not only manage the storage locations in bays but also determine the specific storage locations for every container. The mixed integer programming model and the hybrid sequence stacking algorithm were utilized to settle this problem. To minimize the realignment and optimize the operations of the terminal, Rodriguez-Molins et al. [43] provided a domain-dependent heuristic planner which also can be applied to acquire the optimal allocation for each container. Silva et al. [44] proposed a GRASP and tabu search based hybrid algorithm to solve the dynamic space allocation problem which is verified to be a NP-hard problem. With the purpose of decreasing the expected waiting time of outer trucks, Yu and Qi [45] researched both the block space allocation problem and the correlative remarshaling problem. Three models were presented for distinct storing conditions, and a heuristic algorithm was designed accordingly. However, because the facilities scheduling factors are rarely incorporated in these models, there is still a certain limitation.The gantry crane scheduling and storage space allocation are two closely connected problems; the proper storage space allocation is important in improving the performance of gantry cranes and reducing the operation time. Thus, an integrated frame of the two problems will be more efficient for the practical operation. However, there are abundant researches giving attentions to the quay crane scheduling, berth allocation, storage space allocation, or the integrated problems in port terminals; there is no research that concerns the integrated problem of gantry crane scheduling and storage space allocation in railway container terminals. Meanwhile, various appropriate solution approaches are lacked in solving this problem.


## 3. Mathematical Formulation

In this paper, the objective of the gantry crane scheduling and storage space allocation problem is to minimize the handling time of the container train. The handling procedures of gantry cranes to transfer the containers to the specific locations are as follows: firstly, the crane and trolley move to the current position of the unloading task. Then shift to the empty storage space or the transshipment truck with the heavy load and finish the drop operation. Finally, loosen the lock and lift with the empty load. There are two storage modes existing in the main area of railway container terminal: one is along with the railway track as shown in Figure3(a), and another is vertical to the railway track which is displayed in Figure 3(b). Thus, the different model parameters ought to be input in the light of the storage direction of the containers.Figure 3
Scheme of the storage direction in the main area of railway container terminal.
(a)
Horizontal
(b)
VerticalBefore establishing the gantry crane scheduling and storage space allocation model, the following assumptions are required:(1)
The operation efficiencies of all the gantry cranes are the same.(2)
All the gantry cranes have the unique traveling speed.(3)
The gantry cranes in the same rail cannot cross each other when conducting the handling tasks of a train and a safety distance must be always kept between the adjacent gantry cranes.(4)
The processing task of a gantry crane should be finished before another task proceeded.On the basis of the assumptions and the objectives, the mathematical model can be established according to the practical operation processes of the main area in the railway container terminal. The notations are defined as below:N: the set of containers in need of operating; the number of tasks n∈NG: the set of gantry cranes, g∈GM: the set of storage spaces in main area; the storage space index m∈Mtg0: the earliest available time of gantry crane glg0: the initial position of g (denoted by the task number)li: operation position of the ith task (denoted by the task number)s0: the expected stop position of container trains: the real stop position of container trainδ: the safety distance required between the adjacent gantry cranesCi: the completion time of the ith taskCmax: the maximum completion time of all the unloading tasks of the container trainto: the traveling time of crane between the adjacent taskstij: the required traveling time of crane from the ith task to the jth taskdim: the distance between the central axis of railway track and the mth storage spacedc: the drop distance of the gantry crane to the main area with the heavy loadvt: the traveling speed of the trolley of gantry cranevd: the drop speed of gantry crane with heavy loadtim: the sum of the average lift time of gantry crane with heavy load, the average rise and fall time of gantry crane with empty load, and the alignment locking and unlocking time when the ith task is arranged to the mth storage space in main area.th: the horizontal traveling time of the trolley of gantry crane to the inner truck.tki: the sum of the average lift and drop time of gantry crane with heavy load, the average rise and fall time of gantry crane with empty load, and the alignment locking and unlocking time when the ith task is transferred by the inner truck.Oi0: the original operation time of the ith task.Oi: the actual operation time of the ith task.Γ: a large enough positive numberxig=1, the ith task is assigned to gantry crane g; 0, otherwiseyim=1, the ith task is arranged to the mth storage space in main area; 0, otherwise.ki=1, the ith task is transferred to the assistant area by the inner truck; 0, otherwisezij=1, the ith task is completed no later than the start time of the jth task; 0, otherwise.Objective:(1)minCmaxSubject to:(2)Cmax≥Ci∀i∈N,(3)∑i=1nyim≤M∀m∈M,(4)∑g=1Gxig=1∀i∈N,(5)∑m=1Myim≤1∀i∈N,(6)∑m∈M∑i=1Nyim+∑i=1nki=N,(7)yim+ki≤1∀i∈N,m∈M,(8)tij=to·li-lj∀1≤i<j≤n,(9)Oi0=yim·max⁡tij,dimvt+dcvd+tim+ki·max⁡tij,th+tkim∈M,∀1≤i<j≤n,(10)Oi=Oi0·1+αs-s0∀i∈N,(11)∑g=1Gxig·tg0+Oi≤Ci∀i∈N,(12)Ci-Cj-Oj+zij·Γ≥0∀1≤i<j≤n,(13)Ci-Cj-Oj+1-zij·Γ≤0∀1≤i<j≤n,(14)Γ·zij+zji≥∑g=1Gg·xig-∑h=1Gh·xjh+i-j∀1≤i<j≤n,(15)i+δ+1-j≤Γ·zij+zji∀1≤i<j≤n,(16)xig,yim,ki∈0,1,∀1≤i,j≤N;1≤g≤G.The objective function (1) is to minimize the maximum completion time of all the operations, and the maximum completion time is determined by constraint (2). Constraint (3) ensures the number of containers unloaded to the main area is not more than the total number of storage spaces in the main area. Constraint (4) guarantees a task can only be handled by one gantry crane. Constraint (5) determines that a container can just occupy one storage space of the main area. Constraint (6) and Constraint (7) emphasize that the containers only can be unloaded to the main area or the assistant area, and the total number of containers to these two areas equals the number of containers in the container train. Constraint (8) defines the required moving time of crane from the ith task to the jth task. Constraint (9) means the operation time of the ith task. Specifically, the operation time of the ith task is the sum of the moving time, rise and fall time, alignment and locking time, and alignment and unlocking time of the gantry crane when the container is unloaded to the main area or to the inner truck and transferred to the assistant area. In practice, the traveling of the crane and trolley often occurred at the same time, so the moving time is the larger value between the traveling times of crane and trolley. Constraint (10) redefines the operation time of the ith task on considering the stop position of the container train. Constraint (11) undertakes that the start time of a task is not earlier than the soonest available time of the gantry crane g which is utilized to complete this task. Constraints (12) and (13) provide a definition to the decision variable zij. The variable zij equals 1 if and only if the ith task is completed before the jth task and equals 0 otherwise. Constraint (14) ensures the gantry cranes in the same track do not cross each other. The numbers of tasks and gantry cranes are in an ascending sort order from the tail of the container train. When Zij+Zji=0 (i.e., the ith task and the jth task are conducted simultaneously, and the index of task i is less than j), if the ith task is operated by gantry crane g and the jth task is handled by gantry crane h, then g+1≤h. Similar to Constraint (14), Constraint (15) ensures that the adjacent gantry cranes always keep a safety distance when carrying out the simultaneous operation. Constraint (16) furnishes the value ranges of all the decision variables.


## 4. The Backtracking Search Algorithm for the Problem under Study

### 4.1. The Backtracking Search Algorithm

The backtracking search algorithm (BSA) is a relatively novel evolutionary algorithm at present; it was first introduced by Civicioglu [46] in 2013. Compared with the other evolutionary algorithms such as artificial bee colony (ABC) and particle swarm optimization (PSO) [46], the backtracking search algorithm has a better performance in model fitness, solution speed, and solving precision for solving the nonlinear, nondifferentiable and multimode complicated optimization problem. The reason why the backtracking search algorithm has such favorable property is the unique experimental population creation strategy, the control modes of search direction matrix and search boundary, and the operation methods of crossover and mutation. Even more worth mentioning, the search direction matrix of this algorithm is generated from the memorized previous generation of population and random selecting; therefore, the search efficiency and accuracy of the optimal solution are enhanced.The backtracking search algorithm also adopts three genetic operators of selection, mutation, and crossover to produce the experimental population; the fundamental framework is as follows:Step 1 (initialization): (repeat)Step 2 (selection-I): (experimental population creation)Step 3 (mutation)Step 4 (crossover): (end of the experimental population creation)Step 5 (selection-II): (end of the repeat when the stop conditions are satisfied).(
1) Initialization. The uniform distribution expression (17) is introduced in the backtracking search algorithm to create the initial population P, in which Pi is the individual of the population P, N is the population size, and D is the dimension of the optimization problem, that is, the design parameter of the problem, i=1,2,3,…,N,j=1,2,3,…,D.(17)Pij~Ulowj,upj.(
2) Selection-I. As mentioned before, the search direction matrix is created by randomly choosing from the historical population which is memorized in the backtracking search algorithm. In selection-I, the historical population is initialized through formula (18), and then whether the historical population should be updated in accordance with the criterion (19) at the beginning of iteration is decided. Accordingly, the calculation efficiency is improved by means of the historical population recording and search direction navigating methods. Moreover, for the purpose of increasing the diversity of the individuals and avoiding premature convergence, the random permutations are made for some individuals while the historical population is determined.(18)oldPij~Ulowj,upj,(19)ifa<bthenoldP≔P∣a,b~U0,1.(
3) Mutation. During the producing of each generation of experimental population, (20) is utilized to mutate the population and develop the preliminary form of experiment population. F in (20) is the coefficient of amplitude control to command the range of search direction matrix information acquisition. Obviously, the experimental population created in this step acquires parts of the favorable information from the historical population. Therefore, it plays a significant role in increasing the search efficiency of optimal solution.(20)Mutant=P+F·oldP-P.(
4) Crossover. After the step of mutation, the experimental population undertook a crossover to get the ultimate form T of experimental population of this generation. Different with the traditional methods of crossover, a rather complicated nonuniform method is employed in this algorithm; the concrete operation is as follows: firstly, assign the mutated experimental populationMutantto the population T. Then generate a N×D binary integer matrix A. There are two preset ways randomly selected for the matrix generation, one is making use of the mix rate M, as presented in (21), and another is choosing an element stochastically to carry out the operation at one time, as (22). Eventually, conduct the crossover of experimental population according to the value of the elements in the binary integer matrix A. When the element in the binary integer matrix A is equal to 1, the elements in experimental population T are in line with the corresponding elements in population P. The variation rate of elements in population T and the individual value after crossover are controlled separately by the mix rate parameter M and boundary control mechanism.(21)Ai,u1:M·rnd·D=0∣u=permuting1,2,3,…,D,(22)Ai,randiD=0.(
5) Selection-II. The greedy choice strategy is introduced in this step to compare the fitness value of all the individuals in the experimental population T and the population P; then the individuals Ti with the larger fitness value in the experimental population T are assigned to Pi to accomplish the update. Subsequently, decide whether the best value of fitness Pbest in population P exceeds the global optimum value at present. If so, Pbest is taken as the new global optimum value. Repeat the steps mentioned above until the stop conditions are met.To sum up, the specific implementation procedures of backtracking search algorithm are induced as below.Step 1 (initialization).
Determine the input and output parameters, define the algorithmic function, randomly create the original populationP and oldP, and calculate the initial fitness value of population P.Step 2.
Repeat the following procedures.Step 3 (selection-I).
Develop the historical population.ifa<b∣a,b~U0,1thenoldP≔P.Step 4 (mutation).
Produce the preliminary experimental population.Mutant=P+F·oldP-P.Step 5 (crossover).
(a) Generate the binary integer matrixA.ifc<d∣c,d~U0,1thenAi,u1:M·rnd·D=0∣u =permuting1,2,3,…,DelseAi,randiD=0end if
(b) Develop the experimental populationT in accordance with the value of elements in matrix A.ifAij=1 then Tij≔PijStep 6.
WhenTij overflows the bound, adopt the boundary control mechanism to reassign.Tij=rnd·upj-lowj+lowjStep 7 (selection-II).
Greedily select the individuals with larger fitness value to form the populationP.Step 8.
When the best value of fitnessPbest in population P exceeds the current global optimum value; consider the Pbest as the new global optimum value. Output the optimal result.Step 9.
End the repeat while the stop conditions are satisfied.


### 4.2. The Improved Backtracking Search Algorithm

The original backtracking search algorithm can memorize the historical population and the search direction to enhance the calculation efficiency. Nonetheless, the search effect depends on the ability of acquiring the favorable information from the historical population to find a better solution. In consequence, with the purpose of further improving the search ability, enlightened by the particle swarm optimization algorithm, the selection step of backtracking search algorithm is modified. [47] Taking advantage of global optimum value information, the historical population developing formula (18) is replaced by the following equation:(23)oldPij=Pij+ϕijPij-Pkj+c1rand0,1Pjgbest-Pij+c2rand0,1Pjbest-Pij,where ϕij is the random real number ranging from −1 to 1 and follows the uniform distribution. Pjgbest is the jth element of global optimum value found at present. Pjbest is the jth element of optimum value obtained by the current iteration. c1 and c2 are two positive constants.Furthermore, to avoid falling into the local optimal solution and increasing the diversity of population, when the global optimum value cannot proceed to be optimized and the stop conditions are not satisfied, randomly create the populationP according to (24) and then mutate the ith solution of this population in accordance with (25) or (26) by using the global optimum value information. Finally, compare the fitness value of the ith solution in randomly created population, that is, Pirand and the fitness value of the ith solution in mutated population, that is, Pimutate; choose the one with larger fitness value as the new population.(24)Pijrand=Pjmin+rand0,1Pjmax-Pjmin.Whenrand(0,1)≤0.5,(25)Pijmutate=Pij+rand0,1×1-iteritermaxθ×Pjgbest-Pij.Whenrand(0,1)>0.5,(26)Pijmutate=Pij+rand0,1×1-iteritermaxθ×Pjbest-Pij,where θ is the scale parameter and the value is the positive integer commonly ranging from 2 to 5.Significantly, the backtracking search algorithm is the continuous intelligent optimization algorithm. It cannot be directly applied to the discrete gantry crane scheduling and storage space allocation problem in railway container terminal. Therefore, the permutation sequence approach is adopted in this paper to settle this problem. Through the permutation sequence approach, the structure of solution is recoded to denote the sequence of unloading tasks in container train. For example, Figure4 demonstrates the encoding approach for 6 tasks. Correspondingly for decoding, the unloading tasks are assigned to the earliest available gantry cranes and the appropriate storage spaces on the basis of the obtained sequence; the procedures are presented in Algorithm 1.Algorithm 1:The backtracking search algorithm calculation procedure.
Procedure: transform the tasks to the gantry crane schedule and storage space allocation
Inputs: n,g,M,tg0,lg0,to,δ //M is the total amount of storage spaces in main area, tg0 is the
earliest available time of gantry crane g,lg0 is the initial position of g  (denoted by the task
number), to is the traveling time of crane between the adjacent tasks, δ is the safety
distance required between the adjacent gantry cranes//
Output: Cmax //Cmax is the maximum completion time of all the unloading tasks of the container train//
begin
calculate cmax0 and sol0 //find a good initial solution//
let pop  ←  (popsize, dim, low, up) //dim=n//
let fitness  ←  (pop,n,g,bay,Oi,QCR,QCL,tij,QC_TS,pct)
set fitness(index) =  cmax0, pop(index,  :) = sol0 //using the initial solution to replace the worst
solution in the population//
set historical_pop = pop //historical_pop is swarm-memory of BSA//
while non_iter <= nonmax && epk <= epoch do //epoch is the maximum iteration counter//
if rand < rand,
historical_pop = pop;
end if
calculatehistorical_pop, F and map; //F is the scale factor//
if rand < rand,
for  i=1:popsize,
u = randperm(dim);
map(i,u(1:ceil(DIM_RATE∗rand∗dim))) = 1;
end for
else
for  i=1:popsize,
map(i, randi(dim)) = 1
end for
end if
//implement the SELECTION-I process//
offsprings = pop + (map.∗F). ∗(historical_pop-pop)
offsprings = BoundaryControl(offsprings, low, up) //implement the MUTATION and
CROSSOVER process//
calculate fitnessoffsprings;
ind = fitnessoffsprings < fitnesspop;
fitnesspop (ind) = fitnessoffsprings(ind);
pop(ind,  :) = offsprings(ind,  :);
[best, ind] = min(fitnesspop);
if best < globalminimum
globalminimum = best
globalminimizer = pop(ind,  :);
non_iter = 0;
else
non_iter = non_iter + 1;
end if
//implement the SELECTON-II process//
best_iter = [best_iter globalminimum];
epk = epk + 1;
end while
endFigure 4
Interpretation of the encoding scheme.The individual of population is denoted by the task numbers 1–6.The decoding procedures of above-mentioned algorithm are present as in Algorithm1.


## 4.1. The Backtracking Search Algorithm

The backtracking search algorithm (BSA) is a relatively novel evolutionary algorithm at present; it was first introduced by Civicioglu [46] in 2013. Compared with the other evolutionary algorithms such as artificial bee colony (ABC) and particle swarm optimization (PSO) [46], the backtracking search algorithm has a better performance in model fitness, solution speed, and solving precision for solving the nonlinear, nondifferentiable and multimode complicated optimization problem. The reason why the backtracking search algorithm has such favorable property is the unique experimental population creation strategy, the control modes of search direction matrix and search boundary, and the operation methods of crossover and mutation. Even more worth mentioning, the search direction matrix of this algorithm is generated from the memorized previous generation of population and random selecting; therefore, the search efficiency and accuracy of the optimal solution are enhanced.The backtracking search algorithm also adopts three genetic operators of selection, mutation, and crossover to produce the experimental population; the fundamental framework is as follows:Step 1 (initialization): (repeat)Step 2 (selection-I): (experimental population creation)Step 3 (mutation)Step 4 (crossover): (end of the experimental population creation)Step 5 (selection-II): (end of the repeat when the stop conditions are satisfied).(
1) Initialization. The uniform distribution expression (17) is introduced in the backtracking search algorithm to create the initial population P, in which Pi is the individual of the population P, N is the population size, and D is the dimension of the optimization problem, that is, the design parameter of the problem, i=1,2,3,…,N,j=1,2,3,…,D.(17)Pij~Ulowj,upj.(
2) Selection-I. As mentioned before, the search direction matrix is created by randomly choosing from the historical population which is memorized in the backtracking search algorithm. In selection-I, the historical population is initialized through formula (18), and then whether the historical population should be updated in accordance with the criterion (19) at the beginning of iteration is decided. Accordingly, the calculation efficiency is improved by means of the historical population recording and search direction navigating methods. Moreover, for the purpose of increasing the diversity of the individuals and avoiding premature convergence, the random permutations are made for some individuals while the historical population is determined.(18)oldPij~Ulowj,upj,(19)ifa<bthenoldP≔P∣a,b~U0,1.(
3) Mutation. During the producing of each generation of experimental population, (20) is utilized to mutate the population and develop the preliminary form of experiment population. F in (20) is the coefficient of amplitude control to command the range of search direction matrix information acquisition. Obviously, the experimental population created in this step acquires parts of the favorable information from the historical population. Therefore, it plays a significant role in increasing the search efficiency of optimal solution.(20)Mutant=P+F·oldP-P.(
4) Crossover. After the step of mutation, the experimental population undertook a crossover to get the ultimate form T of experimental population of this generation. Different with the traditional methods of crossover, a rather complicated nonuniform method is employed in this algorithm; the concrete operation is as follows: firstly, assign the mutated experimental populationMutantto the population T. Then generate a N×D binary integer matrix A. There are two preset ways randomly selected for the matrix generation, one is making use of the mix rate M, as presented in (21), and another is choosing an element stochastically to carry out the operation at one time, as (22). Eventually, conduct the crossover of experimental population according to the value of the elements in the binary integer matrix A. When the element in the binary integer matrix A is equal to 1, the elements in experimental population T are in line with the corresponding elements in population P. The variation rate of elements in population T and the individual value after crossover are controlled separately by the mix rate parameter M and boundary control mechanism.(21)Ai,u1:M·rnd·D=0∣u=permuting1,2,3,…,D,(22)Ai,randiD=0.(
5) Selection-II. The greedy choice strategy is introduced in this step to compare the fitness value of all the individuals in the experimental population T and the population P; then the individuals Ti with the larger fitness value in the experimental population T are assigned to Pi to accomplish the update. Subsequently, decide whether the best value of fitness Pbest in population P exceeds the global optimum value at present. If so, Pbest is taken as the new global optimum value. Repeat the steps mentioned above until the stop conditions are met.To sum up, the specific implementation procedures of backtracking search algorithm are induced as below.Step 1 (initialization).
Determine the input and output parameters, define the algorithmic function, randomly create the original populationP and oldP, and calculate the initial fitness value of population P.Step 2.
Repeat the following procedures.Step 3 (selection-I).
Develop the historical population.ifa<b∣a,b~U0,1thenoldP≔P.Step 4 (mutation).
Produce the preliminary experimental population.Mutant=P+F·oldP-P.Step 5 (crossover).
(a) Generate the binary integer matrixA.ifc<d∣c,d~U0,1thenAi,u1:M·rnd·D=0∣u =permuting1,2,3,…,DelseAi,randiD=0end if
(b) Develop the experimental populationT in accordance with the value of elements in matrix A.ifAij=1 then Tij≔PijStep 6.
WhenTij overflows the bound, adopt the boundary control mechanism to reassign.Tij=rnd·upj-lowj+lowjStep 7 (selection-II).
Greedily select the individuals with larger fitness value to form the populationP.Step 8.
When the best value of fitnessPbest in population P exceeds the current global optimum value; consider the Pbest as the new global optimum value. Output the optimal result.Step 9.
End the repeat while the stop conditions are satisfied.


## 4.2. The Improved Backtracking Search Algorithm

The original backtracking search algorithm can memorize the historical population and the search direction to enhance the calculation efficiency. Nonetheless, the search effect depends on the ability of acquiring the favorable information from the historical population to find a better solution. In consequence, with the purpose of further improving the search ability, enlightened by the particle swarm optimization algorithm, the selection step of backtracking search algorithm is modified. [47] Taking advantage of global optimum value information, the historical population developing formula (18) is replaced by the following equation:(23)oldPij=Pij+ϕijPij-Pkj+c1rand0,1Pjgbest-Pij+c2rand0,1Pjbest-Pij,where ϕij is the random real number ranging from −1 to 1 and follows the uniform distribution. Pjgbest is the jth element of global optimum value found at present. Pjbest is the jth element of optimum value obtained by the current iteration. c1 and c2 are two positive constants.Furthermore, to avoid falling into the local optimal solution and increasing the diversity of population, when the global optimum value cannot proceed to be optimized and the stop conditions are not satisfied, randomly create the populationP according to (24) and then mutate the ith solution of this population in accordance with (25) or (26) by using the global optimum value information. Finally, compare the fitness value of the ith solution in randomly created population, that is, Pirand and the fitness value of the ith solution in mutated population, that is, Pimutate; choose the one with larger fitness value as the new population.(24)Pijrand=Pjmin+rand0,1Pjmax-Pjmin.Whenrand(0,1)≤0.5,(25)Pijmutate=Pij+rand0,1×1-iteritermaxθ×Pjgbest-Pij.Whenrand(0,1)>0.5,(26)Pijmutate=Pij+rand0,1×1-iteritermaxθ×Pjbest-Pij,where θ is the scale parameter and the value is the positive integer commonly ranging from 2 to 5.Significantly, the backtracking search algorithm is the continuous intelligent optimization algorithm. It cannot be directly applied to the discrete gantry crane scheduling and storage space allocation problem in railway container terminal. Therefore, the permutation sequence approach is adopted in this paper to settle this problem. Through the permutation sequence approach, the structure of solution is recoded to denote the sequence of unloading tasks in container train. For example, Figure4 demonstrates the encoding approach for 6 tasks. Correspondingly for decoding, the unloading tasks are assigned to the earliest available gantry cranes and the appropriate storage spaces on the basis of the obtained sequence; the procedures are presented in Algorithm 1.Algorithm 1:The backtracking search algorithm calculation procedure.
Procedure: transform the tasks to the gantry crane schedule and storage space allocation
Inputs: n,g,M,tg0,lg0,to,δ //M is the total amount of storage spaces in main area, tg0 is the
earliest available time of gantry crane g,lg0 is the initial position of g  (denoted by the task
number), to is the traveling time of crane between the adjacent tasks, δ is the safety
distance required between the adjacent gantry cranes//
Output: Cmax //Cmax is the maximum completion time of all the unloading tasks of the container train//
begin
calculate cmax0 and sol0 //find a good initial solution//
let pop  ←  (popsize, dim, low, up) //dim=n//
let fitness  ←  (pop,n,g,bay,Oi,QCR,QCL,tij,QC_TS,pct)
set fitness(index) =  cmax0, pop(index,  :) = sol0 //using the initial solution to replace the worst
solution in the population//
set historical_pop = pop //historical_pop is swarm-memory of BSA//
while non_iter <= nonmax && epk <= epoch do //epoch is the maximum iteration counter//
if rand < rand,
historical_pop = pop;
end if
calculatehistorical_pop, F and map; //F is the scale factor//
if rand < rand,
for  i=1:popsize,
u = randperm(dim);
map(i,u(1:ceil(DIM_RATE∗rand∗dim))) = 1;
end for
else
for  i=1:popsize,
map(i, randi(dim)) = 1
end for
end if
//implement the SELECTION-I process//
offsprings = pop + (map.∗F). ∗(historical_pop-pop)
offsprings = BoundaryControl(offsprings, low, up) //implement the MUTATION and
CROSSOVER process//
calculate fitnessoffsprings;
ind = fitnessoffsprings < fitnesspop;
fitnesspop (ind) = fitnessoffsprings(ind);
pop(ind,  :) = offsprings(ind,  :);
[best, ind] = min(fitnesspop);
if best < globalminimum
globalminimum = best
globalminimizer = pop(ind,  :);
non_iter = 0;
else
non_iter = non_iter + 1;
end if
//implement the SELECTON-II process//
best_iter = [best_iter globalminimum];
epk = epk + 1;
end while
endFigure 4
Interpretation of the encoding scheme.The individual of population is denoted by the task numbers 1–6.The decoding procedures of above-mentioned algorithm are present as in Algorithm1.


## 5. Computational Experiments

The established mathematical model and the improved backtracking search algorithm are tested in this section by using three different cases which intend to settle the small size, the medium size, and the large size problems. Meanwhile, as the classical evolutionary and metaheuristic methods, the genetic algorithm (GA) and the artificial bee colony (ABC) are adopted to make the comparison. Subsequently, the results are analyzed comprehensively so as to obtain some significant conclusions. Each of the algorithms is run ten times for every case, and the reported results are the mean value of the ten calculations. The crossover and mutation probabilities of GA are ordered to be 0.4 and 0.1. All the computational procedures are implemented in MATLAB by the personal computer equipped Intel Core 2.4 GHz Processor and 2.0 GB RAM.


### 5.1. Instances Generation

For all the three cases, the storage mode in the main area is along with the railway track. The ratio between the containers unloaded to the main area and the containers transferred to the assistant area by the inner trucks is set as 8 : 2. The initial position of the gantry cranes is randomly selected in[1,n]. The traveling time of crane between the adjacent tasks to is set to 7.2 s. The safety distance required between the adjacent gantry cranes δ is set to 1. Let the stop position factor α be 0.2. The traveling speed of the trolley of gantry crane vt is 0.5 m/s; the drop speed of gantry crane with heavy load vd is 0.2 m/s; the horizontal traveling time of the trolley of gantry crane to the inner truck th is 24 s, and the tim and tki are 97 s and 137 s, respectively. By convention, three layers of each storage space are arranged in the main area, and the drop distances of the gantry crane with the heavy load (dc) to the first, second, and third layers are 8.8 m, 6.3 m, and 3.8 m separately. Assume there are 52 storage spaces available at present, and the distance between the central axis of railway track and the mth storage space (dim) is revealed in Table 1. Besides, the constants c1 and c2 in the backtracking search algorithm are all 1.5, and θ is set as 4.Table 1
The distance between the central axis of railway track and the storage space.
Number of the locations
Distance (m)
1
16.27
2
19.00
3
25.10
4
27.82
5
6.47
6
19.00
7
8.91
8
16.27
9
37.92
10
19.00
11
25.10
12
16.27
13
6.47
14
8.91
15
35.18
16
19.00
17
25.10
18
37.92
19
27.82
20
6.47
21
16.27
22
35.18
23
6.47
24
19.00
25
27.82
26
8.91
27
25.10
28
6.47
29
16.27
30
27.82
31
8.91
32
19.00
33
8.91
34
16.27
35
37.92
36
25.10
37
27.82
38
37.92
39
25.10
40
19.00
41
27.82
42
8.91
43
16.27
44
25.10
45
6.47
46
8.91
47
19.00
48
37.92
49
27.82
50
16.27
51
37.92
52
6.47Furthermore, the small size tests are conducted with the number of tasks ranging from 6 to 12, and the number of gantry cranes is 2 to 3. Similarly, as the medium size cases, all the combinations ofn={15,16,17,18,19,20} and g={2,3,4} are tested. For the large size problems, the number of tasks is chosen from {26,27,28,29,30,40,50}, and the number of gantry cranes is selected from {2,3,4}.


### 5.2. Results and Discussion

The computational results of the small size cases are provided in Table2. As predicted, the runtime presents an increasing trend. However, all the optimal solutions of these cases can be acquired within 2 seconds by using the improved backtracking search algorithm. Comparatively, the runtime of GA and ABC is less than BSA, but some of the cases cannot be solved optimally by these two algorithms.Table 2
Results of the random small size cases.
Number of the cases
Size (n×g)
GA
ABC
BSA
Value
Run time (s)
Value
Run time (s)
Value
Run time (s)
1
6
×
2
129
0.15
128
0.23
128
0.33
2
6
×
3
106
0.19
106
0.30
106
0.46
3
7
×
2
159
0.20
159
0.31
157
0.47
4
7
×
3
121
0.26
121
0.46
121
0.51
5
8
×
2
193
0.26
193
0.41
193
0.49
6
8
×
3
143
0.29
143
0.62
143
0.74
7
9
×
2
221
0.28
216
0.54
214
0.69
8
9
×
3
163
0.33
162
0.80
162
0.97
9
10
×
2
236
0.31
236
0.71
234
0.78
10
10
×
3
178
0.47
178
1.09
178
1.26
11
11
×
2
255
0.45
255
0.96
255
1.03
12
11
×
3
192
0.58
192
1.37
190
1.58
13
12
×
2
279
0.49
278
1.16
278
1.27
14
12
×
3
233
0.70
233
1.85
233
1.95
Average
186.29
0.35
185.71
0.77
185.14
0.90It can be seen from the outcomes in Table3 that the runtime of these three algorithms grows a lot when solving the medium size cases. Obviously, the performance of BSA is superior to GA and ABC for the medium size problems; even the runtime of BSA is 6.99 seconds which is a little longer than GA and ABC. In addition, when the number of gantry cranes increased, the performance of BSA is influenced to a certain extent. The reason is that, with the increasing of gantry cranes, the effect of interference related constraints becomes more prominent when the algorithm searches for the optimal solution. Therefore, to avert the local optimum, the runtime of BSA gets longer.Table 3
Results of the random medium size cases.
Number of the cases
Size (n×g)
GA
ABC
BSA
Value
Run time (s)
Value
Run time (s)
Value
Run time (s)
1
15
×
2
350
2.25
347
2.83
343
4.47
2
15
×
3
241
2.59
238
3.64
234
5.26
3
15
×
4
247
2.93
236
4.41
229
6.13
4
16
×
2
372
2.41
367
2.97
364
4.95
5
16
×
3
265
2.78
263
4.12
263
5.61
6
16
×
4
244
3.26
239
5.65
230
7.02
7
17
×
2
381
2.57
381
3.36
381
5.19
8
17
×
3
289
3.04
280
4.98
274
6.04
9
17
×
4
243
3.63
236
6.34
232
7.78
10
18
×
2
411
2.76
404
4.02
401
5.50
11
18
×
3
298
3.37
291
5.96
285
7.06
12
18
×
4
247
4.01
243
7.82
239
8.93
13
19
×
2
439
2.98
428
5.03
426
6.47
14
19
×
3
305
3.69
297
6.74
293
7.91
15
19
×
4
254
4.47
248
9.71
243
10.42
16
20
×
2
483
3.26
472
5.83
467
7.03
17
20
×
3
336
4.05
329
7.85
326
8.86
18
20
×
4
257
4.88
253
10.17
249
11.20
Average
314.56
3.27
308.44
5.64
304.39
6.99Table4 gives the optimal solutions and the corresponding runtime of GA, ABC, and BSA for the large size cases. For tests 13 to 21, the runtime of all the algorithms has a sharp rise. Particularly, with regard to the case with n=50 and g=4, the runtime of BSA is up to 204.10 seconds. Nevertheless, the effectiveness of BSA is much more visible when working out the large size problems within an acceptable runtime horizon. The average value of BSA is 548.24 while GA is 569.24 and ABC is 555.71.Table 4
Results of the random large size cases.
Number of the cases
Size (n×g)
GA
ABC
BSA
Value
Run time (s)
Value
Run time (s)
Value
Run time (s)
1
26
×
2
598
5.04
594
16.20
585
18.35
2
26
×
3
427
6.32
416
18.34
409
22.67
3
26
×
4
320
7.18
307
26.56
298
32.86
4
27
×
2
635
5.47
629
17.19
626
20.28
5
27
×
3
431
7.95
428
19.46
417
25.61
6
27
×
4
350
8.60
335
29.37
322
38.01
7
28
×
2
672
5.71
661
18.01
655
22.34
8
28
×
3
464
9.69
449
20.82
445
28.02
9
28
×
4
355
10.94
342
31.49
334
40.37
10
29
×
2
684
6.02
673
18.93
668
23.73
11
29
×
3
459
11.22
450
25.51
450
30.76
12
29
×
4
366
13.33
347
32.64
342
41.93
13
30
×
2
712
6.37
706
19.98
705
26.31
14
30
×
3
501
12.36
482
26.15
478
32.74
15
30
×
4
378
15.40
371
34.88
362
44.23
16
40
×
2
921
21.76
903
52.75
895
63.64
17
40
×
3
637
34.68
614
60.34
602
78.85
18
40
×
4
423
42.15
412
87.23
406
91.67
19
50
×
2
1206
36.47
1165
113.24
1146
102.88
20
50
×
3
797
63.19
784
129.95
773
151.36
21
50
×
4
618
81.23
602
162.67
595
204.10
Average
569.24
19.58
555.71
45.80
548.24
54.32From small size, medium size, and large size tests in Tables2, 3, and 4, the proposed BSA is proved to be a prominent algorithm to solve the gantry crane scheduling and storage space allocation problem in railway container terminal. In the meantime, some features of BSA also can be obtained during the computation: (1) owing to the characteristics of the problem, the number of gantry cranes has some influence on the performance of BSA. (2) The historical population developing method together with the population creation and mutation strategy is redesigned; thus, the devised BSA takes more time to implement the calculation compared with GA and ABC.


## 5.1. Instances Generation

For all the three cases, the storage mode in the main area is along with the railway track. The ratio between the containers unloaded to the main area and the containers transferred to the assistant area by the inner trucks is set as 8 : 2. The initial position of the gantry cranes is randomly selected in[1,n]. The traveling time of crane between the adjacent tasks to is set to 7.2 s. The safety distance required between the adjacent gantry cranes δ is set to 1. Let the stop position factor α be 0.2. The traveling speed of the trolley of gantry crane vt is 0.5 m/s; the drop speed of gantry crane with heavy load vd is 0.2 m/s; the horizontal traveling time of the trolley of gantry crane to the inner truck th is 24 s, and the tim and tki are 97 s and 137 s, respectively. By convention, three layers of each storage space are arranged in the main area, and the drop distances of the gantry crane with the heavy load (dc) to the first, second, and third layers are 8.8 m, 6.3 m, and 3.8 m separately. Assume there are 52 storage spaces available at present, and the distance between the central axis of railway track and the mth storage space (dim) is revealed in Table 1. Besides, the constants c1 and c2 in the backtracking search algorithm are all 1.5, and θ is set as 4.Table 1
The distance between the central axis of railway track and the storage space.
Number of the locations
Distance (m)
1
16.27
2
19.00
3
25.10
4
27.82
5
6.47
6
19.00
7
8.91
8
16.27
9
37.92
10
19.00
11
25.10
12
16.27
13
6.47
14
8.91
15
35.18
16
19.00
17
25.10
18
37.92
19
27.82
20
6.47
21
16.27
22
35.18
23
6.47
24
19.00
25
27.82
26
8.91
27
25.10
28
6.47
29
16.27
30
27.82
31
8.91
32
19.00
33
8.91
34
16.27
35
37.92
36
25.10
37
27.82
38
37.92
39
25.10
40
19.00
41
27.82
42
8.91
43
16.27
44
25.10
45
6.47
46
8.91
47
19.00
48
37.92
49
27.82
50
16.27
51
37.92
52
6.47Furthermore, the small size tests are conducted with the number of tasks ranging from 6 to 12, and the number of gantry cranes is 2 to 3. Similarly, as the medium size cases, all the combinations ofn={15,16,17,18,19,20} and g={2,3,4} are tested. For the large size problems, the number of tasks is chosen from {26,27,28,29,30,40,50}, and the number of gantry cranes is selected from {2,3,4}.


## 5.2. Results and Discussion

The computational results of the small size cases are provided in Table2. As predicted, the runtime presents an increasing trend. However, all the optimal solutions of these cases can be acquired within 2 seconds by using the improved backtracking search algorithm. Comparatively, the runtime of GA and ABC is less than BSA, but some of the cases cannot be solved optimally by these two algorithms.Table 2
Results of the random small size cases.
Number of the cases
Size (n×g)
GA
ABC
BSA
Value
Run time (s)
Value
Run time (s)
Value
Run time (s)
1
6
×
2
129
0.15
128
0.23
128
0.33
2
6
×
3
106
0.19
106
0.30
106
0.46
3
7
×
2
159
0.20
159
0.31
157
0.47
4
7
×
3
121
0.26
121
0.46
121
0.51
5
8
×
2
193
0.26
193
0.41
193
0.49
6
8
×
3
143
0.29
143
0.62
143
0.74
7
9
×
2
221
0.28
216
0.54
214
0.69
8
9
×
3
163
0.33
162
0.80
162
0.97
9
10
×
2
236
0.31
236
0.71
234
0.78
10
10
×
3
178
0.47
178
1.09
178
1.26
11
11
×
2
255
0.45
255
0.96
255
1.03
12
11
×
3
192
0.58
192
1.37
190
1.58
13
12
×
2
279
0.49
278
1.16
278
1.27
14
12
×
3
233
0.70
233
1.85
233
1.95
Average
186.29
0.35
185.71
0.77
185.14
0.90It can be seen from the outcomes in Table3 that the runtime of these three algorithms grows a lot when solving the medium size cases. Obviously, the performance of BSA is superior to GA and ABC for the medium size problems; even the runtime of BSA is 6.99 seconds which is a little longer than GA and ABC. In addition, when the number of gantry cranes increased, the performance of BSA is influenced to a certain extent. The reason is that, with the increasing of gantry cranes, the effect of interference related constraints becomes more prominent when the algorithm searches for the optimal solution. Therefore, to avert the local optimum, the runtime of BSA gets longer.Table 3
Results of the random medium size cases.
Number of the cases
Size (n×g)
GA
ABC
BSA
Value
Run time (s)
Value
Run time (s)
Value
Run time (s)
1
15
×
2
350
2.25
347
2.83
343
4.47
2
15
×
3
241
2.59
238
3.64
234
5.26
3
15
×
4
247
2.93
236
4.41
229
6.13
4
16
×
2
372
2.41
367
2.97
364
4.95
5
16
×
3
265
2.78
263
4.12
263
5.61
6
16
×
4
244
3.26
239
5.65
230
7.02
7
17
×
2
381
2.57
381
3.36
381
5.19
8
17
×
3
289
3.04
280
4.98
274
6.04
9
17
×
4
243
3.63
236
6.34
232
7.78
10
18
×
2
411
2.76
404
4.02
401
5.50
11
18
×
3
298
3.37
291
5.96
285
7.06
12
18
×
4
247
4.01
243
7.82
239
8.93
13
19
×
2
439
2.98
428
5.03
426
6.47
14
19
×
3
305
3.69
297
6.74
293
7.91
15
19
×
4
254
4.47
248
9.71
243
10.42
16
20
×
2
483
3.26
472
5.83
467
7.03
17
20
×
3
336
4.05
329
7.85
326
8.86
18
20
×
4
257
4.88
253
10.17
249
11.20
Average
314.56
3.27
308.44
5.64
304.39
6.99Table4 gives the optimal solutions and the corresponding runtime of GA, ABC, and BSA for the large size cases. For tests 13 to 21, the runtime of all the algorithms has a sharp rise. Particularly, with regard to the case with n=50 and g=4, the runtime of BSA is up to 204.10 seconds. Nevertheless, the effectiveness of BSA is much more visible when working out the large size problems within an acceptable runtime horizon. The average value of BSA is 548.24 while GA is 569.24 and ABC is 555.71.Table 4
Results of the random large size cases.
Number of the cases
Size (n×g)
GA
ABC
BSA
Value
Run time (s)
Value
Run time (s)
Value
Run time (s)
1
26
×
2
598
5.04
594
16.20
585
18.35
2
26
×
3
427
6.32
416
18.34
409
22.67
3
26
×
4
320
7.18
307
26.56
298
32.86
4
27
×
2
635
5.47
629
17.19
626
20.28
5
27
×
3
431
7.95
428
19.46
417
25.61
6
27
×
4
350
8.60
335
29.37
322
38.01
7
28
×
2
672
5.71
661
18.01
655
22.34
8
28
×
3
464
9.69
449
20.82
445
28.02
9
28
×
4
355
10.94
342
31.49
334
40.37
10
29
×
2
684
6.02
673
18.93
668
23.73
11
29
×
3
459
11.22
450
25.51
450
30.76
12
29
×
4
366
13.33
347
32.64
342
41.93
13
30
×
2
712
6.37
706
19.98
705
26.31
14
30
×
3
501
12.36
482
26.15
478
32.74
15
30
×
4
378
15.40
371
34.88
362
44.23
16
40
×
2
921
21.76
903
52.75
895
63.64
17
40
×
3
637
34.68
614
60.34
602
78.85
18
40
×
4
423
42.15
412
87.23
406
91.67
19
50
×
2
1206
36.47
1165
113.24
1146
102.88
20
50
×
3
797
63.19
784
129.95
773
151.36
21
50
×
4
618
81.23
602
162.67
595
204.10
Average
569.24
19.58
555.71
45.80
548.24
54.32From small size, medium size, and large size tests in Tables2, 3, and 4, the proposed BSA is proved to be a prominent algorithm to solve the gantry crane scheduling and storage space allocation problem in railway container terminal. In the meantime, some features of BSA also can be obtained during the computation: (1) owing to the characteristics of the problem, the number of gantry cranes has some influence on the performance of BSA. (2) The historical population developing method together with the population creation and mutation strategy is redesigned; thus, the devised BSA takes more time to implement the calculation compared with GA and ABC.


## 6. Conclusion

This paper contributes to research the gantry crane scheduling and storage space allocation problem in railway container terminal through providing a mathematical model. The stop position of railway train, the handling procedures, noncrossing requirement, the safety distance of gantry cranes, and the storage modes in the main area were comprehensively considered in the established model. Moreover, to be more in line with the practice, the completion time of a task contains both the operation time and the traveling time of gantry crane. Then a novel metaheuristic backtracking search algorithm (BSA) was proposed to find the optimal solution. To achieve the goals of improving the search ability, avoiding falling into the local optimal solution and increasing the diversity of population, the historical population developing method, the population creation technique, and the mutation strategy of BSA were improved. Eventually, the computational experiment was conducted to assess the performance of the devised algorithm. It turned out that the proposed BSA is effective in solving the gantry crane scheduling and storage space allocation model and can acquire the approximate optimal solution within an acceptable time. Meanwhile, compared with GA and ABC, the BSA algorithm is more competitive when solving the medium and large size problems.Furthermore, there are some related works that can be done for the following research. For example, take the railway container terminal as a whole, combine the front operation region to the back yard, and integrate truck scheduling into the gantry crane scheduling and storage space allocation problem.



---

*Source: 9025482-2017-11-20.xml*