Computers & Industrial Engineering 83 (2015) 316–326
Contents lists available at ScienceDirect
Computers & Industrial Engineering journal homepage: www.elsevier.com/locate/caie
Optimization for two-stage double-cycle operations in container terminals q Rui Zhang, Zhihong Jin ⇑, Yu Ma, Weixin Luan College of Transportation Management, Dalian Maritime University, Dalian 116026, China
a r t i c l e
i n f o
Article history: Received 10 June 2014 Received in revised form 17 November 2014 Accepted 16 February 2015 Available online 25 February 2015 Keywords: Scheduling Bi-level genetic algorithms Double cycling Lower bound Container terminal
a b s t r a c t The loading of ships while they are unloaded (double cycling) can significantly improve the efficiency of container terminal handling operations. This paper formulated a mixed integer programming model for two-stage double-cycle operation. The quay crane operating time is reduced by optimizing the loading and unloading sequence for the hatches and stacks in each ship-bay. Meanwhile, optimizing the stowage plan of outbound containers in container yards reduces yard crane operating time. A bi-level genetic algorithm was proposed to solve this model, and a lower bound was derived to evaluate the scheduling performance. The numerical experiments indicated that the model and algorithm presented in this paper are effective compared with the lower bound, the currently used method and the method raised in previous studies. Ó 2015 Elsevier Ltd. All rights reserved.
1. Introduction Container trade worldwide has grown rapidly during the last decade, and this growth is expected to continue. This significant container volume growth requires additional handling capacity in container terminals. Throughput and ship turnaround time are the typical measurements of the efficiency of a port, and high turnaround time entails unacceptable costs. Thus, improving the efficiency of container terminals has become an important and immediate challenge for port managers. In most container terminals, three main types of equipment are involved in the operating process: Quay Crane (QC), Yard Crane (YC), and Yard Truck (YT), as shown in Fig. 1. For a typical inbound container discharging operation, a QC picks up the target container from the vessel and loads it onto a YT waiting at the apron. The YT then transports the target container to a container yard. A YC loads the container onto a desired block. The loading operation for outbound containers works in the opposite flow direction. With the limitations of existing equipment, a good scheduling method can improve container handling efficiency, thus reducing ship turnaround time. Untill now, most container terminals still adopt traditional single-cycle method, where all relevant containers are unloaded before any are loaded, the QC carries only one container in a cycle q
This manuscript was processed by Area Editor Qiuhong Zhao.
⇑ Corresponding author. Tel.: +86 411 8472 9563/4090. E-mail address:
[email protected] (Z. Jin). http://dx.doi.org/10.1016/j.cie.2015.02.007 0360-8352/Ó 2015 Elsevier Ltd. All rights reserved.
(a complete round-trip of the crane trolley from the apron to the ship and back, or from the ship to the apron and back) which means that half of the operating cycle is empty, as shown in Fig. 1. Yet double cycling enables the crane to load and discharge containers simultaneously, by converting empty moves into productive ones, the number of containers handled in one cycle doubles, which can at least reduce QC operating time by 10% (Goodchild & Daganzo, 2007). However, due to the lack of efficient equipment scheduling method on the land side, this new method has not been put into use extensively. This provoked us to conduct this research: to provide an efficient scheduling method for double cycling on land side. Problems associated with equipment handling in container terminals have been extensively studied in the past few years. Daganzo (1989) was the first to study the static and dynamic QC scheduling problem and provided an effective algorithm to determine the number of cranes assigned to the ship-bays. Peterkofsky and Daganzo (1990) presented a branch-and-bound (B&B) method to accelerate loading and unloading for QC. Kim and Park (2004) proposed a B&B method to obtain the optimal solution to the QC scheduling and developed a heuristic search algorithm called GRASP to overcome the computational difficulty of the B&B method. Chen, Bostel, Dejax, Cai, and Xi (2007) formulated the container terminal equipment handling problem as a hybrid flow shop scheduling problem with precedence and blocking constraints (HFSS-B) and proposed a tabu search algorithm to solve it. Yang, Wang, and Li (2012) addressed an effective approach to solve the issue of berth allocation and quay crane assignment in
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326
317
Fig. 1. Illustration of loading and unloading operation in container terminal.
a multi-user container terminal. Skinner et al. (2013) presented a genetic algorithm (GA) based optimization approach to improve container handling operations at the Patrick AutoStrad container terminal. Few existing studies focus on the double-cycle operation. Goodchild (2005), Goodchild and Daganzo (2006), Goodchild and Daganzo (2007) first described the double-cycle problem and presented solution algorithms and simple formulas to determine reductions in the number of operations and operating time. They also quantified the key operational benefits of double cycling and analyzed the effect of double-cycle operations on the land side. Their suggestions provided port managers with insights into port resource and management requirements for implementing double cycling. Zhang and Kim (2009) expanded the study of Goodchild and Daganzo (2006) by considering two types of sequencing, namely, hatch sequencing and stack sequencing, and devised a hybrid heuristic approach to solve the problem. Zeng, Yang and Lu (2010) and Zhang, Jin, Xing and Shao (2014) considered YC operation for integrated loading and unloading operations in same ship-bay, however, they have ignored the ship arriving sequence and ship stability problem in their study. This study extended the research on double cycling by Goodchild and Daganzo (2006) and Zhang and Kim (2009). We focused on the minimization of operation time for QC and YC. A bi-level GA is proposed to solve the model, such that we can obtain the optimal operating sequence for the hatches and stacks in each bay in the upper level. In the lower level, the optimal stowage plan of outbound containers which meets with the requirements of ship arriving sequence and ship stability was determined based on the precedence relations of container operating tasks derived from the upper level, operation time of YC was calculated and results was returned to the upper level GA (The ship stability is evaluated at the bay level, as the ballast water can help to adjust the ship stability at every loading and unloading step in practice). In this way, the scheduling plan was optimized by the feedback between the upper and lower level GA. Compared with the lower bound derived in this paper, the currently used method and the method proposed in previous studies, the method and algorithm proposed in this study showed considerable effectiveness and practicability.
The remainder of this paper is organized as follows: Section 2 proposes the assumptions for the mathematical formulation and defines the two-stage double-cycle scheduling problem. Section 3 provides a mathematical formulation for the two-stage doublecycle scheduling problem. Section 4 proposes a bi-level GA to solve the mathematical formulation. A lower bound is developed in Section 5. In Section 6, we collect eight sets of data from Dalian port to validate the proposed approach and then discuss the results of the numerical experiment. Section 7 provides some conclusions. 2. Problem description When adopting the double-cycle method, QC first discharges all the inbound containers from one stack. While loading the outbound containers to this stack, the QC begins to discharge the inbound containers from the second stack. The YTs transport containers between the apron and the container yard. All the inbound and outbound containers are stockpiled in the container yard. The YC discharges or loads the target containers from the YT, and some rehandles are performed while loading outbound containers to the YT. In the previous studies of Goodchild and Daganzo (2006) and Zhang and Kim (2009), QC is considered to be the operational bottleneck among all port handling equipment. All YTs and YCs are scheduled to improve the operating efficiency of QC. However, in practice, the lack of cooperation between the QC and YC cause some unnecessary rehandles of YC to occur to improve the operating efficiency of QC, thus causing high rehandle fees for YC and, even worse, making the QC wait for the outbound containers after completing the inbound container discharging task. The lack of cooperation can significantly reduce the efficiency of the QC, and more rehandles will cause the terminal operation cost to increase. To improve the operation efficiency of a container terminal, this study minimizes the QC and YC operation times by sequencing the hatch and stacks in each bay and optimizing the stowage plan for the outbound containers. In this study, we assume that the YT is not the bottleneck in the whole handling system. The integrated throughput rate of QC and YC can determine the throughput rate of the integrated handling system consisting of QC, YT, and YC.
318
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326
Fig. 2. Illustration of QC double-cycle operation.
Table 1 Sequence for hatches and stacks. Index of hatches
Operating sequence
Index of stacks
No. of containers to unload
No. of containers to load
Unloading sequence of stacks
Loading sequence of stacks
1
2
1 2 3 4 5 6
5 4 5 2 3 4
3 0 5 3 3 5
1 2 3 4 5 6
6 5 4 1 2 3
2
3
1 2 3 4 5 6
2 5 4 2 2 5
4 4 3 2 2 3
1 2 3 4 5 6
6 5 4 1 2 3
3
1
1 2 3 4 5 6
4 3 2 5 4 4
4 3 5 3 3 4
1 2 3 5 6 4
6 5 4 2 3 1
Fig. 3. Traditional operating sequence for QC.
Fig. 4. Comparison of two kinds of quay crane operating sequence.
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326
319
Fig. 7. YC operation process. Fig. 5. Rehandling in container yard.
2.1. QC operation description Container ships always have two or three hatch covers, which can separate the ship into two parts: above the deck and in the hold. The large steel plate brings some precedence constraints for different QC tasks: (1) all the inbound containers above deck should be discharged before the in-hold tasks begin; and (2) all the in-hold tasks should be completed before loading the abovedeck containers. A simple example is presented to illustrate the double-cycle operations for the QC. As shown in Fig. 2, the QC is supposed to handle a container ship bay with three hatch covers and 18 stacks. The traditional operating sequence for QC is from the land side to the sea side, and we suppose that hatch 1 is closer to the land side. The operating sequence before optimization for QC is hatch 1–2–3, stack 1–2–3–4–5–6 in each hatch. To describe in detail: in hatch 1, discharging containers in stack 1–2-3 ! removing the hatch cover ! proceeding double cycling for stacks below hatch ! while loading the stack 6 in hatch 1, we can begin the discharging operation in stacks above hatch 2 ! after the completion of the loading operation in stack 6, loading the hatch cover 1 on the ship ! proceeding to double cycling for loading operation in stacks above hatch 1, and all the discharging operation above hatch 2 and part of the discharging operation below hatch 2. Because of the precedence constraints caused by hatch covers, we will observe QC idle time in the operation process. Table 1 describes the number of containers to load and unload from a certain bay in ship, and also the QC operating sequence after optimization. Fig. 3 tells us the QC operation conditions for each hatch in traditional operating sequence. From Fig. 3 and Table 1, we can see that, for hatch 1 stack 5 and 6, there are 3 and 4 containers to unload respectively; for stack 4 and 5, there are 3 and 3 containers to load accordingly. The unloading and loading containers in stack 5 and stack 4 can be paired perfectly. However, after unloading 3 containers in stack 6 and loading 3 containers in stack 5, there is 1 unpaired unloading container in stack 6. Thus after unloading this container from stack 6, QC will make
an empty movement from ship to apron, this is the idle time for QC, which we aim to minimize. We can see from Fig. 4, the cycles needed to complete all the tasks for the traditional working sequence are 81 in total. After a modification of the working sequence as shown in Table 1, the cycles needed are 79 as shown in Fig. 4(b), and QC efficiency is improved. 2.2. YC operation description In the previous QC section, the operating sequence for each stack and hatch is determined, in this section we should optimize stowage plan to minimize YC rehandle time, by appointing each export container to different slot on ship. To handle an outbound container, YC needs to load a container to YT, YT transports it to QC, and QC loads it to the ship. Some inevitable rehandles will occur for YC while accessing the target container. In this paper, we always assume that all the containers above the target container must be moved to the next stack. After the target container is loaded to YT, these containers will be placed back in the original stack. As shown in Fig. 5, to access container B in stack 3, container A should be first moved to stack 4, as shown in Fig. 5(a). After container B is loaded to YT, container A will be placed back to stack 3, as shown in Fig. 5(b). We present a simple example to illustrate the way we count rehandles. As shown in Fig. 6, we assigned each outbound container to a different slot on the ship. If the handling sequence is determined by Table 1, the loading sequence in Fig. 6(a) is (3, 6, 2)–(3, 5, 4)–(1, 4, 6)–(1, 4, 5), and the rehandle number will be 4 þ 3 þ 2 þ 1 ¼ 10. If we optimize the stowage plan, the sequence in which YC retrieves these containers will be (1, 4, 6)–(1, 4, 4)– (2, 5, 3)–(2, 6, 2), and the corresponding rehandle number will be 1 þ 1 þ 1 þ 1 ¼ 4. An optimized stowage plan can reduce the rehandles, such that YC efficiency is improved. Noted that this is an extreme example, the optimization for stowage plan computed in the following model will also take arriving sequence and ship stability into consideration. The way we count YC rehandling time is as follows. As shown in Fig. 7, T a is the YC trolley alignment time (time needed for the
Fig. 6. Comparison of two kinds of stowage plan.
320
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326
trolley to take aim at the target container and lock it or take aim at the target place and unlock the container); T m is YT trolley moving time. The storage status in yard is known, thus the number of containers stacked above target container ðpc Þ is known. The time needed to handle container c ðtc Þ can be expressed as: tc ¼ pc ð4T a þ 2T m Þ þ 2T a þ T m . 3. Mathematical formulation 3.1. QC stage We introduce the following notation to formulate the QC scheduling problem: h i; j H Sh K ui li hi u
Sl
index of hatches index of stacks set of hatches set of stacks for hatch h total number of containers to load total number of containers to unload number of containers to unload from stack i the number of containers to load into stack i. number of containers to unload below hatch h in stack i number of containers to unload above hatch h in stack i number of containers to load below hatch h in stack i number of containers to load above hatch h in stack i number of containers to unload below hatch h number of containers to unload above hatch h number of containers to load below hatch h number of containers to load above hatch h set of stacks which need to be unloaded set of stacks which need to be loaded
Suh
set of stacks which need to be unloaded below hatch h
Slh Suh
set of stacks which need to be loaded below hatch h
uhi l hi lhi h u uh l h lh Su
Slh C ui C li C uh C lh C uh C lh N t1 T1 T2 T E
set of stacks which need to be unloaded above hatch h set of stacks which need to be loaded above hatch h total cycle number when the unloading task from stack iis completed total cycle number when the loading task from stack i is completed total cycle number when the unloading task from the hold of hatch h is completed total cycle number when the loading task into the hold of hatch h is completed total cycle number when the unloading task above hatch h is completed total cycle number when the loading task onto hatch h is completed number of cycles needed to complete all QC tasks average time needed to complete one cycle time needed to complete all QC tasks time needed to complete all YC tasks (obtained from YC stage model) minimum time needed to complete all QC and YC tasks arbitrary large number
Decision variables: U ij : 1, if j 2 Su is unloaded immediately after i 2 Su ; 0, otherwise Lij : 1, if j 2 Sl is loaded immediately after i 2 Sl ; 0, otherwise
The mathematical model for QC stage is written as follows:
T ¼ MinðT 1 þ T 2 Þ;
ð1Þ
s.t.
N P max C uh ; C lh ; C uh ; C lh ; 8h 2 H;
ð2Þ
C uh P C ui ; 8i 2 Suh ; 8h 2 H;
ð3Þ
C lh P C li ; 8i 2 Slh ; 8h 2 H;
ð4Þ
C uh C lh
P
C ui ;
P
C li ;
8i 2
Suh ;
8h 2 H;
ð5Þ
8i 2
Slh ;
8h 2 H;
ð6Þ
C ui C uh P ui ; 8i 2 Suh ; 8h 2 H;
ð7Þ
C li
ð8Þ
C lh
P l i ; 8i 2
Suh ;
8h 2 H;
C li C ui P li ; 8i 2 Su \ Sl ; 8h 2 H; C uj
C lj
C ui
ð9Þ u
þ Eð1 U ij Þ P uj ; 8i; j 2 S ; 8h 2 H;
C li
l
þ Eð1 Lij Þ P lj ; 8i; j 2 S ; 8h 2 H; X U ij 6 1; 8j 2 Su ;
ð10Þ ð11Þ ð12Þ
i2Su
X U ji 6 1; ; 8j 2 Su ;
ð13Þ
i2Su
X Lij 6 1; 8j 2 Sl ;
ð14Þ
i2Sl
X Lji 6 1; 8j 2 Sl ;
ð15Þ
i2Sl
T 1 ¼ Nt 1 ;
ð16Þ
U ij ; Lij 2 f0; 1g; 8i; j 2 Sh :
ð17Þ
In the objective function (1), the total completion time for QC and YC is minimized. Constraint (2) gives the definition of N, which is the total cycles needed for the QC tasks. Constraints (3)–(6) define the unloading or loading completion time for each hatch. Constraints (7) and (8) ensure the operation precedence constraints, which means that all unloading tasks in the hold cannot begin until all the unloading tasks above the deck of the same hatch are completed, and all the loading tasks above deck cannot begin until the loading tasks in the hold of the same hatch are completed. Constraint (9) ensures that all the loading activities in a stack cannot begin until all the unloading tasks in the same stack are finished. Constraints (10) and (11) describe the decision variables U ij and Lij . Constraints (12)–(15) ensure that every loading and unloading task has, at most, one predecessor and successor. Constraint (16) defines the completion time for QC. Constraint (17) specifies the binary property for the decision variables U ij and Lij . 3.2. YC stage The following notation is used to formulate the optimization problem for stowage plan of outbound containers: c; c0 C xc ; yc ; zc s
index of outbound containers set of outbound containers outbound container stowage position in yard, which is bay xc , row yc , tier zc slot number on ship, can be designated by hatch X s , stack Y s , tier Z s
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326
Wc Dc
weight for container c destination port No. of container c, we number the destination port by the position relative to the loading port tc starting time for handling container c pctc number of containers stacked above container c at tc G minimum height constraint of gravity center B minimum for balance coefficient Decision variables: wcs : 1, if container c is assigned to position s on ship; 0, otherwise. v cc0 : 1, if container c is loaded before container c0 ; 0, otherwise.
The YC scheduling problem can be formulated as follows:
T 2 ¼ Mint;
ð18Þ
s.t.
X wcs ¼ 1; 8s 2 S;
ð19Þ
c2C
X wcs ¼ 1; 8c 2 C;
ð20Þ
s2S
t c0 t c þ Eð1 v cc0 Þ P 0; 8c; c0 2 C;
ð21Þ
Dc Dc0 þ Eð1 v cc0 Þ þ EjX c X c0 j þ EjY c Y c0 j P 0; 8c; c 2 C
ð22Þ
1 1 þ pc0 tc 1 ; pc0 tc0 ¼ pc0 tc 1 A e eA
ð23Þ
0
A ¼ jv cc0 1j þ jxc xc0 j þ jyc yc0 j þ bepctc pc0 tc c; 8c; c0 2 C P
P w W Z Pc2C cs c s 6 G; c2C W c P P w W Y s2S Pc2C cs c s 6 B; c2C W c s2S
t c ¼ pc ð4T a þ 2T m Þ þ 2T a þ T m X t¼ tc
ð24Þ ð25Þ
v cc
0
2 f0; 1g; 8c; c0 2 C; 8s 2 S:
the optimal stowage plan based on the previous level. The overall frame for the proposed bi-level GA is shown in Fig. 8. 4.1. Chromosome representation For the upper level, we adopted the two-dimension decimal encoding scheme. Every chromosome is represented by an Hð1 þ SÞ matrix, whereH is the sum of hatches in every ship bay, of which H1; H2 and H3 represent hatches 1, 2 and 3, respectively; and S denotes the sum of stack numbers in 3 parts, which are the unloading stacks above the hatch, the stacks under the hatch, and the loading stacks above the hatch respectively. The first gene in every column of the chromosome stands for the operation sequence for that hatch, the following genes in the column represent the handling sequence for the stacks of that hatch, and the loading sequence for the stacks above hatch is equal to the coding number of the gene minus the sum of the stack number above and below the hatch. As shown in Fig. 9(a), this chromosome indicates that in a ship bay with three hatch covers ðH ¼ 3Þ, three stacks above every hatch, and three stacks below every hatch ðS ¼ 3 þ 3 þ 3Þ, the hatch handling sequence is H1 H2 H3, and the stack operation sequence of H1 is unloading stack {1–2–3} above hatch, simultaneously unloading and loading stack {5–4–6}, loading stack {3–2–1} below hatch ð9 6 ¼ 3; 8 6 ¼ 2; 7 6 ¼ 1Þ. For the lower level, every chromosome represents an outbound container handling sequence, each integer in the gene denotes an outbound container, and the length of the chromosome is equal to the outbound container amount. As shown in Fig. 9(b), the loading sequence for these outbound containers is {3–9–6–1–5–2–4– 7–8}. Noted that every chromosome in the lower level GA always meets with the requirement of ship arriving sequence and ship stability. 4.2. Population initialization To generate the upper-level initial population, three approaches were adopted.
ð26Þ ð27Þ
c2C
wcs ;
321
ð28Þ
The objective function (18) minimizes the total operation time for YC. Constraints (19) and (20) ensure that each outbound container has exactly one designated position on ship. Constraint (21) defines the decision variable v cc0 . Constraint (22) ensures that if the destination port of c is farther away than that of c0 , and c and c0 are stowed in the same hatch and stack on ship, such that container c is loaded before c0 . Constraint (23) describes the number of containers stacked above container c0 at t c0 ðpc0 tc0 Þ, which means that if container c is handled before container c0 , the two containers are in the same bay and row, and c is above c0 , such that the value of pc0 tc0 equals to pc0 tc minus 1; otherwise, its value remains the same aspc0 tc . Constraints (24) and (25) ensure the stability of the ship. Constraint (26) and (27) define the calculation of YC operation time t. Constraint (28) specifies the binary property for the decision variables wcs and v cc0 . 4. Bi-level GA The method we designed to solve the two-stage double-cycle scheduling problem is a bi-level GA in which the upper level determines the schedule of the QC, whereas the lower level determines
4.2.1. Johnson’s rule As suggested by Goodchild (2005), the double cycling problem can be formulated as a two-machine flow shop scheduling problem in which one stack can be considered as one job, and each job involves two operations: a former unloading operation and a subsequent loading operation. The QC performing the loading and unloading operations can be regarded as two different machines. We apply Johnson’s rule to sequence the stacks below hatch, then the sequence for stacks above hatch and between different hatches is generated randomly. 4.2.2. Greedy heuristic We can obtain the operation permutation below hatch by ordering the stack in the descending order of di ¼ uhi lhi , such that the sequence between hatches is generated randomly. 4.2.3. Randomly generated sequence The first two methods use the heuristic approach to generate a better initial solution to improve the computational efficiency of the proposed GA. The third approach generates the stack and hatch sequences randomly to improve the global search capability of GA. To generate the lower-level initial population, we assigned the outbound container to a different slot in the ship randomly, but always meet with the requirements of ship arriving sequence and ship stability.
322
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326
Upper-level GA
Fig. 8. Framework of the bi-level GA.
Fig. 9. Chromosome representation.
4.3. Fitness calculation Our fitness function is based on the objective function Eqs. (1) and (18). We adopt Eqs. (26) and (27) as upper-level and lowerlevel fitness functions, separately.
Fitness1 ðxÞ ¼ M ðT 1 þ T 2 Þ
ð29Þ
Fitness2 ðxÞ ¼ M T 2
ð30Þ
The value of M is set according to the problem to ensure the value of Eqs. (29) and (30) must be zero or greater. pðxi Þ stands for the
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326
323
Fig. 10. Crossover.
Fig. 11. Mutation.
probability that parent individual xi is selected (Q is the parent chromosome number).
Fitnessðxi Þ pðxi Þ ¼ PQ ; i ¼ 1; 2; . . . ; Q i¼1 Fitnessðxi Þ
ð31Þ
4.4. Genetic operator In the upper-level algorithm, we change the sequence between stacks using crossover, and the hatch permutation is changed by mutation. The crossover operation is shown in Fig. 10(a). We first select two parent individuals and then randomly set two crossover points in the second (double-cycle operation below hatch) and third sections (loading operation above hatch). In each section, by inheriting genes above crossover point in Parent 1, inheriting genes from top to bottom without repetition in Parent 2 and then copying the genes in first layer (hatch operation sequence) and the first section (unloading operation above hatch), we generate the new offspring individual. The mutation operation is shown in Fig. 11(a). We select two chromosomes and exchange the genes in the first layer (hatch operation sequence). We randomly select a hatch in the chromosome and a section in the hatch (in Fig. 11(a) we choose the second section in H2 ) and then exchange the genes in the selected section and complete the mutation. In the lower-level algorithm, the crossover operation is shown in Fig. 10(b). We set one crossover point in Parent 1. By inheriting
genes on the left side of the crossover point and inheriting genes from left to right without repetition in Parent 2, we obtain the new offspring individual. As shown in Fig. 11(b), in the mutation operation we select two genes in the chromosome and exchange them. 5. Lower bound To evaluate the quality of the proposed GA, a lower bound based on the two-stage double-cycle operation was derived. Under normal conditions, some empty movements exist for QC while double cycling, as shown in Fig. 12(a). We consider two ideal situations, as shown in Fig. 12(b) and (c). In the case of uninterrupted loading operation, the cycle number is K þ min hi ÞÞ; in the case of uninterrupted unloading operation, ðuh þ min tðu the cycle number is ! þ minðlh þ minðlhi ÞÞ. We then obtain the lower bound for the first part: the QC stage is
hi ÞÞ; ! þ minðlh þ minðlhi ÞÞÞt 1 : LB1 ¼ minðK þ minðuh þ minðu ð32Þ Kim (1997) suggested that under ideal conditions, to pick up containers in a yard bay of a rows and c tiers, the total number of rehandles is
V¼
Z 0
ac
c1 cþ2 þ 2 x dx: 2ac 8a c
ð33Þ
324
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326
Fig. 12. Lower bound for QC.
The second part lower bound for YC is
LB2 ¼ Vð4T a þ 2T m Þ þ Kð2T a þ T m Þ:
ð34Þ
From the above Eqs. (32) and (34), a lower bound for the problem is derived as
LB ¼ LB1 þ LB2 :
ð35Þ
Table 2 GA parameter setting. Parameter
Value
Upper-level GA Population size Crossover probability Mutation probability Population initialization method
20 0.8 0.1 Johnson’s rule
6. Numerical experiment The performance of the proposed bi-level GA was evaluated by performing a numerical experiment using eight data sets. The algorithm was programmed in Matlab 7.0 and executed on a personal computer (Intel Core2 with 4 GB RAM) with a Microsoft Windows 7 operating system. The GA parameters used in this paper are summarized in Table 2. For the upper-level GA, since the first 2 population initialization method described in Section 4.2 (Johnson’s rule, Greedy method) can generate well-performed chromosome, we use the randomly generated chromosome to improve the global search capability of GA, the population size of upper-level GA is set as 20, the crossover probability is 0.8, the mutation probability is 0.1, the upper-level algorithm terminates when the best individual does not improve at least 0.05% in the last 20 generations or the maximum iteration number (100) is reached. For the lower-level GA, the initial population is randomly generated satisfying the requirement of ship stability and ship arriving sequence, the pop K ulation size of lower-level GA is set as 20 , crossover probability is 0.8, mutation probability is 0.1, the algorithm terminates when the best individual does not improve at least 0.05% in the last 30 generations or the maximum iteration number (300) is reached. Based on the data collected in Dalian port, the number of row and tier in a yard bay are set as 8 and 6, average time for QC to complete one cycle is 2 min 40 s, YC needs 2.5 min to rehandle a container and 1.5 min to load the target container onto YT. We used the stowage data for 8 vessels of different sizes from DCT container terminal in Dalian, and computed the data for 10 times and recorded the average computing results in Table 3. We compared
Stopping criteria
QC operation time per cyclea Lower-level GA Population size Crossover probability Mutation probability Population initialization method Stopping criteria
YC operating time per loading containera YC operating time per rehandling containera Number of row in a yard baya Number of tier in a yard baya
Greedy heuristic Randomly generated (1) The best individual does not improve at least 0.05% in the last 20 generations or (2) iteration number reaches 100 2 min 40 s
K 20
0.8 0.1 Randomly generated (1) The best individual does not improve at least 0.05% in the last 30 generations or (2) iteration number reaches 300 1.5 min 2.5 min 8 6
a Operating time and yard bay condition is set based on the empirical data gathered in Dalian port.
the results of the proposed algorithm with that of the double-cycle operation method proposed by Goodchild (2005), which is the Johnson’s rule based heuristic algorithm method (JHA), the common method adopted by most container terminals now, in which the QC handles containers from land side to sea side, and the lower bound. The stowage plan for the common method and the JHA
325
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326 Table 3 Results of computational experiments.
a
Ship index
Ship size (TEU)a
No. of bays
No. of stacks in a bay
No. of containers for unloading/loading
1 2 3 4 5 6 7 8
3853 4367 4890 5618 7747 8452 9881 12,400
25 28 30 32 36 38 40 44
14 14 16 16 18 18 20 24
2358/2028 2420/2690 3458/3007 3864/3536 5034/4327 5426/5434 6136/6294 7029/6943
Proposed method
CPU time (s)
T 1 (h)
T 2 (h)
T 1 þ T 2 (h)
139.1 152.7 193.4 217.0 253.4 287.6 305.2 381.4
131.9 164.8 197.7 246.8 297.9 369.5 412.3 481.6
271.0 317.5 391.1 463.8 551.3 657.1 717.5 863.0
19.01 23.31 31.98 53.75 71.94 87.04 102.38 155.81
TEU stands for twenty-foot equivalent unit.
Table 4 Comparison of the experimental results.
a
Ship index
Common method T ^ (h)
JHA method T 0 (h)
Proposed method T (h)
Lower bound LB (h)
Gap1 a (%)
Gap2 a (%)
Gap3 a (%)
1 2 3 4 5 6 7 8
293.4 349.9 463.6 543.4 669.9 786.8 881.8 1099.2
284.3 338.6 439.7 514.4 629.9 735.8 818.0 1014.2
271.0 317.5 391.1 463.8 551.3 657.1 717.5 863.0
255.3 305.2 371.3 438.2 517.7 608.2 665.9 800.2
8.27 10.21 18.54 17.16 21.51 19.74 22.90 27.37
4.91 6.65 12.43 10.91 14.26 11.98 14.01 17.52
6.15 4.03 5.33 5.84 6.49 8.04 7.75 7.85
Gap1 ¼ ðT ^ TÞ=T 100%; Gap1 ¼ ðT 0 TÞ=T 100%; Gap1 ¼ ðT LBÞ=LB 100%.
method is same, in which we assigned the outbound container randomly to different slot on ship. We calculated the sum of QC and YC operation time T 1 þ T 2 , and recorded the information in Table 4. Table 3 shows that the computational time of the proposed algorithm is sensitive to the ship size; it increases while the ship becomes larger. However for a ship as large as 12,000 TEU, the computational time is within 3 min. This finding proves the time efficiency of the proposed algorithm and shows that the proposed bi-level GA can be applied to large ship operation scheduling. The comparison result shown in Table 4 shows that the proposed algorithm has an excellent optimization effect. The gap between the optimal solution obtained in this paper and the commonly used method is approximately 20%, note that QC part of the common method is also double-cycle method, it already outperforms the single-cycle method by at least 10% (Goodchild & Daganzo, 2007), this means that the gap between our method and the single-cycle method will be much bigger. The gap between the proposed method and the JHA method is around 10%, and that between the optimal solution and the lower bound is below 8.04%.
1200
Time (h)
1000 800 Common method
600
JHA method
400
Proposed method Lower bound
200 0
1
2
3
4
5
6
7
8
Ship index Fig. 13. Comparison of experimental results.
A closer look into the optimization effect is shown in Fig. 13. The percent improvement of using the optimal solution increases as ship size increases, such that the time and cost savings obtained by using the method can be considerable. 7. Conclusion In this study, to minimize the total operation time of the QC and YC, a mixed integer programming model was suggested. To solve the model, a bi-level GA was proposed. In this approach the upper-level algorithm sequences the hatch and the stack, whereas the lower-level algorithm assigns outbound containers to a different slot in the ship to determine an ideal stowage plan. Moreover, a lower bound was derived to evaluate algorithm performance. The bi-level GA reduced the operation time by 10% compared to that of the JHA method and 20% compared to that of the common method. Moreover, the computation result derived by the bi-level GA did not exceed the lower bound by 8.04%. Both of these results showed the superiority of the proposed scheduling method. Finally, the proposed approach can be easily implemented and is an effective scheduling method for two-stage double-cycle operations. This paper studied two types of handling equipment involved in double cycling, but YT allocation and dispatching were not considered. In future works, the integrated scheduling for QC, YC, and YT can be considered further. Acknowledgements This work was partially supported by National Natural Science Foundation of China (No. 71172108, No. 71302044, and No. 71431001), Doctoral Program Foundation of Institutions of Higher Education of China (No. 20122125110009 and No. 20132125120009).
326
R. Zhang et al. / Computers & Industrial Engineering 83 (2015) 316–326
References Chen, L., Bostel, N., Dejax, P., Cai, J., & Xi, L. (2007). A tabu search algorithm for the integrated scheduling problem of container handling systems in a maritime terminal. European Journal of Operational Research, 181(1), 40–58. http:// dx.doi.org/10.1016/j.ejor.2006.06.033. Daganzo, C. F. (1989). The crane scheduling problem. Transportation Research Part B: Methodological, 23(3), 159–175. http://dx.doi.org/10.1016/0191-2615(89) 90001-5. Goodchild, A. V. (2005). Crane double cycling in container ports: Algorithms, evaluation, and planning. PhD dissertation, Berkeley: University of California. Goodchild, A. V., & Daganzo, C. F. (2006). Double-cycling strategies for container ships and their effect on ship loading and unloading operations. Transportation Science, 4(40), 473–483. Goodchild, A. V., & Daganzo, C. F. (2007). Crane double cycling in container ports: Planning methods and evaluation. Transportation Research Part B: Methodological, 41(8), 875–891. http://dx.doi.org/10.1016/j.trb.2007.02.006. Kim, K. H. (1997). Evaluation of the number of rehandles in container yards. Computers & Industrial Engineering, 32(4), 701–711. http://dx.doi.org/10.1016/ S0360-8352(97)00024-7. Kim, K. H., & Park, Y. (2004). A crane scheduling method for port container terminals. European Journal of Operational Research, 156(3), 752–768. http:// dx.doi.org/10.1016/S0377-2217(03)00133-4.
Peterkofsky, R. I., & Daganzo, C. F. (1990). A branch and bound solution method for the crane scheduling problem. Transportation Research Part B: Methodological, 24(3), 159–172. http://dx.doi.org/10.1016/0191-2615(90)90014-P. Skinner, B., Yuan, S., Huang, S., Liu, D., Cai, B., Dissanayake, G., et al. (2013). Optimisation for job scheduling at automated container terminals using genetic algorithm. Computers & Industrial Engineering, 64(1), 511–523. http://dx.doi.org/ 10.1016/j.cie.2012.08.012. Yang, C., Wang, X., & Li, Z. (2012). An optimization approach for coupling problem of berth allocation and quay crane assignment in container terminal. Computers & Industrial Engineering, 63(1), 243–253. http://dx.doi.org/10.1016/j.cie.2012.03. 004. Zeng, Q. C., Yang, Z. Z., & Lu, J. (2010). Scheduling model and algorithm of integrating loading and unloading operations in same ship-bay at container terminal (in Chinese). Journal of Traffic and Transportation Engineering, 10(1), 88–93. Zhang, H., & Kim, K. H. (2009). Maximizing the number of dual-cycle operations of quay cranes in container terminals. Computers & Industrial Engineering, 56(3), 979–992. http://dx.doi.org/10.1016/j.cie.2008.09.008. Zhang, R., Jin, Z. H., Xing, X. W., & Shao, Q. Q. (2014). Optimization of container scheduling on integrated loading and unloading operations in same ship-bay (in Chinese). Journal of systems engineering, 29(6), 833–844.