# Positioning a Handshake Bay for Twin Stacking Cranes in an Automated Container Terminal Yard Block

Authors: Zhi-Hua Hu; Xi-Dan Tian; Yu-Qi Yin; Chen Wei
Journal: Journal of Advanced Transportation
 (2022)

---

## Abstract

At automated container terminals (ACTs), twin automated stacking cranes (ASCs) can carry out the tasks—store and retrieve containers simultaneously in a yard block using a handshake bay, where a primary ASC stacks the container at the handshake bay and the other crane carries it to the destination bay. Although the handshake bay increases the degree of crane utilization, the ASCs will interfere with each other at the bay, decreasing the stacking efficiency. This study formulates a mixed-integer linear program (MILP) to position the handshake bay and simultaneously schedule the twin ASCs to minimize the tasks’ makespan. The proposed formulation considers the safe time interval to avoid crane collisions during adjacent crane movements. To solve the model, we developed a random-key genetic algorithm with a priority-based decoding scheme to optimize the task sequences and tasks assigned to the cranes. The priority-based GA can always generate feasible solutions by ranking the container-handling tasks. Numerical experiments prove that the safe temporal interval affects the makespan and the handshake bay’s position. An optimal handshake bay reduces 35% of the makespan compared with a nonoptimal bay, and the proposed algorithm is competitive compared with the on-the-shelf MILP solver and can solve medium- and large-scale instances in short computing time with gaps lower than 5% compared with ideal solutions.


---

## Body

## 1. Introduction

Globalization promotes container transportation through seaborne shipping that undertakes 90% of the world trade [1]. In 2015–2017, the seaborne trade volume by container ships increased from 1,660 million tons to 1,834 million tons [2]. Many containers are daily delivered by a large number to container terminals [3]. The maritime transportation flows and container demand have increased over time, although the COVID-19 pandemic may slow down [4]. The increasing volume in the container shipping industry exerts much pressure on the container terminals [5]. Shanghai Port, as the global busiest container terminal, achieved a throughput of 42.01 million twenty-foot equivalent units (TEUs, a 20 ft × 8 ft × 8.5 ft container) in 2018 [6], which indicates that the terminal had to handle 110 thousand TEUs daily. In response to the massive throughput challenge, container terminals have to increase the efficiency of terminal operations, especially by utilizing advanced equipment [7]. Automated stacking crane (ASC) is such a kind of equipment that improves stacking productivity in automated container terminals (ACTs) [8]. To improve the operation efficiency of the yard, the twin automated stacking cranes are used to store and retrieve containers simultaneously with the help of the handshake bay. The prime stacking crane stacks the container into the handshake bay, and the cooperative crane transports the container to the target bay. The ASCs stack and retrieve containers in the stacking blocks under the control of terminal operating systems. The ACT operators have developed the automation technologies and operation optimization tools to schedule ASCs efficiently. Many containers are daily delivered by a large number of external trucks (ETs).The twin ASC solution examined used two cranes that conduct container storage and retrieval tasks cooperatively in a single block [9–11]. The ASCs store and retrieve the containers through the transfer points (for input/output (I/O)) at the ends of blocks. Generally, the two ASCs can handle containers simultaneously in the block but cannot pass each other. Figure 1 depicts a typical twin ASC layout used at Shanghai Yangshan ACT [12]. At the seaside I/O point, an ASC picks up the storage containers or drops off the retrieval containers onto the internal automated guided vehicles (AGVs). At the landside I/O point, the other ASC exchanges the containers with external container trucks. An ASC cannot crossover the other and can only serve the I/O point at its side. The conflict is notable when the twin cranes handle a batch of tasks via only the seaside or landside I/O point because the crane at the other side is blocked to reach the point and has to stay idle.Figure 1
Twin ASC stacking blocks at Yangshan automated container terminal.When the twin ASCs are independent, like two crossable ASCs, they can be scheduled in two separate programs. Each ASC operates according to a batch of container-handling tasks with constraints (e.g., time windows and sequence-dependent orders). While the two ASCs use the same track/orbit, they cannot cross each other, so they must synchronize along the orbit. We call this constraint time-space synchronization that demands a safety clearance distance between two ASCs. This study introduces the handshake bay as a critical bay between the two ASCs for the following reasons. First, only one ASC can simultaneously handle container storage/retrieval tasks at the handshake bay. Then, we can represent a container-handling task by two subtasks. An ASC retrieves and stores the container at the handshake bay, and then, the other ASC retrieves the container from the handshake bay and stores it to its destination. So, the ASCs must synchronize the retrieval/storage operations at the handshake bay. The handshake bay can be a fixed bay of the block or can be dynamically determinant. Its position is critical for improving efficiency. Figure2 depicts the handshake bay’s operations: a crane stacks container to the handshake bay, while another crane carries it to the destination. To store a container in a block bay, the seaside ASC picks it up, carries it to the handshake bay, drops the container, and then returns to the seaside I/O point for incoming container-handling tasks; meanwhile, the landside ASC moves to the handshake bay, picks up the container, carries the container, and finally drops it to its destination bay. By utilizing the handshake bay, the ASCs reduce the idle time and potentially save the makespan. However, additional operations are required for the cranes to hand over containers. Thus, optimizing the handshake bay and twin ASC scheduling solutions is crucial.Figure 2
Twin ASCs’ operations for a storage task with handshake bay. (a) Seaside ASC picks up imported container from the I/O point. (b) Seaside ASC drops off the container at the handshake bay. (c) Landside ASC carries the container to the destination.
(a)(b)(c)Under optimizing operational efficiency for a batch of storage/retrieval tasks in an ACT yard block, some studies developed models to minimize the makespan (the completion time of the last task) [13, 14]. We jointly determine the task sequences of the cranes and the location of the handshake bay in a block. The tasks whose origin and destination are the handshake bay that are operated by two ASCs sequentially.This study contributes to three streams of studies in the literature. Firstly, we developed a mixed-integer linear program to decide the optimal handshake bay coupled with the ASC scheduling problem under synchronization constraints. Pioneering studies aim at these problems using methods based on simulation and heuristics [14]. We developed solutions based on formal MILP models. Secondly, we devised a priority-based GA [15, 16] for the handshake bay positioning problem. GA provides us great flexibility to hybridize with domain-dependent heuristics to efficiently implement the specific problem. The priority-based GA can always generate feasible solutions by ranking the container-handling tasks. Finally, we compared the MILP (solved by an on-the-shelf solver), a greedy insert algorithm, and the GA to examine their performances in small-, medium-, and large-scale instances and validate the efficiency of the proposed methods.Compared with other literature studies, this study takes the handshake bay as the decision variable and considers the cooperation between the handshake bay and two ASCs to avoid conflict and improve the efficiency of ASC. We design the task-based priority coding and the ASC-based priority coding rules in terms of algorithm.In the rest of the study, Section2 is a literature review. Section 3 illustrates the research problem and formulates the mathematical model. Section 4 presents an insert algorithm and a priority-based GA to solve the model efficiently. Section 5 discusses the experimental results by examining the performances of the proposed algorithms. Section 6 is the conclusion and highlights further research directions.


## 2. Literature Review

### 2.1. Stacking Crane Scheduling

The studies on ASC scheduling generally include storage optimization, retrieval optimization, pre-marshaling, and their combinations [17].Rail-mounted gantry (RMG) cranes and rubber-tired gantry (RTG) cranes are essential equipment used in container yard blocks. Their efficiency is the performance bottleneck of container terminals [11]. Ng and Mak [18] devised a branch-and-bound algorithm to minimize the waiting time of tasks for a single-yard crane. Gharehgozli et al. [19] proposed a two-phase method for a single-yard crane optimization problem: first, they formulated the original scheduling problem into an assignment model; then, they developed a branch-and-bound algorithm to solve the problem. Sharif et al. [20] proposed an agent-based approach for scheduling and deploying multiple yard cranes that can travel among blocks. They examined various synchronization rules for crane assignments and schedules. Galle et al. [21] scheduled multiple yard cranes simultaneously by considering future relocations. They devised a MILP to determine the task sequences and solved the model using a relaxation method and a local search algorithm. Considering inter-crane interference, clearance distances, and time windows for simultaneous stacking and retrieving containers by two cranes, Li et al. [22] also developed a MILP that is solved by rolling horizon heuristics. Ng [23] scheduled multiple yard cranes that shared one bidirectional traveling lane and handled tasks with different ready times by a MILP and dynamic programming considering inter-crane interferences. Fotuhi et al. [24] introduced an agent-based approach to sequence multiple cranes to minimize the waiting time of external trucks. They used reinforcement learning to optimize the operations considering historical data. Sha et al. [25] scheduled multiple cranes with turning distance and operation rules under energy minimization. He et al. [26] studied the energy-saving solution for scheduling yard cranes using an integrated simulation method.ASC is a kind of unmanned RMGs that uses automation technologies to control the crane movements and container-handling operations. Gharehgozli and Zaerpour [27] scheduled a single ASC for stacking outbound containers by considering an alternative stacking policy (stacking containers of different types at the same row to increase stacking space utilization while increasing the complexity of crane scheduling).The twin ASC configuration introduces difficulties in modeling the cranes’ interferences, affecting the algorithm development. Boysen et al. [28] developed a classification scheme for the interferences between two cranes. Some pioneering studies formulated the twin ASC scheduling problem as formal or descriptive MILPs while developing different solution algorithms, e.g., graph-based polynomial algorithm [29], rule-based heuristics [30], reward-based heuristics [31], dynamic programming, and beam search algorithm [32].As discussed in Section1, the handshake bay will affect the solutions for ASC task sequences. Carlo and Martínez-Acevedo [8] optimized the handshake bay by considering fourteen priority rules. Jaehn and Kress [33] scheduled the twin cranes in a single block considering handshakes based on discrete-time model and heuristic algorithms. Gharehgozli et al. [14] studied the effect of handshake bay on the makespan and waiting time in a twin ASC configuration and proposed several priority-based operations rules to simulate the stacking operations. The handshake bay is predetermined (as a constant) in the proposed models in all these studies.Table1 summarizes the studies on stacking crane scheduling with four aspects: synchronization (Syn), handshake (HS), model type, and solution algorithm. Most studies deal with the synchronization, while handshake bay is ignored, which simplifies the ASC scheduling problem. Moreover, most algorithms are designed based on task priority. We consider the synchronization of handshake bay and ASCs, taking the handshake bay as a decision variable and transferring the moving interference between double stacker cranes to handshake bay position.Table 1
Pioneering studies on scheduling yard cranes in container blocks.
PaperSynHSModelSolution methodsGharehgozli and Zaerpour [27]NoNoDTIPSimulated annealingNg and Mak [18]NoNoIPBranch-and-bound algorithmGharehgozli et al. [19]NoNoIPBranch-and-bound algorithmNg [23]YesNoIPDynamic program-based heuristicGalle et al. [21]YesNoIPApproximate algorithmLi et al. [22]YesNoMILPRolling horizon heuristicsHe et al. [26]YesNoMILPGA and particle swarm algorithmBriskorn et al. [30]YesNoMILPBucket brigade algorithmSha et al. [25]YesNoMILPScheduling algorithmZhang et al. [34]YesNoMILPApproximate approachSharif et al. [20]YesNoSimulationABM with DPFotuhi et al. [24]YesNoSimulationABM; reinforcement learningBriskorn and Angeloudis [29]YesNoSimulationGraphical model and polynomial algorithmsOzcan and Eliiyi [31]YesNoSimulationReward-based stacking algorithmKress et al. [32]YesNoSimulationBounded DPJaehn and Kress [33]YesYesDTIPBucket brigade algorithmCarlo and Martínez-Acevedo [8]YesYesMILPPriority rulesGharehgozli et al. [14]YesYesSimulationPriority and operation rulesNote. Syn = synchronization, HS = handshake, IP = integer program, DTIP = discrete-time IP; ABM = agent-based modeling; DP = dynamic programming.


### 2.2. Synchronization Constraints in Scheduling Problems

In routing and scheduling problems, synchronization occurs among devices' operations due to spatial, temporal, and capacity constraints [35–37]. The pioneering studies investigated in Section 2.1 generally conceptualized the interference considered in twin ASC scheduling as synchronization constraints that are generally similarly considered in vehicle routing problems (VRPs) [38]. Drexl [39] reviewed the VRPs with multiple synchronization constraints among distribution tasks, cargo handling operations, vehicle movements, cargo loads, and service resources. Schiffer et al. [40] reviewed VRPs and location routing problems with intermediate stops, replenishment, and unloading, where the routes are synchronized at locations. Gschwind and Irnich [41] synchronized two sequential operations by dynamic time windows in a dial-a-ride scheduling problem. Crainic et al. [42] synchronized the movements of urban vehicles and city freighters at logistic satellites in an integrated scheduling and resource management problem. The space-time synchronization constraints are formulated among operations in the two-tiered city logistic system. Agatz et al. [43] synchronized the vehicles (trucks here) and drones at the drone departure and arrival locations in a VRP with a drone to make deliveries. They formulated the synchronization problem as a MILP and solved the model by a route-first cluster-second heuristic algorithm. Derigs et al. [44] studied the synchronization effect of time windows and load transfers between trucks and trailers on the performance of routes. Belenguer et al. [45] synchronized the trucks and trailers at satellite facilities using heuristics as solution methods. Chao [46] synchronized main and sub-routes in the two-stage VRPs using cluster-first-based heuristics and a Tabu search algorithm.Besides, synchronization is also a typical concept and constraint in many domains, e.g., chaotic systems [47], multi-agent systems [48], and machine learning [49]. Synchronization is an emergent property in a broad range of dynamical systems. Synchronization may be explained and formulated differently in other fields. However, synchronization generally represents the closeness relations in time or space dimensions in transportation and logistics.


### 2.3. Incremental Contribution

This study contributes to the related studies in the following aspects. First, we conceptualize the interferences between the twin ASCs as combined time-space and critical resource synchronizations. Based on the pioneering studies in Table1, as an incremental contribution, we developed a continuous-time MILP to optimize the handshake bay and sequence stacking tasks for the ASCs. Second, the proposed MILP integrates the handshake bay’s decisions, the two ASC scheduling solutions, and the crane interference avoidance used to synchronize the crane operations at the handshake bay. Based on the pioneering studies on ASC scheduling with handshake bays, this study combines the routing and handshake bay positioning problems in a single formal MILP. Finally, most conventional heuristics usually conduct a local search. The use of evolution operators makes GA very effective in performing a global search. Using the MILP as a base, we develop a random-key genetic algorithm with ASC priority and task priority coding scheme to study the impacts of handshake bay positioning on twin ASC scheduling solutions. The collision of synchronous operation is avoided from the model and algorithm, which is more practical.


## 2.1. Stacking Crane Scheduling

The studies on ASC scheduling generally include storage optimization, retrieval optimization, pre-marshaling, and their combinations [17].Rail-mounted gantry (RMG) cranes and rubber-tired gantry (RTG) cranes are essential equipment used in container yard blocks. Their efficiency is the performance bottleneck of container terminals [11]. Ng and Mak [18] devised a branch-and-bound algorithm to minimize the waiting time of tasks for a single-yard crane. Gharehgozli et al. [19] proposed a two-phase method for a single-yard crane optimization problem: first, they formulated the original scheduling problem into an assignment model; then, they developed a branch-and-bound algorithm to solve the problem. Sharif et al. [20] proposed an agent-based approach for scheduling and deploying multiple yard cranes that can travel among blocks. They examined various synchronization rules for crane assignments and schedules. Galle et al. [21] scheduled multiple yard cranes simultaneously by considering future relocations. They devised a MILP to determine the task sequences and solved the model using a relaxation method and a local search algorithm. Considering inter-crane interference, clearance distances, and time windows for simultaneous stacking and retrieving containers by two cranes, Li et al. [22] also developed a MILP that is solved by rolling horizon heuristics. Ng [23] scheduled multiple yard cranes that shared one bidirectional traveling lane and handled tasks with different ready times by a MILP and dynamic programming considering inter-crane interferences. Fotuhi et al. [24] introduced an agent-based approach to sequence multiple cranes to minimize the waiting time of external trucks. They used reinforcement learning to optimize the operations considering historical data. Sha et al. [25] scheduled multiple cranes with turning distance and operation rules under energy minimization. He et al. [26] studied the energy-saving solution for scheduling yard cranes using an integrated simulation method.ASC is a kind of unmanned RMGs that uses automation technologies to control the crane movements and container-handling operations. Gharehgozli and Zaerpour [27] scheduled a single ASC for stacking outbound containers by considering an alternative stacking policy (stacking containers of different types at the same row to increase stacking space utilization while increasing the complexity of crane scheduling).The twin ASC configuration introduces difficulties in modeling the cranes’ interferences, affecting the algorithm development. Boysen et al. [28] developed a classification scheme for the interferences between two cranes. Some pioneering studies formulated the twin ASC scheduling problem as formal or descriptive MILPs while developing different solution algorithms, e.g., graph-based polynomial algorithm [29], rule-based heuristics [30], reward-based heuristics [31], dynamic programming, and beam search algorithm [32].As discussed in Section1, the handshake bay will affect the solutions for ASC task sequences. Carlo and Martínez-Acevedo [8] optimized the handshake bay by considering fourteen priority rules. Jaehn and Kress [33] scheduled the twin cranes in a single block considering handshakes based on discrete-time model and heuristic algorithms. Gharehgozli et al. [14] studied the effect of handshake bay on the makespan and waiting time in a twin ASC configuration and proposed several priority-based operations rules to simulate the stacking operations. The handshake bay is predetermined (as a constant) in the proposed models in all these studies.Table1 summarizes the studies on stacking crane scheduling with four aspects: synchronization (Syn), handshake (HS), model type, and solution algorithm. Most studies deal with the synchronization, while handshake bay is ignored, which simplifies the ASC scheduling problem. Moreover, most algorithms are designed based on task priority. We consider the synchronization of handshake bay and ASCs, taking the handshake bay as a decision variable and transferring the moving interference between double stacker cranes to handshake bay position.Table 1
Pioneering studies on scheduling yard cranes in container blocks.
PaperSynHSModelSolution methodsGharehgozli and Zaerpour [27]NoNoDTIPSimulated annealingNg and Mak [18]NoNoIPBranch-and-bound algorithmGharehgozli et al. [19]NoNoIPBranch-and-bound algorithmNg [23]YesNoIPDynamic program-based heuristicGalle et al. [21]YesNoIPApproximate algorithmLi et al. [22]YesNoMILPRolling horizon heuristicsHe et al. [26]YesNoMILPGA and particle swarm algorithmBriskorn et al. [30]YesNoMILPBucket brigade algorithmSha et al. [25]YesNoMILPScheduling algorithmZhang et al. [34]YesNoMILPApproximate approachSharif et al. [20]YesNoSimulationABM with DPFotuhi et al. [24]YesNoSimulationABM; reinforcement learningBriskorn and Angeloudis [29]YesNoSimulationGraphical model and polynomial algorithmsOzcan and Eliiyi [31]YesNoSimulationReward-based stacking algorithmKress et al. [32]YesNoSimulationBounded DPJaehn and Kress [33]YesYesDTIPBucket brigade algorithmCarlo and Martínez-Acevedo [8]YesYesMILPPriority rulesGharehgozli et al. [14]YesYesSimulationPriority and operation rulesNote. Syn = synchronization, HS = handshake, IP = integer program, DTIP = discrete-time IP; ABM = agent-based modeling; DP = dynamic programming.


## 2.2. Synchronization Constraints in Scheduling Problems

In routing and scheduling problems, synchronization occurs among devices' operations due to spatial, temporal, and capacity constraints [35–37]. The pioneering studies investigated in Section 2.1 generally conceptualized the interference considered in twin ASC scheduling as synchronization constraints that are generally similarly considered in vehicle routing problems (VRPs) [38]. Drexl [39] reviewed the VRPs with multiple synchronization constraints among distribution tasks, cargo handling operations, vehicle movements, cargo loads, and service resources. Schiffer et al. [40] reviewed VRPs and location routing problems with intermediate stops, replenishment, and unloading, where the routes are synchronized at locations. Gschwind and Irnich [41] synchronized two sequential operations by dynamic time windows in a dial-a-ride scheduling problem. Crainic et al. [42] synchronized the movements of urban vehicles and city freighters at logistic satellites in an integrated scheduling and resource management problem. The space-time synchronization constraints are formulated among operations in the two-tiered city logistic system. Agatz et al. [43] synchronized the vehicles (trucks here) and drones at the drone departure and arrival locations in a VRP with a drone to make deliveries. They formulated the synchronization problem as a MILP and solved the model by a route-first cluster-second heuristic algorithm. Derigs et al. [44] studied the synchronization effect of time windows and load transfers between trucks and trailers on the performance of routes. Belenguer et al. [45] synchronized the trucks and trailers at satellite facilities using heuristics as solution methods. Chao [46] synchronized main and sub-routes in the two-stage VRPs using cluster-first-based heuristics and a Tabu search algorithm.Besides, synchronization is also a typical concept and constraint in many domains, e.g., chaotic systems [47], multi-agent systems [48], and machine learning [49]. Synchronization is an emergent property in a broad range of dynamical systems. Synchronization may be explained and formulated differently in other fields. However, synchronization generally represents the closeness relations in time or space dimensions in transportation and logistics.


## 2.3. Incremental Contribution

This study contributes to the related studies in the following aspects. First, we conceptualize the interferences between the twin ASCs as combined time-space and critical resource synchronizations. Based on the pioneering studies in Table1, as an incremental contribution, we developed a continuous-time MILP to optimize the handshake bay and sequence stacking tasks for the ASCs. Second, the proposed MILP integrates the handshake bay’s decisions, the two ASC scheduling solutions, and the crane interference avoidance used to synchronize the crane operations at the handshake bay. Based on the pioneering studies on ASC scheduling with handshake bays, this study combines the routing and handshake bay positioning problems in a single formal MILP. Finally, most conventional heuristics usually conduct a local search. The use of evolution operators makes GA very effective in performing a global search. Using the MILP as a base, we develop a random-key genetic algorithm with ASC priority and task priority coding scheme to study the impacts of handshake bay positioning on twin ASC scheduling solutions. The collision of synchronous operation is avoided from the model and algorithm, which is more practical.


## 3. Problem Description and the Model

### 3.1. Problem Description

This study investigates the problem of positioning a handshake bay and scheduling twin ASCs for a batch of containers’ arrival at one I/O point in a yard block. The block consists ofnb bays, several rows, and two I/O points at its two ends. We denote the bays by a set, e.t., 1,2,…,nb. We denote the set of stacking bays by B=0,1,…,nb. Here, 0 refers to a virtual bay representing the I/O point of the arrival containers. The set of the twin ASCs is denoted by K=p,c, where p represents the crane near the I/O point of arrival containers and c represents the other crane. The ASC moves along the bays at a speed of Tm per bay and uses a trolley to grasp the containers. The time of hoist/dropping off one container is denoted by Th.A set of tasks are available at the beginning of the scheduling, denoted byN=1,2,…,n. Each task specifies a container movement by an original location (bay) Oi and a destination (bay) Di, where Oi,Di∈B for all i∈N. We can determine the data (Oi,Di) in advance. The primary purpose of this study is to optimize a handshake bay denoted by w in B, namely w∈B. The container carried across the handshake bay is handled by the twin ASCs sequentially: the crane p carries the container from its original location to the handshake bay, and then, the crane c takes it from the handshake bay to the destination.The objective of scheduling the twin ASCs is to minimize the makespan, represented by the last task’s completion time. The decisions involve positioning the handshake bayw and the handling sequences of ASCs. The crane p drops a container to the handshake bay before the crane c can pick up the container. The two cranes can use the handshake bay exclusively as it is a critical resource (conceptualized as critical resource synchronization). Besides, considering the crane interference, the sequences of twin ASCs have to keep a safe time interval with each other to avoid crane collision (conceptualized as time-space synchronization). Figure 3 depicts these two kinds of synchronization. Table 2 summarizes the notations mentioned above.Figure 3
Time-space diagram of twin ASCs’ operations with a handshake bay.Table 2
Notations.
(1)SetB=0,1,…,nbA set of bays in yard block, where 0 is the I/O points of arrival containersN=1,…,nA set of tasks, generally indexed byi,jK=p,cK consists of the prime and cooperative cranes p,c, indexed by k(2)Known dataOi∈BOriginal bay of taskiDi∈BDestination bay of taskiTsThe safe time interval between the handlings of ASCsTmThe time of crane moving one bayThThe time of crane hoisting/dropping off one containerMA large enough number,M=N⋅Tm⋅B+2⋅Th(3)Decision variablesbik∈BThe initial bay of taski handled by crane kdik∈BThe target bay of taski handled by crane ksikThe beginning time of cranek handling task ieikThe finish time of cranek handling task ixijk∈0,11, if cranek handles task i directly before task j; 0, otherwise.yi∈0,11, taski is transhipped by the handshake bay; 0, otherwise.uij∈0,11, ifp finishes task i before c starting task j; 0, otherwise.zThe makespan of the twin ASCs completing all the taskswThe handshake bay,w∈B


### 3.2. Mathematical Model

We formulate the handshake bay positioning and twin ASC scheduling problem as follows. The binary variablexijk formulates the tasks’ allocation to cranes and their sequence: it equals 1 if ASC k handles task i directly before task j; otherwise, it is 0. The notations sik and eik denote the start and completion times of task i handled by ASC k individually. A binary variable uij synchronizes the prime crane’s storage and cooperative crane’s retrieval operations for avoiding the interference of the twin ASCs at the handshake bay: if the prime crane (p) finishes task i before the cooperative crane (c) starting task j, then uij equals to 1; otherwise, uij is 0. If task i involves storage/retrieval operations at the handshake bay, yi equals to 1; otherwise, yi equals to 0.The model assumptions are reflected in the two aspects. First, the ASC must be handed over through a buffer. ASC shall not cross the buffer during task processing. Second, ASC can avoid collision and achieve synchronization by maintaining a safe time interval.(1)minzsubjectto,(2)∑jxijk≤1,∀i,k,(3)∑i,jxijp=N−1,(4)∑i,jxijc=∑iyi−1,(5)eip≥sip+Tmdip−bip+2Th,∀i,(6)eic≥sic+Tmdic−bic+2Th+Myi−1,∀i,(7)sjk≥eik+Tmdik−bjk+Mxijk−1,∀i,j,k,(8)eik≥sik,∀i,k,(9)z≥eik,∀i,k,(10)sjc≥eip+Ts+Muij−1,∀i,j,(11)eip≥sjc−M⋅uij+M1−yj+2Th+Ts,∀i,j,(12)∑juij≤N⋅yi,∀i,(13)uii=yi,∀i,(14)bip=Oi,∀i(15)Di≥dip−M⋅yi,∀i(16)dip≥Di−M⋅yi,∀i,(17)w≥dip+Myi−1,∀i,(18)dip≥w+Myi−1,∀i,(19)w≥bic+Myi−1,∀i,(20)bic≥w+Myi−1,∀i,(21)Di≥dic+Myi−1,∀i,(22)dic≥Di+Myi−1,∀i,(23)M⋅yi≥dip−w,∀i,(24)2yi≥∑jxijc+∑jxjic,∀i,(25)sik≥0,∀i,k,(26)max∀iDi≥w,(27)xijk,yi,uij∈0,1,∀i,j,k.The objective function (1) minimizes the makespan of the twin ASCs, subject to the following five groups of constraints:(1)
Sequencing constraints. Constraint (2) ensures that each task has at most one successor task. As constrained by (3) and (4), the cranes finish all the tasks. These constraints imply a flow balance, ensuring that the two cranes handle the tasks individually once and in sequence.(2)
Time constraints. We compute the start time and end time of prime crane (p) near the I/O point of arrival containers handling task i by the moving time and loading/unloading time, given in (5). The start time and end time of the cooperative crane (c) handling the container at the handshake bay are computed by (6). The direct travel time of the crane from task i to task j is given in (7). As constrained by (8), the end time of the task must be later than the start time. In (9), the makespan is later than the end time of every task.(3)
Synchronization constraints. The safe time interval between the handlings of cranes at the handshake bay helps avoid crane collision. In (10), if the prime crane (p) handles task i before the cooperative crane handling task j, task j must start later than the end time of task i plus the safe time interval. Reversely, in (11), if we handle the task j before task i, the end time of task i must be later than the start time of task i plus safe time interval and the loading time of the two tasks. If j is staked at the handshake bay (yj=1) and the task i is not performed just before j (uij=0), the inequality, eip≥sjc+2Th+Ts, should be met, which is studied in Figure 3. In (12), the cranes handle the containers at the handshake bay in a sequence. In (13), the prime crane (p) always handles the tasks before the cooperative crane (c).(4)
Handshake bay location constraints. In (14), the prime crane starts a task at the original location of the container. In (15) and (16), if the container is not stacked at the handshake bay, the prime crane finishes the task at its destination; otherwise, the prime crane finishes the task at the handshake bay, as constrained in (17) and (18). Constraints (19)–(22) ensure that the cooperative crane starts a temporary stacked task at the handshake bay and finishes it at its destination. In (23), if the prime crane stacks the container of a task at the handshake bay, its destination must be on the other side of the handshake bay. In (24), the cooperative crane transports the container at the handshake bay to its destination.(5)
Domain constraints. In (25)-(26), the start times of tasks are nonnegative, and the handshake bay must locate before the destinations of tasks.Notably, the distances,dik−bik and dip−w, in (5)-(7) and (23), should be bik−dik and dip−w for retrieval tasks to ensure that their values are nonnegative.Proposition 1.
The problem of scheduling twin ASCs and optimizing the handshake bay is NP-hard.Proof.
By relaxing the decision on the handshake bay’s location, the twin ASC scheduling model determines the optimal task sequences of the cranes. Since the prime crane handles all the tasks one by one, we can obtain the prime crane’s task sequence by solving a traveling salesman problem (TSP) where a traveler sequentially visits a set of vertices. As for the cooperative crane, the sequence consists of the tasks using the handshake bay for staking containers temporarily. We can also solve it with a TSP. Thus, the relaxed model is NP-hard because the TSP is such [50].


## 3.1. Problem Description

This study investigates the problem of positioning a handshake bay and scheduling twin ASCs for a batch of containers’ arrival at one I/O point in a yard block. The block consists ofnb bays, several rows, and two I/O points at its two ends. We denote the bays by a set, e.t., 1,2,…,nb. We denote the set of stacking bays by B=0,1,…,nb. Here, 0 refers to a virtual bay representing the I/O point of the arrival containers. The set of the twin ASCs is denoted by K=p,c, where p represents the crane near the I/O point of arrival containers and c represents the other crane. The ASC moves along the bays at a speed of Tm per bay and uses a trolley to grasp the containers. The time of hoist/dropping off one container is denoted by Th.A set of tasks are available at the beginning of the scheduling, denoted byN=1,2,…,n. Each task specifies a container movement by an original location (bay) Oi and a destination (bay) Di, where Oi,Di∈B for all i∈N. We can determine the data (Oi,Di) in advance. The primary purpose of this study is to optimize a handshake bay denoted by w in B, namely w∈B. The container carried across the handshake bay is handled by the twin ASCs sequentially: the crane p carries the container from its original location to the handshake bay, and then, the crane c takes it from the handshake bay to the destination.The objective of scheduling the twin ASCs is to minimize the makespan, represented by the last task’s completion time. The decisions involve positioning the handshake bayw and the handling sequences of ASCs. The crane p drops a container to the handshake bay before the crane c can pick up the container. The two cranes can use the handshake bay exclusively as it is a critical resource (conceptualized as critical resource synchronization). Besides, considering the crane interference, the sequences of twin ASCs have to keep a safe time interval with each other to avoid crane collision (conceptualized as time-space synchronization). Figure 3 depicts these two kinds of synchronization. Table 2 summarizes the notations mentioned above.Figure 3
Time-space diagram of twin ASCs’ operations with a handshake bay.Table 2
Notations.
(1)SetB=0,1,…,nbA set of bays in yard block, where 0 is the I/O points of arrival containersN=1,…,nA set of tasks, generally indexed byi,jK=p,cK consists of the prime and cooperative cranes p,c, indexed by k(2)Known dataOi∈BOriginal bay of taskiDi∈BDestination bay of taskiTsThe safe time interval between the handlings of ASCsTmThe time of crane moving one bayThThe time of crane hoisting/dropping off one containerMA large enough number,M=N⋅Tm⋅B+2⋅Th(3)Decision variablesbik∈BThe initial bay of taski handled by crane kdik∈BThe target bay of taski handled by crane ksikThe beginning time of cranek handling task ieikThe finish time of cranek handling task ixijk∈0,11, if cranek handles task i directly before task j; 0, otherwise.yi∈0,11, taski is transhipped by the handshake bay; 0, otherwise.uij∈0,11, ifp finishes task i before c starting task j; 0, otherwise.zThe makespan of the twin ASCs completing all the taskswThe handshake bay,w∈B


## 3.2. Mathematical Model

We formulate the handshake bay positioning and twin ASC scheduling problem as follows. The binary variablexijk formulates the tasks’ allocation to cranes and their sequence: it equals 1 if ASC k handles task i directly before task j; otherwise, it is 0. The notations sik and eik denote the start and completion times of task i handled by ASC k individually. A binary variable uij synchronizes the prime crane’s storage and cooperative crane’s retrieval operations for avoiding the interference of the twin ASCs at the handshake bay: if the prime crane (p) finishes task i before the cooperative crane (c) starting task j, then uij equals to 1; otherwise, uij is 0. If task i involves storage/retrieval operations at the handshake bay, yi equals to 1; otherwise, yi equals to 0.The model assumptions are reflected in the two aspects. First, the ASC must be handed over through a buffer. ASC shall not cross the buffer during task processing. Second, ASC can avoid collision and achieve synchronization by maintaining a safe time interval.(1)minzsubjectto,(2)∑jxijk≤1,∀i,k,(3)∑i,jxijp=N−1,(4)∑i,jxijc=∑iyi−1,(5)eip≥sip+Tmdip−bip+2Th,∀i,(6)eic≥sic+Tmdic−bic+2Th+Myi−1,∀i,(7)sjk≥eik+Tmdik−bjk+Mxijk−1,∀i,j,k,(8)eik≥sik,∀i,k,(9)z≥eik,∀i,k,(10)sjc≥eip+Ts+Muij−1,∀i,j,(11)eip≥sjc−M⋅uij+M1−yj+2Th+Ts,∀i,j,(12)∑juij≤N⋅yi,∀i,(13)uii=yi,∀i,(14)bip=Oi,∀i(15)Di≥dip−M⋅yi,∀i(16)dip≥Di−M⋅yi,∀i,(17)w≥dip+Myi−1,∀i,(18)dip≥w+Myi−1,∀i,(19)w≥bic+Myi−1,∀i,(20)bic≥w+Myi−1,∀i,(21)Di≥dic+Myi−1,∀i,(22)dic≥Di+Myi−1,∀i,(23)M⋅yi≥dip−w,∀i,(24)2yi≥∑jxijc+∑jxjic,∀i,(25)sik≥0,∀i,k,(26)max∀iDi≥w,(27)xijk,yi,uij∈0,1,∀i,j,k.The objective function (1) minimizes the makespan of the twin ASCs, subject to the following five groups of constraints:(1)
Sequencing constraints. Constraint (2) ensures that each task has at most one successor task. As constrained by (3) and (4), the cranes finish all the tasks. These constraints imply a flow balance, ensuring that the two cranes handle the tasks individually once and in sequence.(2)
Time constraints. We compute the start time and end time of prime crane (p) near the I/O point of arrival containers handling task i by the moving time and loading/unloading time, given in (5). The start time and end time of the cooperative crane (c) handling the container at the handshake bay are computed by (6). The direct travel time of the crane from task i to task j is given in (7). As constrained by (8), the end time of the task must be later than the start time. In (9), the makespan is later than the end time of every task.(3)
Synchronization constraints. The safe time interval between the handlings of cranes at the handshake bay helps avoid crane collision. In (10), if the prime crane (p) handles task i before the cooperative crane handling task j, task j must start later than the end time of task i plus the safe time interval. Reversely, in (11), if we handle the task j before task i, the end time of task i must be later than the start time of task i plus safe time interval and the loading time of the two tasks. If j is staked at the handshake bay (yj=1) and the task i is not performed just before j (uij=0), the inequality, eip≥sjc+2Th+Ts, should be met, which is studied in Figure 3. In (12), the cranes handle the containers at the handshake bay in a sequence. In (13), the prime crane (p) always handles the tasks before the cooperative crane (c).(4)
Handshake bay location constraints. In (14), the prime crane starts a task at the original location of the container. In (15) and (16), if the container is not stacked at the handshake bay, the prime crane finishes the task at its destination; otherwise, the prime crane finishes the task at the handshake bay, as constrained in (17) and (18). Constraints (19)–(22) ensure that the cooperative crane starts a temporary stacked task at the handshake bay and finishes it at its destination. In (23), if the prime crane stacks the container of a task at the handshake bay, its destination must be on the other side of the handshake bay. In (24), the cooperative crane transports the container at the handshake bay to its destination.(5)
Domain constraints. In (25)-(26), the start times of tasks are nonnegative, and the handshake bay must locate before the destinations of tasks.Notably, the distances,dik−bik and dip−w, in (5)-(7) and (23), should be bik−dik and dip−w for retrieval tasks to ensure that their values are nonnegative.Proposition 1.
The problem of scheduling twin ASCs and optimizing the handshake bay is NP-hard.Proof.
By relaxing the decision on the handshake bay’s location, the twin ASC scheduling model determines the optimal task sequences of the cranes. Since the prime crane handles all the tasks one by one, we can obtain the prime crane’s task sequence by solving a traveling salesman problem (TSP) where a traveler sequentially visits a set of vertices. As for the cooperative crane, the sequence consists of the tasks using the handshake bay for staking containers temporarily. We can also solve it with a TSP. Thus, the relaxed model is NP-hard because the TSP is such [50].


## 4. Solution Algorithms

The MILP is hard to be solved for a practical problem with more than ten tasks (see Section5) because of the complexity of integrating handshake bay positioning and twin ASC scheduling. We developed an insert algorithm with a greedy strategy and priority-based GA [15, 16] with better computational efficiency.


### 4.1. Greedy Insert Algorithm

Inspired by scheduling experiences from the Yangshan ACT, the algorithm inserts tasks to the handling sequences of the ASCs to minimize the crane idle time. First, the algorithm selects one bay in the block as the handshake bay. Second, the algorithm alternately inserts a long-time task and a short-time task to the ASC close to the I/O point of arrival containers until all the tasks are assigned. Third, the algorithm adds the tasks using the handshake bay to tranship the containers to the cooperative ASC, considering the safety time interval. Fourth, the algorithm computes the makespan, as denoted byzi. Fifth, the algorithm enumerates the available bays as handshake bay, computes the makespan, and then outputs the bay with the minimal makespan and the corresponding scheduling as the solution. Algorithm 1 presents the outline of the insert algorithm.Algorithm 1: Greedy insert algorithm.
InputsOi,Di,Ts,Tm,Th,N,KOutputsbik,dik,sik,eik,z,wStepsStep 1 Initializez=N⋅Tm⋅B+2⋅ThStep 2 Initialize a set of candidate handshake bays, denoted byΩ=miniOi,miniOi+1,…,maxiDi. Use Ωj to index the jth element in ΩStep 3 For eachΩjStep 3.1 Initialize two setsNp and Nc, and two sequence vectors Vp and VcStep 3.2 Letl=ΩjStep 3.3For each i∈NStep 3.3.1 Setbip∗=OiStep 3.3.2 IfDi>l, then set dip∗=l,bic∗=l,dic∗=Di, add i to Np and to NcStep 3.3.3 else, setdip∗=Di,bic∗=−1,dic∗=−1, and add i to NpStep 3.3.4End forStep 3.4 Initialize a set of tasks asΘ=Np∪​NcStep 3.5 WhileΘ is not emptyStep 3.5.1 Select the task with the longest distanceDi−Oi,i∈Θ, and append i to VpStep 3.5.2 Ifbic∗>0Calculatesic∗,eic∗ by the safe time interval Ts, and append i to VcEnd IfStep 3.5.3 Removei from ΘStep 3.5.4 Select the taski with the shortest distance Di−Oi,i∈Θ, and append i to VpStep 3.5.5 Ifbic∗>0Calculatesic∗,eic∗ by Ts, and append i to VcEnd IfStep 3.5.6 Removei from ΘStep 3.5.7 End whileStep 3.6 Calculatez∗=maxi∈N,keik∗Step 3.7 Ifz∗<zbik←bik∗,dik←dik∗,sik←sik∗,eik←eik∗,z←z∗,w←l,∀i,kEnd IfStep 3.8 End ForStep 4 Outputbik,dik,sik,eik,z,w,∀i,kProposition 2.
The computational complexity of Algorithm 1 isOm⋅n2, where n is the number of tasks and m denotes the number of bays in a block.Proof.
We can decompose Algorithm 1 into two procedures that sequence the tasks by sorting according to their operation times. The worst sorting time isnn+1/2, when all the tasks are temporarily stacked. So, the computational complexity of calculating the makespan once is On2. Through the algorithm, the makespan is calculated m times according to the number of candidate handshake bay. Thus, the whole computational complexity is Om⋅n2.


### 4.2. The Genetic Algorithm

The greedy insert algorithm (Algorithm1) can produce a feasible solution within a short computing time. However, the greedy search generates a single solution due to limited search space. We developed a GA using a real number encoding scheme and a priority-based decoding strategy. The GA is a typical representative intelligent algorithm and can incorporate many other successful heuristics developed for other algorithms, e.g., simulated annealing and various neighbor searches.The GA derives from evolutionary computation and follows natural selection as the principle for searching for improved global optimization solutions in various applications [51], such as scheduling [52, 53] and routing [54]. The critical components include (1) encoding solution into individuals, (2) repetitively performing crossover and mutation operations to generate new individuals, and (3) reserving individuals with high-performance value by the fitness function. A GA organizes a population of individuals to devise solutions and form generations. New individuals are produced based on the existing individuals and the next generation is composed, with some elite individuals selected from the current generation. Over massive generations and superior selection, the population evolves toward the best individuals. The crossover operator guarantees the local improvement during the generations, and mutation ensures that the GA searches widely in the feasible region. Crossover fraction and mutation rate are control parameters to exploit and explore optimal solutions.


#### 4.2.1. The Algorithm Procedures

Algorithm2 presents the procedures of GA. The algorithm randomly generates individuals to form the initial population and then improves the population iteratively. At each generation, firstly, the individuals are decoded into task sequences for the twin ASCs based on the decoding scheme; secondly, the fitness function computes the solutions’ performances as the makespan of their tasks. Thirdly, the process transfers some elite individuals with the highest fitness value to the next generation. Fourthly, the process follows the crossover fraction to select some individuals as parents to generate child individuals. Fifthly, the process mutates the rest of the current individuals, and finally, the process decides on the excellent child individuals coupled with the elite individuals to form the next population. The algorithm terminates when it achieves the maximal generations or maintains the optimal solution for limited iterations.Algorithm 2: Genetic algorithm.
StepsStep 1g←0Step 2 Generate the initial populationPgStep 3 EvaluatePg and select the elite solutions EgStep 4 While (termination criteria are not satisfied) doStep 4.1 CrossoverPg to generate CXgStep 4.2 MutatePg to generate CMgStep 4.3 MergeCXg and CMg as CgStep 4.4 ImproveCg by crossover and mutation operatorStep 4.5 EvaluateCg based on a decoding schemeStep 4.6 Move best solutions fromPg and Cg to EgStep 4.7 SelectPg+1 from Pg and Cg by roulette wheel selectionStep 4.8g←g+1Step 4.9 End While


#### 4.2.2. Encoding Scheme

We use random keys [55] in a real number vector v to represent the priorities of tasks for permuting the task in the ASC handling sequences. The vector v contains 2⋅N elements, namely v=vi1×2N and vi∈0,1. The vector values represent the priorities of N tasks of the prime ASC and N tasks of the cooperative ASC. Figure 4 illustrates an individual containing five tasks.Figure 4
An individual representation of five tasks for the twin ASCs.A high value ofvi indicates a high priority of corresponding task i for insertion into the sequence. The algorithm adds the candidate task with the highest priority to the tail of the corresponding ASC’s task sequence.


#### 4.2.3. Decoding Scheme

The decoding scheme interprets a value vector into a solution and calculates the raw fitness value to provide evaluation value for further GA operators. Derived from the MILP, we designed Algorithm3 to interpret a vector into feasible sequences for the two ASCs while considering the synchronization constraints. By the vector’s values, the priorities of the ASC to the tasks are determined sequentially in the decoding scheme, which extends the solution method using constant crane priority [8].Algorithm 3: Decoding scheme based on task priorities.
InputsOi,Di,Ts,Tm,Th,c,N,KOutputsbik,dik,sik,eik,z,wStepsStep 1 Initializez=N⋅Tm⋅B+2⋅Th and a set NW=∅ containing uncompleted tasks and the corresponding cranesStep 2 Select the bays betweenminiOi and maxiDi to form a candidate bay set Ω. Use Ωj to index the jth element in ΩStep 3 For eachΩjStep 3.1 Letl=Ωj, initialize sequence Vk,k∈K, initialize an occupied time set Γ=∅. Use Γj to index the jth element in Γ.Step 3.2 Insert all the tasks of the prime crane intoNW, i.e., NW=1,p,…,n,p.Step 3.3 WhileNW is not emptyStep 3.3.1 Selecti,k from NW with the highest vector value in v, and insert i to the sequence tail of VkStep 3.3.2 Calculatebik∗,dik∗,sik∗,eik∗Step 3.3.3 Ifk is the prime craneStep 3.3.3.1 Ifeik∗ violates the safe time interval, namely eik∗∈Γj,∃jDelayeik∗ to a conflict-free time value, and add eik∗−Th−Ts,eik∗+Ts to ΓEnd IfStep 3.3.3.2 Addi,c to NW if task i is stacked at l for operated by the other crane.Step 3.3.4 elseStep 3.3.4.1 Ifsic∗ violates the safe time interval, namely, sic∗∈Γj,∃jdelaysic∗ to a conflict-free time value, and add sic∗−Ts,sic∗+Th+Ts to ΓEnd IfStep 3.3.5 End IfStep 3.4 End WhileStep 3.5 Setz∗=maxi∈N,keik∗Step 3.6 Ifz∗<zbik←bik∗,dik←dik∗,sik←sik∗,eik←eik∗,z←z∗,w←l,∀i,kEnd IfStep 4 End ForStep 5 Outputbik,dik,sik,eik,z,w,∀i,kTo simulate the yard crane performances, Carlo and Martínez-Acevedo [8] and Gharehgozli et al. [14] developed schemes for sequencing the yard crane tasks using crane priorities. In this study, we implement this method in Algorithm 4 as a decoding scheme for comparison studies (see Section 5). Algorithms 3 and 4 use the priorities as decoding orders to construct a sequence of tasks gradually. However, Algorithm 3 uses the random keys’ task priorities in a GA, while Algorithm 4 sequences the tasks according to the given yard cranes. In practice, the operators generally use crane-based priorities to schedule the crane operations, possibly because the method is intuitive. However, it cannot utilize the empty time. The task-based priorities provide a way to utilize the cranes by considering the empty time. However, it is not always true. So, we will study them through computational experiments.Algorithm 4: Decoding scheme based on crane priorities.
InputsOi,Di,Ts,Tm,Th,c,K,N=1,…,nOutputsbik,dik,sik,eik,z,wStepsStep 1 Initializez=N⋅Tm⋅B+2⋅ThStep 2 Select the bays betweenminiOi and maxiDi to form a candidate bay set Ω. Use Ωj to index the jth element in ΩStep 3 For eachΩjStep 3.1 Letl=Ωj, initialize sequence Vp and Vc, initialize an occupied time set Γ=∅. Use Γj to index the jth element in Γ.Initialize two setsNp and Nc containing the task for prime crane and split task for cooperativeStep 3.2 Sortvi,i=1,…,n in descending order, and insert i into Vp sequentially.Step 3.3 Calculatebip∗,dip∗,sip∗,eip∗ according to Vp,Tm,Th.Step 3.4 Insert the occupied time of each split task at handshake bay intoΓStep 3.5 Sortvi+n,i=1,…,n in descending order, and insert i into Vc sequentially.Step 3.6 Calculatebip∗,dip∗,sip∗,eip∗ according to Vp,Tm,Th,ΓStep 3.7 Setz∗=maxi∈N,keik∗Step 3.8 Ifz∗<zbik←bik∗,dik←dik∗,sik←sik∗,eik←eik∗,z←z∗,w←l,∀i,kEnd IfStep 3.9 End ForStep 4 Outputbik,dik,sik,eik,z,w,∀i,k


#### 4.2.4. Initialization

The GA generates a group of solutions as the initial population. As introduced in the decoding scheme (Section4.2.3), we decode any real value vector v into the task sequences as a feasible solution. To start with a good initialization, we add the solution of the greedy insert algorithm (Algorithm 1) as one of the initial solutions. Therefore, the initial population is randomly generated in the initialization process, with one solution resulting from Algorithm 1.


#### 4.2.5. Crossover and Mutation

As mentioned in 4.2.3, the decoding scheme allows various crossover and mutation operators designed for both discrete and continuous GAs. To get better performance of the decoding scheme, we test the operators proposed from literature and applied in practical solvers such as MATLAB. Finally, we select the two-point crossover and Gaussian mutation [56] to outperform other operators in tests among various designed operations. The two-point crossover selects two vector positions of one parent pair and exchanges the corresponding vector values between the two individuals to form a new individual. Gaussian mutation adds a random number taken from a Gaussian distribution with a mean 0 to each value of the parent vector and then scales them to form a new individual.


#### 4.2.6. Fitness Evaluation

We use the fitness value to evaluate the performance of the solution represented by the individual. As formulated in Section3, we prefer lower-makespan solutions; therefore, a low makespan z returned by the decoding scheme is of high performance. We convert the makespan z to the raw fitness value that is reciprocal to z. We use a rank-based method for scaling the fitness values. The method ranks the individuals based on the raw fitness in descending order and sets the fitness value of individual ranked at position nd equal to nd [57].


#### 4.2.7. Elite and Selection

The selection method chooses high fitness values with high possibilities to form parents of the next generation. We use a roulette selection scheme to select the candidate parents by making up a roulette wheel. The section size of the wheel corresponding to an individual is in proportion to the individual’s fitness value and then selecting several individuals with a probability as the parents. The probability (α) determines the fraction of individuals operated by crossover.


## 4.1. Greedy Insert Algorithm

Inspired by scheduling experiences from the Yangshan ACT, the algorithm inserts tasks to the handling sequences of the ASCs to minimize the crane idle time. First, the algorithm selects one bay in the block as the handshake bay. Second, the algorithm alternately inserts a long-time task and a short-time task to the ASC close to the I/O point of arrival containers until all the tasks are assigned. Third, the algorithm adds the tasks using the handshake bay to tranship the containers to the cooperative ASC, considering the safety time interval. Fourth, the algorithm computes the makespan, as denoted byzi. Fifth, the algorithm enumerates the available bays as handshake bay, computes the makespan, and then outputs the bay with the minimal makespan and the corresponding scheduling as the solution. Algorithm 1 presents the outline of the insert algorithm.Algorithm 1: Greedy insert algorithm.
InputsOi,Di,Ts,Tm,Th,N,KOutputsbik,dik,sik,eik,z,wStepsStep 1 Initializez=N⋅Tm⋅B+2⋅ThStep 2 Initialize a set of candidate handshake bays, denoted byΩ=miniOi,miniOi+1,…,maxiDi. Use Ωj to index the jth element in ΩStep 3 For eachΩjStep 3.1 Initialize two setsNp and Nc, and two sequence vectors Vp and VcStep 3.2 Letl=ΩjStep 3.3For each i∈NStep 3.3.1 Setbip∗=OiStep 3.3.2 IfDi>l, then set dip∗=l,bic∗=l,dic∗=Di, add i to Np and to NcStep 3.3.3 else, setdip∗=Di,bic∗=−1,dic∗=−1, and add i to NpStep 3.3.4End forStep 3.4 Initialize a set of tasks asΘ=Np∪​NcStep 3.5 WhileΘ is not emptyStep 3.5.1 Select the task with the longest distanceDi−Oi,i∈Θ, and append i to VpStep 3.5.2 Ifbic∗>0Calculatesic∗,eic∗ by the safe time interval Ts, and append i to VcEnd IfStep 3.5.3 Removei from ΘStep 3.5.4 Select the taski with the shortest distance Di−Oi,i∈Θ, and append i to VpStep 3.5.5 Ifbic∗>0Calculatesic∗,eic∗ by Ts, and append i to VcEnd IfStep 3.5.6 Removei from ΘStep 3.5.7 End whileStep 3.6 Calculatez∗=maxi∈N,keik∗Step 3.7 Ifz∗<zbik←bik∗,dik←dik∗,sik←sik∗,eik←eik∗,z←z∗,w←l,∀i,kEnd IfStep 3.8 End ForStep 4 Outputbik,dik,sik,eik,z,w,∀i,kProposition 2.
The computational complexity of Algorithm 1 isOm⋅n2, where n is the number of tasks and m denotes the number of bays in a block.Proof.
We can decompose Algorithm 1 into two procedures that sequence the tasks by sorting according to their operation times. The worst sorting time isnn+1/2, when all the tasks are temporarily stacked. So, the computational complexity of calculating the makespan once is On2. Through the algorithm, the makespan is calculated m times according to the number of candidate handshake bay. Thus, the whole computational complexity is Om⋅n2.


## 4.2. The Genetic Algorithm

The greedy insert algorithm (Algorithm1) can produce a feasible solution within a short computing time. However, the greedy search generates a single solution due to limited search space. We developed a GA using a real number encoding scheme and a priority-based decoding strategy. The GA is a typical representative intelligent algorithm and can incorporate many other successful heuristics developed for other algorithms, e.g., simulated annealing and various neighbor searches.The GA derives from evolutionary computation and follows natural selection as the principle for searching for improved global optimization solutions in various applications [51], such as scheduling [52, 53] and routing [54]. The critical components include (1) encoding solution into individuals, (2) repetitively performing crossover and mutation operations to generate new individuals, and (3) reserving individuals with high-performance value by the fitness function. A GA organizes a population of individuals to devise solutions and form generations. New individuals are produced based on the existing individuals and the next generation is composed, with some elite individuals selected from the current generation. Over massive generations and superior selection, the population evolves toward the best individuals. The crossover operator guarantees the local improvement during the generations, and mutation ensures that the GA searches widely in the feasible region. Crossover fraction and mutation rate are control parameters to exploit and explore optimal solutions.


### 4.2.1. The Algorithm Procedures

Algorithm2 presents the procedures of GA. The algorithm randomly generates individuals to form the initial population and then improves the population iteratively. At each generation, firstly, the individuals are decoded into task sequences for the twin ASCs based on the decoding scheme; secondly, the fitness function computes the solutions’ performances as the makespan of their tasks. Thirdly, the process transfers some elite individuals with the highest fitness value to the next generation. Fourthly, the process follows the crossover fraction to select some individuals as parents to generate child individuals. Fifthly, the process mutates the rest of the current individuals, and finally, the process decides on the excellent child individuals coupled with the elite individuals to form the next population. The algorithm terminates when it achieves the maximal generations or maintains the optimal solution for limited iterations.Algorithm 2: Genetic algorithm.
StepsStep 1g←0Step 2 Generate the initial populationPgStep 3 EvaluatePg and select the elite solutions EgStep 4 While (termination criteria are not satisfied) doStep 4.1 CrossoverPg to generate CXgStep 4.2 MutatePg to generate CMgStep 4.3 MergeCXg and CMg as CgStep 4.4 ImproveCg by crossover and mutation operatorStep 4.5 EvaluateCg based on a decoding schemeStep 4.6 Move best solutions fromPg and Cg to EgStep 4.7 SelectPg+1 from Pg and Cg by roulette wheel selectionStep 4.8g←g+1Step 4.9 End While


### 4.2.2. Encoding Scheme

We use random keys [55] in a real number vector v to represent the priorities of tasks for permuting the task in the ASC handling sequences. The vector v contains 2⋅N elements, namely v=vi1×2N and vi∈0,1. The vector values represent the priorities of N tasks of the prime ASC and N tasks of the cooperative ASC. Figure 4 illustrates an individual containing five tasks.Figure 4
An individual representation of five tasks for the twin ASCs.A high value ofvi indicates a high priority of corresponding task i for insertion into the sequence. The algorithm adds the candidate task with the highest priority to the tail of the corresponding ASC’s task sequence.


### 4.2.3. Decoding Scheme

The decoding scheme interprets a value vector into a solution and calculates the raw fitness value to provide evaluation value for further GA operators. Derived from the MILP, we designed Algorithm3 to interpret a vector into feasible sequences for the two ASCs while considering the synchronization constraints. By the vector’s values, the priorities of the ASC to the tasks are determined sequentially in the decoding scheme, which extends the solution method using constant crane priority [8].Algorithm 3: Decoding scheme based on task priorities.
InputsOi,Di,Ts,Tm,Th,c,N,KOutputsbik,dik,sik,eik,z,wStepsStep 1 Initializez=N⋅Tm⋅B+2⋅Th and a set NW=∅ containing uncompleted tasks and the corresponding cranesStep 2 Select the bays betweenminiOi and maxiDi to form a candidate bay set Ω. Use Ωj to index the jth element in ΩStep 3 For eachΩjStep 3.1 Letl=Ωj, initialize sequence Vk,k∈K, initialize an occupied time set Γ=∅. Use Γj to index the jth element in Γ.Step 3.2 Insert all the tasks of the prime crane intoNW, i.e., NW=1,p,…,n,p.Step 3.3 WhileNW is not emptyStep 3.3.1 Selecti,k from NW with the highest vector value in v, and insert i to the sequence tail of VkStep 3.3.2 Calculatebik∗,dik∗,sik∗,eik∗Step 3.3.3 Ifk is the prime craneStep 3.3.3.1 Ifeik∗ violates the safe time interval, namely eik∗∈Γj,∃jDelayeik∗ to a conflict-free time value, and add eik∗−Th−Ts,eik∗+Ts to ΓEnd IfStep 3.3.3.2 Addi,c to NW if task i is stacked at l for operated by the other crane.Step 3.3.4 elseStep 3.3.4.1 Ifsic∗ violates the safe time interval, namely, sic∗∈Γj,∃jdelaysic∗ to a conflict-free time value, and add sic∗−Ts,sic∗+Th+Ts to ΓEnd IfStep 3.3.5 End IfStep 3.4 End WhileStep 3.5 Setz∗=maxi∈N,keik∗Step 3.6 Ifz∗<zbik←bik∗,dik←dik∗,sik←sik∗,eik←eik∗,z←z∗,w←l,∀i,kEnd IfStep 4 End ForStep 5 Outputbik,dik,sik,eik,z,w,∀i,kTo simulate the yard crane performances, Carlo and Martínez-Acevedo [8] and Gharehgozli et al. [14] developed schemes for sequencing the yard crane tasks using crane priorities. In this study, we implement this method in Algorithm 4 as a decoding scheme for comparison studies (see Section 5). Algorithms 3 and 4 use the priorities as decoding orders to construct a sequence of tasks gradually. However, Algorithm 3 uses the random keys’ task priorities in a GA, while Algorithm 4 sequences the tasks according to the given yard cranes. In practice, the operators generally use crane-based priorities to schedule the crane operations, possibly because the method is intuitive. However, it cannot utilize the empty time. The task-based priorities provide a way to utilize the cranes by considering the empty time. However, it is not always true. So, we will study them through computational experiments.Algorithm 4: Decoding scheme based on crane priorities.
InputsOi,Di,Ts,Tm,Th,c,K,N=1,…,nOutputsbik,dik,sik,eik,z,wStepsStep 1 Initializez=N⋅Tm⋅B+2⋅ThStep 2 Select the bays betweenminiOi and maxiDi to form a candidate bay set Ω. Use Ωj to index the jth element in ΩStep 3 For eachΩjStep 3.1 Letl=Ωj, initialize sequence Vp and Vc, initialize an occupied time set Γ=∅. Use Γj to index the jth element in Γ.Initialize two setsNp and Nc containing the task for prime crane and split task for cooperativeStep 3.2 Sortvi,i=1,…,n in descending order, and insert i into Vp sequentially.Step 3.3 Calculatebip∗,dip∗,sip∗,eip∗ according to Vp,Tm,Th.Step 3.4 Insert the occupied time of each split task at handshake bay intoΓStep 3.5 Sortvi+n,i=1,…,n in descending order, and insert i into Vc sequentially.Step 3.6 Calculatebip∗,dip∗,sip∗,eip∗ according to Vp,Tm,Th,ΓStep 3.7 Setz∗=maxi∈N,keik∗Step 3.8 Ifz∗<zbik←bik∗,dik←dik∗,sik←sik∗,eik←eik∗,z←z∗,w←l,∀i,kEnd IfStep 3.9 End ForStep 4 Outputbik,dik,sik,eik,z,w,∀i,k


### 4.2.4. Initialization

The GA generates a group of solutions as the initial population. As introduced in the decoding scheme (Section4.2.3), we decode any real value vector v into the task sequences as a feasible solution. To start with a good initialization, we add the solution of the greedy insert algorithm (Algorithm 1) as one of the initial solutions. Therefore, the initial population is randomly generated in the initialization process, with one solution resulting from Algorithm 1.


### 4.2.5. Crossover and Mutation

As mentioned in 4.2.3, the decoding scheme allows various crossover and mutation operators designed for both discrete and continuous GAs. To get better performance of the decoding scheme, we test the operators proposed from literature and applied in practical solvers such as MATLAB. Finally, we select the two-point crossover and Gaussian mutation [56] to outperform other operators in tests among various designed operations. The two-point crossover selects two vector positions of one parent pair and exchanges the corresponding vector values between the two individuals to form a new individual. Gaussian mutation adds a random number taken from a Gaussian distribution with a mean 0 to each value of the parent vector and then scales them to form a new individual.


### 4.2.6. Fitness Evaluation

We use the fitness value to evaluate the performance of the solution represented by the individual. As formulated in Section3, we prefer lower-makespan solutions; therefore, a low makespan z returned by the decoding scheme is of high performance. We convert the makespan z to the raw fitness value that is reciprocal to z. We use a rank-based method for scaling the fitness values. The method ranks the individuals based on the raw fitness in descending order and sets the fitness value of individual ranked at position nd equal to nd [57].


### 4.2.7. Elite and Selection

The selection method chooses high fitness values with high possibilities to form parents of the next generation. We use a roulette selection scheme to select the candidate parents by making up a roulette wheel. The section size of the wheel corresponding to an individual is in proportion to the individual’s fitness value and then selecting several individuals with a probability as the parents. The probability (α) determines the fraction of individuals operated by crossover.


## 4.2.1. The Algorithm Procedures

Algorithm2 presents the procedures of GA. The algorithm randomly generates individuals to form the initial population and then improves the population iteratively. At each generation, firstly, the individuals are decoded into task sequences for the twin ASCs based on the decoding scheme; secondly, the fitness function computes the solutions’ performances as the makespan of their tasks. Thirdly, the process transfers some elite individuals with the highest fitness value to the next generation. Fourthly, the process follows the crossover fraction to select some individuals as parents to generate child individuals. Fifthly, the process mutates the rest of the current individuals, and finally, the process decides on the excellent child individuals coupled with the elite individuals to form the next population. The algorithm terminates when it achieves the maximal generations or maintains the optimal solution for limited iterations.Algorithm 2: Genetic algorithm.
StepsStep 1g←0Step 2 Generate the initial populationPgStep 3 EvaluatePg and select the elite solutions EgStep 4 While (termination criteria are not satisfied) doStep 4.1 CrossoverPg to generate CXgStep 4.2 MutatePg to generate CMgStep 4.3 MergeCXg and CMg as CgStep 4.4 ImproveCg by crossover and mutation operatorStep 4.5 EvaluateCg based on a decoding schemeStep 4.6 Move best solutions fromPg and Cg to EgStep 4.7 SelectPg+1 from Pg and Cg by roulette wheel selectionStep 4.8g←g+1Step 4.9 End While


## 4.2.2. Encoding Scheme

We use random keys [55] in a real number vector v to represent the priorities of tasks for permuting the task in the ASC handling sequences. The vector v contains 2⋅N elements, namely v=vi1×2N and vi∈0,1. The vector values represent the priorities of N tasks of the prime ASC and N tasks of the cooperative ASC. Figure 4 illustrates an individual containing five tasks.Figure 4
An individual representation of five tasks for the twin ASCs.A high value ofvi indicates a high priority of corresponding task i for insertion into the sequence. The algorithm adds the candidate task with the highest priority to the tail of the corresponding ASC’s task sequence.


## 4.2.3. Decoding Scheme

The decoding scheme interprets a value vector into a solution and calculates the raw fitness value to provide evaluation value for further GA operators. Derived from the MILP, we designed Algorithm3 to interpret a vector into feasible sequences for the two ASCs while considering the synchronization constraints. By the vector’s values, the priorities of the ASC to the tasks are determined sequentially in the decoding scheme, which extends the solution method using constant crane priority [8].Algorithm 3: Decoding scheme based on task priorities.
InputsOi,Di,Ts,Tm,Th,c,N,KOutputsbik,dik,sik,eik,z,wStepsStep 1 Initializez=N⋅Tm⋅B+2⋅Th and a set NW=∅ containing uncompleted tasks and the corresponding cranesStep 2 Select the bays betweenminiOi and maxiDi to form a candidate bay set Ω. Use Ωj to index the jth element in ΩStep 3 For eachΩjStep 3.1 Letl=Ωj, initialize sequence Vk,k∈K, initialize an occupied time set Γ=∅. Use Γj to index the jth element in Γ.Step 3.2 Insert all the tasks of the prime crane intoNW, i.e., NW=1,p,…,n,p.Step 3.3 WhileNW is not emptyStep 3.3.1 Selecti,k from NW with the highest vector value in v, and insert i to the sequence tail of VkStep 3.3.2 Calculatebik∗,dik∗,sik∗,eik∗Step 3.3.3 Ifk is the prime craneStep 3.3.3.1 Ifeik∗ violates the safe time interval, namely eik∗∈Γj,∃jDelayeik∗ to a conflict-free time value, and add eik∗−Th−Ts,eik∗+Ts to ΓEnd IfStep 3.3.3.2 Addi,c to NW if task i is stacked at l for operated by the other crane.Step 3.3.4 elseStep 3.3.4.1 Ifsic∗ violates the safe time interval, namely, sic∗∈Γj,∃jdelaysic∗ to a conflict-free time value, and add sic∗−Ts,sic∗+Th+Ts to ΓEnd IfStep 3.3.5 End IfStep 3.4 End WhileStep 3.5 Setz∗=maxi∈N,keik∗Step 3.6 Ifz∗<zbik←bik∗,dik←dik∗,sik←sik∗,eik←eik∗,z←z∗,w←l,∀i,kEnd IfStep 4 End ForStep 5 Outputbik,dik,sik,eik,z,w,∀i,kTo simulate the yard crane performances, Carlo and Martínez-Acevedo [8] and Gharehgozli et al. [14] developed schemes for sequencing the yard crane tasks using crane priorities. In this study, we implement this method in Algorithm 4 as a decoding scheme for comparison studies (see Section 5). Algorithms 3 and 4 use the priorities as decoding orders to construct a sequence of tasks gradually. However, Algorithm 3 uses the random keys’ task priorities in a GA, while Algorithm 4 sequences the tasks according to the given yard cranes. In practice, the operators generally use crane-based priorities to schedule the crane operations, possibly because the method is intuitive. However, it cannot utilize the empty time. The task-based priorities provide a way to utilize the cranes by considering the empty time. However, it is not always true. So, we will study them through computational experiments.Algorithm 4: Decoding scheme based on crane priorities.
InputsOi,Di,Ts,Tm,Th,c,K,N=1,…,nOutputsbik,dik,sik,eik,z,wStepsStep 1 Initializez=N⋅Tm⋅B+2⋅ThStep 2 Select the bays betweenminiOi and maxiDi to form a candidate bay set Ω. Use Ωj to index the jth element in ΩStep 3 For eachΩjStep 3.1 Letl=Ωj, initialize sequence Vp and Vc, initialize an occupied time set Γ=∅. Use Γj to index the jth element in Γ.Initialize two setsNp and Nc containing the task for prime crane and split task for cooperativeStep 3.2 Sortvi,i=1,…,n in descending order, and insert i into Vp sequentially.Step 3.3 Calculatebip∗,dip∗,sip∗,eip∗ according to Vp,Tm,Th.Step 3.4 Insert the occupied time of each split task at handshake bay intoΓStep 3.5 Sortvi+n,i=1,…,n in descending order, and insert i into Vc sequentially.Step 3.6 Calculatebip∗,dip∗,sip∗,eip∗ according to Vp,Tm,Th,ΓStep 3.7 Setz∗=maxi∈N,keik∗Step 3.8 Ifz∗<zbik←bik∗,dik←dik∗,sik←sik∗,eik←eik∗,z←z∗,w←l,∀i,kEnd IfStep 3.9 End ForStep 4 Outputbik,dik,sik,eik,z,w,∀i,k


## 4.2.4. Initialization

The GA generates a group of solutions as the initial population. As introduced in the decoding scheme (Section4.2.3), we decode any real value vector v into the task sequences as a feasible solution. To start with a good initialization, we add the solution of the greedy insert algorithm (Algorithm 1) as one of the initial solutions. Therefore, the initial population is randomly generated in the initialization process, with one solution resulting from Algorithm 1.


## 4.2.5. Crossover and Mutation

As mentioned in 4.2.3, the decoding scheme allows various crossover and mutation operators designed for both discrete and continuous GAs. To get better performance of the decoding scheme, we test the operators proposed from literature and applied in practical solvers such as MATLAB. Finally, we select the two-point crossover and Gaussian mutation [56] to outperform other operators in tests among various designed operations. The two-point crossover selects two vector positions of one parent pair and exchanges the corresponding vector values between the two individuals to form a new individual. Gaussian mutation adds a random number taken from a Gaussian distribution with a mean 0 to each value of the parent vector and then scales them to form a new individual.


## 4.2.6. Fitness Evaluation

We use the fitness value to evaluate the performance of the solution represented by the individual. As formulated in Section3, we prefer lower-makespan solutions; therefore, a low makespan z returned by the decoding scheme is of high performance. We convert the makespan z to the raw fitness value that is reciprocal to z. We use a rank-based method for scaling the fitness values. The method ranks the individuals based on the raw fitness in descending order and sets the fitness value of individual ranked at position nd equal to nd [57].


## 4.2.7. Elite and Selection

The selection method chooses high fitness values with high possibilities to form parents of the next generation. We use a roulette selection scheme to select the candidate parents by making up a roulette wheel. The section size of the wheel corresponding to an individual is in proportion to the individual’s fitness value and then selecting several individuals with a probability as the parents. The probability (α) determines the fraction of individuals operated by crossover.


## 5. Experiments

We conduct extensive numerical experiments to evaluate the formulated model’s effectiveness, the greedy insert algorithm (Algorithm1), the crane priority-based GA, and the task priority-based GA (Algorithm 2). The model and algorithms were coded and implemented in the MATLAB 2016a platform on a computer with Intel (R) Core i7-5500U CPU Dual 2.4 GHz, 8 GB memory, and Windows 10 operating system. We solve the MILP with Gurobi 725 (http://www.gurobi.com) using MATLAB.


### 5.1. Data and Experimental Settings

We use the following data to construct the instances and settings in the experiments. The data are set based on the investigations to the Shanghai Yangshan ACT. The authors provided mathematical modeling courses and assistants to the ACT designers, managers, and operators. The block consists of 28 bays and two I/O points at the ends. The travel speed of ASC is set to 2.5 m/s. That is, an ASC takes 6 s to travel a bay. The hoist/drop speed of ASC is set to 2 m/s. In practice, ASC needs a calibration time of 25–30 s for orienting the container location to be operated. Therefore, we set the hoist/drop time to 30 s. The task numbern is set to 5, 10, 20, 50, and 100. For each number of tasks, we generate four scenarios of task distributions (denoted as “s,” “c,” “l,” and “u”) so that tasks are distributed from the I/O point of arrival container to 1/3 length of the block, from 1/3 length of the block to 2/3 length of the block, from 2/3 length of the block to the end of the block, and distributed uniformly in the block. The safe time interval between two crane handlings is set to 9 s, indicating a minimal half-bay distance between twin ASCs. In summary, we represent the model parameters described above by a value vector, nb,Tm,Th,Ts=28,6,30,9.The parameters of GA include maximal generationG, stall generation φ, population size ρ, crossover fraction α, and mutation ratio β. In the parameter tuning experiment, we adjust one parameter and fix other parameters simultaneously. Section 5.2.1 presents more details of tuning the parameters. The default values of the parameters are G,φ,ρ,α,β=1000,450,20,0.6,0.55.In Table3, we devise three experiments with purposes and parameter settings.Table 3
Experimental settings.
No.PurposesParameter settings1Tune the GA to determine the robust parameter value(1) Set max generations (G) to 5000; (2) Set stall generations (φ) to 200, 300, 400, 500, and 600, and run the GA for 20 times individually; (3) Set the crossover fraction (α) to 0.05, 0.10, …, 0.95, and set the mutation rate (β) to 0.05, 0.10, …, 0.95. Use these values for cross experiments and then run the GA for each combination of crossover fraction and mutation rate five times.2Compare the optimality and computation time of the MILP and proposed algorithms(1) Use the settings in No. 1;(2) Set the run time limitation of the MILP solver to 900 s; (3) Use the MILP solver, the greedy insert algorithm, and GA (Algorithms 1 and 2) to solve the problem.3Examine the impacts of synchronization constraints and handshake location on the makespan and ASC operations(1) Apply GA with its default settings;(2) Set the safe time interval (Ts) to 6, 12, 18, 24, and 30 s; (3) Set a handshake bay (w) to an available bay.


### 5.2. Experimental Result

#### 5.2.1. Parameter Tuning

We demonstrate the parameter tuning experiments using instances with 50 tasks uniformly distributed in a container yard block. Figure5 depicts the results for each tuned parameter. The objective value decreases dramatically at the beginning of execution, and the decreased speed slows down after 100 generations. The algorithm result converges to an optimal value and holds stable after 800 generations. The algorithm terminates after the stall generation, and the best value is 450. In Figure 5(c), the lowest objective value incurs at population size 20; after that point, computation time increases, while the objective value is unchanged. The crossover fraction (α) and mutation ratio (β) jointly determine the GA’s progress. Figure 5(d) produces a contour plot for these two parameters and their corresponding makespan. The objective value drops to the lowest when the crossover fraction reaches 0.6 and the mutation ratio to 0.55. We mark two regions of combinations that lead to good performances by grey colors in Figure 5(d).Figure 5
Impacts of the GA parameters on solutions. (a) Objective value of GA. (b) Tuning of stall generation. (c) The effect of population sizes (ρ) on makespan versus computation time. (d) The outperformed regions of combinations of crossover fraction and mutation ratio.
(a)(b)(c)(d)The parameters are sensitive to the number of tasks and even their distributions. Here, we mainly demonstrate the processes and typical results for tuning the parameters. In application scenarios, after testing the distribution of the tasks and the size of a batch of tasks in scheduling, we can use it to determine the parameters before regular production.


#### 5.2.2. Algorithm Performances

We evaluate the proposed model’s performance and algorithms in computation time (CT) and optimal objective value (Obj). It is found in the experiments that a feasible solution of MILP solved by the on-the-shelf solver takes several hours. So, it is not applicable to use the MILP solver in practice. In the following experiments, we set the time limit of two hours for solving the MILP. We conduct 500 runs of the priority-based GA and take the final objective values as ideal objective values, which are “ideal” bounds when the MILP solver cannot solve the model within two hours.As presented in Table4, the MILP solver can solve optimally for small-scale instances with five tasks. The performance of the MILP solver decreases for the medium-scale instances with ten to twenty tasks since the running time reaches the limit. For the instances of more than 50 tasks, the MILP solver cannot find feasible solutions within the time limit (remarked as the notation “–” in the table). The greedy insert algorithm (Algorithm 1) can find a solution in less than 0.2 seconds, and its gaps between the ideal solutions narrow down when the problem scales grow. The crane priority-based GA (Algorithm 1 using the decoding scheme in Algorithm 4) is robust in computation time. The task priority-based GA improves the greedy algorithm and outperforms other contenders in objective value. For small-scale instances, the task priority-based GA found the optimal results equal to those from the MILP solver. In the medium- and large-scale instances, the task priority-based GA can reduce the gaps between the ideal solutions by 5%, even to 0.06%. The computation times show that the efficiency of the task priority-based GA is related to the number of tasks because the synchronization of the two crane scheduling tasks takes much time to determine the feasible task sequences avoiding crane interference.Table 4
Objective value and computation time of solving the model and algorithms.
InstanceMILPGreedy insertCrane priority-based GATask priority-based GAIdealObj.CT/sObj.CT/sGapb (%)Obj.CT/sGapb (%)Obj.CT/sGapb (%)Obj.c5s4955.055550.1212.125046.761.824953.870.004955c7531.677650.021.597597.260.807533.880.007535l10654.8510650.010.0010718.020.5610653.780.0010655u6301.657470.0118.576337.630.486304.830.0063010s9997200.00a10350.0113.1810205.5811.549336.352.0291510c15697200.00a16110.019.9115579.466.2214796.080.90146610l21457200.00a20190.014.0020679.156.4719896.092.45194110u14197200.00a15270.0015.12139512.835.1713806.504.04132620s23767200.00a19830.0111.0819685.8010.24182415.852.18178520c43057200.00a31410.008.3233069.6014.01291920.010.67290020l61597200.00a43170.017.34432316.447.49411313.642.27402220u43987200.00a32070.017.4232288.238.12304517.331.99298650s—7200.00a47310.016.6153227.9019.93463242.504.38443850c—7200.00a78450.016.46993622.3334.84741935.340.68736950l—7200.00a106890.019.101242922.5226.851026969.934.81979850u—7200.00a73350.012.97868810.1221.97715286.120.407123100s—7200.00a91950.010.671105212.4021.019201137.120.749133100c—7200.00a156810.015.442057431.9838.3415111164.951.6114872100l—7200.00a212850.023.982625945.3728.2820673161.150.9920471100u—7200.00a147330.012.912004017.1239.9714325219.400.0614317Note.aTerminated by Gurobi after 2 hours, “—” indicates no feasible solution found. b Gap = ((Method Obj.) − (Ideal Obj.))/(Ideal Obj.) × 100%. cIdeal Obj. is obtained by running the task priority-based GA for 500 times.Figure6 presents the results of solving the model and algorithms for seven uniformly distributed tasks. All methods generated an optimal handshake location at the bay of No. 11. The crane priority-based GA found a near-optimal solution with an extra six seconds compared with optimal makespan, and the greedy insert algorithm (Algorithm 1) is uncompetitive. The MILP and task priority-based GA optimized the identical objective value as the optimal result, while the crane handlings’ sequences obviously differ.Figure 6
Time-space diagrams of seven tasks scheduled by the proposed methods. (a) Crane priority-based GA. (b) Greedy insert. (c) MILP. (d) Task priority-based GA.
(a)(b)(c)(d)


#### 5.2.3. Parameter Sensitivity

We examine the effect of the synchronization strength (length of the safe time interval,Ts) and handshake bay positions on the solutions in the following.Figure7 displays the impact of safe time intervals on the incremental makespan of the tasks in the four scenarios. With the makespan of safe time of Ts=6 seconds as the benchmark, the makespan rises to 13.5% after Ts increasing to 30 seconds. We can observe a notable makespan increment in the scenario of tasks distributed in the block seaside, and the curve is steep during the safe time prolonging.Figure 7
Impact of safe time interval on makespan.Figure8 displays the incremental makespan of various handshake bays compared with the optimal handshake bay, which locates at the bay of No. 5 in this instance. The makespan decreases when the handshake bay moves close toward the optimal bay. After the handshake bay reaches optimal, we can observe a dramatic increment in makespan, and the prime crane carries most tasks to their destination, while the other crane cooperates with fewer tasks. Compared with the incremental makespan, the optimal buffer location can save 35% working time than the handshake bay’s worst assignment.Figure 8
Impact of handshake bay on the solutions.The following practical insights are evaluated based on the results shown in Figures7 and 8. Firstly, the impact of synchronization strength on the makespan relates to the distribution of tasks. An extensive time delay is needed to synchronize the two cranes when the cranes have to work in a compact space of dense tasks. Secondly, a proper handshake bay helps to relieve the time of delay caused by the synchronized operations. The temporal space can reassign each device’s tasks, therefore balancing the workload between devices to reach an optimal result in a whole scheduling perspective. The location of the temporal space affects the assignment of tasks to cranes and the moving distances of the crane handling tasks. Therefore, the location is significant in balancing the cranes’ workloads and optimizing the tasks’ makespan. Finally, the handshake bay positioning and ASC scheduling must be optimized as integrated decisions because they are mutually affected and jointly affect the solution optimality. The position of the handshake bay affects the reassignment of tasks to ASCs, the moving distances, and the working time of each task by the ASCs.


### 5.3. Discussion

(1)
Based on the algorithms’ comparisons (Table4), the greedy insert algorithm succeeds in computing time and space complexities. When many tasks are involved, the computing performance is still competitive compared with the MILP solver and GAs. The MILP solvers (e.g., Gurobi and Cplex) are suitable for solving small-scale instances, and generally, optimal solutions are achievable within an acceptable time. The GA takes more computation time than that of the greedy insert algorithm. Nevertheless, the GA can stop using the number of maximal generations as a termination criterion. So, the optimality and computing time of using GA can be balanced, while the solution method based on the MILP solver may not find a feasible solution within acceptable times. Comparatively, the greedy insert algorithm can only find a feasible solution by experience-based rules. The MILP solver can find optimal solutions optimistically, while it cannot find a feasible solution always due to computing complexities (in time or space requirements). The GA can find improved solutions, ideally when it runs for enough generations. In summary, three solution methods are capable of different scales of problem instances. As revealed by the experiments, the task priority-based GA is competitive for the medium- and large-scale instances in practical and operational environments. The terminal can choose the corresponding solution method according to different problem instances to improve the operation efficiency of an automatic container terminal.(2)
Real-world logistic optimization problems usually involve multi-vehicle-type multistage operations. All the vehicles and strategies function within the constrained working places. Synchronization constraints are general forms representing the complex relations among facilities, vehicles, stages, and operations in the dimensions of time, space, and tasks. The synchronization relation or constraint becomes a conceptualization, classification, and modeling tool. In ACTs, automated quay cranes, ACTs, and AGVs are different types of vehicles in different operations stages, while they interact and even interconnect with each other within the limited space of the terminals; meanwhile, we must coordinate them with the operation facilities (e.g., berths and yard blocks). Although this study mainly conceptualized the time-space and critical resource synchronizations considering the impacts of the handshake bay, various synchronization relations constrain the operations in ACTs.


## 5.1. Data and Experimental Settings

We use the following data to construct the instances and settings in the experiments. The data are set based on the investigations to the Shanghai Yangshan ACT. The authors provided mathematical modeling courses and assistants to the ACT designers, managers, and operators. The block consists of 28 bays and two I/O points at the ends. The travel speed of ASC is set to 2.5 m/s. That is, an ASC takes 6 s to travel a bay. The hoist/drop speed of ASC is set to 2 m/s. In practice, ASC needs a calibration time of 25–30 s for orienting the container location to be operated. Therefore, we set the hoist/drop time to 30 s. The task numbern is set to 5, 10, 20, 50, and 100. For each number of tasks, we generate four scenarios of task distributions (denoted as “s,” “c,” “l,” and “u”) so that tasks are distributed from the I/O point of arrival container to 1/3 length of the block, from 1/3 length of the block to 2/3 length of the block, from 2/3 length of the block to the end of the block, and distributed uniformly in the block. The safe time interval between two crane handlings is set to 9 s, indicating a minimal half-bay distance between twin ASCs. In summary, we represent the model parameters described above by a value vector, nb,Tm,Th,Ts=28,6,30,9.The parameters of GA include maximal generationG, stall generation φ, population size ρ, crossover fraction α, and mutation ratio β. In the parameter tuning experiment, we adjust one parameter and fix other parameters simultaneously. Section 5.2.1 presents more details of tuning the parameters. The default values of the parameters are G,φ,ρ,α,β=1000,450,20,0.6,0.55.In Table3, we devise three experiments with purposes and parameter settings.Table 3
Experimental settings.
No.PurposesParameter settings1Tune the GA to determine the robust parameter value(1) Set max generations (G) to 5000; (2) Set stall generations (φ) to 200, 300, 400, 500, and 600, and run the GA for 20 times individually; (3) Set the crossover fraction (α) to 0.05, 0.10, …, 0.95, and set the mutation rate (β) to 0.05, 0.10, …, 0.95. Use these values for cross experiments and then run the GA for each combination of crossover fraction and mutation rate five times.2Compare the optimality and computation time of the MILP and proposed algorithms(1) Use the settings in No. 1;(2) Set the run time limitation of the MILP solver to 900 s; (3) Use the MILP solver, the greedy insert algorithm, and GA (Algorithms 1 and 2) to solve the problem.3Examine the impacts of synchronization constraints and handshake location on the makespan and ASC operations(1) Apply GA with its default settings;(2) Set the safe time interval (Ts) to 6, 12, 18, 24, and 30 s; (3) Set a handshake bay (w) to an available bay.


## 5.2. Experimental Result

### 5.2.1. Parameter Tuning

We demonstrate the parameter tuning experiments using instances with 50 tasks uniformly distributed in a container yard block. Figure5 depicts the results for each tuned parameter. The objective value decreases dramatically at the beginning of execution, and the decreased speed slows down after 100 generations. The algorithm result converges to an optimal value and holds stable after 800 generations. The algorithm terminates after the stall generation, and the best value is 450. In Figure 5(c), the lowest objective value incurs at population size 20; after that point, computation time increases, while the objective value is unchanged. The crossover fraction (α) and mutation ratio (β) jointly determine the GA’s progress. Figure 5(d) produces a contour plot for these two parameters and their corresponding makespan. The objective value drops to the lowest when the crossover fraction reaches 0.6 and the mutation ratio to 0.55. We mark two regions of combinations that lead to good performances by grey colors in Figure 5(d).Figure 5
Impacts of the GA parameters on solutions. (a) Objective value of GA. (b) Tuning of stall generation. (c) The effect of population sizes (ρ) on makespan versus computation time. (d) The outperformed regions of combinations of crossover fraction and mutation ratio.
(a)(b)(c)(d)The parameters are sensitive to the number of tasks and even their distributions. Here, we mainly demonstrate the processes and typical results for tuning the parameters. In application scenarios, after testing the distribution of the tasks and the size of a batch of tasks in scheduling, we can use it to determine the parameters before regular production.


### 5.2.2. Algorithm Performances

We evaluate the proposed model’s performance and algorithms in computation time (CT) and optimal objective value (Obj). It is found in the experiments that a feasible solution of MILP solved by the on-the-shelf solver takes several hours. So, it is not applicable to use the MILP solver in practice. In the following experiments, we set the time limit of two hours for solving the MILP. We conduct 500 runs of the priority-based GA and take the final objective values as ideal objective values, which are “ideal” bounds when the MILP solver cannot solve the model within two hours.As presented in Table4, the MILP solver can solve optimally for small-scale instances with five tasks. The performance of the MILP solver decreases for the medium-scale instances with ten to twenty tasks since the running time reaches the limit. For the instances of more than 50 tasks, the MILP solver cannot find feasible solutions within the time limit (remarked as the notation “–” in the table). The greedy insert algorithm (Algorithm 1) can find a solution in less than 0.2 seconds, and its gaps between the ideal solutions narrow down when the problem scales grow. The crane priority-based GA (Algorithm 1 using the decoding scheme in Algorithm 4) is robust in computation time. The task priority-based GA improves the greedy algorithm and outperforms other contenders in objective value. For small-scale instances, the task priority-based GA found the optimal results equal to those from the MILP solver. In the medium- and large-scale instances, the task priority-based GA can reduce the gaps between the ideal solutions by 5%, even to 0.06%. The computation times show that the efficiency of the task priority-based GA is related to the number of tasks because the synchronization of the two crane scheduling tasks takes much time to determine the feasible task sequences avoiding crane interference.Table 4
Objective value and computation time of solving the model and algorithms.
InstanceMILPGreedy insertCrane priority-based GATask priority-based GAIdealObj.CT/sObj.CT/sGapb (%)Obj.CT/sGapb (%)Obj.CT/sGapb (%)Obj.c5s4955.055550.1212.125046.761.824953.870.004955c7531.677650.021.597597.260.807533.880.007535l10654.8510650.010.0010718.020.5610653.780.0010655u6301.657470.0118.576337.630.486304.830.0063010s9997200.00a10350.0113.1810205.5811.549336.352.0291510c15697200.00a16110.019.9115579.466.2214796.080.90146610l21457200.00a20190.014.0020679.156.4719896.092.45194110u14197200.00a15270.0015.12139512.835.1713806.504.04132620s23767200.00a19830.0111.0819685.8010.24182415.852.18178520c43057200.00a31410.008.3233069.6014.01291920.010.67290020l61597200.00a43170.017.34432316.447.49411313.642.27402220u43987200.00a32070.017.4232288.238.12304517.331.99298650s—7200.00a47310.016.6153227.9019.93463242.504.38443850c—7200.00a78450.016.46993622.3334.84741935.340.68736950l—7200.00a106890.019.101242922.5226.851026969.934.81979850u—7200.00a73350.012.97868810.1221.97715286.120.407123100s—7200.00a91950.010.671105212.4021.019201137.120.749133100c—7200.00a156810.015.442057431.9838.3415111164.951.6114872100l—7200.00a212850.023.982625945.3728.2820673161.150.9920471100u—7200.00a147330.012.912004017.1239.9714325219.400.0614317Note.aTerminated by Gurobi after 2 hours, “—” indicates no feasible solution found. b Gap = ((Method Obj.) − (Ideal Obj.))/(Ideal Obj.) × 100%. cIdeal Obj. is obtained by running the task priority-based GA for 500 times.Figure6 presents the results of solving the model and algorithms for seven uniformly distributed tasks. All methods generated an optimal handshake location at the bay of No. 11. The crane priority-based GA found a near-optimal solution with an extra six seconds compared with optimal makespan, and the greedy insert algorithm (Algorithm 1) is uncompetitive. The MILP and task priority-based GA optimized the identical objective value as the optimal result, while the crane handlings’ sequences obviously differ.Figure 6
Time-space diagrams of seven tasks scheduled by the proposed methods. (a) Crane priority-based GA. (b) Greedy insert. (c) MILP. (d) Task priority-based GA.
(a)(b)(c)(d)


### 5.2.3. Parameter Sensitivity

We examine the effect of the synchronization strength (length of the safe time interval,Ts) and handshake bay positions on the solutions in the following.Figure7 displays the impact of safe time intervals on the incremental makespan of the tasks in the four scenarios. With the makespan of safe time of Ts=6 seconds as the benchmark, the makespan rises to 13.5% after Ts increasing to 30 seconds. We can observe a notable makespan increment in the scenario of tasks distributed in the block seaside, and the curve is steep during the safe time prolonging.Figure 7
Impact of safe time interval on makespan.Figure8 displays the incremental makespan of various handshake bays compared with the optimal handshake bay, which locates at the bay of No. 5 in this instance. The makespan decreases when the handshake bay moves close toward the optimal bay. After the handshake bay reaches optimal, we can observe a dramatic increment in makespan, and the prime crane carries most tasks to their destination, while the other crane cooperates with fewer tasks. Compared with the incremental makespan, the optimal buffer location can save 35% working time than the handshake bay’s worst assignment.Figure 8
Impact of handshake bay on the solutions.The following practical insights are evaluated based on the results shown in Figures7 and 8. Firstly, the impact of synchronization strength on the makespan relates to the distribution of tasks. An extensive time delay is needed to synchronize the two cranes when the cranes have to work in a compact space of dense tasks. Secondly, a proper handshake bay helps to relieve the time of delay caused by the synchronized operations. The temporal space can reassign each device’s tasks, therefore balancing the workload between devices to reach an optimal result in a whole scheduling perspective. The location of the temporal space affects the assignment of tasks to cranes and the moving distances of the crane handling tasks. Therefore, the location is significant in balancing the cranes’ workloads and optimizing the tasks’ makespan. Finally, the handshake bay positioning and ASC scheduling must be optimized as integrated decisions because they are mutually affected and jointly affect the solution optimality. The position of the handshake bay affects the reassignment of tasks to ASCs, the moving distances, and the working time of each task by the ASCs.


## 5.2.1. Parameter Tuning

We demonstrate the parameter tuning experiments using instances with 50 tasks uniformly distributed in a container yard block. Figure5 depicts the results for each tuned parameter. The objective value decreases dramatically at the beginning of execution, and the decreased speed slows down after 100 generations. The algorithm result converges to an optimal value and holds stable after 800 generations. The algorithm terminates after the stall generation, and the best value is 450. In Figure 5(c), the lowest objective value incurs at population size 20; after that point, computation time increases, while the objective value is unchanged. The crossover fraction (α) and mutation ratio (β) jointly determine the GA’s progress. Figure 5(d) produces a contour plot for these two parameters and their corresponding makespan. The objective value drops to the lowest when the crossover fraction reaches 0.6 and the mutation ratio to 0.55. We mark two regions of combinations that lead to good performances by grey colors in Figure 5(d).Figure 5
Impacts of the GA parameters on solutions. (a) Objective value of GA. (b) Tuning of stall generation. (c) The effect of population sizes (ρ) on makespan versus computation time. (d) The outperformed regions of combinations of crossover fraction and mutation ratio.
(a)(b)(c)(d)The parameters are sensitive to the number of tasks and even their distributions. Here, we mainly demonstrate the processes and typical results for tuning the parameters. In application scenarios, after testing the distribution of the tasks and the size of a batch of tasks in scheduling, we can use it to determine the parameters before regular production.


## 5.2.2. Algorithm Performances

We evaluate the proposed model’s performance and algorithms in computation time (CT) and optimal objective value (Obj). It is found in the experiments that a feasible solution of MILP solved by the on-the-shelf solver takes several hours. So, it is not applicable to use the MILP solver in practice. In the following experiments, we set the time limit of two hours for solving the MILP. We conduct 500 runs of the priority-based GA and take the final objective values as ideal objective values, which are “ideal” bounds when the MILP solver cannot solve the model within two hours.As presented in Table4, the MILP solver can solve optimally for small-scale instances with five tasks. The performance of the MILP solver decreases for the medium-scale instances with ten to twenty tasks since the running time reaches the limit. For the instances of more than 50 tasks, the MILP solver cannot find feasible solutions within the time limit (remarked as the notation “–” in the table). The greedy insert algorithm (Algorithm 1) can find a solution in less than 0.2 seconds, and its gaps between the ideal solutions narrow down when the problem scales grow. The crane priority-based GA (Algorithm 1 using the decoding scheme in Algorithm 4) is robust in computation time. The task priority-based GA improves the greedy algorithm and outperforms other contenders in objective value. For small-scale instances, the task priority-based GA found the optimal results equal to those from the MILP solver. In the medium- and large-scale instances, the task priority-based GA can reduce the gaps between the ideal solutions by 5%, even to 0.06%. The computation times show that the efficiency of the task priority-based GA is related to the number of tasks because the synchronization of the two crane scheduling tasks takes much time to determine the feasible task sequences avoiding crane interference.Table 4
Objective value and computation time of solving the model and algorithms.
InstanceMILPGreedy insertCrane priority-based GATask priority-based GAIdealObj.CT/sObj.CT/sGapb (%)Obj.CT/sGapb (%)Obj.CT/sGapb (%)Obj.c5s4955.055550.1212.125046.761.824953.870.004955c7531.677650.021.597597.260.807533.880.007535l10654.8510650.010.0010718.020.5610653.780.0010655u6301.657470.0118.576337.630.486304.830.0063010s9997200.00a10350.0113.1810205.5811.549336.352.0291510c15697200.00a16110.019.9115579.466.2214796.080.90146610l21457200.00a20190.014.0020679.156.4719896.092.45194110u14197200.00a15270.0015.12139512.835.1713806.504.04132620s23767200.00a19830.0111.0819685.8010.24182415.852.18178520c43057200.00a31410.008.3233069.6014.01291920.010.67290020l61597200.00a43170.017.34432316.447.49411313.642.27402220u43987200.00a32070.017.4232288.238.12304517.331.99298650s—7200.00a47310.016.6153227.9019.93463242.504.38443850c—7200.00a78450.016.46993622.3334.84741935.340.68736950l—7200.00a106890.019.101242922.5226.851026969.934.81979850u—7200.00a73350.012.97868810.1221.97715286.120.407123100s—7200.00a91950.010.671105212.4021.019201137.120.749133100c—7200.00a156810.015.442057431.9838.3415111164.951.6114872100l—7200.00a212850.023.982625945.3728.2820673161.150.9920471100u—7200.00a147330.012.912004017.1239.9714325219.400.0614317Note.aTerminated by Gurobi after 2 hours, “—” indicates no feasible solution found. b Gap = ((Method Obj.) − (Ideal Obj.))/(Ideal Obj.) × 100%. cIdeal Obj. is obtained by running the task priority-based GA for 500 times.Figure6 presents the results of solving the model and algorithms for seven uniformly distributed tasks. All methods generated an optimal handshake location at the bay of No. 11. The crane priority-based GA found a near-optimal solution with an extra six seconds compared with optimal makespan, and the greedy insert algorithm (Algorithm 1) is uncompetitive. The MILP and task priority-based GA optimized the identical objective value as the optimal result, while the crane handlings’ sequences obviously differ.Figure 6
Time-space diagrams of seven tasks scheduled by the proposed methods. (a) Crane priority-based GA. (b) Greedy insert. (c) MILP. (d) Task priority-based GA.
(a)(b)(c)(d)


## 5.2.3. Parameter Sensitivity

We examine the effect of the synchronization strength (length of the safe time interval,Ts) and handshake bay positions on the solutions in the following.Figure7 displays the impact of safe time intervals on the incremental makespan of the tasks in the four scenarios. With the makespan of safe time of Ts=6 seconds as the benchmark, the makespan rises to 13.5% after Ts increasing to 30 seconds. We can observe a notable makespan increment in the scenario of tasks distributed in the block seaside, and the curve is steep during the safe time prolonging.Figure 7
Impact of safe time interval on makespan.Figure8 displays the incremental makespan of various handshake bays compared with the optimal handshake bay, which locates at the bay of No. 5 in this instance. The makespan decreases when the handshake bay moves close toward the optimal bay. After the handshake bay reaches optimal, we can observe a dramatic increment in makespan, and the prime crane carries most tasks to their destination, while the other crane cooperates with fewer tasks. Compared with the incremental makespan, the optimal buffer location can save 35% working time than the handshake bay’s worst assignment.Figure 8
Impact of handshake bay on the solutions.The following practical insights are evaluated based on the results shown in Figures7 and 8. Firstly, the impact of synchronization strength on the makespan relates to the distribution of tasks. An extensive time delay is needed to synchronize the two cranes when the cranes have to work in a compact space of dense tasks. Secondly, a proper handshake bay helps to relieve the time of delay caused by the synchronized operations. The temporal space can reassign each device’s tasks, therefore balancing the workload between devices to reach an optimal result in a whole scheduling perspective. The location of the temporal space affects the assignment of tasks to cranes and the moving distances of the crane handling tasks. Therefore, the location is significant in balancing the cranes’ workloads and optimizing the tasks’ makespan. Finally, the handshake bay positioning and ASC scheduling must be optimized as integrated decisions because they are mutually affected and jointly affect the solution optimality. The position of the handshake bay affects the reassignment of tasks to ASCs, the moving distances, and the working time of each task by the ASCs.


## 5.3. Discussion

(1)
Based on the algorithms’ comparisons (Table4), the greedy insert algorithm succeeds in computing time and space complexities. When many tasks are involved, the computing performance is still competitive compared with the MILP solver and GAs. The MILP solvers (e.g., Gurobi and Cplex) are suitable for solving small-scale instances, and generally, optimal solutions are achievable within an acceptable time. The GA takes more computation time than that of the greedy insert algorithm. Nevertheless, the GA can stop using the number of maximal generations as a termination criterion. So, the optimality and computing time of using GA can be balanced, while the solution method based on the MILP solver may not find a feasible solution within acceptable times. Comparatively, the greedy insert algorithm can only find a feasible solution by experience-based rules. The MILP solver can find optimal solutions optimistically, while it cannot find a feasible solution always due to computing complexities (in time or space requirements). The GA can find improved solutions, ideally when it runs for enough generations. In summary, three solution methods are capable of different scales of problem instances. As revealed by the experiments, the task priority-based GA is competitive for the medium- and large-scale instances in practical and operational environments. The terminal can choose the corresponding solution method according to different problem instances to improve the operation efficiency of an automatic container terminal.(2)
Real-world logistic optimization problems usually involve multi-vehicle-type multistage operations. All the vehicles and strategies function within the constrained working places. Synchronization constraints are general forms representing the complex relations among facilities, vehicles, stages, and operations in the dimensions of time, space, and tasks. The synchronization relation or constraint becomes a conceptualization, classification, and modeling tool. In ACTs, automated quay cranes, ACTs, and AGVs are different types of vehicles in different operations stages, while they interact and even interconnect with each other within the limited space of the terminals; meanwhile, we must coordinate them with the operation facilities (e.g., berths and yard blocks). Although this study mainly conceptualized the time-space and critical resource synchronizations considering the impacts of the handshake bay, various synchronization relations constrain the operations in ACTs.


## 6. Conclusion

This study investigates an operational problem of positioning a handshake bay and scheduling twin ASCs in a single container yard block at ACTs and, consequently, discusses the management insights and operational improvements. A handshake bay is temporary storage to coordinate the twin ASCs that sequentially stack and retrieve containers in the block to increase the utilization degree of cranes. We identified the time-space and critical resource synchronizations in using a handshake bay to avoid crane collisions. Then, we formulate a MILP to integrate the decisions of the handshake bay and ASC scheduling, where we represent the synchronization constraints by a safe time interval to avoid crane collision. A handshake task is operated by the two cranes sequentially: the cooperative crane can retrieve a container from the handshake bay after the prime crane drops the container to the handshake bay. The position of the handshake bay determines the travel distance of ASCs. The MILP solver is valid and efficient for the small-scale instances; however, it is hard for the solver to optimize the medium- and large-scale instances. Therefore, the greedy algorithm is proposed to search for a solution efficiently, and the task priority-based GA can sequence the handlings of twin ASCs with a dynamic priority for the crane handlings to search for optimal solutions globally. The computational experiments validated the efficiency of the algorithms for large-scale instances. For the large-scale instances, the proposed GA can find the near-optimal results within a 5% gap compared with the ideal solution and outperforms the MILP solver, the greedy insert, and the algorithm using constant crane priorities. In addition to the methodological studies, we conduct experiments to analyze the impacts of stacking operations and synchronization constraints on the makespan, such as the safe time interval and handshake bay position. The optimal handshake bay can save 35% working time compared with choosing the worst handshake bay.As for future research directions, the handshake bay and even the ASC operations are not independent of various operations in ACTs. First, we have formulated the handshake bay positioning and scheduling model for the containers unloaded from the vessels, while the ASCs service for the container-handling tasks from and to vessels, and from and to hinterlands. To consider the combinations of these container-handling tasks, we must revise the proposed model and develop new algorithms. Second, as elucidated in Section3, we assume that all these parameters are constants while uncertain and even dynamically changing. Because of the uncertain environment of ACTs, we will investigate new stochastics or robust optimization models in the future. Third, we use “ideal” objective values as the lower bounds for algorithmic comparisons. We will try to formulate the mathematical tight lower bounds in the future. The challenges of operation optimization in container terminals generally relate to integrating various vehicles and resources, which produces various synchronization constraints. We will combine the model algorithms developed in this study with our previous and pioneering studies in the literature.



---

*Source: 5738254-2022-01-18.xml*